Обзор технологии NET Framework

Источник: msdn

Платформа .NET Framework - это один из компонентов системы Windows. Он позволяет создавать и использовать приложения нового поколения. Назначение платформы .NET Framework :

  • создание целостной объектно-ориентированной среды программирования допускающей различные варианты реализации: код может храниться и выполняться локально; выполняться локально, а распространяться через Интернет; или выполняться удаленно;
  • предоставление среды выполнения кода, в которой число конфликтов при развертывании программного обеспечения и управлении версиями будет сведено к минимуму;
  • обеспечение безопасности выполнения кода в среде - в том числе кода, созданного неизвестным разработчиком или разработчиком с частичным доверием;
  • предоставление среды выполнения кода, позволяющей устранить проблемы, связанные с производительностью сред на основе сценариев или интерпретации;
  • унификация работы разработчиков в совершенно разных приложениях: как в приложениях Windows, так и в веб-приложениях;
  • использование промышленных стандартов во всех областях обмена данными и, как следствие, обеспечения совместимости кода, созданного в .NET Framework, с другими программами.

Платформа  .NET Framework состоит из двух основных компонентов: среды CLR и библиотеки классов .NET Framework. Среда CLR - это фундамент платформы .NET Framework. Это своеобразный агент, управляющий кодом во время его выполнения, предоставляющий ключевые службы, связанные с такими процессами, как управление памятью, потоками и удаленными операциями, а также обеспечивающий безопасность типов и другими способами контролирующий правильность кода, гарантируя безопасность и стабильность приложений. Понятие управления кодом является для среды основополагающим. Код, созданный для среды, называется управляемым. Любой другой код называется неуправляемым кодом. Библиотека классов, второй основной компонент платформы .NET Framework, является обширным объектно-ориентированным набором типов, которые можно использовать для разработки самых различных приложений - от классических приложений с интерфейсом командной строки или графическим интерфейсом пользователя до новейших приложений на базе технологий ASP.NET, например веб-форм и веб-служб XML.

Платформа .NET Framework может располагаться на неуправляемом компоненте, который загружает среду CLR в собственные процессы и инициирует выполнение управляемого кода - тем самым создавая среду приложений, в которой может выполняться как управляемый, так и неуправляемый код. Платформа .NET Framework сама предоставляет несколько хост-приложений и поддерживает хост-приложения сторонних разработчиков.

Рассмотрим, к примеру, следующую ситуацию: платформа ASP.NET предоставляет масштабируемую среду для управляемого кода на стороне сервера. ASP.NET непосредственно взаимодействует со средой, обеспечивая работу приложений ASP.NET и веб-служб XML (речь о них пойдет ниже).

Обозреватель Internet Explorer является примером неуправляемого приложения, в котором располагается среда (в виде расширения типа MIME). Размещение среды в обозревателе Internet Explorer позволяет встраивать управляемые компоненты и элементы управления Windows Forms в документы HTML. Такое размещение среды делает возможным использование управляемого мобильного кода (схожего с элементами управления Microsoft ActiveX), предоставляя при этом расширенные возможности, характерные исключительно для управляемого кода, к примеру выполнение при частичном доверии или изолированное хранение файлов.

На рисунке ниже показаны связи между средой CLR, библиотекой классов, приложениями и всей системой в целом. Он также дает представление о том, как управляемый код работает в более крупной архитектуре.

.Платформа .NET Framework в составе системы

.Платформа .NET Framework в составе системы

В следующих разделах подробно рассматриваются основные компоненты и возможности платформы .NET Framework.

Функции среды CLR

Среда CLR отвечает за управление памятью, работу потоков, выполнение кода, проверку безопасности кода, компиляцию и другие системные службы. Эти функции включены в управляемый код, выполняемый в среде CLR.

Управляемым компонентам присваиваются разные уровни доверия на основании ряда факторов, связанных с их происхождением (Интернет, корпоративная сеть, локальный компьютер). От уровня доверия зависит способность управляемого компонента осуществлять доступ к файлам, реестру и прочим важным функциям даже в пределах одного активного приложения.

Среда отвечает за управление доступом для кода. Например, пользователь может указать, что тот или иной исполняемый файл, встроенный в веб-страницу, может показывать анимацию или проигрывать мелодию, но не может осуществлять доступ к персональным данным пользователя, файловой системе или сети. Это позволяет максимально расширить возможности надежного программного обеспечения, развертываемого через Интернет.

Кроме того, среда обеспечивает стабильность кода за счет применения инфраструктуры, осуществляющей проверку кода и типов - так называемой системы общих типов CTS. Система CTS гарантирует наличие полного описания в каждом управляемом коде. Как у Майкрософт, так и у сторонних разработчиков есть различные компиляторы, создающие управляемый код по стандарту CTS. Такой код может потреблять другие управляемые типы и экземпляры, неизменно сохраняя правильность и безопасность типов.

