Главная » Delphi » Среда поддержки выполнения CLR

0

Среда CLR, являющаяся частью оболочки .NET Framework, обеспечивает непосредственную работу программ, выполненных в соответствии с соглашениями .NET. Эта среда связывает программы, которые могут быть написаны на любых языках, с операционным окружением .NET, обеспечивая и обслуживая все системные вызовы и подключая при необходимости те или иные стандартные библиотеки[1]. Для этого, очевидно, двоичный код программы должен отвечать определенным требованиям.

Эти требования задаются низкоуровневым языком Microsoft Intermediate Language (MSIL), который представляет собой своеобразный виртуальный ассемблер, независимый от конкретной аппаратной платформы. Именно благодаря такой технологии платформа .NET и может быть перенесена на другие операционные системы — для этого достаточно написать модуль поддержки в них ассемблера MSIL (модуль его трансляции в команды процессора конкретной модели).

Двоичный код любой .NET-программы представляет собой набор команд MSIL, в котором вся работа происходит с единой системой типов данных Common Type System (CTS) и обеспечиваются единые требования к безопасности (в частности, универсальным способом происходит проверка выхода индекса за границы массивов). Типичный .NET-компилятор создает результирующий MSIL-код из исходных текстов, записанных на любых поддерживаемых им языках программирования (например, Delphi, С++, С#). Этот код не сохраняет каких-либо особенностей исходного языка, а отвечает только требованиям технологий .NET и CLR. При этом, конечно, конкретная система программирования сможет охватить одни возможности .NET, но не реализовать другие в силу ограничений синтаксиса и семантики определенного языка программирования. Это возможно, например, из-за различий в поддержке инкапсуляции и видимости элементов классов. Нередко такая компиляция выполняется «на лету» (концепция Just In Time), непосредственно в ходе выполнения программы, потому что далеко не весь MSIL-код приложения будет обязательно выполняться и имеется возможность транслировать лишь те логические ветви, по которым происходит фактическое управление.

Итак, хотя в качестве средств разработки могут использоваться решения самых разных компаний, результатом их работы всегда будет двоичный MSIL-код, организованный по единой схеме взаимодействия с операционным окружением. В средствах разработки приложений для платформы Win32 ситуация была иной. Каждая среда обычно предлагала свое окружение и свою поддержку режима исполнения созданных с ее помощью программ. Так, с приложением Delphi необходимо было, как уже говорилось, поставлять собственные библиотеки VCL (или включать их в исходный код приложения), а для программ, созданных средствами Microsoft Visual С++, требовались библиотеки классов MFC. Разнились способы контроля выхода индексов за границы массивов и преобразования типов и многое другое.

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

Если приложение выполнено в полном соответствии с требованиями CLR, то его ^^ код называется управляемым.

создание настольных приложений. В Delphi для этих целей применялась собственная библиотека VCL, однако версии, поддерживающие платформу .NET, обращаются уже к ее готовым ресурсам, поэтому и новый дизайнер форм выполнен в соответствии с типовыми рекомендациями и принципами .NET (в основном по аналогии с Microsoft Visual Studio .NET).

Отметим, что Delphi расширяет возможности .NET Framework такими технологиями, как собственные поставщики данных Borland Data Providers для .NET, упрощающие связь с СУБД InterBase, Oracle, IBM DB2, Sybase и Microsoft SQL Server, и наборами утилит для обслуживания БД. Кроме того, известная по прежним версиям Delphi библиотека визуальных компонентов VCL адаптирована для .NET. Существует в Delphi, конечно, и прямая поддержка компонентов Windows Forms.

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии