У нас есть структура, которая определяет множество интерфейсов и некоторые базовые реализации по умолчанию.Давайте назовем это CompanyFramework.У меня есть несколько расширений ASP.NET MVC, в настоящее время хранящихся в отдельном проекте CompanyFramework.Web.Mvc.Причина этого в том, что приложения, которые используют базовую платформу, но не имеют ничего общего с MVC, не должны ссылаться на библиотеки ASP.NET MVC.Мне не очень нравится эта настройка, так как дополнительная сборка содержит только 3-4 файла классов, но это был самый чистый способ избежать введения ненужных зависимостей в основную сборку фреймворка.
Теперь у нас есть структура StructureMap-специфичные расширения, которые мы используем для ASP.NET MVC, а именно: фабрики пользовательских контроллеров и вещи типа подшивки моделей.Где бы вы положили что-то подобное?Я мог бы просто добавить его в проект CompanyFramework.Web.Mvc, но затем в любой проект ASP.NET MVC, который использует ссылку на сборку StructureMap, даже если она не используется.Я также мог бы создать отдельный проект CompanyFramework.StructureMap, но тогда, если я когда-нибудь разработаю какие-либо расширения для StructureMap, которые не зависят от ASP.NET MVC, я все равно буду сослаться на ссылки на сборки MVC для классов, которые их используют.
Должен ли я создать отдельный проект CompanyFramework.Web.Mvc.StructureMap?Этот подход кажется наиболее чистым в целом, но я чувствую, что начинаю вводить несколько легких спутниковых сборок, которые загромождают общую структуру проекта.