From 26a3f9c7c5be2af8f7b14b7262816bd77edccfae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 18 Sep 2024 12:11:45 +0300 Subject: [PATCH] Joining the Products and Orders data --- .../abp-studio-add-package-reference-5.png | Bin 0 -> 21796 bytes ...-studio-add-package-reference-dialog-4.png | Bin 0 -> 52287 bytes ...ual-studio-order-reporting-app-service.png | Bin 0 -> 10728 bytes docs/en/tutorials/modular-crm/part-06.md | 93 +++++++++++++++++- 4 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png create mode 100644 docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-4.png create mode 100644 docs/en/tutorials/modular-crm/images/visual-studio-order-reporting-app-service.png diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4e75dc2fb6401008f426048420f88dac4bf063 GIT binary patch literal 21796 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 O1t7|r&#InUzW*1$->;+q literal 0 HcmV?d00001 diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-4.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-4.png new file mode 100644 index 0000000000000000000000000000000000000000..4eae6cf5f91ddd709472bae3acc6d84ed031c562 GIT binary patch literal 52287 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 b0~KI(5_Tc^DrW@H9w13kIgwJ~&;I`fZP&G# literal 0 HcmV?d00001 diff --git a/docs/en/tutorials/modular-crm/part-06.md b/docs/en/tutorials/modular-crm/part-06.md index af4b5b8709..1f4d7392cd 100644 --- a/docs/en/tutorials/modular-crm/part-06.md +++ b/docs/en/tutorials/modular-crm/part-06.md @@ -30,6 +30,8 @@ That is because the Orders module has no access to the product data, so it can n As a solution to that problem, the Orders module may ask product names to the Product module using an [integration service](../../framework/api-development/integration-services.md). Integration service concept in ABP is designed for request/response style inter-module (in modular applications) and inter-microservice (in distributed systems) communication. +> When you implement integration services for inter-module communication, you can easily convert them to REST API calls if you convert your solution to a microservice system and convert your modules to services later. + ### Creating a Products Integration Service The first step is to create an integration service in the Products module, so other modules can consume it. @@ -469,4 +471,93 @@ We placed a new order for Product C. As a result, Product C's stock count has de ## Joining the Products and Orders data -TODO +One of the essential purposes of modularity is to create modules those hide (encapsulate) their internal data and implementation details from the other modules. They communicate each other through well-defined [integration services](../../framework/api-development/integration-services.md) and [events](framework/infrastructure/event-bus/distributed). In that way, you can independently develop and change module implementations (even modules' database structures) from each other as long as you don't break these inter-module integration points. + +### The Problem + +In a non-modular application, accessing the related data is easy. You could just write a LINQ expression that joins `Orders` and `Products` database tables to get the data with a single database query. It would be easier to implement and executed with a good performance. + +On the other hand, it becomes harder to perform operations or get reports those requires to access data of multiple modules in a modular system. Remember the *Implementing Integration Services* section; We couldn't access the product data inside the Ordering module (`IOrderingDbContext` only defines a `DbSet`), so we needed to create an integration services just to get names of products. This approach is harder to implement and less performant (yet it is acceptable if you don't show too many orders on the UI or if you properly implement a caching layer), but it gives freedom to the Products module about its internal database or application logic changes. For example, you can decide to move product data to another physical database, or even to another database management system (DBMS) without effecting the other modules. + +### A Solution Option + +If you want to perform a single database query that spans database tables of multiple modules in a modular system, you have still some options. One option can be creating a reporting module that has access to all of the entities (or database tables). However, when you do that, you accept the following limitations: + +* When you make changes in a module's database structure, you should also update your reporting code. That is reasonable, but you should be informed by all module developers in such a case. +* You can not change DBMS of a module easily. For example, if you decide to use MongoDB for your Products module while the Ordering module still uses SQL Server, performing such a JOIN operation would not be possible. Even moving Products module to another SQL Server database in another physical server can break your reporting logic. + +If these are not problems for you, or you can handle when they become problems, you can create reporting modules or aggregator modules that works with multiple modules' data. + +In the next section, we will use the main application's codebase to implement such a JOIN operation to keep the tutorial short. However, you already learned how to create new modules, so you can create a new module and develop your JOIN logic inside that new module if you want. + +### The Implementation + +In this section, we will create an application service in the main application's .NET solution. That application service will perform a LINQ operation on the `Product` and `Order` entities. + +#### Defining the Reporting Service Interface + +We will define the `IOrderReportingAppService` interface in the `ModularCrm.Application.Contracts` project of the main application's .NET solution. + +##### Adding `ModularCrm.Ordering.Contracts` Package Reference + +As the first step, we should to add a reference of the `ModularCrm.Ordering.Contracts` package (of the `ModularCrm.Ordering` module) since we will reuse the `OrderState` enum which is defined in that package. + +Open the ABP Studio's *Solution Explorer* panel, right-click the `ModularCrm.Application.Contracts` package and select the *Add Package Reference* command: + +![abp-studio-add-package-reference-5](images/abp-studio-add-package-reference-5.png) + +Select the *Imported modules* tab, find and check the `ModularCrm.Ordering.Contracts` package and click the OK button: + +![abp-studio-add-package-reference-dialog-4](images/abp-studio-add-package-reference-dialog-4.png) + +The package reference is added and now we can use the types in the `ModularCrm.Ordering.Contracts` package. + +##### Defining the `IOrderReportingAppService` Interface + +Open the main `ModularCrm` .NET solution in your IDE, find the `ModularCrm.Application.Contracts` project, create an `Orders` folder and add an `IOrderReportingAppService` interface inside it. Here the definition of that interface: + +````csharp +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace ModularCrm.Orders +{ + public interface IOrderReportingAppService : IApplicationService + { + Task> GetLatestOrders(); + } +} +```` + +We have a single method, `GetLatestOrders`, that will return a list of the latest orders. We should also define the `OrderReportDto` class that is returned by that method. Create the following class in the same `Orders` folder: + +````csharp +using System; +using ModularCrm.Ordering.Contracts.Enums; + +namespace ModularCrm.Orders +{ + public class OrderReportDto + { + // Order data + public Guid OrderId { get; set; } + public string CustomerName { get; set; } + public OrderState State { get; set; } + + // Product data + public Guid ProductId { get; set; } + public Guid ProductName { get; set; } + } +} +```` + +`OrderReportDto` contains data from both of `Order` and `Product` entities. We could use the `OrderState` since we have a reference to the package which defines that enum. + +After adding these files, the final folder structure should be like that: + +![visual-studio-order-reporting-app-service](images/visual-studio-order-reporting-app-service.png) + +##### Implementing the `OrderReportingAppService` Class + +s