Шаг 2 - Как будет распространяться приложение (основы)

В .NET введено понятие assembly. Давайте сначала посмотрим как на данный момент распространяется приложение. Практически любое приложение на данный момент состоит из компонентов OCX, DLL, и самого EXE. Компоненты могут использоваться совместно, так происходит с OCX и DLL.

gif/2_1.gif (871 b)

Все это было сделано на благо, мол экономия места, стандартизация и так далее. Но реализация подобной модели имела и множество побочных эффектов. Разные версии DLL и OCX могут превратить Вашу программу в кошмар. Несмотря на возможность проверки версий лучшее решение пока найдено только одно, хранить все это у себя в программе. Многие с ностальгией вспоминают DOS, когда скопировал каталог и все, программа работает. Понятие accembly или пакета - это возврат к данной идее. Ни какой установки. Готовый пакет, в котором есть все для работы. В пакет будет содержать:

Assemblies могут принадлежать одному приложению или разделяться между несколькими приложениями, а независимость от версии заключается в том, что CLR может загружать различные версии одного assembly для двух различных приложений, которые выполняются одновременно. Обратите на это внимание, на перезапись новой версией, как в DLL.

gif/2_2.gif (1466 b)

То есть добавляется еще один уровень, управляя которым можно указать, что данные ресурсы можно брать из моей сборки или указывать с какой другой сборкой есть зависимость, а так как у сборки есть идентификатор, то у новой сборки будет новый идентификатор и контроль версий ресурсов должен стать проще. Сборки будут двух типов, частные и общедоступные. За частную отвечает программист, а за общедоступную CLR. Естественно то, что нам разрешили использовать DLL разных версий не снимает все проблемы. Например, Ваша DLL заносит некоторую информацию в файл, а что если разные версии будут это делать по разному ? Конфигурация приложения будет производиться с помощью XML файла в обычном тестовом редакторе.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.09.2001