Смекни!
smekni.com

Автоматизированная система складского учета в ЗАО "Белгородский бройлер" (стр. 5 из 10)

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

Что касается решения проблем DLL Hell, то, помимо жесткого контроля за используемыми версиями, оно включает также простое создание локальных копий внешних компонентов внутри каталога с данным приложением (т. е. сборка будет включать не ссылку на компонент, а сам компонент).

Common Language Runtime

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

Фактически CLR исполняет программы, написанные только на одном стандартном языке Microsoft Intermediate Language (MSIL), который в свою очередь соответствует спецификациям Common Language Specification. Кстати, MSIL — это вполне реальный язык программирования (с использованием синтаксиса в стиле "Си"), на нем можно писать исходные модули и транслировать их с помощью автономного компилятора, который входит в состав .NET Framework SDK*.

* На самом деле точным аналогом Java (с точки зрения его роли для платформы) является именно MSIL — язык платформы .NET нижнего уровня, ".NET-Assembler".

Все же остальные языки, в том числе и C#, — это языки верхнего уровня, платформно-независимые. Можно было бы легко включить MSIL в визуальную среду Visual Studio .NET, но, видимо, Microsoft решила не дразнить гусей, чтобы иметь возможность говорить о "равных правах для всех поставщиков средств программирования".

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

Однако, в отличие от классической схемы интерпретатора, используемой в том числе и в Java, CLR выполняет байт-код путем предварительной компиляции в машинный код отдельных фрагментов программы или приложения целиком (рис. 3).

Первый вариант является основным, при этом применяется так называемый Just-In-Time — компилятор, который выполняет преобразование MSIL в машинный код по мере обращения к соответствующим процедурам (т. е. неиспользуемые фрагменты программы вовсе не компилируются). Данный подход тоже достаточно известен, он, в частности, уже несколько лет используется в платформе "1С:Предприятие".

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

Они состоят из исполняемого кода и метаданных. Метаданные (например, различные декларации полей, методов, свойств и событий) широко применяются и в COM-технологии, что и составляет ее основное отличие от обычных двоичных DLL. В случае же CLR состав метаданных значительно расширен, что позволяет эффективнее контролировать версии, проверять надежность источников поступления программ и пр.

Программы на языке MSIL создают так называемый "управляемый код" (managed code). Это означает, что CLR не просто преобразует MSIL в машинные инструкции, а выполняет эти действия с учетом внешних установок.

Например, Модуль1 может задать собственный набор прав, предоставляемый вызываемому им Модулю 2, запретив, в частности, любые операции коррекции файлов. То есть в CLR мы видим реализацию идей Интернет-браузеров, которые предоставляют промежуточную среду выполнения программ, но только с более высоким уровнем управляемости правами по сравнению с обычной OC.

Microsoft предлагает три языка программирования в составе Visual Studio .NET для формирования "управляемого кода" (создания .NET-приложений) — VB, C# и специальный вариант С++ With Managed Extensions. Как видно из этого списка, Visual C+ занимает совершенно особую позицию в средствах разработки Microsoft: с его помощью можно писать как традиционные Windows-приложения с "неуправляемым кодом" (unmanaged code), так и .NET-приложения, исполняемые в среде CLR.

Что касается платформной независимости, то вроде бы CLR имеет все предпосылки для этого, ведь нужен лишь JIT-компилятор (как это делается для Java). Но я не разделяю оптимизма некоторых экспертов, считающих возможным появление в ближайшее время подобных средств, например, для Linux. Во-первых, в CLR изначально задействованы базовые службы Windows.

Во-вторых, Microsoft совершенно иначе, чем Java-сообщество, трактует понятие многоплатформности: JIT-компиляторы появятся для разных типов аппаратуры (карманные ПК, сотовые телефоны и пр.), но работать они будут только в среде Windows .NET!

Что впереди

