Я работаю над приложением Silverlight. Я разделил его на несколько сборок:
- Домен
- Репозитории (все с сохранением в базе данных Sterling)
- UI
- ...
Вот как я это узнал, но мне было интересно. Если вы знаете, что библиотеки DLL не будут использоваться повторно, нужно ли их разделять? Или вы могли бы поместить все в одну сборку и использовать папки и пространства имен, чтобы поддерживать порядок?
Я также видел проекты, которые имеют слишком много сборок. Вместо использования пространств имен, где это было бы уместно.
Итак: когда вы создаете новую сборку для какого-то нового куска кода? Есть хорошие ресурсы на эту тему? И разделяете ли вы код на технически (домен, данные, пользовательский интерфейс и т. Д.) И / или функционально (т. Е. Администрирование пациента, медицинское обслуживание пациента, логистику больницы, ... - возможно, только для более крупных приложений уровня предприятия)?
A
,B
,C
,D
,E
,F
,G
,H
,I
,J
,K
. Где бы вы ни ссылки на узелA
, вы должны также ссылаться на зависимые сборки:B
,C
,D
. Но сборкаC
зависит от:E
,F
,G
,H
поэтому мы будем нуждаться в тех , кто тоже. Поэтому, когда вам нужна какая-то функция,A
вам нужно снять 7 дополнительных сборок, чтобы она заработала; убедившись, что вы получите правильные версии каждой сборки. Добро пожаловать в новый DLL Hell.Сборка - это единица развертывания приложения .NET; поэтому вы должны рассмотреть возможность согласования разреза ваших сборок с архитектурой развертывания.
Сборки также полезны, когда вам нужен отдельный контроль версий для некоторого кода. Например, если у вас есть общие интерфейсы, которые выиграют от независимого контроля версий, вы должны разделить этот код на сборку.
Помните, что пространства имен могут охватывать сборки. Во многих случаях достаточно разделить поведение, используя пространства имен. Посмотрите на .NET,
mscorlib.dll
который в одной сборке содержит код, охватывающий широкий спектр поведений, разделенных только пространством имен.Если вы хотите авторитет в этом вопросе, смотрите не дальше:
Руководство по разработке структуры: условные обозначения , идиомы и шаблоны для многократно используемых библиотек .NET (2-е издание). Автор - Кшиштоф Квалина и Брэд Абрамс.
источник