Architecture Net



         

Сравнение программирования на - часть 2


// сборщик мусора - интерфейс ISomelnterface

{

void SomeMethod(); int SomeOtherMethod();

};

public _gc class Somelnterfacelmpl

// класс сборщика мусора Somelnterfacelmpl

: public ISomelnterface

{

public:

void SomeMethod()

{

Console::WriteLine("SomeMethod");

}

int SomeOtherMethod()

{

Console::WriteLine("SomeOtherMethod"); return 0;

}

};

}

Приведенная программа показывает, как просто можно определить и реализовать компонент .NET. Сравним это со значительной сложностью определения и реализации на C++ традиционного компонента на основе модели компонентных объектов Microsoft (COM). Для компонента в .NET мы просто определяем интерфейс, а затем реализуем этот интерфейс в производном классе. Таким образом реализуются все преимущества и возможности, традиционно ассоциируемые с компонентно-ориентированным программированием, притом без каких-либо усложнений и усилий, которые обычно приходится прилагать при программировании с использованием модели компонентных объектов Microsoft (COM). Например, одним из достоинств модели компонентных объектов Microsoft (COM) является ее программная независимость. Обратим внимание, что программа клиента, написанная на любом языке .NET, может использовать созданный ранее компонент .NET без редактирования системного реестра и без реализации таких вещей, как фабрика классов, глобально уникальных идентификаторов (globally unique identifier, GUID) или lUnknown,.
Например, следующая программа на С# (заметьте, что мы временно переключились на язык С#) способна вызвать созданный ранее компонент .NET. Все, что требуется сделать — это создать на С# новый проект консольного приложения (назовем его ManagedClassClient), добавить в него приведенную ниже программу и добавить ссылку на проект, который ссылается на сборку ManagedClassLibrary.dll, созданную в предыдущем примере. Мы добавляем ссылку на другую сборку посредством выбора пункта меню Project => Add Reference (Проект => Добавить ссылку), затем щелкаем на кнопке Browse (Обзор) и переходим к требуемой сборке. Если вы забыли добавить ссылку на сборку, то при компиляции будет обнаружена ошибка. В сообщении об ошибке будет сказано, что пространство имен ManagedClassLibrary не существует. Посмотрев на приведенную ниже программу, вы увидите, что в ней на самом деле определяется пространство имен ManagedClassLibrary.




Содержание  Назад  Вперед