Управляемая среда также помогает устранить многие распространенные проблемы, связанные с программным обеспечением. Например, структура объектов и ссылки на них в среде CLR обрабатываются автоматически и освоождаются, когда перестают использоваться. Такое автоматическое управление памятью позволяет устранить две ошибки, наиболее часто встречающиеся в приложениях: утечку памяти и недействительные ссылки.

Кроме всего прочего, среда CLR повышает эффективность разработки. Независимо от того, на каком языке программист пишет приложение, он в полной мере может использовать все функции среды CLR, библиотеку классов и компоненты, написанные другими разработчиками на других языках программирования. Если поставщик решит создать компилятор приложений для среды CLR, он вполне может это сделать. Подобный компилятор позволяет использовать функции платформы .NET Framework в коде, написанного на соответствующем языке, благодаря чему значительно упрощается процесс миграции готовых приложений.

Среда разрабатывалась для приложений нового поколения, однако она отлично поддерживает существующее программное обеспечение. Совместимость управляемого и неуправляемого кода позволяет разработчикам не отказываться от необходимых компонентов COM и библиотек DLL.

При разработке среды целью было повышение производительности. Хотя в среде CLR доступно множество стандартных служб, управляемый код никогда не бывает интерпретируемым. Функция, известная как JIT-компиляция, позволяет выполнять любой код на машинном языке той системы, на которой он запускается. В то же время, диспетчер памяти устраняет возможность ее фрагментации и корректирует размещение ссылок, за счет чего мы получаем дополнительное повышение производительности.

Наконец, среда может располагаться на высокопроизводительных серверных приложениях, таких как SQL Server 2008 и службы IIS. Такая инфраструктура позволяет использовать при создании бизнес-логики управляемый код, сохраняя при этом высокий уровень производительности, характерный для передовых производственных серверов, поддерживающих размещение среды.

.Библиотека классов NET Framework

Библиотека классов .NET Framework - это набор стандартных типов, тесно связанных со средой CLR. Библиотека классов является объектно-ориентированной. В ней содержатся типы, на основании которых ваш управляемый код может выводить нужные функции. Это не только обеспечивает простоту использования типов в .NET Framework, но и сокращает количество времени, необходимое для изучения новых возможностей платформы. Кроме того, компоненты сторонних разработчиков могут полностью интегрироваться в библиотеку классов .NET Framework.

К примеру, классы коллекций в .NET Framework позволяют реализовать ряд интерфейсов, которые затем вы можете использовать для создания собственных классов. Классы коллекций, которые вы создадите, будут тесно интегрированы в набор классов .NET Framework.

Поскольку библиотека классов является объектно-ориентированной, типы в .NET Framework позволяют выполнять ряд стандартных операций программирования: управление строками, сбор данных, подключение к базам данных, доступ к файлам. В библиотеке также есть типы, поддерживающие самые разнообразные специализированные ситуации, с которыми вы сталкиваетесь при разработке приложений. Платформу .NET Framework можно использовать для создания следующих приложений и служб:

  • консольных приложений;
  • приложений с графическим интерфейсом пользователя для системы Windows (Windows Forms);
  • приложений ASP.NET;.
  • мобильных приложений;.
  • Веб-служб XML;
  • служб Windows.

Например, классы Windows Forms - это обширный набор стандартных типов, значительно упрощающих разработку графического интерфейса под Windows. При создании веб-форм ASP.NET можно использовать классы Web Forms.

Разработка клиентских приложений

Клиентские приложения больше всего напоминают классические приложения для системы Windows. Это приложения, отображающие на экране компьютера окна или формы, позволяющие пользователю выполнять те или иные задачи. Клиентским приложением может быть текстовый редактор, электронная таблица, а также бизнес-приложения: средства ввода данных, создания отчетов и т. д. В клиентских приложениях обычно используются окна, меню, кнопки и другие элементы графического интерфейса. Очень часто они осуществляют доступ к локальным ресурсам, например к файловой системе, и периферийным устройствам, например к принтерам.

Другая разновидность клиентских приложений - это традиционные элементы управления ActiveX (теперь на смену им пришли элементы управления Windows Forms), развертываемые через Интернет в виде веб-страниц. Они мало чем отличаются от других клиентских приложений: работают как готовые приложения, осуществляют доступ к локальным ресурсам и имеют графический интерфейс.

Раньше такие приложения создавались либо с использованием C или C++ и классов Microsoft Foundation (MFC), либо при помощи среды быстрой разработки приложений, к примеру Microsoft Visual Basic. Платформа .NET Framework объединила в себе возможности этих продуктов, предоставив целостную среду разработки, в значительной степени упрощающую создание клиентских приложений.

Классы Windows Forms, имеющиеся в .NET Framework, предназначены для разработки графического интерфейса пользователя. Они упрощают создание командных окон, кнопок, меню, панелей инструментов и других графических элементов, обеспечивая гибкость, необходимую для удовлетворения меняющихся потребностей бизнеса.

