Немного о сборках
От: Алексей Дубовцев Россия  
Дата: 28.02.02 10:50
Оценка: 726 (31) +1 -1
Статья:
Немного о сборках
Автор(ы): Алексей Дубовцев
Дата: 08.04.2004
Сборки являются фундаментом, на котором построена вся платформа .NET. В статье подробно рассматривается архитектура и внутренние механизмы работы данной технологии. Вначале даётся экскурс в историю технологий распределения кода, который при дальнейшем ознакомлении сборок позволит понять многие на первый взгляд странные решения нашедшие себя в сборках.
Акцент сделан на подробном описании внутренних механизмов работы сборок, понимание которых позволит в совершенстве овладеть большинством программных средств, предоставляемыми платформой .NET. Будут рассмотрены как простые темы, вроде создания «строго» именованных сборок, так и сложные вроде низкоуровневого механизма загрузки сборок.


Авторы:
Алексей Дубовцев

Аннотация:
При проектировании платформы .NET одной из задач являлось легкое развёртывание (инсталляция) и поддержка приложений, так как в настоящее время эта проблема стала серьезно беспокоить не только разработчиков, но и рядовых пользователей. Наверное, каждый знаком с ситуацией, когда после установки новой программы некоторые старые приложения наотрез отказывались работать. Ниже я вам поведаю о том, какое решение данной проблемы предоставила Microsoft на этот раз.
Ждем продолжения
От: Jack Osicilator  
Дата: 15.03.03 05:29
Оценка:
С нетерпением ждем продолжения — о подписях, ключах (private,public), strong name, допольнительных аттрибутах сборок.
Люблю OSCилировать
Очень интересная статья
От: Анисимов Владимир Юрьевич  
Дата: 25.04.02 00:56
Оценка:
Загадочный jpeg
От: Shire  
Дата: 22.03.02 02:03
Оценка:
Долго въезжал, почему это "дынные пункты доступны только с ключом" :)))
(http://www.rsdn.ru/article/dotnet/assembl/ildasm.jpg)
Прекрасная статья
От: Озеров Валентин Вячеславович  
Дата: 01.03.02 10:50
Оценка:
Ждем продолжения :)
Re: Очень интересно
От: MNZ Россия  
Дата: 08.04.04 05:40
Оценка:
Интересная, подробная статья. Обо всём в одном месте. Только некоторые запятые стоят не на своих местах
Re[2]: Очень интересно
От: der Igel Россия  
Дата: 08.04.04 11:10
Оценка:
Hello, MNZ!

M> Интересная, подробная статья. Обо всём в одном месте. Только некоторые

M> запятые стоят не на своих местах

А там вверху, в левом угле, кнопочка такая есть — Орфо.
Posted via RSDN NNTP Server 1.8 beta
Re[3]: Очень интересно
От: Spaider Верблюд  
Дата: 08.04.04 12:40
Оценка: :)
Здравствуйте, der Igel, Вы писали:

DI>Hello, MNZ!


M>> Интересная, подробная статья. Обо всём в одном месте. Только некоторые

M>> запятые стоят не на своих местах

DI>А там вверху, в левом угле, кнопочка такая есть — Орфо.


Дык, Орфографию оно проверяет. А запятые -- это пунктуация.
К тому же, проблемы написания слитно-раздельно, тоже надо учитывать.

Цитирую:

Если быть до конца честным, то мы конечно же не вызвали данную функцию, на прямую.


И таких случаев в статье несколько
... << RSDN@Home 1.1.3 stable >>
--
К вашим услугам,
Re[4]: Очень интересно
От: Spaider Верблюд  
Дата: 08.04.04 12:42
Оценка:
Здравствуйте, Spaider, Вы писали:

S>Цитирую:

S>

S>Если быть до конца честным, то мы конечно же не вызвали данную функцию, на прямую.


