#aspnetboilerplate
#aspnetboilerplate
Вопрос:
У меня есть некоторые сомнения по поводу организации кода. Я вижу два способа организации кода: package by layer
и package by component
. http://www.codingthearchitecture.com/2015/03/08/package_by_component_and_architecturally_aligned_testing.html
Сама структура ABP не требует принятия конкретной формы, и обе формы, по-видимому, поддерживаются. package by layer
Это видно только в примере, предоставленном ABP framework. Неясно package by component
, можно ли использовать.
Например, существует три граничных контекста: заказ, продукт и клиент.
Если package by layer
используется, это будет так, как показано на рисунке ниже.
Project.sln
Project.Application
OrderContext
ProductContext
CustomerContext
Project.Core
OrderContext
ProductContext
CustomerContext
Project.EntityFrameworkCore
...
Если package by component
используется, это будет так, как показано на рисунке ниже.
Project.sln
hosts
Project.Host
modules
orders
Order.Application
Order.Core
Order.EntityFrameworkCore
products
Product.Application
Product.Core
Product.EntityFrameworkCore
customers
Customer.Application
Customer.Core
Customer.EntityFrameworkCore
Какой метод более широко используется в фреймворке ABP?
Ответ №1:
ASP.NET Шаблонное использование package by layer
или «Уровни проектирования, управляемые доменом».
https://aspnetboilerplate.com/Pages/Documents/NLayer-Architecture
Вот структура папок официального шаблона, загружаемого по адресу https://aspnetboilerplate.com/Templates с исходным кодом, размещенным по адресу https://github.com/aspnetboilerplate/module-zero-core-template:
AbpCompanyName.AbpProjectName.sln
src/
AbpCompanyName.AbpProjectName.Application/
Authorization/
Configuration/
MultiTenancy/
Roles/
Users/
AbpCompanyName.AbpProjectName.Core/
Authorization/
Roles/
Users/
Configuration/
MultiTenancy/
Комментарии:
1. @SAssassin Прочитайте остальную часть ответа.
2. Спасибо. Я думаю, что нашел ответ. github.com/aspnetboilerplate/aspnetboilerplate/issues/… Фреймворк ABP может быть
package by components
и был воплощен в ABP vNext.