Все новости от 25 марта 2002 г. Библиотека базовых классов
.NET Framework Class Library — библиотека базовых функций, на основе которых строятся все .NET-приложения. Принципиальная новизна заключается в том, что если ранее подобный набор создавался для каждого языка программирования, то теперь он — один для всех средств.
Впрочем, говорить о разных наборах функций для различных языков в “до .NET-овские” времена можно с большой долей условности. Та же Microsoft для QuickBasic и QuickC использовала единые внутренние конструкции и библиотеки подпрограмм еще в конце 80-х годов. А компиляторы VB изначально были реализованы с помощью промежуточного кода на Си.
Такая унификация системы разработки автоматически нивелирует функциональные возможности разных языков, поэтому выбор инструмента в значительной степени зависит от пристрастия конкретного программиста к тому или иному синтаксису. Это сегодня особенно хорошо видно на примере VB.NET и C#. Однако тут стоит отметить, что Microsoft осталась верна принципу “разделяй и властвуй” — в ее языках сохранены искусственные различия, предопределяющие необходимость применения различных средств для решения разных задач.
Дополнительный стимул для использования единого набора функций — возможность улучшения управления оперативной памятью. Как известно, огромное число проблем надежности программ связано с использованием неодинаковых механизмов динамического распределения пространства в разных языках.
Кроме того, базовые функции перестали быть принадлежностью пользовательских приложений и превратились в неотъемлемый компонент операционной системы (ранее принадлежностью ОС были только API-функции).
Например, библиотеки MFC VC++ — это набор статических объектных модулей, которые подключаются к приложению на этапе компоновки исполняемого модуля программы и становятся при этом его составной частью. А .NET Class Library — динамические библиотеки классов, являющиеся компонентом .NET Framework.
Рис. 2 Состав библиотек базовых классов
|
О достоинствах применения объектных библиотек (LIB) и библиотек классов (DLL) отныне можно говорить лишь с точки зрения академического интереса. Ведь разработчики .NET лишены возможности выбора (за исключением тех, кто пишет на C/C++, которые занимают особое положение в средствах разработки .NET). Очевидно, что привязка прикладной программы к платформе .NET существенно возросла по сравнению с традиционной Windows.
Библиотека классов .NET реализована в виде набора DLL (сейчас их 20), имена которых начинаются с идентификатора System (рис. 2). Кстати, из рисунка хорошо видно, что за поддержку технологии Web Services отвечает лишь одна из DLL.
Сразу нужно подчеркнуть, что хотя данные файлы имеют расширение DLL, — речь идет о новом типе библиотек, отличном от обычных DLL и ActiveX (COM) DLL (непонятно, зачем нужно использовать одно расширение для файлов разных типов — это приводит к путанице).
|