From ad485912961657a336fef9e69d9791a1bd41a04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 25 Jun 2025 15:54:47 +0300 Subject: [PATCH] Revised the document for ABP Studio 1.0.2 --- ...g-module-expanded-in-solution-explorer.png | Bin 0 -> 6030 bytes ...er-modular-crm-initial-with-modules-v2.png | Bin 0 -> 11194 bytes docs/en/tutorials/modular-crm/part-01.md | 21 ++++++++++-------- 3 files changed, 12 insertions(+), 9 deletions(-) create mode 100644 docs/en/tutorials/modular-crm/images/abp-studio-catalog-module-expanded-in-solution-explorer.png create mode 100644 docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-initial-with-modules-v2.png diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-catalog-module-expanded-in-solution-explorer.png b/docs/en/tutorials/modular-crm/images/abp-studio-catalog-module-expanded-in-solution-explorer.png new file mode 100644 index 0000000000000000000000000000000000000000..d93e93da4c5df917524955c2dc361f4e081c391e GIT binary patch literal 6030 zcmb_g1yCGamu)04z~B%dAy|+=aF-w<0|fWr!4ez>cMnd2yAKdx&=6b(2ol^01Q|5A zOMsv|`Kore{;l1rt=jE+{i^$Q_w9at?>YC}7pbNqhmZRR7XSc!`PUE)06+twjw3vdbhor!wNO5&>UPMX1FOhA<*TA>} z6;4dZiEE9$v3e4t9sSBchQsqL4UfZ5|J#S|0j&p7f#P6tQm$%n3JiqC*dgy6Dc`d| zNDpf4Btk1_YY!)!wXOPna6h*vWV?^hx#NOsu}KjXN|NT(1DNA-+&n}f05euFQAf8F z5qcUWNE#r;cnNBK;UL#Mx#(6}7_`K0B;c~ML|LW5inZo$g-OM_CS;byW=+&jb~u!o z;#Iugxu4=B#u>cTaruez#)7ri^m_{d-$AX%apvbWcSFqaplaoh!IGl)GLNWHqxOTP zn82f+z%_33qW)hz$w72a-`f>ygyY)E@P=O1bh*xbo%x7nvaaL}Wlj=MT>GQ^0bAX5 zfD9Q+u7DFdN6hTp)<8ZUaXhPJ~T3*ju-fhh> zpY8obC2VJFx`pDgvssp8KwDFjoVO9C?U($J!^~3aF(~(y4~+wQQE7NA>MR$ zO#=TQytT!X+2p6YI@9Th!AX`%Uttn&t7~O;s$as$iTdgIp@Zi4pDmX>@Dzuvt)RBg zR2C4^hf@A)AQEl7iLXDUatRy%)MfA2wKMMPleS9A@q6MOt70P?J7H5XUpyk};Ylqm zK5yQneE7R{1seHE2RM;0D_9}|H5Iz7H)h_SoteW<}G_q4TVu#ZS zkQ!#`pLi{ktSI-38`$s5aVWDo?D1BgpP9|3M+{E#@gDF$YTx*F;>Nr0v+TaO$dzQe z*>0(Z2DFOL(#wR;K%9(knY$kXQu@imgJr3Kk%)#=FC&d@vH(HEUhd2e?5V)H-MFDe zA1)rp>h;CJo9{o++RZeIII^bB;p?|4}p)|Ls}6MK3{tPU_U+H)`MJ=abcU3=3Q5T{ZD$Du#Dc& zIQ(cU1Ys6_Nu^j-A?7GLuuj_(IgTBxqmli#7^4=i5nIFTh6xB{TSh@!{Qtq6Um;=UKDP9THSHcw5|ZCCAr-GT=01_sK=fP@4@cM zPi(rMuiU@?ou4-mW5^jB8#_8MpaHe8u=w8FJGg%GG6PK4oVU?66s4RRGPtIAx+_Lg z6{qfZh#Dc}d!EvpDoZgHXO={3-i`B!6Dz=3J6{7uCjF{D!S_EHg}2>5R%yUXM-T`m z_#4fOmqrssfiB5x+UpGxnVi!v#*%~#!4{CB`VuV;YtxUyFQIn+S>~SlnF^n6(Hw_L`c&aKw^d`lQjv5+FtwAE&^No04ypsS)kt!Sk#~l~)6$6LfqW4@fg0t!pFcS# z<{Bu%V7Us_y6kQQ)w<>Jvh9v7OhHR$Zt`8(=bYi&wY|?5tPd5Ig_w>qzaG>QKex)O zJZex>U`>V+$7&EjnQOZSA=r1T!WR33vizX`wVKkkMYZoOYR5fB_;8{&t)b(F4 z6uYzH%qrEm=qDKKE<$mO8lSV@Ru~PsiL+bbQ5&5`L4W7|6u=!|(@*YpAYlMA<*1n+ zxIR)F-i%82qp_F&b%|-~8EdP@oVosFF&L$i1GE6K)M2namGy13-J z8|oqJ>KXh=RlMfV2LR3Q$yr<9x%p{|v6S6pk+?NQT)f%|EYRgL)mT+IJwOMfJbWCS zogci6#o`nfYAr2QP4lk0R; zd?}5}3pJ*YFZ_$ji!-(1{j7d-w%^m~dkj#v+cwwhrByH5CB%P>4nJZ~t%Oluiy}7R z`nLWP7e7RQuQizsE%}x$xtB>o2TRKx4)Zm@_3yQFbVUrrA;L<<*}5V=l<`Av{!9{X za!9@(Z-`qZyHlPYN4!<~j4v}~)hxQRYmdhYe0df;DDf3qkvZXPL-8}b1|5b{73{O) zd$%jLNM-|#W~-O%T$D#cGo2S@TN_X47psd>#^mvE&6|qi9A4RDw8yGQ`ZM-@&arq! zERew&0Np&6^1+2|j7?eYMV26aovOs#RE{LuTYax;@E7Y6IaoOuTrN6FgzrNW(E?X% z|K#3R#&tFA09ErPeZx=`%zACa9z=GfU z^h#Q00D&UA9q^G4k6$!yRCS7*-|ydX_J;(WJTO-}G(nNe-RQ9FZ_D^I|3eN>Xw%h* z4_VBal+!&L+z>{WOfc;CWd0M+T=Q%$tcO%Jn)xy>7VRzBcVA-qcD>TJ=-129Kwy!c zRv9NWMZCYZl@N>U)vAqAl*7`hNr`z2kF0^vHDB%JU9pU>$iTW)JlV4_EC87wyudq+ zu85S8p!m426}86wG-zqcqd(8P?vGMpKT689>s?VqeOua4eyoY#7dMtZpFenU^`&vc z6{rSHQ^$G~6Cn4RHkiogHtB4p1}m90t*=D%W4Qj2Q2}#NbeR8xyfQJP1EDE_G3mMe z+cZS!s`?WbE@hd2p#g3ZgPz-hT~vj}TXcO^1;x-drgmo6w~{ccRn@dhor0dM@Dr8v zxQnB^0I;PnWlPv&1o2Jn1BOwNf-Fi3PQ#K3?rvUS5_@WZoXT zIiT|J8m`kR(p5I^RsHJ3G95qjOMu0N#&rsH)^NGJ$)X-jH%Gai3DwlpghCGw+pZ5r zCGV$TO|2V`fSXzMnS`6lU*Cmdb>eO^#u9E0KE!wfaWlV&KjgWrn4tC}%G+WMK|w(< z)>=5Nzvtx()4dBcUIH zMnb#ZDdi~4&d)bAG!z#WmK!vvgm1`3i=bM9F=_Yg^+Ar8rg(9}%rC@?9_P7c&w?Im zAa3C`B_p~h1*%CDH42Y1NWQLYR6h+bGfN*xjGLClOV3Xu##cC(Ib*W5*aqj@Qb*=J$1K6t93U zAQ9_lE_joByRNhT?@pyL0;gSr`cA|(D_$NnIW$oV8rQ6o)bTmOcmhMAkdiTuF167*7o1$I?%xh_a2M$bPaf>T&6TU zmB#)*iKX$F#{PpX0waUyFvlW^UV^r^Goh{wkQ~md zx;^S_5V1HKstW-`iAi3vbgDZtP^WWq5Zz}scT>$i2viBtmtyI3dRX+pbin|dPwty7 zOx)$Lj}t&yK;7-ZK&?Qzaue-5`o^H9*dUg#iE2DT#~i%Y=bX963F>Mh=S&Gedt|CsYH*BZ;y> za`TanYNm4|?SVdVq))TDz&O5xg{x(OMk2fbuHSh%T&nKva$lOgbdWn*YRj%#Sm%HP zmU0W$XKwdb5az}&KiiZhcWw_M@9Trd%T6mkneN!hg?;!;+~<7pfXSVU(1fp|ET%Gs z^=T$0{QE~d3eKCeN!6z|8g-7DqQB)DCYNZjB`cgv z<}3#Y;HWe|Su4{jEp>rHFKNYZq0$!Ut{4+amPwa1I1Z@kPxW{DeJ>5#zvwv{-K`%++l|CvQ9;sBuXV@3-X#owVe9}OD8dCGAp32Z!zZaT_`#)>vjxsqR5i7 zSo_ufzFk;_c9n%~Y@Ae>{5@TbAk7Ioa%GL&o0~_~;=n{61APk;feNUe-3^GahAH2c z=+9`YA5uKLyH)8&WFwB1_x*#`*5T+CyJph|gDeu3QY_N03{!0Wg(@LkWapQEXlq*( z=)m>*0z*#bni{+cJ_JU&l;?L%Hp&d8?K91xy~qMj2JS+GW?u14GOd|}n14Q8SReH` zsjS5PTv{C)wS-C2q4CM_kF_^`9%(fMzO%LA%VAdQ*FWkf#RSW>C$=vjU-qEkPxn~? z=E23c*{xlE@e7hL&(oC27+PmvlHnmnGu+dy_|QU(-I)X;6gb9ZpxK~smc7VT@SiH` z+Ta{c6f~s$u(Cn9yjzfx;yhCNV5 z3kTKxMQ|KQlz8U=^6VB-UR!u*eA_oPA6DSF_mV~W@7rpg$#)Ht+zlsy53tAkMQ$>g zZoK7ZOXqFa4gOkmi-&uGKz(Dq&7W72ZbSTl} z*Hx*Gm4sfhH%!jwpo;W6v_U#AbI1wu8zFDT$9*3#(n8aZM}J72kf2KuM}Umbc)GgL zm$fSqi*8tvfGfihh-_16p!*=F$#?s;4w z5V2_v(lZ7D-%~!$Y@3*DcBc^n6V&^wKM;e8QAS@{ii17+s7i-8;1Tu>CH$=YtfKb2 zB)C9YIE`S^l`nU3;Jz*%CCh#OngC6@XDSLb|EjKdTXF zc^0%yJ2WAvk}X!QMP|On=VMY9zr@G}jYq~Y=IEMws)R5?$RDhpjvqpoOYRv+q0#nt4s(zSe2Ky1;i^THc{S`_z-inF^o!BVg_f3yn@| zx|p;yQ{;ERQ##aC zm^dLXV>Fwb%q!%_=Ho!=0`!ioPvKRSI#G`YM&z*fPbBY~0e`2hR_6I68-%0FX@t?b$CjsV{aq_#Z-?{EkQ-~@a;+l7`>ER28_x0u zI~V^d+B`L15gTQt^v*ythr^aAb*@Xl2(ff^%)f>l&$2{{0|-sr@AQ*ONZ+JPdrCG6^7$-(83V;E(hMj-w~*35lWDkWB4m3!7;0lbu{3BS zRwppYg(3nliU=x8YxWFvW%mp0^;m_fYe|7TL36RHw+4K-=>N<;3B^K$sI;FA>g|d= zO8+OI9I3NFx#Ir}%A?i>Ts;_k&nXkT)x?Oe{`|o=ax4GWGJnf&-t^zg{58mHAq+3t zi*LkY#5Q9)khK4GMK7!p;>x${Z;WZ?#PPxfHA7Ki8}h0GQdm$0!oz!YJ!jK=BEgOZ zIV*pyq#=o7Ggk&`KbB7NTx#e-%a3*b;V_0ap?S%xlBz%E$T62QTX|3(>B?4qfJ(?H f?*G{l9rqYGQBCWvs&uxfiWrcWQGrxSn*{$G#tVp_ literal 0 HcmV?d00001 diff --git a/docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-initial-with-modules-v2.png b/docs/en/tutorials/modular-crm/images/solution-explorer-modular-crm-initial-with-modules-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..5286cf118eb90fa0fd72764c92ffb686c92e2b42 GIT binary patch literal 11194 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 literal 0 HcmV?d00001 diff --git a/docs/en/tutorials/modular-crm/part-01.md b/docs/en/tutorials/modular-crm/part-01.md index 7b2a650f58..c3dfb50f22 100644 --- a/docs/en/tutorials/modular-crm/part-01.md +++ b/docs/en/tutorials/modular-crm/part-01.md @@ -42,23 +42,26 @@ The *Standard Module* template is suggested for building modular monolith applic The initial solution structure should be like the following in ABP Studio's *[Solution Explorer](../../studio/solution-explorer.md)*: -![solution-explorer-modular-crm-initial-with-modules](images/solution-explorer-modular-crm-initial-with-modules.png) +![solution-explorer-modular-crm-initial-with-modules](images/solution-explorer-modular-crm-initial-with-modules-v2.png) -Initially, you see a `ModularCrm` solution, a `ModularCrm` module under that solution (our main single layer application), and a `modules` folder that contains the `ModularCrm.Catalog` module and its sub .NET projects. +Initially, you see a `ModularCrm` solution with two solution folders: -> An ABP Studio module is typically a .NET solution and an ABP Studio solution is an umbrella concept for multiple .NET Solutions (see the [concepts](../../studio/concepts.md) document for more). +* `main`: That folder contains the `ModularCrm` ABP Studio Module, which is the main executable web application of the solution. +* `modules`: A folder to place your modules. It contains the `ModularCrm.Catalog` module initially. -The `ModularCrm` module is the core of your application, built as a single-layer ASP.NET Core Web application. On the other hand, the `ModularCrm.Catalog` module consist of four packages (.NET projects) and used to implement the catalog module's functionality. +> An **ABP Studio Module** is typically a separate .NET solution. On the other hand, an **ABP Studio Solution** is an umbrella concept for multiple .NET Solutions (see the [concepts](../../studio/concepts.md) document for details). ## Catalog Module's Packages -Here are the .NET projects (ABP Studio packages) of the Catalog module: +If you expand it, you can see the .NET projects (ABP Studio Packages) of the `ModularCrm.Catalog` module: + +![abp-studio-catalog-module-expanded-in-solution-explorer](images/abp-studio-catalog-module-expanded-in-solution-explorer.png) - `ModularCrm.Catalog`: The main module project that contains your [entities](../../framework/architecture/domain-driven-design/entities.md), [application service](../../framework/architecture/domain-driven-design/application-services.md) implementations and other business objects -- `ModularCrm.Catalog.Contracts`: Basically contains [application service](../../framework/architecture/domain-driven-design/application-services.md) interfaces and [DTOs](../../framework/architecture/domain-driven-design/data-transfer-objects.md) -- `ModularCrm.Catalog.Tests`: Unit and integration tests (if you selected the _Include Tests_ option) -- `ModularCrm.Catalog.UI`: Contains user interface pages components for the module +- `ModularCrm.Catalog.Contracts`: Basically contains [application service](../../framework/architecture/domain-driven-design/application-services.md) interfaces and [DTOs](../../framework/architecture/domain-driven-design/data-transfer-objects.md). These interfaces then can be used by client modules for integration purposes or by the user interface to perform use cases related to that module +- `ModularCrm.Catalog.Tests`: Unit and integration tests (if you selected the _Include Tests_ option) for that module +- `ModularCrm.Catalog.UI`: Contains user interface pages and components for the module ## Summary -You've created the initial single layer monolith modular solution with a Catalog module included. In the next part, you will learn how install the Catalog module to the main application. +You've created the initial single layer monolith modular solution with a Catalog module included. In the [next part](part-02.md), you will learn how install the Catalog module to the main application.