Например, в .NET Framework есть ряд простых свойств, при помощи которых можно изменить атрибуты, определяющие внешний вид форм. В некоторых случаях система, в которой разрабатывается приложение, не позволяет менять эти атрибуты напрямую. Тогда платформа .NET Framework создает форму заново. Это лишь один пример того, как в платформе .NET Framework осуществляется интеграция интерфейса разработки, упрощается и систематизируется написание кода.

В отличие от элементов управления ActiveX элементы Windows Forms осуществляют доступ к компьютеру пользователя в режиме частичного доверия. Это означает, что бинарный или готовый код к одним ресурсам системы пользователя может иметь доступ (например к элементам графического интерфейса и части файлов), а к другим не может. Благодаря управлению доступом для кода многие приложения, которые раньше приходилось устанавливать в системе пользователя, теперь можно развертывать через Интернет. Приложение может выполнять функции локальной программы, но при этом работать в виде веб-страницы.

Разработка серверных приложений

Серверные приложения в мире управляемого кода реализуются через хост-приложения. Среда CLR размещается на неуправляемом приложении, что позволяет вашему управляемому коду контролировать поведение сервера. При такой модели вы можете использовать все функции среды CLR и библиотеки классов, добиваясь высокой производительности и масштабируемости сервера.

На рисунке ниже показана основная схема сети и работа управляемого кода в различных серверных средах. Сервер, к примеру IIS или SQL Server, выполняет стандартные операции, а за логику приложения отвечает управляемый код.

Управляемый код на стороне сервера

Управляемый код на стороне сервера

ASP.NET является средой размещения, позволяющей разработчикам использовать .NET Framework для создания веб-приложений. Между тем, ASP.NET отвечает не только за размещение. Это полноценная архитектура для разработки веб-узлов и объектов, распространяемых через Интернет, с использованием управляемого кода. И веб-формы, и веб-службы XML используют IIS и ASP.NET в качестве механизма публикации для приложений. И те, и другие имеют набор вспомогательных классов в .NET Framework.

Веб-службы XML - это важный шаг вперед в области веб-технологий. Они представляют собой компоненты распределенных серверных приложений и напоминают обычные веб-узлы. В отличие от веб-приложений веб-службы XML не имеют пользовательского интерфейса и не предназначены для обозревателей, будь то Internet Explorer или Netscape Navigator. Веб-службы XML состоят из стандартных программных компонентов, созданных для использования в других приложениях: традиционных клиентских приложениях, веб-приложениях и даже в других веб-службах XML. Благодаря этому технология веб-служб XML значительно ускоряет разработку приложений и их развертывание в высокораспределенной среде Интернета.

Если вам доводилось работать с более ранними версиями технологии ASP, вы сразу же заметите усовершенствования, введенные в ASP.NET в веб-формах. Например, страницы веб-форм можно писать на любом языке, если он поддерживается платформой .NET Framework. Кроме того, код не обязан располагаться в одном файле с текстом HTTP (хотя это не запрещено). Страницы веб-форм выполняются на машинном языке, поскольку, как и любое другое управляемое приложение, они могут в полной мере использовать преимущества среды CLR. Неуправляемые страницы ASP, напротив, всегда пишутся в виде сценария и интерпретируются. Страницы ASP.NET работают быстрее, они более функциональны, их проще разрабатывать, чем неуправляемые страницы ASP, поскольку они взаимодействуют со средой, как и другие управляемые приложения.

В платформе .NET Framework также имеется набор классов и средств, помогающих при разработке и использовании веб-служб XML. Веб-службы XML создаются на основе стандартов: SOAP (протокол удаленного вызова процедур), XML (расширяемый формат данных), WSDL (язык описания веб-служб). Платформа .NET Framework опирается на те же стандарты, благодаря чему развиваются возможности взаимодействия с решениями сторонних разработчиков.

Например, средство WSDL, включенное в комплект .NET Framework SDK, способно запросить веб-службу XML, размещенную в Интернете, проанализировать WSDL-описание службы и создать исходный код на C# или Visual Basic, который можно использовать в приложении, которое станет клиентом данной веб-службы. Исходный код может создавать классы, производные от стандартных классов, включенных в библиотеку, которые будут обрабатывать все базовые связи при помощи анализа SOAP и XML. Библиотека классов позволяет использовать веб-службы XML напрямую, однако средство WSDL, впрочем как и другие средства, входящие в комплект SDK, упрощает разработку приложений в платформе .NET Framework.

Если вы создаете и размещаете собственную службу XML, вы можете использовать набор классов .NET Framework, согласующихся со всеми стандартами, такими как SOAP, WSDL и XML. Их применение позволит вам сосредоточиться на логике службы и не тратить время на инфраструктуру связей, необходимую для распределенных приложений.

И наконец, как и страницы веб-форм в управляемой среде, веб-службы XML работают с высокой скоростью - со скоростью приложений на машинном языке - и используют масштабируемую систему связей IIS.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=24046