Кстати, в этой фразе ТРИ пунктуационных ашыпки и одна орфографическая
... << RSDN@Home 1.1.3 stable >>
--
К вашим услугам,
Re[4]: Очень интересно
От: der Igel Россия  
Дата: 08.04.04 14:12
Оценка: +1
Hello, Spaider!

DI>> А там вверху, в левом угле, кнопочка такая есть — Орфо.


S> Дык, Орфографию оно проверяет. А запятые -- это пунктуация.

S> К тому же, проблемы написания слитно-раздельно, тоже надо
S> учитывать.

И орфографию, и пунктуацию посетители проверяют, а не конопочка.
Ты выдели кусок, напиши комментарий, как надо — мы и исправим.
А кнопочка помогает в коммуникации.
Posted via RSDN NNTP Server 1.8 beta
Re: Немного о сборках
От: Ведмедь Россия  
Дата: 19.05.04 10:31
Оценка:
Здравствуйте, Алексей Дубовцев, Вы писали:

Хотелось бы уточнить про версионность сборок в GAC

Я тут провел смелые научные эксперименты и получил следующие результаты:
Я проверид это утверждение


Информация о версии приложения разбита на две части вовсе не случайно. При поиске необходимой сборки, политика требует точного совпадения лишь основной версии сборки. А дополнительная версия используется для поиска наиболее свежей сборки. То есть будет загружена сборка с наибольшими номерами построения и ревизии.


Не зависимо от того какая часть версии сборки меняется меняется, если не находится сборка в GAC с точным соотвесвием версии, то выдается ошибка, что не найдена сборка, что очень печально.
Проверялось это под Framework 1.1
Да пребудет с тобой Великий Джа
Re[2]: Немного о сборках
От: Igor Trofimov  
Дата: 19.05.04 18:24
Оценка:
1. Утверждение верно для сборок с нестрогими именами. Для ссылок на сборки со строгим именем (а только такие и могут лежать в ГАКе) требуется полное совпадение полного имени сборки.

2. В общем-то ты и сам можешь загрузить нужную сборку, если стандартный загрузчик не нашел, подцепившись на соответствующее событие домена
Re[3]: Немного о сборках
От: Ведмедь Россия  
Дата: 20.05.04 08:08
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:


iT>1. Утверждение верно для сборок с нестрогими именами. Для ссылок на сборки со строгим именем (а только такие и могут лежать в ГАКе) требуется полное совпадение полного имени сборки.


iT>2. В общем-то ты и сам можешь загрузить нужную сборку, если стандартный загрузчик не нашел, подцепившись на соответствующее событие домена


И что делать? Я же не знаю, какая версия последняя. Кроме того не всегда удобно подцепиться на событие домена, так как я могу работать под COM+ или WEBом
Да пребудет с тобой Великий Джа
Re[4]: Немного о сборках
От: Igor Trofimov  
Дата: 20.05.04 18:32
Оценка:
В>И что делать? Я же не знаю, какая версия последняя. Кроме того не всегда удобно подцепиться на событие домена, так как я могу работать под COM+ или WEBом

Давай тогда рассказывай, что за задача в целом — может какие-то другие решения есть?
Re[5]: Немного о сборках
От: Ведмедь Россия  
Дата: 21.05.04 07:07
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

В>>И что делать? Я же не знаю, какая версия последняя. Кроме того не всегда удобно подцепиться на событие домена, так как я могу работать под COM+ или WEBом


iT>Давай тогда рассказывай, что за задача в целом — может какие-то другие решения есть?


Да задача то простая

