- •4.Основные принципы проектирование приложений
- •5.Схема типовой архитектуры приложения назначение компонентов схем.
- •6.Сквозная функциональность
- •9.Сочетание архитектурных стилей.
- •10.Клиент-серверная и трехуревневая архитектура.
- •11.Компонентная и многослойная архитектура.
- •12. Многослойная архитектура
- •13.Рекомендаций по проектирование слоев типовой архитек прилож.
- •Архитектура .Net Framework
- •14.Платформа .Нет чем отличот других платформа.
- •15. Процесс компиляции на платформе .Net
- •Управляемый код против неуправляемого
14.Платформа .Нет чем отличот других платформа.
ASP.NET — это платформа для создания Web-приложений и Web-сервисов, работающих под управлением IIS. Сегодня существуют другие технологии, позволяющие создавать Web-приложения. К ним относятся прежде всего, очень популярные сегодня языки PHP и PERL, более старая и менее популярная технология CGI и т. д. Однако ASP.NET отличается от них высокой степенью интеграции с серверными продуктами, а также с инструментами Microsoft для разработки доступа к данным и обеспечения безопасности. Кроме того, ASP.NETпозволяет разрабатывать Web- и Windows-приложения, используя очень похожие технологические цепочки, одинаковые языки программирования, технологии доступа к данным и т. д.
Заметим лишь, что ASP.NET функционирует исключительно на серверах Windows, так как требует наличия IIS. Для создания Web-приложений, не требующих IIS, а использующих, например, Web-сервер Apache и работающих на серверах под управлением операционных систем, отличных от Windows, применяются другие технологии.
Архитектура .Net Framework
Платформа состоит из четырех групп программных продуктов:
набор языков, куда входят С# и VisualBasic .NET; набор инструментальных средств разработки, в том числе VisualStudio .NET; обширная библиотека классов для построения Web-служб и приложений, работающих в Windows и в Интернете; а также среда выполнения программ CLR ( CommonLanguageRuntime — общеязыковая среда выполнения), в которой выполняются объекты, построенные на этой платформе;
набор серверов .NET EnterpriseServers, ранее известных под именами SQL Server 2000, Exchange 2000, BizTalk 2000 и др., которые предоставляют специализированные функциональные возможности для обращения к реляционным базам данных, использования электронной почты, оказания коммерческих услуг "бизнес-бизнес" (В2В) и т. д.;
богатый выбор коммерческих Web-служб, называемых .NetMyServices. За умеренную плату разработчики могут пользоваться этими службами при построении приложений, требующих идентификации личности пользователя и других данных;
новые некомпьютерные устройства, поддерживающие средства .NET, — от сотовых телефонов до игровых приставок.
Microsoft .NET поддерживает не только языковую независимость, но и языковую интеграцию. Это означает, что разработчик может наследовать от классов, обрабатывать исключения и использовать преимущества полиморфизма при одновременной работе с несколькими языками. Платформа .NET Framework предоставляет такую возможность с помощью спецификации CTS ( CommonTypeSystem — общая система типов), которая полностью описывает все типы данных, поддерживаемые средой выполнения, определяет, как одни типы данных могут взаимодействовать с другими и как они будут представлены в формате метаданных .NET. Например, в .NET любая сущность является объектом какого-нибудь класса, производного от корневого класса System.Object. Спецификация CTS поддерживает такие общие понятия, как классы, делегаты (с поддержкой обратных вызовов), ссылочные и размерные типы.
Важно понимать, что не во всех языках программирования .NET обязательно должны поддерживаться все типы данных, которые определены в CTS. Спецификация CLS (CommonLanguageSpecification — общая языковая спецификация ) устанавливает основные правила, определяющие законы, которым должны следовать все языки: ключевые слова, типы, примитивные типы, перегрузки методов и т. п. Спецификация CLS определяет минимальные требования, предъявляемые к языку платформы .NET. Компиляторы, удовлетворяющие этой спецификации, создают объекты, способные взаимодействовать друг с другом. Любой язык, соответствующий требованиям CLS, может использовать все возможности библиотеки FCL (FrameworkClassLibrary — библиотека классов платформы). CLS позволяет и разработчикам, и поставщикам, и производителям программного обеспечения не выходить за пределы общего набора правил для языков, компиляторов и типов данных.
Платформа .NET Framework является надстройкой над операционной системой, в качестве которой может выступать любая версия Windows1. На сегодняшний день платформа .NET Framework включает в себя:
четыре официальных языка: С#, VB.NET, Managed C++ (управляемый C++) и JScript .NET;
объектно-ориентированную среду CLR ( CommonLanguageRuntime ), совместно используемую этими языками для создания приложений под Windows и для Internet;
ряд связанных между собой библиотек классов под общим именем FCL (FrameworkClassLibrary).
Отношения архитектурных компонентов платформы .NET Framework с концептуальной точки зрения представлены на рис. 1.2.
Рис. 1.2. Архитектура .NET Framework
Самым важным компонентом платформы .NET Framework является CLR ( CommonLanguageRuntime ), предоставляющая среду, в которой выполняются программы. Главная ее роль заключается в том, чтобы обнаруживать и загружать типы .NET и производить управление ими в соответствии с полученными командами. CLR включает в себя виртуальную машину, во многих отношениях аналогичную виртуальной машине Java. На верхнем уровне среда активизирует объекты, производит проверку безопасности, размещает объекты в памяти, выполняет их, а также запускает сборщик мусора.
Под сборкой мусора понимается освобождение памяти, занятой объектами, которые стали бесполезными и не используются в дальнейшей работе приложения. В ряде языков программирования (например, C/C++) память освобождает сам программист, в явной форме отдавая команды как на создание, так и на удаление объекта. В этом есть своя логика — "я тебя породил, я тебя и убью". Однако в CLR задача сборки мусора (и другие вопросы, связанные с использованием памяти) решается в нужное время и в нужном месте исполнительной средой, ответственной за выполнение вычислений.
На рис. 1.2 над уровнем CLR находится набор базовых классов платформы, над ним расположены слой классов данных и XML, а также слой классов для создания Web-служб (WebServices), Web- и Windows-приложений (WebForms и WindowsForms). Собранные воедино, эти классы известны под общим именем FCL (FrameworkClassLibrary). Это одна из самых больших библиотек классов в истории программирования. Она открывает доступ к системным функциям, включая и те, что прежде были доступны только через API Windows, а также к прикладным функциям для Web-разработки (ASP.NET), доступа к данным (ADO.NET), обеспечения безопасности и удаленного управления. Имея в своем составе более 4000 классов, библиотека FCL способствует быстрой разработке настольных, клиент-серверных и других приложений и Web-служб.
Набор базовых классов платформы — нижний уровень FCL — не только прячет обычные низкоуровневые операции, такие как файловый ввод/вывод, обработка графики и взаимодействие с оборудованием компьютера, но и обеспечивает поддержку большого количества служб, используемых в современных приложениях (управление безопасностью, поддержка сетевой связи, управление вычислительными потоками, работа с отражениями и коллекциями и т. д.).
Над этим уровнем находится уровень классов, которые расширяют базовые классы с целью обеспечения управления данными и XML. Классы данных позволяют реализовать управление информацией, хранящейся в серверных базах данных. В число этих классов входят классы SQL (StructuredQueryLanguage, язык структурированных запросов), дающие программисту возможность обращаться к долговременным хранилищам данных через стандартный интерфейс SQL. Кроме того, набор классов, называемый ADO.NET, позволяет оперировать постоянными данными. Платформа .NET Framework поддерживает также целый ряд классов, позволяющих манипулировать XML-данными и выполнять поиск и преобразования XML.
Базовые классы, классы данных и XML расширяются классами, предназначенными для построения приложений на основе трех различных технологий: WebServices (Web-службы), WebForms (Web-формы) и WindowsForms (Windows-формы). Web-службы включают в себя ряд классов, поддерживающих разработку облегченных распределяемых компонентов, которые могут работать даже с брандмауэрами и программами трансляции сетевых адресов (NAT). Поскольку Web-службы применяют в качестве базовых протоколов связи стандартные протоколы HTTP и SOAP, эти компоненты поддерживают в киберпространстве подход "Plug&Play".
Инструментальные средства WebForms и WindowsForms позволяют применять технику RAD (RapidApplicationDevelopment — быстрая разработка приложений) для построения Web- и Windows-приложений. Эта техника сводится к перетаскиванию элементов управления с панели инструментов на форму, двойному щелчку по элементу и написанию кода, который обрабатывает события, связанные с этим элементом.
