Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки? Спасибо! |
Компонентные технологии разработки web-приложений
Процессы и синхронизация
Помимо процессов и потоков, среда .NET поддерживает так называемые зоны приложений (application domains), которые служат агрегатами ресурсов, как и процессы, но, в отличие от них, управляются с помощью более эффективных механизмов. В рамках одного процесса может быть создано несколько зон приложений. Передача объектов и ресурсов между зонами приложений невозможна без использования специальных механизмов, таких как Remoting. Потоки же в .NET могут пересекать границы зон приложений, если обладают соответствующими правами.
Зоны приложений служат дополнительным элементом защиты .NET-приложений от непреднамеренного взаимного влияния и позволяют сохранить работоспособность процесса при возникновении проблем в одном из его приложений.
Помимо автоматически создаваемых потоков и зон приложений, разработчик может создавать свои собственные потоки и зоны приложений. Вопросы синхронизации потоков и передачи данных между зонами приложений в Web-приложениях могут решаться при помощи стандартных механизмов .NET — конструкций и библиотек синхронизационных примитивов, а также библиотечного класса System.AppDomain, чьи методы позволяют выполнять различные операции с зонами приложений.
Целостность
Целостность данных в .NET поддерживается, как и в J2EE, в основном, за счет механизма транзакций. Распределенные транзакции в .NET реализованы на базе сервера транзакций Microsoft (Microsoft Transaction Server, MTS), который появился как часть компонентной среды COM+. Интерфейсы для работы с его функциями собраны в пространстве имен System.EnterpriseServices, в сборке с таким же именем.
Автоматические транзакции поддерживаются при помощи указания у классов транзакционных атрибутов, имеющих тип System.EnterpriseServices.TransactionAttribute. Такой атрибут может принимать значения Required, RequiresNew, NotSupported, Supported и Disabled. Первые три имеют то же значение, что и в J2EE. Атрибут Supported действует аналогично Supports в J2EE. Атрибут Disabled обозначает, что транзакционный контекст вызвавшего метода будет проигнорирован.
Значение атрибутов по умолчанию для методов компонентов ASP.NET и методов обычных классов, используемых в распределенных транзакциях, различны — у первых это Disabled, у вторых — Required.
Чтобы определить класс, чьи методы могут участвовать в транзакциях, нужно унаследовать его от класса System.EnterpriseServices.ServicedComponent, определить транзакционный атрибут, а также прикрепить к сборке, содержащей этот класс, сертификат и зарегистрировать сборку в реестре COM+.
Для завершения или отката автоматической транзакции используются следующие конструкции.
- Атрибут System.EnterpriseServices.AutoCompleteAttribute у участвующего в транзакции метода говорит о том, что в случае нормального завершения работы метода и отсутствия проблем у других ее участников транзакция будет завершена успешно. Если же в результате работы метода будет создано исключение, транзакция будет отменена.
- Методы SetComplete() и SetAbort() класса System.EnterpriseServices.ContextUtil могут использоваться для успешного завершения или отката автоматически созданной транзакции.
Создание и управление транзакциями "в ручном режиме" может быть осуществлено для компонентов ADO.NET при помощи методов класса System.Data.Common.DbConnection и его наследников и класса System.Data.Common.DbTransaction. Для управления транзакциями при передаче сообщений используется класс System.Messaging.MessageQueueTransaction.
Отказоустойчивость
Так же, как и для J2EE, отказоустойчивость .NET-приложений должна обеспечиваться либо за счет использования дополнительных продуктов, либо за счет специфического проектирования приложения.
Защита
Защищенность .NET-приложений поддерживается примерно теми же методами, что и защищенность J2EE-приложений.
Здесь также имеется несколько техник аутентификации, возможность определения ролей, обеспеченных набором прав доступа к различным элементам системы, а также возможность использования различных протоколов шифрования и защищенной передачи данных, управления ключами и подтверждения целостности данных. В рамках .NET используются также многоуровневые политики защиты, которые определяют набор прав, предоставляемых коду из разных источников.
Программные интерфейсы к различным механизмам управления защищенностью приложений и ресурсов реализуются классами и интерфейсами пространства имен System.Security, находящимися в сборках mscorlib, System и System.Security.
Работа с XML
В целом техника работы с XML-документами в .NET опирается на реализацию объектной модели документов XML ( DOM ) и на механизм разбора, аналогичный StAX, реализуемый классом System.Xml.XmlReader. Классы, реализующие различные парсеры XML, различные варианты представления XML-документов, а также их трансформацию на основе XSLT -описаний, находятся в пространстве имен System.Xml, разбросанном по сборкам System.Data, System.Data.SqlXml и System.Xml.
Одной из особенностей работы с XML в .NET является встроенная возможность работы с XML-данными в рамках механизмов ADO.NET (в основном предназначенных для работы с реляционными СУБД) с помощью класса System.Xml.XmlDataDocument.