Есть несколько подсистем, которые как то между собой взаимодействуют. Версии подсистем меняются часто( раз в неделю точно ).
Соотвесвенно после переустановки подсистемы приходтся конфигураить сборки, что бы старые версии других подсистем могли нормально подцеплять новые версии сборок. И это при установке может занимать значительное время. Соотвесвенно нужно решение, которое позволит сократить это время или вообще избавится от конфигурации сборок.
Да пребудет с тобой Великий Джа
Re[6]: Немного о сборках
От: mihailik Украина  
Дата: 21.05.04 12:59
Оценка:
В>что бы старые версии других подсистем могли нормально подцеплять новые версии сборок. И это при установке может занимать значительное время. Соотвесвенно нужно решение, которое позволит сократить это время или вообще избавится от конфигурации сборок.

Так там по-моему можно просто сказать: для поиска любых сборок "MyAsm, 1.1.*, PublicKey=ABCDEF01234" использовать последнюю имеющуюся версию. Или нет такого в MSDN?
... << RSDN@Home 1.1.3 stable >>
Re[7]: Немного о сборках
От: Ведмедь Россия  
Дата: 24.05.04 07:11
Оценка:
Здравствуйте, mihailik, Вы писали:

В>>что бы старые версии других подсистем могли нормально подцеплять новые версии сборок. И это при установке может занимать значительное время. Соотвесвенно нужно решение, которое позволит сократить это время или вообще избавится от конфигурации сборок.


M>Так там по-моему можно просто сказать: для поиска любых сборок "MyAsm, 1.1.*, PublicKey=ABCDEF01234" использовать последнюю имеющуюся версию. Или нет такого в MSDN?


Где там? Можно примерчик?
Да пребудет с тобой Великий Джа
Re[6]: Немного о сборках
От: Igor Trofimov  
Дата: 24.05.04 18:43
Оценка:
В>Соотвесвенно после переустановки подсистемы приходтся конфигураить сборки, что бы старые версии других подсистем могли нормально подцеплять новые версии сборок.

Тут вот какая штука... если меняется интерфейс взаимодействия подсистем и этот интерфейс описан в этих самых сборках — то сам бог велел все-таки их пересобрать, чтобы удостовериться, что они остались совместимы хотя бы на уровне компиляции.

Если же речь идет об изменении реализации при то, что интерфейс остается тем же — тогда можно интерфейсы вынести в отдельные, неизменяемые сборки, а новые реализации загружать динамически, просто прописывая в некий конфиг перечень имен сборок, которые следует загрузить.
Re[7]: Немного о сборках
От: Ведмедь Россия  
Дата: 25.05.04 07:04
Оценка: +1
Здравствуйте, Igor Trofimov, Вы писали:

iT>Тут вот какая штука... если меняется интерфейс взаимодействия подсистем и этот интерфейс описан в этих самых сборках — то сам бог велел все-таки их пересобрать, чтобы удостовериться, что они остались совместимы хотя бы на уровне компиляции.


iT>Если же речь идет об изменении реализации при то, что интерфейс остается тем же — тогда можно интерфейсы вынести в отдельные, неизменяемые сборки, а новые реализации загружать динамически, просто прописывая в некий конфиг перечень имен сборок, которые следует загрузить.


Речь идет об обратной совместимости. Если меняется интерфейс, то функциональность только добавляется, а существующий интерфейс не меняется. По этому мне было бы логично, что более поздняя версия может использоваться старыми компонентами, они прост о не будут трогать новые функции.
Да пребудет с тобой Великий Джа
Re[8]: Немного о сборках
От: mihailik Украина  
Дата: 25.05.04 14:52
Оценка:
M>>Так там по-моему можно просто сказать: для поиска любых сборок "MyAsm, 1.1.*, PublicKey=ABCDEF01234" использовать последнюю имеющуюся версию. Или нет такого в MSDN?

В>Где там? Можно примерчик?


В myprogram.exe.config — конфигурационном файле. Если такой файл лежит рядом с EXE-шником, то он при запуске прочитывается и учитывается.

Формат в MSDN есть, я наизусть не помню, мутноватый он малость. Ищи bindingRedirect, и посмотри соседние пункты. Как-то так оно называется.
... << RSDN@Home 1.1.3 stable >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.