В продолжение сказанного Эриком Липпертом:
Имена сборок
Традиционно почти весь код в сборке располагается в одном пространстве имен и подпространствах имен вместе со сборкой.назван в честь пространства имен.
Например, если бы мне дали сборку с именем файла Contoso.PartnerPortal.Services.dll , короткое имя сборки обычно будет Contoso.PartnerPortal.Services
, иЯ ожидаю, что большая часть кода будет находиться в пространстве имен Contoso.PartnerPortal.Services
(и под-пространствах имен).
Однако не все классы в пространстве имен Contoso.PartnerPortal.Services
обязательно будут жить в Contoso.PartnerPortal.Services.Сборка длл.Если существует сборка Contoso.PartnerPortal.dll , она может также иметь некоторые классы в пространстве имен Contoso.PartnerPortal.Services
.
Одним из распространенных примеров использования этого является интерфейс.Если интерфейсы находятся в Contoso.PartnerPortal.dll , тогда код в этой сборке может использовать интерфейс без ссылки на Contoso.PartnerPortal.Services.dll .Это важно, поскольку Contoso.PartnerPortal.Services.dll (который будет реализовывать интерфейсы), вероятно, потребуется ссылаться на Contoso.PartnerPortal.dll , а ссылки на циклические сборки лучше избегать.
Количество / размер сборок
Сборки, которые слишком велики, могут сделать сборку более длительной, чем необходимо.Это связано с тем, что компиляторы не поддерживали пошаговую компиляцию в течение достаточно длительного времени.Таким образом, весь модуль должен быть скомпилирован как единое целое.Так как многомодульные сборки используются не часто, это в основном подразумевает, что вы должны скомпилировать всю сборку за один раз.
Если вы разбиваете большую сборку на несколько более мелких, перекомпилируются только измененная сборка и те, на которые ссылается,Это экономит время.
С другой стороны, более 600 сборок в одном приложении (я работаю над таким монстром в своей повседневной работе) имеет свои проблемы.Например, функция теневого копирования ASP.net имела проблемы с производительностью при работе с таким количеством сборок (имейте в виду, что это в дополнение к большому количеству сборок, создаваемых, когда ASP.net компилирует файлы aspx и ascx).