Сборочные зависимости в многоуровневом приложении
Я делаю 1-ю попытку создания многоуровневого приложения с возможностью многократного использования.
Я создал проект уровня доступа к данным, на который ссылается проект бизнес-уровня. Я создал сайт, который ссылается на проект бизнес-уровня и планирую использовать его на многих других сайтах.
Я поместил соответствующий dll проекта бизнес-уровня в папку bin веб-сайта и сделал ссылку на файл. Когда я обращаюсь к бизнес-уровню, он выбрасывает сборку Access Data, которая не загружается. Чтобы решить эту проблему, я помещаю dll доступа к данным в папку bin веб-сайта, и все работает.
В будущем я ожидаю, что на бизнес-уровне будет много ссылок на различные проекты, поэтому я ожидаю добавления всех библиотек проектов, на которые ссылается бизнес-уровень, в папку bin для каждого веб-сайта. Это правильный способ, которым я делаю это, или есть упрощенный подход к этому?
2 ответа
Есть 2 способа справиться с этим
1) Добавить ссылку на проект.
Нажмите добавить ссылку на веб-проект -> нажмите Параметры проекта -> нажмите решение -> проверить бизнес-уровень.
То же самое нужно сделать на бизнес-уровне, чтобы добавить ссылку на проект уровня данных.
2) Seconds - это использование пакетов nuget. Вы можете создать пакет nuget для совместного использования csproj. Такой подход очень полезен, когда вы разделяете библиотеки между несколькими проектами и вам требуется контроль версий между различными проектами. Команда для создания пакета nuget из csproj.
nuget pack BusinessLayer.csproj
Создайте папку, скажем, BusinessLayer. Создайте подпапки внутри этой папки. Создайте библиотеки классов внутри этих папок и создайте пространства имен, которые отражаются в именах папок. Сделайте то же самое для, скажем, Data Access и View Layers. Справочные данные обращаются к пространствам имен в бизнес-уровне и к пространствам имен бизнес-уровня в слоях просмотра. Убедитесь, что уровень доступа к данным взаимодействует с бизнес-уровнем через интерфейс, если это возможно. Веб-сайт / приложение API и т. Д. Могут располагаться поверх этих трех уровней.