.Net Framework

Платформа .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, библиотекой классов, приложениями и всей системой в целом. Он также дает представление о том, как управляемый код работает в более крупной архитектуре.

Рис 1. .Net Framework

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C#

Главной особенностью языка C# является его ориентированность на платформу Microsoft .NET — создатели C# ставили своей целью предоставление разработчикам естественных средств доступа ко всем возможностям платформы .NET. Видимо, это решение можно считать более или менее вынужденным, так как платформа .NET изначально предлагала значительно большую функциональность, чем любой из существовавших на тот момент языков программирования[8].

Кроме того, создатели С# хотели скрыть от разработчика как можно больше незначительных технических деталей, включая операции по упаковке/распаковке типов, инициализации переменных и сборке мусора. Благодаря этому программист, пишущий на C#, может лучше сконцентрироваться на содержательной части задачи. В процессе решения этой задачи проектировщики C# пытались учесть уроки реализации Visual Basic’а, который достаточно успешен в скрытии деталей реализации, но недостаточно эффективен для написания крупных промышленных систем: создатели C# декларируют, что новый язык обладает мощностью С++ и в то же время простотой Visual Basic’а.

Еще одно преимущество создания нового языка программирования по сравнению с расширением существующих заключается в том, что при создании нового языка нет необходимости заботиться о проблемах обратной совместимости, которые обычно заметно затрудняют исправление застарелых проблем и даже внесение новых свойств в стандарт языка (подробное описание трудностей, возникающих при расширении старого языка программирования, можно прочитать в книге Б. Страуструпа «Дизайн и эволюция языка С++», М.: ДМК, 2000).

Таким образом, C# представляет собой новый язык программирования, ориентированный на разработку для платформы .NET и пригодный как для быстрого прототипирования приложений, так и для разработки крупномасштабных приложений.

Многие существующие языки программирования обладают весьма запутанным синтаксисом и конструкциями с неочевидной семантикой — достаточно вспомнить сверхперегруженную значениями открывающую фигурную скобку в С++, использование ключевых слов в качестве идентификаторов в PL/I или проблемы отличия описателей видов от операций в Алголе 68. Все эти языковые особенности затрудняют написание компиляторов и служат источником труднонаходимых ошибок при создании программ. На другом полюсе этой проблемы находится язык Паскаль, в котором в целях упрощения было решено пожертвовать даже очевидно удобными для программиста свойствами.

C# занимает некоторую промежуточную позицию: из стандарта языка убраны наиболее неприятные и неоднозначные особенности С++, но в то же время язык сохранил мощные выразительные возможности, присущие для таких языков, как С++, Java или VB.

ASP .NET

ASP (англ. Active Server Pages — «активные серверные страницы») — технология от Microsoft, позволяющая легко разрабатывать приложения для World Wide Web. ASP работает на платформе операционных систем линии Windows NT и на веб-сервере IIS. ASP не является языком программирования — это лишь технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования Web-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонент[7].

ASP.NET — это технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP. На данный момент последней версией этой технологии является ASP.NET 2.0.
ASP.NET внешне во многом сохраняет схожесть с более старой технологией ASP, что позволяет разработчикам относительно легко перейти на ASP.NET. В то же время внутреннее устройство ASP.NET существенно отличается от ASP, поскольку она основана на платформе .NET и, следовательно, использует все новые возможности, предоставляемые этой платформой.
Хотя ASP.NET берёт своё название от старой технологии Microsoft, ASP, она значительно от нее отличается. Microsoft полностью перестроила ASP.NET, основываясь на Common Language Runtime (CLR), который является основой всех приложений Microsoft.NET. Программисты могут писать код для ASP.NET, используя различные языки программирования, поддерживаемые в .NET Framework, обычно Visual Basic.NET, JScript .NET или C#, а также «открытые» языки, например, Perl и Python. ASP.NET имеет преимущество в скорости по сравнению с другими технологиями, основанными на скриптах, потому что код на стороне веб-сервера обычно компилируется в одну или несколько DLL.

Преимущества ASP.NET перед ASP:

• Компилируемый код выполняется быстрее, большинство ошибок отлавливается ещё на стадии разработки

• Значительно улучшенная обработка ошибок времени выполнения

• Пользовательские элементы управления позволяют выделять часто используемые шаблоны, такие как меню сайта

• Использование метафор, уже применяющихся в Windows-приложениях, например, таких как элементы управления и события

• Расширяемый набор элементов управления и библиотек классов позволяет быстрее разрабатывать приложения

• ASP.NET опирается на многоязыковые возможности .NET, что позволяет писать код страниц на VB.NET, C++, J# и т.д.

• Возможность кэширования всей страницы или её части для увеличения производительности

• Возможность разделения визуальной части и бизнес логики по разным файлам

Реклама
Запись опубликована в рубрике Разные старые статьи. Добавьте в закладки постоянную ссылку.

Один комментарий на «.Net Framework»

  1. Может пригодится кому, все версии NET Framework на одной странице и запоминающийся url. Иногда может быть очень удобно.
    http://net-framework.ru/

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s