diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module-dialog.png new file mode 100644 index 0000000000..05f79fc12e Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module-dialog.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png new file mode 100644 index 0000000000..47322aa3dc Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-modular-crm-with-two-modules.png b/docs/en/tutorials/modular-crm/images/abp-studio-modular-crm-with-two-modules.png new file mode 100644 index 0000000000..e1d9334a30 Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-modular-crm-with-two-modules.png differ diff --git a/docs/en/tutorials/modular-crm/images/file-system-odering-module-initial-folder.png b/docs/en/tutorials/modular-crm/images/file-system-odering-module-initial-folder.png new file mode 100644 index 0000000000..5abefe1bad Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/file-system-odering-module-initial-folder.png differ diff --git a/docs/en/tutorials/modular-crm/part-04.md b/docs/en/tutorials/modular-crm/part-04.md index a05479dfe7..2edf89b7a0 100644 --- a/docs/en/tutorials/modular-crm/part-04.md +++ b/docs/en/tutorials/modular-crm/part-04.md @@ -16,10 +16,35 @@ In this part, you will build a new module for placing orders and install it to the main CRM application. -## Creating The Module +## Creating an Empty Module We have used the *DDD Module* template for the Product module. We will use the *Empty Module* template for the Ordering module in this part. Right-click the `modules` folder on the *Solution Explorer* panel, and select the *Add* -> *New Module* -> *Empty Module* command: -TODO \ No newline at end of file +![abp-studio-add-new-empty-module](images/abp-studio-add-new-empty-module.png) + +That command opens a dialog to define the properties of the new module: + +![abp-studio-add-new-empty-module-dialog](images/abp-studio-add-new-empty-module-dialog.png) + +Set `ModularCrm.Ordering` as the *Module name*, leave the *Output folder* as is and click the *Create* button. It will create the new `ModularCrm.Ordering` module under the `modules` folder in the *Solution Explorer*: + +![abp-studio-modular-crm-with-two-modules](images/abp-studio-modular-crm-with-two-modules.png) + +Since we've created an empty module, it is really empty. If you open the `modules/modularcrm.ordering` in your file system, you can see the initial files: + +![file-system-odering-module-initial-folder](images/file-system-odering-module-initial-folder.png) + +## Creating the Module Packages + +In this section, we will create packages under the Ordering module. The Products module was well layered based on Domain Driven Design principles. This time, we will keep the things very simple and will only create two packaged for the Ordering module: + +* `ModularCrm.Ordering`: Contains all the module code without any layering. It will contains entities, database access code, services, controllers, UI pages and whatever we need to implement the *Ordering* module. +* `ModularCrm.Ordering.Contracts`: Contains the services and objects we want to share with other modules. `ModularCrm.Ordering` uses (and implements) this package. + +> If your modules are relatively small, easy to maintain, they will only be used by your main application and you don't care about layering, you can create such a simple module structure. + +### Creating the `ModularCrm.Ordering.Contracts` Package + +s \ No newline at end of file