Сегодня .NET Framework — это некая дополнительная операционная среда, устанавливаемая в Windows в качестве автономного программного компонента. Нет сомнений, что она станет неотъемлемой частью будущей версии Windows. Тем не менее еще несколько лет пользователи Windows будут иметь возможность работать как в режиме "Win API + COM", так и .NET. Но потом им придется забыть о "старом, добром Windows" и работать исключительно в режиме "управляемого кода" в среде CLR. Это произойдет гораздо быстрее, чем в период "от DOS к Windows".

3.2. Обзор ASP.NET

Летом 2001го года Microsoft представила новую прогрессивную платформу .NET, а с ней несколько очень привлекательных технологий, в том числе ASP.NET, также называемую ASP+. Данная статья посвящена обзору этой серверной технологии Microsoft. Возможности ASP.NET настолько впечатляют, что ее сложно назвать следующей версией ASP. ASP 3.0 было выпущено не очень давно, но ASP.NET построена на других принципах. В ее основе лежит другая платформа, и основными языками программирования для нее выбраны C# и VB, вместо бывших скриптинг языков. В то же время, новая технология позволяет писать ASP страницы на вашем любимом языке. Мы будем придерживаться C# в примерах. На нашем сайте вы можете найти статьи и учебники, посвященные этому языку программирования.

В ASP.NET заложено все, для того, чтобы сделать весь цикл разработки веб-приложения более быстрым, а поддержку проще. Итак, подробнее.

Для начала обсудим основные возможности ASP.NET. Нам кажется весьма интересным сравнение с ASP, так как мы убеждены, что многие будут относиться к новой технологии предвзято. А она, по нашему мнению, должна принести абсолютно новые принципы разработки приложений, по сравнению c ASP. Потом опишем принципы работы ASP.NET и вкратце поговорим про новую платформу, которая и определяет появившиеся возможности.

Возможности.

Компилирование кода.

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

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

Библиотеки

Теперь при написании кода вы можете использовать набор компонентов, поставляемых с .NET, а он, надо заметить, не мал. Ну вот, например, использование System.Web.Util. Правда, милый пример? А использование Common Language Runtime библиотеки классов, API которой специфицировано, влечет за собой уменьшение кода, который нужно писать разработчику, ускорение процесса разработки, упрощается установка и перенос приложения.

ADO+

В ASP.NET коде, как и в любом другом коде под .NET, вы можете использовать ADO+. Здесь можно упомянуть, например, возможность сохранения датасета в XML и загрузки его из XML, что упрощает разработку распределенных приложений на основе ASP.NET, в частности полезно при передаче данных между веб-сервисами ASP.NET.

Поддержка средств разработки

Visual Studio.NET предоставляет возможность WYSWYG создания и редактирования, включает в себя средства, упрощающие создание и портирование приложений. Также упрощает отладку скриптов. Но несомненно, никто не отнимет у вас возможность написания кода в любимом редакторе, будь то CodeWright, EditPlus или NotePad.

Языковая независимость

ASP.NET работает в рамках Common Language Runtime, что позволяет писать ваш код на любом языке, для которого написан компилятор, поддерживающий эту технологию. Уже в preview версии была поддержка VB и С#, сейчас работает поддержка JScript.

Возможности расширения решения

Включена поддержка мультипроцессорных и кластерных решений. Что позволяет при написании приложения, рассчитывать на то, что систему можно будет без труда расширять.

Обработка ошибок.

В связи с новыми концепциями (в частности, с компиляцией программных текстов) в ASP.NET добавлены новые возможности по обработке ошибок. На стадии разработки можно получить полную информацию об ошибке и листинг нужного куска кода. Для обработки ошибок, которые могут случиться во время выполнения вашего приложения вы можете использовать новую директиву ErrorPage.

Объектно-ориентированная разработка.

Использование C# позволяет в полной мере использовать концепции, методы и паттерны объектно-ориентированной разработки.