From bf057e921489547caa827a393055eed31da05e89 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 25 Nov 2020 10:46:59 +0800 Subject: [PATCH 1/5] Use ModuleExtensionConfigurationHelper one time for each module --- .../AbpAuditLoggingDomainModule.cs | 30 ++++++++------ .../AbpIdentityApplicationContractsModule.cs | 16 +++++--- .../AbpIdentityWebModule.cs | 36 ++++++++++------- .../AbpIdentityServerDomainModule.cs | 40 +++++++++++-------- ...antManagementApplicationContractsModule.cs | 22 ++++++---- .../AbpTenantManagementDomainModule.cs | 16 +++++--- .../AbpTenantManagementWebModule.cs | 20 ++++++---- 7 files changed, 110 insertions(+), 70 deletions(-) diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AbpAuditLoggingDomainModule.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AbpAuditLoggingDomainModule.cs index b2d2505004..c5e94f633a 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AbpAuditLoggingDomainModule.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AbpAuditLoggingDomainModule.cs @@ -3,6 +3,7 @@ using Volo.Abp.Domain; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; namespace Volo.Abp.AuditLogging { @@ -11,25 +12,30 @@ namespace Volo.Abp.AuditLogging [DependsOn(typeof(AbpAuditLoggingDomainSharedModule))] public class AbpAuditLoggingDomainModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( AuditLoggingModuleExtensionConsts.ModuleName, AuditLoggingModuleExtensionConsts.EntityNames.AuditLog, typeof(AuditLog) - ); + ); - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - AuditLoggingModuleExtensionConsts.ModuleName, - AuditLoggingModuleExtensionConsts.EntityNames.AuditLogAction, - typeof(AuditLogAction) - ); + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + AuditLoggingModuleExtensionConsts.ModuleName, + AuditLoggingModuleExtensionConsts.EntityNames.AuditLogAction, + typeof(AuditLogAction) + ); - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - AuditLoggingModuleExtensionConsts.ModuleName, - AuditLoggingModuleExtensionConsts.EntityNames.EntityChange, - typeof(EntityChange) - ); + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + AuditLoggingModuleExtensionConsts.ModuleName, + AuditLoggingModuleExtensionConsts.EntityNames.EntityChange, + typeof(EntityChange) + ); + }); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/AbpIdentityApplicationContractsModule.cs b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/AbpIdentityApplicationContractsModule.cs index 43481ff30a..5ce1ed6755 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/AbpIdentityApplicationContractsModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/AbpIdentityApplicationContractsModule.cs @@ -5,6 +5,7 @@ using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.PermissionManagement; using Volo.Abp.Users; +using Volo.Abp.Threading; namespace Volo.Abp.Identity { @@ -17,6 +18,8 @@ namespace Volo.Abp.Identity )] public class AbpIdentityApplicationContractsModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void ConfigureServices(ServiceConfigurationContext context) { @@ -24,23 +27,24 @@ namespace Volo.Abp.Identity public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToApi( + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( IdentityModuleExtensionConsts.ModuleName, IdentityModuleExtensionConsts.EntityNames.Role, getApiTypes: new[] { typeof(IdentityRoleDto) }, createApiTypes: new[] { typeof(IdentityRoleCreateDto) }, updateApiTypes: new[] { typeof(IdentityRoleUpdateDto) } ); - - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToApi( + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( IdentityModuleExtensionConsts.ModuleName, IdentityModuleExtensionConsts.EntityNames.User, getApiTypes: new[] { typeof(IdentityUserDto) }, createApiTypes: new[] { typeof(IdentityUserCreateDto) }, updateApiTypes: new[] { typeof(IdentityUserUpdateDto) } ); + }); } } -} \ No newline at end of file +} diff --git a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs index 5362969011..ce26e91e20 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs @@ -11,6 +11,7 @@ using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.PermissionManagement.Web; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; +using Volo.Abp.Threading; namespace Volo.Abp.Identity.Web { @@ -20,6 +21,8 @@ namespace Volo.Abp.Identity.Web [DependsOn(typeof(AbpAspNetCoreMvcUiThemeSharedModule))] public class AbpIdentityWebModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PreConfigureServices(ServiceConfigurationContext context) { context.Services.PreConfigure(options => @@ -65,21 +68,24 @@ namespace Volo.Abp.Identity.Web public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToUi( - IdentityModuleExtensionConsts.ModuleName, - IdentityModuleExtensionConsts.EntityNames.Role, - createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.CreateModalModel.RoleInfoModel) }, - editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.EditModalModel.RoleInfoModel) } - ); - - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToUi( - IdentityModuleExtensionConsts.ModuleName, - IdentityModuleExtensionConsts.EntityNames.User, - createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Users.CreateModalModel.UserInfoViewModel) }, - editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Users.EditModalModel.UserInfoViewModel) } - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + IdentityModuleExtensionConsts.ModuleName, + IdentityModuleExtensionConsts.EntityNames.Role, + createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.CreateModalModel.RoleInfoModel) }, + editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.EditModalModel.RoleInfoModel) } + ); + + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + IdentityModuleExtensionConsts.ModuleName, + IdentityModuleExtensionConsts.EntityNames.User, + createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Users.CreateModalModel.UserInfoViewModel) }, + editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Users.EditModalModel.UserInfoViewModel) } + ); + }); } } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs index 58b366d645..328c70cc8a 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs @@ -20,6 +20,7 @@ using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.Security; using Volo.Abp.Validation; +using Volo.Abp.Threading; namespace Volo.Abp.IdentityServer { @@ -34,6 +35,8 @@ namespace Volo.Abp.IdentityServer )] public class AbpIdentityServerDomainModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddAutoMapperObjectMapper(); @@ -102,23 +105,26 @@ namespace Volo.Abp.IdentityServer public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - IdentityServerModuleExtensionConsts.ModuleName, - IdentityServerModuleExtensionConsts.EntityNames.Client, - typeof(Client) - ); - - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - IdentityServerModuleExtensionConsts.ModuleName, - IdentityServerModuleExtensionConsts.EntityNames.IdentityResource, - typeof(IdentityResource) - ); - - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - IdentityServerModuleExtensionConsts.ModuleName, - IdentityServerModuleExtensionConsts.EntityNames.ApiResource, - typeof(ApiResource) - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + IdentityServerModuleExtensionConsts.ModuleName, + IdentityServerModuleExtensionConsts.EntityNames.Client, + typeof(Client) + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + IdentityServerModuleExtensionConsts.ModuleName, + IdentityServerModuleExtensionConsts.EntityNames.IdentityResource, + typeof(IdentityResource) + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + IdentityServerModuleExtensionConsts.ModuleName, + IdentityServerModuleExtensionConsts.EntityNames.ApiResource, + typeof(ApiResource) + ); + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs index ea9bc778dd..57ab853253 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs @@ -2,6 +2,7 @@ using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; namespace Volo.Abp.TenantManagement { @@ -10,16 +11,21 @@ namespace Volo.Abp.TenantManagement typeof(AbpTenantManagementDomainSharedModule))] public class AbpTenantManagementApplicationContractsModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToApi( - TenantManagementModuleExtensionConsts.ModuleName, - TenantManagementModuleExtensionConsts.EntityNames.Tenant, - getApiTypes: new[] { typeof(TenantDto) }, - createApiTypes: new[] { typeof(TenantCreateDto) }, - updateApiTypes: new[] { typeof(TenantUpdateDto) } - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToApi( + TenantManagementModuleExtensionConsts.ModuleName, + TenantManagementModuleExtensionConsts.EntityNames.Tenant, + getApiTypes: new[] { typeof(TenantDto) }, + createApiTypes: new[] { typeof(TenantCreateDto) }, + updateApiTypes: new[] { typeof(TenantUpdateDto) } + ); + }); } } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs index 686ca76378..764e9f7209 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs @@ -7,6 +7,7 @@ using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; namespace Volo.Abp.TenantManagement { @@ -17,6 +18,8 @@ namespace Volo.Abp.TenantManagement [DependsOn(typeof(AbpAutoMapperModule))] public class AbpTenantManagementDomainModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddAutoMapperObjectMapper(); @@ -34,11 +37,14 @@ namespace Volo.Abp.TenantManagement public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - TenantManagementModuleExtensionConsts.ModuleName, - TenantManagementModuleExtensionConsts.EntityNames.Tenant, - typeof(Tenant) - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + TenantManagementModuleExtensionConsts.ModuleName, + TenantManagementModuleExtensionConsts.EntityNames.Tenant, + typeof(Tenant) + ); + }); } } } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs index c186359b1c..e993ea2c63 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs @@ -11,6 +11,7 @@ using Volo.Abp.TenantManagement.Localization; using Volo.Abp.TenantManagement.Web.Navigation; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; +using Volo.Abp.Threading; namespace Volo.Abp.TenantManagement.Web { @@ -20,6 +21,8 @@ namespace Volo.Abp.TenantManagement.Web [DependsOn(typeof(AbpAutoMapperModule))] public class AbpTenantManagementWebModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PreConfigureServices(ServiceConfigurationContext context) { context.Services.PreConfigure(options => @@ -62,13 +65,16 @@ namespace Volo.Abp.TenantManagement.Web public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToUi( - TenantManagementModuleExtensionConsts.ModuleName, - TenantManagementModuleExtensionConsts.EntityNames.Tenant, - createFormTypes: new[] { typeof(Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants.CreateModalModel.TenantInfoModel) }, - editFormTypes: new[] { typeof(Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants.EditModalModel.TenantInfoModel) } - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + TenantManagementModuleExtensionConsts.ModuleName, + TenantManagementModuleExtensionConsts.EntityNames.Tenant, + createFormTypes: new[] { typeof(Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants.CreateModalModel.TenantInfoModel) }, + editFormTypes: new[] { typeof(Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants.EditModalModel.TenantInfoModel) } + ); + }); } } } \ No newline at end of file From 14d1c4e7553ae76c0176c7ce047c3defe4abf00c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 25 Nov 2020 11:06:16 +0300 Subject: [PATCH 2/5] Writing Common Principles. --- ...main-Driven-Design-Implementation-Guide.md | 41 +++++++++++++++++- .../domain-driven-design-web-request-flow.png | Bin 0 -> 152565 bytes 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 docs/en/images/domain-driven-design-web-request-flow.png diff --git a/docs/en/Domain-Driven-Design-Implementation-Guide.md b/docs/en/Domain-Driven-Design-Implementation-Guide.md index 84b7f186a8..97883617cf 100644 --- a/docs/en/Domain-Driven-Design-Implementation-Guide.md +++ b/docs/en/Domain-Driven-Design-Implementation-Guide.md @@ -92,6 +92,8 @@ The picture below shows a Visual Studio Solution created using the ABP's [applic The solution name is `IssueTracking` and it consists of multiple projects. The solution is layered by considering **DDD principles** as well as **development** and **deployment** practicals. The sub sections below explains the projects in the solution; +> Your solution structure may be slightly different if you choose a different UI or Database provider. However, the Domain and Application layers will be same and this is the essential point for the DDD perspective. See the [Application Startup Template](Startup-Templates/Application.md) document if you want to know more about the solution structure. + #### The Domain Layer The Domain Layer is splitted into two projects; @@ -169,8 +171,43 @@ This design decision potentially allows you to use Entities and EF Core objects ### Execution Flow a DDD Based Application -TODO +The figure below shows a typical request flow for a web application that has been developed based on DDD patterns. + +![](images/domain-driven-design-web-request-flow.png) + +* The request typically begins by a user interaction on the UI (a *use case*) that causes an HTTP request to the server. +* An MVC Controller or a Razor Page Handler in the Presentation Layer (or in the Distributed Services Layer) handles the request and can perform some cross cutting concerns in this stage ([Authorization](Authorization.md), [Validation](Validation.md), [Exception Handling](Exception-Handling.md), etc.). A Controller/Page injects the related Application Service interface and calls its method(s) by sending and receiving DTOs. +* The Application Service use the Domain Objects (Entities, Repository interfaces, Domain Services, etc.) to implement the *use case*. Application Layer implements some cross cutting concerns (Authorization, Validation, etc.). An Application Service method should be a [Unit Of Work](Unit-Of-Work.md). That means it should be atomic. + +Most of the cross cutting concerns are **automatically and conventionally implemented by the ABP Framework** and you typically don't need to write code for them. ### Common Principles -TODO \ No newline at end of file +Before going into details, let's see some overall DDD principles; + +#### Database Provider / ORM Independence + +The domain and application layers should be ORM / Database Provider agnostic. They only depends on the Repository interfaces and the Repository interfaces doesn't use any ORM specific objects. + +Here, the main reasons of this principle; + +1. To make your domain/application **infrastructure independent** since the infrastructure may change in the future or you may need to support a second database type later. +2. To make your domain/application **focus on the business code** by hiding the infrastructure details behind the repositories. +3. To make your **automated tests** easier since you can mock the repositories in this case. + +> As a respect to this principle, none of the projects in the solution has reference to the `EntityFrameworkCore` project, except the startup application. + +##### Discussion About the Database Independence Principle + +Especially, the **reason 1** deeply effects your domain **object design** (especially, the entity relations) and **application code**. Assume that you are using [Entity Framework Core](Entity-Framework-Core.md) with a relational database. If you try to make your application so that it is possible to switch to [MongoDB](MongoDB.md) later, you can't use some very **useful EF Core features**. Examples; + +* You can't assume [Change Tracking](https://docs.microsoft.com/en-us/ef/core/querying/tracking) since MongoDB provider can't do it. So, you always need to explicitly update the changed entities. +* You can't use [Navigation Properties](https://docs.microsoft.com/en-us/ef/core/modeling/relationships) (or Collections) to other Aggregates in your entities since this is not possible for a Document Database. See the "Rule: Reference Other Aggregates Only By Id" section for more info. + +If you think such features are **important** for you and you **will never move away** from the EF Core, we believe that it is worth **relaxing this principle**. We still suggest to use the repository pattern to hide the infrastructure details. But you can assume that you are using EF Core while designing your entity relations and writing your application code. You can even reference to the EF Core NuGet Package from your application layer to be able to directly use the asynchronous LINQ extension methods, like `ToListAsync()` (see the *IQueryable & Async Operations* section in the [Repositories](Repositories.md) document for more info). + +#### Presentation Technology Agnostic + +The presentation technology (UI Framework) is one of the most changed parts of a real world application. It is very important to design the **Domain and Application Layers** to be completely **unaware** of the presentation technology/framework. + +This principle is relatively easy to implement and ABP's startup template makes it even easier. \ No newline at end of file diff --git a/docs/en/images/domain-driven-design-web-request-flow.png b/docs/en/images/domain-driven-design-web-request-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..a9cb98e01f6f6f8edfb4c874ddc2f9efed0904a3 GIT binary patch literal 152565 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%0AN^$3ttku}9qq2By$Q-=99@P^;=Hp~dId% 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 br8BMw;`d8e#1qlmbxBT2Su$5b-~0ap3Ts~? literal 0 HcmV?d00001 From 94284fcb6f1166cc69132781e5d7d5469b70f42b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 25 Nov 2020 11:27:08 +0300 Subject: [PATCH 3/5] Update Domain-Driven-Design-Implementation-Guide.md --- docs/en/Domain-Driven-Design-Implementation-Guide.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/en/Domain-Driven-Design-Implementation-Guide.md b/docs/en/Domain-Driven-Design-Implementation-Guide.md index 97883617cf..7cedd08fde 100644 --- a/docs/en/Domain-Driven-Design-Implementation-Guide.md +++ b/docs/en/Domain-Driven-Design-Implementation-Guide.md @@ -208,6 +208,12 @@ If you think such features are **important** for you and you **will never move a #### Presentation Technology Agnostic -The presentation technology (UI Framework) is one of the most changed parts of a real world application. It is very important to design the **Domain and Application Layers** to be completely **unaware** of the presentation technology/framework. +The presentation technology (UI Framework) is one of the most changed parts of a real world application. It is very important to design the **Domain and Application Layers** to be completely **unaware** of the presentation technology/framework. This principle is relatively easy to implement and ABP's startup template makes it even easier. -This principle is relatively easy to implement and ABP's startup template makes it even easier. \ No newline at end of file +In some cases, you may need to have **duplicate logic** in the application and presentation layers. For example, you may need to duplicate the **validation** and **authorization** checks in both layers. The checks in the UI layer is mostly for **user experience** while checks in the application and domain layers are for **security and data integrity**. That's perfectly normal and necessary. + +#### Focus on the State Changes, Not Reporting + +DDD focuses on how the domain objects **changes and interactions**; How to create an entity and change its properties by preserving the data **integrity/validity** and implementing the **business rules**. + +DDD **ignores reporting** and mass querying. That doesn't mean they are not important. If your application doesn't have fancy dashboards and reports, who would use it? However, reporting is another topic. You typically want to use the full power of the SQL Server or even use a separate data source (like ElasticSearch) for reporting purpose. You will write optimized queries, create indexes and even stored procedures(!). You are free to do all as long as you don't mix all these into your business logic. \ No newline at end of file From 99a760df8bbd7920b2e4f15fbbe7c0fb2a1cb929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 25 Nov 2020 11:28:44 +0300 Subject: [PATCH 4/5] Update Domain-Driven-Design-Implementation-Guide.md --- docs/en/Domain-Driven-Design-Implementation-Guide.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/en/Domain-Driven-Design-Implementation-Guide.md b/docs/en/Domain-Driven-Design-Implementation-Guide.md index 7cedd08fde..6e243c5913 100644 --- a/docs/en/Domain-Driven-Design-Implementation-Guide.md +++ b/docs/en/Domain-Driven-Design-Implementation-Guide.md @@ -216,4 +216,8 @@ In some cases, you may need to have **duplicate logic** in the application and p DDD focuses on how the domain objects **changes and interactions**; How to create an entity and change its properties by preserving the data **integrity/validity** and implementing the **business rules**. -DDD **ignores reporting** and mass querying. That doesn't mean they are not important. If your application doesn't have fancy dashboards and reports, who would use it? However, reporting is another topic. You typically want to use the full power of the SQL Server or even use a separate data source (like ElasticSearch) for reporting purpose. You will write optimized queries, create indexes and even stored procedures(!). You are free to do all as long as you don't mix all these into your business logic. \ No newline at end of file +DDD **ignores reporting** and mass querying. That doesn't mean they are not important. If your application doesn't have fancy dashboards and reports, who would use it? However, reporting is another topic. You typically want to use the full power of the SQL Server or even use a separate data source (like ElasticSearch) for reporting purpose. You will write optimized queries, create indexes and even stored procedures(!). You are free to do all as long as you don't mix all these into your business logic. + +## Implementation: The Building Blocks + +TODO \ No newline at end of file From 72040302b82400949f4cd7d17f22039fe0295619 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 25 Nov 2020 14:36:35 +0300 Subject: [PATCH 5/5] Fix: add-module angular source code binding https://github.com/abpframework/abp/issues/6016 --- .../Services/SourceCodeDownloadService.cs | 44 ++++++ .../AngularModuleSourceCodeAdder.cs | 148 ++++++++---------- 2 files changed, 109 insertions(+), 83 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs index ca01314758..78a95996bd 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs @@ -53,6 +53,12 @@ namespace Volo.Abp.Cli.Commands.Services var zipEntry = zipInputStream.GetNextEntry(); while (zipEntry != null) { + if (IsAngularTestFile(zipEntry.Name)) + { + zipEntry = zipInputStream.GetNextEntry(); + continue; + } + var fullZipToPath = Path.Combine(outputFolder, zipEntry.Name); var directoryName = Path.GetDirectoryName(fullZipToPath); @@ -81,5 +87,43 @@ namespace Volo.Abp.Cli.Commands.Services Logger.LogInformation($"'{moduleName}' has been successfully downloaded to '{outputFolder}'"); } + + private bool IsAngularTestFile(string zipEntryName) + { + if (string.IsNullOrEmpty(zipEntryName)) + { + return false; + } + + if (zipEntryName.Contains(Path.Combine("angular/e2e"))) + { + return true; + } + if (zipEntryName.Contains(Path.Combine("angular/src"))) + { + return true; + } + if (zipEntryName.Contains(Path.Combine("angular/node_modules"))) + { + return true; + } + if (zipEntryName.Contains(Path.Combine("angular/scripts"))) + { + return true; + } + if (zipEntryName.Contains(Path.Combine("angular/source-code-requirements"))) + { + return true; + } + + var fileName = Path.GetFileName(zipEntryName); + + if (!string.IsNullOrEmpty(fileName) && zipEntryName.Equals("angular/" + fileName)) + { + return true; + } + + return false; + } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs index c9812b7bf4..6c89656b47 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs @@ -33,17 +33,13 @@ namespace Volo.Abp.Cli.ProjectModification return; } - await ReplaceProjectNamesAndCopySourCodeRequirementsToProjectsAsync(angularProjectsPath, projects); - - await RemoveRedundantFilesAsync(angularProjectsPath, projects); - await AddPathsToTsConfigAsync(angularPath, angularProjectsPath, projects); await AddProjectToAngularJsonAsync(angularPath, projects); } catch (Exception e) { - Logger.LogError( "Unable to add angular source code: " + e.Message); + Logger.LogError("Unable to add angular source code: " + e.Message); } } @@ -54,7 +50,7 @@ namespace Volo.Abp.Cli.ProjectModification var json = JObject.Parse(fileContent); - var projectsJobject = (JObject)json["projects"]; + var projectsJobject = (JObject) json["projects"]; foreach (var project in projects) { @@ -62,126 +58,88 @@ namespace Volo.Abp.Cli.ProjectModification new JProperty("projectType", "library"), new JProperty("root", $"projects/{project}"), new JProperty("sourceRoot", $"projects/{project}/src"), - new JProperty("prefix", "lib"), + new JProperty("prefix", "abp"), new JProperty("architect", new JObject( new JProperty("build", new JObject( - new JProperty("builder", "@angular-devkit/build-ng-package:build"), + new JProperty("builder", "@angular-devkit/build-ng-packagr:build"), new JProperty("options", new JObject( new JProperty("tsConfig", $"projects/{project}/tsconfig.lib.json"), new JProperty("project", $"projects/{project}/ng-package.json") - )), + )), new JProperty("configurations", new JObject( new JProperty("production", new JObject( new JProperty("tsConfig", $"projects/{project}/tsconfig.lib.prod.json"))) )))), new JProperty("test", new JObject( - new JProperty("builder", "@angular-devkit/build-angular:karma"), + new JProperty("builder", "@angular-builders/jest:run"), new JProperty("options", new JObject( - new JProperty("main", $"projects/{project}/src/test.ts"), - new JProperty("tsConfig", $"projects/{project}/tsconfig.spec.json"), - new JProperty("karmaConfig", $"projects/{project}/karma.conf.js") + new JProperty("coverage", true), + new JProperty("passWithNoTests", true) ) ))), new JProperty("lint", new JObject( new JProperty("builder", "@angular-devkit/build-angular:tslint"), new JProperty("options", new JObject( - new JProperty("tsConfig", new JArray(new JValue($"projects/{project}/tsconfig.lib.json"), new JValue($"projects/{project}/tsconfig.spec.json"))), + new JProperty("tsConfig", + new JArray(new JValue($"projects/{project}/tsconfig.lib.json"), + new JValue($"projects/{project}/tsconfig.spec.json"))), new JProperty("exclude", new JArray(new JValue("**/node_modules/**"))) - )) )) )) - )); + )) + )); } File.WriteAllText(angularJsonFilePath, json.ToString(Formatting.Indented)); } - private async Task AddPathsToTsConfigAsync(string angularPath, string angularProjectsPath, List projects) + private async Task AddPathsToTsConfigAsync(string angularPath, string angularProjectsPath, + List projects) { var tsConfigPath = Path.Combine(angularPath, "tsconfig.json"); var fileContent = File.ReadAllText(tsConfigPath); - var tsConfigAsJson = JObject.Parse(fileContent); - - var compilerOptions = (JObject)tsConfigAsJson["compilerOptions"]; + var compilerOptions = (JObject) tsConfigAsJson["compilerOptions"]; foreach (var project in projects) { var projectPackageName = await GetProjectPackageNameAsync(angularProjectsPath, project); - var property = new JProperty($"{projectPackageName}", - new JArray(new object[] { $"projects/{project}/src/public-api.ts" }) - ); - var property2 = new JProperty($"{projectPackageName}/*", - new JArray(new object[] { $"projects/{project}/src/lib/*" }) - ); + var publicApis = Directory.GetFiles(Path.Combine(angularProjectsPath, project), "*public-api.ts", SearchOption.AllDirectories) + .Where(p => !p.Contains("\\node_modules\\")) + .Select(p => p.RemovePreFix(angularPath).Replace("\\", "/").RemovePreFix("/")); if (compilerOptions["paths"] == null) { - compilerOptions.Add("paths", new JObject()); } - ((JObject)compilerOptions["paths"]).Add(property); - ((JObject)compilerOptions["paths"]).Add(property2); - } - - File.WriteAllText(tsConfigPath, tsConfigAsJson.ToString(Formatting.Indented)); - } - - private async Task GetProjectPackageNameAsync(string angularProjectsPath, string project) - { - var packageJsonPath = Path.Combine(angularProjectsPath, project, "package.json"); - - var fileContent = File.ReadAllText(packageJsonPath); - - return (string)JObject.Parse(fileContent)["name"]; - } - - private async Task RemoveRedundantFilesAsync(string angularProjectsPath, List projects) - { - foreach (var project in projects) - { - var jestConfigPath = Path.Combine(angularProjectsPath, project, "jest.config.js"); - - if (File.Exists(jestConfigPath)) + foreach (var publicApi in publicApis) { - File.Delete(jestConfigPath); - } + var subFolderName = publicApi.RemovePreFix($"projects/{project}/").Split("/")[0]; - var testPath = Path.Combine(angularProjectsPath, project, "src", "test.ts"); + if (subFolderName == "src") + { + subFolderName = ""; + } + else + { + subFolderName = $"/{subFolderName}"; + } - if (File.Exists(testPath)) - { - File.Delete(testPath); + ((JObject) compilerOptions["paths"]).Add( + new JProperty($"{projectPackageName}{subFolderName}", + new JArray(new object[] {publicApi}) + ) + ); } } - } - - private async Task ReplaceProjectNamesAndCopySourCodeRequirementsToProjectsAsync(string angularProjectsPath, List projects) - { - foreach (var project in projects) - { - var sourceCodeReqFolder = Path.Combine(angularProjectsPath, project, "source-code-requirements"); - - Directory.CreateDirectory(sourceCodeReqFolder); - - var filesUnderSourceCodeReqFolder = Directory.GetFiles(sourceCodeReqFolder); - foreach (var fileUnderSourceCodeReqFolder in filesUnderSourceCodeReqFolder) - { - var newDest = Path.Combine(angularProjectsPath, project, Path.GetFileName(fileUnderSourceCodeReqFolder)); - File.Move(fileUnderSourceCodeReqFolder, newDest); - - var fileContent = File.ReadAllText(newDest); - fileContent = fileContent.Replace("{{project-name}}", project); - fileContent = fileContent.Replace("{{library-name-kebab-case}}", project); - File.WriteAllText(newDest, fileContent); - } - } + File.WriteAllText(tsConfigPath, tsConfigAsJson.ToString(Formatting.Indented)); } - private async Task> CopyAndGetNamesOfAngularProjectsAsync(string solutionFilePath, string angularProjectsPath) + private async Task> CopyAndGetNamesOfAngularProjectsAsync(string solutionFilePath, + string angularProjectsPath) { var projects = new List(); @@ -190,25 +148,40 @@ namespace Volo.Abp.Cli.ProjectModification Directory.CreateDirectory(angularProjectsPath); } - var angularPathsInDownloadedSourceCode = Directory.GetDirectories(Path.Combine(Path.Combine(Path.GetDirectoryName(solutionFilePath), "modules"))).Select(p => Path.Combine(p, "angular")) + var angularPathsInDownloadedSourceCode = Directory + .GetDirectories(Path.Combine(Path.Combine(Path.GetDirectoryName(solutionFilePath), "modules"))) + .Select(p => Path.Combine(p, "angular")) .Where(Directory.Exists); - foreach (var folder in angularPathsInDownloadedSourceCode) { var projectsInFolder = Directory.GetDirectories(folder); + + if (projectsInFolder.Length == 1 && Path.GetFileName(projectsInFolder[0]) == "projects") + { + var foldersUnderProject = Directory.GetDirectories(Path.Combine(folder, "projects")); + foreach (var folderUnderProject in foldersUnderProject) + { + if (Directory.Exists(Path.Combine(folder, Path.GetFileName(folderUnderProject)))) + { + continue; + } + Directory.Move(folderUnderProject, Path.Combine(folder, Path.GetFileName(folderUnderProject))); + } + projectsInFolder = Directory.GetDirectories(folder); + } + foreach (var projectInFolder in projectsInFolder) { var projectName = Path.GetFileName(projectInFolder.TrimEnd('\\').TrimEnd('/')); var destDirName = Path.Combine(angularProjectsPath, projectName); - if (Directory.Exists(destDirName)) + if (projectName == "projects" || Directory.Exists(destDirName)) { Directory.Delete(projectInFolder, true); continue; } - projects.Add(projectName); Directory.Move(projectInFolder, destDirName); @@ -217,5 +190,14 @@ namespace Volo.Abp.Cli.ProjectModification return projects; } + + private async Task GetProjectPackageNameAsync(string angularProjectsPath, string project) + { + var packageJsonPath = Path.Combine(angularProjectsPath, project, "package.json"); + + var fileContent = File.ReadAllText(packageJsonPath); + + return (string) JObject.Parse(fileContent)["name"]; + } } }