Владимир Волков - Программирование для карманных компьютеров
4. DotGNU – проект GNU, развивающий реализацию. NET Framework для платформ с открытым исходным кодом. Подробности этого проекта можно узнать на сайте dotgnu.org.
5. Mono Project – еще один проект, развивающий. NET Framework для платформ с открытым исходным кодом. Подробности на сайте www.mono-project.com.
Области применения. NET
Как и было заявлено Microsoft с самого начала обнародования сведений о. NET, этот набор технологий в первую очередь адресован программистам, которые работают с веб-приложениями, и предназначен для создания расширяемых распределенных приложений, которые, взаимодействуя друг с другом через сеть, объединяют людей, информацию и компьютерные системы в прозрачную среду взаимодействия. Основным инструментом разработчиков, работающих над подобными задачами, является технология ASP.NET, предназначенная для быстрой разработки активных сервeрных страниц.
Разработчики, не работающие с веб-технологиями, также находят в. NET инструменты для себя, поскольку. NET включает в себя все необходимое для создания полноценного графического интерфейса пользователя, взаимодействия с операционной системой и данными.
Разработку для мобильных и наладонных устройств можно выделить в отдельную область применения. NET. Несмотря на то что технологии используются те же самые, сама природа мобильных устройств и их способ взаимодействия с данными позволяет особо выделить эту область.
Три класса приложений. NET
Приложения WebForms
Для конечного пользователя приложение WebForms выглядит как обычное веб-приложение. Если в нем не используется выборка данных, то можно даже не заподозрить наличия активной составляющей на стороне сервера. Для программиста же это выглядит как полноценное приложение WebForms, созданное при помощи технологии ASP.NET в среде Microsoft Visual Studio.NET и выполняемое на сервере под управлением среды выполнения. NET.
Приложения WindowsForms
Как и приложение WebForms, для конечного пользователя приложение Windows-Forms мало отличается от привычного приложения с графическим интерфейсом пользователя, связанного или не связанного с данными и выполняющего все те же функции. Единственная разница заключается в том, что это приложение не может быть выполнено на операционной системе, если в ней не установлена среда выполнения. NET.
Веб-сервисы
Веб-сервисы являются третьим классом приложений. NET. РЈ этих приложений нет графического интерфейса, зато РѕРЅРё поддерживают интерфейсы распределенных приложений. Основанные РЅР° специальном протоколе SOAP, реализующем RPC (удаленный вызов процедур), веб-сервисы поддерживают взаимодействие через Рнтернет.
Базовые программные элементы. NET
Хорошо организованный интерфейс программирования
РўРѕС‚, кто часто сталкивается СЃ необходимостью использования Win32 API, знает, насколько противоречиво, запутанно Рё несистематично организован этот программный интерфейс. Р’ Win32 API программист может обнаружить вызовы функций СЃ одинаковыми именами (старая версия, оставленная для обратной совместимости, новая версия Рё улучшенная совсем новая версия), РіСЂРѕРјРѕР·РґРєРёРµ структуры, передаваемые РІ качестве аргументов, РІ которых множество членов зарезервировано для будущего использования, отсутствие объектно-ориентированного РїРѕРґС…РѕРґР° Рё СЏРІРЅРѕРµ присутствие хаоса. РљСЂРѕРјРµ этого, РїСЂРё разработке РІ Win32 РѕРґРЅРёРј РёР· «вечно живых» РІРѕРїСЂРѕСЃРѕРІ была проблема утечек памяти, вызванная обязанностью РІ СЏРІРЅРѕР№ форме захватывать Рё освобождать память, возложенной РЅР° программиста. Конечно, это РЅРµ столько РІРёРЅР°, сколько беда разработчиков Microsoft, которые РІСЃРµ время существования Рё развития Windows заботились РѕР± обратной совместимости программ Рё средств программирования. Р’.NET был сделан большой шаг вперед. Рнтерфейс программирования. NET является полностью объектно-ориентированный интерфейсом, СЃ хорошо организованной иерархией имен Рё классов, легкий для изучения Рё интуитивно понятный для программиста.
Common Intermediate Language
РљРѕРіРґР° разработчик пишет программы для Microsoft Windows РЅР° C/C++, РІ результате РѕРЅ получает файл СЃ расширением. exe, то есть файл РІ формате PE (portable executР°ble). Файлы РІ таком формате всегда содержат РєРѕРґ, специфичный для процессора, РЅР° котором РѕРЅРё выполняются. Файлы, созданные РІ технологии. NET, также имеют расширение. exe Рё внешне РїРѕРґРѕР±РЅС‹ файлам РІ формате PE. Однако РЅР° самом деле внутри РѕРЅРё содержат РЅРµ машинные инструкции процессора, Р° инструкции некоторого промежуточного языка, который известен РїРѕРґ несколькими названиями (аббревиатурами) – Common Intermediate Language (CIL), Microsoft Intermediate Language (MSIL) или просто Intermediate Language (IL) . Ртот язык имеет одинаковый формат для любой платформы, РЅР° которой выполняется. NET Framework. Окончательная компиляция запускаемого файла РІ машинные инструкции. NET Framework производится РІ момент запуска. РџСЂРё этом выполняется оптимизирующая компиляция, то есть компилятор отслеживает вызовы всех методов Рё компилирует только те методы, которые реально вызываются РІ программе. Такой СЃРїРѕСЃРѕР± запуска программ РїСЂРёРІРѕРґРёС‚ Рє повышению эффективности потребления ресурсов Рё называется JIT-compilation . Скомпилированный РєРѕРґ помещается РІ native image cache , что РїСЂРёРІРѕРґРёС‚ Рє быстрому повторному обращению Рє уже вызывавшимся методам.