РЕЦЕНЗИИ

Бокс Д., Селлз К. Основы платформы .NET. Том 1. Общеязыковая исполняющая среда. Пер. с англ. М.: Издательский дом "Вильямс", 2003. - 288 с.

В последние годы продолжалось развитие технологий и языков программирования. Одним из событий в этой области явилось создание фирмой Microsoft платформы .NET.

Рецензируемая книга посвящена свежему коммерческому продукту - CLR (Common Language Runtime), входящему в состав платформы .NET Framework и наряду с другой средой - XML Web-сервисами - составляющему ее основу. Как отмечают авторы, обе среды могут существовать и работать в глобальной сети, решая независимо друг от друга соответствующие задачи. Поэтому первый том представляет собой вполне самостоятельный и законченный труд и может представлять для читателей интерес независимо от второго, в котором предполагается описать XML Web-сервисы.

Несмотря на ограниченный объем книга дает детальное представление о механизме программирования в среде CLR, пришедшей на смену хотя и пользующейся еще популярностью COM-технологии (Component Object Model), но на сегодняшний день считающейся устаревшей. Обе технологии типизированы и основаны на контрактах между компонентами. Однако среда CLR лишь отдаленно напоминает COM: различий между ними много, и они подробно анализируются авторами. В качестве языка программирования в издании используется C# - на нем написано большинство приведенных примеров.

CLR представляет собой промежуточную общеязыковую исполняющую среду, включающую JIT-компилятор (Just-In-Time compiler - компилятор, преобразующий исходный текст в машинный код непосредственно перед исполнением программы), и является реализацией спецификации CLI (Common Language Infrastructure - инфраструктура единого языка), внесенной Microsoft в Европейскую ассоциацию по стандартам информационных и телекоммуникационных технологий Ecma (www.ecma-international.org).CLR инсталлируется в ОС, в которой должно работать .NET-приложение (пока это только MS Windows-системы). Такое приложение, разработанное под любую ОС на одном из .NET-языков (на сегодняшний день их три - C#, VB .NET и специальная версия Visual С++), предварительно компилируется в формат промежуточного языка CIL (Common Intermediate Language). Перед выполнением в среде CLR CIL-приложение транслируется (компилируется) в машинный код с учетом характеристик процессора. На практике реализация такой концепции позволит, например, разработанным в 32-разрядной среде .NET-приложениям работать на ПК с 64-разрядной архитектурой, масштабный переход на которую ожидается в ближайшее время. Фирма Borland уже поддержала MS Framework. NET, представив решение ALM (Application Lifecycle Management - www.borland.com/dotnet/). Будут ли и другие производители ОС и технологий программирования столь же благосклонны к своему конкуренту, пытающемуся объять необъятное, покажет время.

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

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

Во второй главе, "Компоненты", рассматриваются модули и сборки, представляющие собой строительные блоки компонентов CLR, в третьей анализируется типизированная модель программирования, основанная на общей среде типов CTS (Common Type System), в четвертой и пятой рассказывается об использовании типов и экземпляров типов на разных уровнях.

Главы шестая и седьмая посвящены методам и особенностям их вызова, средствам CLR, позволяющим перехватывать вызов; в седьмой главе читатель знакомится с прозрачными прокси-объектами, которые "обитают" в стековой среде.

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

Девятая глава рассматривает используемую в CLR универсальную модель безопасности CAS (Code-Access Security - безопасность доступа к коду), ориентированную на компоненты и не зависящую от программной платформы.

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

Хотя книга предназначена для широкого круга программистов и проясняет многие принципиальные вопросы по написанию приложений, ее изучение весьма непросто, и для того чтобы читателя здесь не постигла неудача, авторы рекомендуют "предварительно ознакомиться" (читай: изучить) с основами программирования на платформе Framework.NET на языке C#, на котором представлены многочисленные примеры.

Версия для печати