Программирование в XP Tony Спецвыпуск Xakep, номер #040, стр. 040-076-5 Платформа .NET .NET, и это очень умный шаг со стороны Microsoft, не отрицает предыдущий опыт работы программистов с технологиями этой компании. Поэтому приложения этой платформы могут полностью взаимодействовать с написанными ранее библиотеками (DLL) и COM-компонентами. Также возможен и обратный доступ из COM объектов в код .NET. Межъязыковое взаимодействие теперь возможно не только на бинарном уровне, но и на уровне языка. В .NET возможно наследование функциональности предка из другого языка, межъязыковая обработка исключений и межъязыковая отладка. .NET приложения выполняются в стандартной среде исполнения (CLR, Common Language Runtime), обмениваются данными при помощи набора стандартных типов (CTS, Common Type System), а все языки программирования .NET подчиняются правилам, установленным спецификацией языка (CLS, Common Language System). Это три кита или, если хочешь, три строительных блока всей платформы .NET. CLR занимается обработкой данных, описанных в CTS, осуществляет автоматическое управление памятью, межъязыковое взаимодействие, развертывание библиотек и сборок. CTS определяет набор типов, поддерживаемых CLR, и их взаимодействие. CLS содержит правила, определяющие данные, использование которых безопасно в .NET. То есть эти данные могут быть пригодны для любого языка этой платформы. Однако фундаментом, на котором строятся все приложения .NET, является библиотека классов, доступная из любого языка .NET. Естественно, библиотека удовлетворяет всем требованиям CTS и CLS. Как ты наверняка знаешь, раньше компиляторы создавали исполняемые файлы EXE или DLL. Традиция сохранилась и в компиляторах .NET, однако теперь содержимое такого файла - не бинарный исполняемый код, а платформенно-независимый язык MS Intermediate Language. Некий эквивалент байт-кода Java. Компилятор .NET создает так называемую сборку (Assembly) на языке MSIL, которая компилируется в платформенно-специфичные инструкции только в момент ее исполнения (или обращения из другой сборки). Кроме IL-инструкций, сборки содержат метаданные, которые содержат описание всех используемых типов данных, и манифест. Например, раньше тебе надо было экспортировать из DLL нужные тебе символы (методы, классы), а в клиенте их импортировать и проверять версии (причем делалось все это не одним десятком строчек кода и директив). Теперь тебе достаточно указать классу, который ты хочешь использовать в другой сборке, что он открыт (public), а в клиенте (написанном на любом языке) сослаться на эту сборку и спокойно создавать объекты этого класса. Таким образом, сборка объединяет в себе функциональность как исполняемого файла (EXE), так и функциональность библиотек и COM-компонент. Интегрированная среда разработки MS Visual Studio 2003(2002) позволяет создавать не только приложения .NET, но и старые приложения Win32, MFC и ATL. Собственно говоря, отличие старых приложений от новых заключается в использовании новой библиотеки mscorlib.dll - ядра платформы .NET, которое содержит в себе библиотеку классов .NET. Весь код теперь подразделяется на два вида: управляемый (Managed) код .NET и неуправляемый старый код приложений Windows API. |