В настоящее время я разрабатываю большое приложение. На данный момент у меня есть одно решение (это может измениться в полноте времени) со многими проектами.Средство/Большое решение - Процесс сборки Visual Studio - Необходимый совет
Я создал структуру каталогов, как:
\ Lib \ (содержит общие компоненты 3-й партии) сборки \ сборки \ Bin (выходной каталог) сборки \ Wwwroot (выходной каталог для веб-приложения) конфигурация \) SRC \ (содержит папки для проектов ниже)
на каждом из проектов, я поставил место сборки (выходной каталог) в «.. \ сборки \ Bin \» Это, как проиллюстрировано выше, делает проекты встроенными в build \ bin, выше каталога src. На
Company.Entities Ссылки Company.Common Это все бизнес-объекты (клиент, заказ, продукт) и т.д. ....
Company.Common Содержит классы, форматирование строк, дат, доступа к файлам и т. д. Не содержит ссылок на другие компании. библиотеки.
Company.Data Ссылки третьей стороны Lib (Windsor Castle, например) Это содержит интерфейсы, такие как IRepository, ICustomerRepository, IOrderRepository и т.д .... Имеет RepositoryFactory класса - это есть метод, называемый «Get (), который использует Ioc (Castle Windsor) для возврата. Также содержит IoC для разрешения текущих реализаций этих репозиториев. Castle.config находится в каталоге \ config \ и включает в себя «как ссылку» в этом проекте. Я настроил его всегда копировать в выходной каталог
Company.Data.LinqToSql Ссылки Company.Data Это текущая библиотека доступа к данным. Это экземпляр по IoC
Company.Logic Ссылки на Company.Data Бизнес-логика слой - имеет такие методы, как GetProductById (строка ID) - это, в свою очередь, вызывает Repository.Get() GetByID (ID). - например
Компания. Тесты Самообучающийся ... будет более активно использовать это в будущем.
Company.Web Ссылки Company.Logic, Company.Entities, Company.Common Web UI слой - это основной сайт.
Хорошо, надеюсь, это даст вам небольшой фон в текущей архитектуре моих проектов и т. Д. ...
В настоящее время я строю все в каталоге build/bin, за исключением Company.Web, который строится в build/wwwroot (там добавлен каталог bin) У меня тогда есть событие после сборки, которое копирует aspx-страницы, таблицы стилей, изображения, js-файлы и т. д. .... из src/Company.Web для сборки/wwwroot Я настроил Visual Studio на использование IIS для отладки и настроил виртуальный каталог iis, чтобы указать на мою папку build/wwwroot.
Однако ... Некоторые требуемые файлы не встроены в каталог Wwwroot/бен Такие как - Company.Data.LinqToSql - так как это не ссылается proejcts, но конкретизированных с помощью IoC
Как может Я улучшаю свою структуру/структуру проекта, чтобы помочь мне в разработке? Я буду «раскрывать» все разумные предложения.