Программирование для карманных компьютеров
Шрифт:
NET и Compact Framework
Ответить на вопрос: «Что такое. NET» – не очень просто. Изначально Microsoft позиционировала свое новое начинание как базирующуюся на веб-сервисах технологию, которая соединяет информацию, людей, системы и устройства. Такое утверждение может создать устойчивое впечатление, что. NET – это в первую очередь сетевая технология. На самом деле. NET – это общее понятие, которое объединяет в себе огромную исследовательскую работу, проделанную Microsoft, по созданию практически новой распределенной операционной среды. Технология. NET насыщена как новыми решениями, так и весьма прозрачными заимствованиями из огромного количества
Реализации. NET
В настоящий момент существует несколько реализаций того, что мы называем. NET.
1. NET Framework – версия среды выполнения для серверных и настольных компьютеров с операционной системой Microsoft Windows. Она поставляется в составе операционных систем Windows XP Tablet Edition и Windows Server 2003. Для других версий Windows.NET Framework может быть свободно загружена с сайта Microsoft.
2. NET Compact Framework – среда выполнения для платформ на основе Windows CE.
3. Shared Source Common Language Infrastructure (CLI) – открытый исходный код для наиболее значимых классов CLI. Может быть загружена с сайта Microsoft.
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. У этих приложений нет графического интерфейса, зато
Базовые программные элементы. 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 , что приводит к быстрому повторному обращению к уже вызывавшимся методам.
Common language runtime
Этот общий промежуточный язык, независимый от платформы и являющийся результатом работы разных программных средств, позволяет обеспечивать взаимодействие между программным кодом, написанным на разных языках. Модуль, написанный на одном языке, может быть с легкостью использован программой, написанной на другом языке. К межъязыковой среде выполнения относится и сборщик мусора (garbage collector), который должен следить не только за памятью каждой программы, но и за уборкой памяти. Естественно, автоматическое распределение памяти также относится к области ответственности межъязыковой среды выполнения.