logo search
Программирование в среде Delphy / Программирование в среде Delphi

33. Перспективы программирования в delphi

В лекциях мы не затронули некоторые вопросы программирования, такие как работа с потоками и процессами, создание справочных систем, инсталляционных программ, Интернет–технологии, приложений для работы с распределенными базами данных. Но нельзя объять необъятное.

Ни одна отрасль науки не развивается такими быстрыми темпами, как информационные технологии. Каждый год выходят новые версии операционных систем, сред программирования и прикладных программ.

Какие же перемены ожидают нас в ближайшем будущем в области информационных технологий? Компания Microsoft – фактический лидер в разработке операционных систем и прикладных пакетов программ – выпустила в свет новую надстройку над операционной системой Windows – среду или платформу .NET Framework. Эта среда коренным образом изменяет подходы к разработке программного обеспечения. Основная задача новой среды состоит в существенном повышении надежности и безопасности разрабатываемого программного обеспечения.

Рассмотренные нами в предыдущих лекциях подходы к программ-мированию имеют много недостатков. Например:

• COM–технология требует регистрации всех компонентов в системном реестре, и новый вариант тех же компонентов сотрет информацию об их старой версии, что может привести к неработоспособности ранее разработанных программ, использующих предыдущие версии компонентов;

• COM–интерфейсы изначально предполагали неизменность своего описания. Однако даже сама фирма Microsoft при создании новых программных продуктов умудрялась изменять описания старых интерфейсов, что приводило к печальным последствиям;

• IUnKnown – интерфейс, который должен следить за числом ссылок на COM–объекты и удалять неиспользуемые объекты, в некоторых случаях (по вине программистов) давал сбои, что приводило к так называемой утечке памяти, когда при длительной работе программы размеры затребованной памяти превышают все разумные пределы;

• не было общих подходов к обработке ошибок.

Новая среда призвана оградить нас от этих и многих других неприятностей. NET Framework состоит из двух главных составляющих: библиотеки базовых классов и базового язык времени выполнения (Common Language Runtime – CLR).

Среда исполнения .NET–программ CLR — это краеугольный камень в фундаменте организации вычислительных процессов всей концепции .NET. Именно здесь решаются основные задачи повышения надежности и безопасности программ, а также платформной независимости. Теперь результатом работы любой системы программирования, в том числе и Delphi, должна быть программа, написанная на языке MSIL (Microsoft Intermediate Language) в полном соответствии со спецификацией CLS (Common Language Specification) и реализованная в виде двоичного байт–кода. CLR выполняет байт–код путем предварительной компиляции в машинный код отдельных фрагментов программы или приложения целиком. Программы на языке MSIL создают так называемый «управляемый код» (managed code). Это означает, что CLR не просто преобразует MSIL в машинные инструкции, а выполняет это действие с учетом внешних установок. Программа на MSIL является языково– и платформонезависимой. Это означает, что не важно, на каком языке высокого уровня создавалась программа – на C#, Visual Basic или Delphi, результатом работы трансляторов с этих языков для платформы .NET является программа на MSIL. Для каждой же физической платформы компьютера нужно создать свой компилятор с языка IL в язык машинных кодов – JIT компилятор (Just–InTime).

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

Объединение отдельных .NET–компонентов в одно приложение непосредственно связано с новым понятием «сборка» (Assembly). Как известно, с контролем версий в COM дело обстояло, мягко говоря, не самым лучшим образом. Фактически поддержка совместимости версий была полностью возложена на разработчика COM–объектов. Технология .NET Assembly призвана решить все эти проблемы, известные под названием DLL Hell (ад DLL). В упрощенном виде идея заключается в переносе процедур регистрации объектов из системного реестра на уровень отдельных приложений. В сущности, сборка — это и есть .NET–приложение, она реализуется в виде расширенного варианта традиционного исполняемого модуля. Сборка может состоять из одного или нескольких файлов, причем они могут содержать не только исполняемый код, но также и графические изображения, исходные данные и прочие ресурсы. В архитектуре .NET сборки являются минимальным блоком, на уровне которого решаются вопросы внедрения, контроля версий, повторного использования и безопасности. Описание сборки содержится в секции метаданных (она называется манифестом) исполняемого модуля приложения.

На CLR теперь возложено все управление памятью приложения. Благодаря двухшаговой схеме компиляции (IL + JIT – компиляция) CLR имеет в своем распоряжении все списки глобальных переменных, знает местоположение локальных переменных в стеке, ссылок на объекты и т.д., что позволяет периодически контролировать правильность использования Heap памяти (кучи) и удалять из нее неиспользуемые объекты (производить сбор «мусора»).

Вторым основным составляющим .NET–технологии является введение единой библиотеки базовых функций и классов. Если раньше каждый язык программирования имел свою библиотеку функций и классов, то теперь такая библиотека только одна. Библиотека базовых классов .NET реализована в виде набора DLL (сейчас их 22), имена которых начинаются с идентификатора System.

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

Последняя версия Delphi–8, сохраняя стиль программирования, заложенный в предыдущих версиях, ориентирована на разработку .NET Framework–приложений и не поддерживает Win32. По сути – это продукт, серьезно отличающийся от предыдущих версий Delphi, и более понятным было бы название, например Delphi .NET, так как это полностью новая версия Delphi.

Она позволит разработчикам создавать приложения для платформы .NET Framework и переделывать уже созданные ранее приложения для работы на данной платформе. Среда разработки Delphi 8 предполагает полную поддержку всех классов платформы .NET Framework. Здесь осуществляется поддержка технологий Microsoft ASP.NET Web Forms и Web–служб XML, что помогает ускорить разработку надежных решений для сети Интернет. В состав новой версии пакета входят элементы управления Windows Forms и библиотека элементов VCL (Visual Control Library). Для организации эффективной работы с базами данных разработчикам предлагаются технологии Microsoft ADO.NET и Borland Data Provider (BDP). Технология Borland ECO (Enterprise Core Objects) ускоряет процесс разработки приложений с опорой на дизайн (design–driven development). Новая среда разработки использует знакомый по предыдущим версиям Delphi синтаксис языка, что будет способствовать быстрому освоению новых инструментов и технологий. Визуальные элементы управления VCL обладают обратной совместимостью с уже существующим исходным кодом программ Delphi и способны взаимодействовать со средой .NET Framework. В пакете Delphi 8 реализована возможность обмена компонентами и исходным кодом с более чем 20 языками программирования, которые поддерживаются в среде NET Framework.