From 03ba3563eca75931b5b5456e00c3ced64f890133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 3 Jun 2019 12:12:03 +0300 Subject: [PATCH] Updated Getting-Started-AspNetCore-MVC-Template document based on the new template structure. --- ...Getting-Started-AspNetCore-MVC-Template.md | 75 ++++++++++++------ docs/en/Tutorials/AspNetCore-Mvc/Part-I.md | 2 +- .../images/bookstore-user-management-v2.png | Bin 0 -> 18879 bytes docs/en/images/bookstore-user-management.png | Bin 19157 -> 0 bytes .../bookstore-visual-studio-solution-v2.png | Bin 8946 -> 0 bytes .../bookstore-visual-studio-solution-v3.png | Bin 0 -> 12919 bytes .../bookstore-visual-studio-solution.png | Bin 7369 -> 0 bytes docs/en/images/db-migrator-app.png | Bin 0 -> 11903 bytes 8 files changed, 52 insertions(+), 25 deletions(-) create mode 100644 docs/en/images/bookstore-user-management-v2.png delete mode 100644 docs/en/images/bookstore-user-management.png delete mode 100644 docs/en/images/bookstore-visual-studio-solution-v2.png create mode 100644 docs/en/images/bookstore-visual-studio-solution-v3.png delete mode 100644 docs/en/images/bookstore-visual-studio-solution.png create mode 100644 docs/en/images/db-migrator-app.png diff --git a/docs/en/Getting-Started-AspNetCore-MVC-Template.md b/docs/en/Getting-Started-AspNetCore-MVC-Template.md index cb24eb543f..152452cccb 100644 --- a/docs/en/Getting-Started-AspNetCore-MVC-Template.md +++ b/docs/en/Getting-Started-AspNetCore-MVC-Template.md @@ -2,39 +2,44 @@ This tutorials explains how to create a new ASP.NET Core MVC web application using the startup template, configure and run it. -### Creating a new project +### Creating a New Project -Go to [the template creation page](https://abp.io/Templates), enter a project name and create your project as shown below: +This tutorial uses **ABP CLI** to create a new project. See the [Get Started](https://abp.io/get-started) page for other options. -![bookstore-create--template](images/bookstore-create-template.png) +Install the ABP CLI using a command line window, if you've not installed before: -When you click the *create* button, a new Visual Studio solution is created and downloaded with the name you have provided. +````bash +dotnet tool install -g Volo.Abp.Cli +```` -#### Pre Requirements +Use `abp new` command in an empty folder to create your project: -The downloaded project requires; +```` +abp new Acme.BookStore +```` -* [Visual Studio 2017 (v15.7.0+)](https://visualstudio.microsoft.com/tr/downloads/) -* [.NET Core 2.1.1+](https://www.microsoft.com/net/download/dotnet-core/) +> You can use different level of namespaces; e.g. BookStore, Acme.BookStore or Acme.Retail.BookStore. -### The Solution Structure +`new` command creates a **layered MVC application** with **Entity Framework Core** as the database provider. However, it has additional options. See the [CLI documentation](CLI.md) for all available options. -Extract the zip file downloaded and open in **Visual Studio 2017 (15.9.0+)**: +#### Pre Requirements -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v2.png) +The created solution requires; -The solution has a layered structure (based on Domain Driven Design) where; +* [Visual Studio 2017 (v15.9.0+)](https://visualstudio.microsoft.com/tr/downloads/) +* [.NET Core 2.2+](https://www.microsoft.com/net/download/dotnet-core/) -* ``.Domain`` is the domain layer. -* ``.Application`` is the application layer. -* ``.Web`` is the presentation layer. -* ``.EntityFrameworkCore`` is the EF Core integration package. +### The Solution Structure + +Open the solution in **Visual Studio**: + +![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v3.png) -EF Core database migrations are separated to a project named `.EntityFrameworkCore.DbMigrations`. +The solution has a layered structure (based on [Domain Driven Design](Domain-Driven-Design.md)) and contains unit & integration test projects properly configured to work with **EF Core** & **SQLite in-memory** database. -The solution also contains unit & integration test projects properly configured to work with **EF Core** & **SQLite in-memory** database. +> See [MVC application template document](Startup-Templates/Mvc.md) to understand the solution structure in details. -### Creating the Database +### Database Connection String Check the **connection string** in the `appsettings.json` file under the `.Web` project: @@ -46,9 +51,29 @@ Check the **connection string** in the `appsettings.json` file under the `.Web` } ```` -The solution is configured to use **Entity Framework Core** with **MS SQL Server**. EF Core supports [various](https://docs.microsoft.com/en-us/ef/core/providers/) database providers, so you can use another DBMS if you want. +The solution is configured to use **Entity Framework Core** with **MS SQL Server**. EF Core supports [various](https://docs.microsoft.com/en-us/ef/core/providers/) database providers, so you can use another DBMS if you want. Change the connection string if you need. + +### Create Database & Apply Database Migrations + +You have two options to create the database. -Right click to the `.Web` project and select **Set as StartUp Project**: +#### Using the DbMigrator Application + +The solution contains a console application (named `Acme.BookStore.DbMigrator` in this sample) that can create database, apply migrations and seed initial data. It is useful on development as well as on production environment. + +> `.DbMigrator` project has its own `appsettings.json`. So, if you have changed the connection string above, you should also change this one. + +Right click to the `.DbMigrator` project and select **Set as StartUp Project**: + +![set-as-startup-project](images/set-as-startup-project.png) + +Hit F5 (or Ctrl+F5) to run the application. It will have an output like shown below: + +![set-as-startup-project](images/db-migrator-app.png) + +#### Using EF Core Update-Database Command + +Ef Core has `Update-Database` command which creates database if necessary and applies pending migrations. Right click to the `.Web` project and select **Set as StartUp Project**: ![set-as-startup-project](images/set-as-startup-project.png) @@ -58,17 +83,19 @@ Open the **Package Manager Console**, select `.EntityFrameworkCore.DbMigrations` This will create a new database based on the configured connection string. +> Using the `.Migrator` tool is the suggested way, because it also seeds the initial data to be able to properly run the web application. + ### Running the Application -You can now run the application which will open the **home** page: +Ensure that the `.Web` project is the startup project. Run the application which will open the **home** page in your browser: ![bookstore-homepage](images/bookstore-homepage.png) Click the **Login** button, enter `admin` as the username and `1q2w3E*` as the password to login to the application. -The startup template includes the **identity management** module. Once you login, the Identity management menu will be available where you can manage **roles**, **users** and their **permissions**. +The startup template includes the **identity management** and **tenant management** modules. Once you login, the Administration menu will be available where you can manage **tenants**, **roles**, **users** and their **permissions**. User management page is shown below: -![bookstore-user-management](images/bookstore-user-management.png) +![bookstore-user-management](images/bookstore-user-management-v2.png) ### What's Next? diff --git a/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md b/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md index ecc302c34d..c30657ddd4 100644 --- a/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md +++ b/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md @@ -20,7 +20,7 @@ Go to the [startup template page](https://abp.io/Templates) and download a new p This is the how the layered solution structure looks after it's created from the startup template: -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v2.png) +![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v3.png) ### Create the Book Entity diff --git a/docs/en/images/bookstore-user-management-v2.png b/docs/en/images/bookstore-user-management-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..dd95740754fdac92a96c3c1c6d55d90c25fa57e8 GIT binary patch literal 18879 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/bookstore-user-management.png b/docs/en/images/bookstore-user-management.png deleted file mode 100644 index bc3c176557bc97715e0dd0f9640a78ec8a485bd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19157 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 diff --git a/docs/en/images/bookstore-visual-studio-solution-v2.png b/docs/en/images/bookstore-visual-studio-solution-v2.png deleted file mode 100644 index 48b5881e96d7d55d8ac5a292183c6236a07e9f05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8946 zcmbW7by!qi_vjBe0)liYInvS~AOeyC(nAd0-7O&u42YzJB8`Of5K4DQcQ*(~H_|2W zJAU8ad++bQ&%OWL{hVjdKIiP&XPxz|z1LcweZpYMvbfk3*Z=_F%DsN21^{SAV7mqj z9jyC)d1(Ux6p(u*q2ZOf_r>3ta>ILrHeCL7iY9|j6@yj-VS+h?V|6xZGi0v&Z2oJP zSzYN|iL+UsGF#p|ZZg8b>?4O*Huph;R>IN#z3G*w;fj(6HJ`rBKIaKKVRu+*g9s;t zl{_91)T8#%ioxQH(BKxrjJ;MdY&T|HV{a}8Nz7y zTDtG#gb#`ps8MR)L@iEW9uPQ#CPBcPNKF8F^6sBz-%mV|lVK@QC8`&$3{Wcqh>rNu z^xr<^@zkpjhnSc~jHE2?6(`)R<6qfA;CNS=l~w=;CNB9oz`ai+C(VAtm(K))q*pT zrF6w%sx%nMt~A?-1O56=hMYqdE*bPa{^g$C57bQZ@-=x1cPZf=$v3|D!{QT=)Q^lM zdWUW!L$~oHTpD^j))^9Y4bcVEynpu4OIll_8ANE!;GYevyg8?vf?gx%9jxXmSi+Wdg?FKH{vc z%g#;R!Wej@COlHVCN(oVj@pBJO3rsPJj&RFScyl*K>D31Vd*eD;? zG;3=~NWUF!XJIS-ghJWY@=L!C$Uxa9_jTIP1j(fEJU|L5n~#ifs)G&E)*hWWE?m6NX5qkcVEZx(Pp6OecHDW-&L=_7e;>+ zXAmo^sJEUX`6lG^XwY0r1SHbV<6>Ya&&c;GU)0>|a4U=1@9pxta&=kayTZ!KiF6Cr z_z^L>D+l8SEdBIDny%m)nMHFgVUrcnt`nF2ciwXxpTfTz>u>2As@0&LxF?dEem3E@ z*C_j7x6$Rja|C)yc;rKNhaz@HIQ=ifmB6+qBE>XXc%-k4l5h7gM8|cps5PvEuQo7#PJ_+V;H>mvdnwaIi#NUtv`o*0tDw9V${6SS|O+ zO}ZmkP)OMd4Y?vXCQnNqU0%_WGhseckw?w7sxQzlUqy*eYSJdDtjw#(9?Ln>nb^9B z(DZDh3fAz#x~h9;{5F3`<+Y>F>3cc(71j87ucuO2xg5Ow_tf@m-<;=T;rJRxJbvdJ zt>-SNv23F|!ckkXw*K%(EUJ5M;iQR*dMG(hjsK6NWdPZ8Le$t2@VU@M|HJncs28aQ~$e>seaR3ZNexKImkdjDeU5ko`z1K+uXjD@s= zU_1elWnue3i7BQlC*{74-_M>4A&7b#)p9cRNrUmt4L;EP_~mhkk-sx%s^t1TaE*Fb znIERA34``4^sIB)G8JI#(x~A~CEX8%Dp1X5g+Z|%_v2v&#{Aet{=1p^1Q>U-UcF(Y~oSg*1tM^L`o@oeC@x_()_#cV92%}E09lRZ#Tn+LVDux z&FOWPSe?K#i^hhVV3dKw&jAi#{y{EhTcymWISF>l=&7$of8+ecQ8@xv{ zlOUo)^w00MTGwFcum&0R5o2c%^tEwK6!pnC_p@iuJexLk#YwNPKAT2oqcn70vAi3a zq3@=W7{tTP3qJ0;qnRhCc3M1)v`BaKEH1J`gYTkMyb3w`)QW3jD<1PAh`Zd{a@=|6 zYRHG`=J)4>?-88QOhB|7CPW8Iu>4)FjnDbMgO{Ysj=^~ayC-SdAM5R@DZlfQ>i5_j z8Ll=rM@rxuhPYWusA?E2!UVO?3Zl;VPvYF1>c2S4d7qwL--i1tPO)KfS0b5q{U*2; zLE+UQ&F_5Hm)loULPV4|r!QLiS9>ajG2S_lOT-vUATS{k-AkP8U~TLnP7w6a^6!QJ zY$_UWbG?@|*_kYkoQTZ+bE_!hw@Dt!9{_#b2#Kdo^F8XJz5N}6%N&}H;Ltiw<+|0O;gqHn*GV>jMXWDwc&YFgcyKumSZu%DIYH<3>KULYTg03tE%ifab<;$0X zg4!%3fxOzZ$%(A4`YxK)rio%p9ETlVV{`3%JQN`nhh|GJS8~&&jc+lD2tb3nG5RHN zw^JC(4hz)xd_+Uz$Scw9?LAepSz@62g6m!j__O2hRM7z0Z2@pP54wg}H9WCW=i0X| zzh-NT38-|KN<>qw^Fh1m7`u0e7Z(>517nVl7IW0Nn!GlD|LTvgubx(yDu!gPF&fj8 zkhi3iJ}WUOHdK@5v(N2Q6x!taNINE@}p7TWczB<|xwUVfkJTmZ&@<2`G+l zE&HGmZsA=k|M0c+`2Z&|&fbEq#o*a$&`+_DyQ*+bYQm17XBXY*^h*cqSJ&6)yED%O z1-&kh*52;i8nE*J`FY^s?hdrfR@&jy4g$yPRB^&rBPdrlLtr6w};3AK}RZG`Y_+ENeehu7Vu?ox?yI1-j)CL2vYq1xq( zya%}D_y@LP6Bt$;Up+m;LM59w7%*bCPa?uXTy5#dgrxMT6`2Z}<=tjJ=fC(L|X$v7J%GZVgL0s zH+swpd)BKo6}?Q}rd4N3+jCQH>$wQHxa+6;allHSC_h!IAwdU_?d3#lGbPlZBm0(w zs&6hNRABGxgS(3F{`^)U$6AE#@`gL|ht#~nXjdcsA7q+Y{}Me;G_+hQ6ZVLTii(D2 z|KPwW<7!`)7I8JVIC=gdP0WAcd|HBrkmOi0Q%54ez9h_t(5i?8h1#(d1D9G(t&il` zKmi3Q@rAP#XMOE9GZYka7Fs&|{s;^MLUzunYae6r3iHKM081ZbX=iRWv-}UqeLVKU zm92@F+;pF8l&vfMeAK)>rF+j+4Kyt(`0GV_Yi~It)$BT{$+*0*0`{q{zwZ{L^CT9- z&7LD-(szMx<0QzuJ*3bP4Gn;Oun7jeNgq?`@Q6N~yBH4V;ChbvZjA1;U;R4gtaJJ#!vS^=!pCbYBe>n`hM1ipP zc&N%+j0=*!QS_h}gO7x{1@5T*-nv6{Y9P6{M^`)Fo~KgK6<{Jnao-Qg3!rU^N#`= z?+Yj0z61o+sVHEK2OkY7W#d{nRJ;y>OiH1?62i`HdbsgtVF$??w2}__87809-U*8n zn)_8`di2#7;;2%x3OcY*Y6RgXc*=dUNER_uD?qzn#e*j=!r{8ELD|b=?%eRoA-|;} zv%98`&%2{N6K(B#7?DauQtf2$EXTnlCf+2iV}^i6+bj$Y1`i_O7^dh86fl;EkhH-(mRuYS=gK9Hu!M4d4Byb=~v@O-PZmB0S&9aC2vk)JlNH16dcFGov4Ul zlvy&ehwpM6DM?0uoQ1pgh+iALbqqeD1hu}4dXmHxh(S`OA@0BeF1Y`#j+^^n;!qmurDg3^j&+=6+R8JgD5#ycoXbo&g}E0w zM?P*POJyc|BhF6j9)XK1U!ED)2Qc7Kc+(n>&(Rle)5rKVTmyk-b=5Dkrq5&Fkf3WA zn8r!VQ-D|Y#8 zt-F>^I6Lp{@m}#`V$+x~-j`?!P8_=E*MsQ3c2a09j^3V??e9u(PnRP?goK3L9r6w8 zzfRum5A@Openl3z13*k{tYTKV0YSNll)S_aC`n;8Hp5=XnJ^Vh}Rk1WbKqhsez*`G)1-L2$w=`8yhJ&X*{JdV|-LN#h5`^Hn-H4;sq?{SHMe!m31$WGAPA#Ltlw5*P^Y zt|I9%K77K?=%)w2IZ0uZ*oTtJ!?jI}Vy%WK&|sINm~z7#Vu}!SWh@d7EJ2~SCp@BF z4cY$+;O2is{yU8O9}ykc543iOfQQ#n4|B>#zss2^SN=P1y%^&1D@8qTPgkj-!H+a< zC9}V&2u|x!VX8(dCR*Bf7o~fEvrqhdm7Xw=_cL(mh^;I8T%0&d2HyPfn>5UW6&&{t z6bU?l>A)Dg2lmAfDm-Da_@hu`(7DMrp@kk8$AHuCCPQFcsmI)BGwkiyoSLR2?BO0ZZf*IqfQ8K*JM5O0HxlLQ=}I0pW%=J=v*LS|pfi z3G6p^lbCz_F2K!+5Z3nB-kgP9HQ^gjV*5r?g9%pYzI9QCc(Hc|v;OSpN0+{Q(7K;P znJjzAUKDi%&8lnBiRwFGuh18V6?~<=OgIuMY`>oH1gy9|jHIWsl@T(vO4_uZS}J7o zc1M}`BQ9{h#V34*Rgb-NXwcTlI9DK3UlY+|#tohV{j(|@?cznU4ybEesW(4NCxTrs zTR)LX+OT=EbXLTFUy$esmXy?Y#$}wK=FQVfPNe&Q=Nmkw^?BFPf7ZsWA96z*~48Gzv%K6g;fHs{~^i;JcX9C;io-}uq_I2{I(yZa{_1K=#a@{KXcr4pf&5ELj>a@v^;@wA zD2Frxyg099%@YdclzxCV*m25|gaYsH-m+J8*-8s1gdrr?K(kSRFIo9;Hu1gFD& zTd9G2$&V})q;R0ypc&P?n}r<*h|sZ^G}$%%1T_35^u-zwoRUT^E%7X1sHhD2Of zUz;gGvDCN%2H0;e+0q;RR~#gC3R7^u15*Oef*6TgY_Ia{<8eSuy?ZFgS^3tT`utOJ^ifHRQ$Zg{Q1pM&*Sfb z<(UX#@yj)Xy+*){nJWrol%y;a%k`%T)Mvf&Wg|W<#c`S`NjkTHX9!+AKhzL$Izh?A z@lWZC=diOW$lq*=u3sq~aNzcq3yj-cpP0+pnz_p`da8_G&jd)lHKg>p3%^wp5zM_K zoGar6c9^m@zM)r~E_ma#ocxu#wSPMM($zs2NEM2XZiFfa_TznPLJ$If7(#y@IbO>Y zap+a~HrUU&^~N1EzQ{@Vv*Dw8d-{@X?$>N2W%{_ISKD^TRLgYf;;pB(m1oIY`?mTl ztJ9;wvBNi4iKe^LJws{Q2%)ADPghHOB|R>n<%2u+w2}h=fEuA{SjtC_-S7}O=6o?? zuYL2I0;#V4_10DI0C%t^u`BA!pCZ0JU27sA)1BiKfN5y&q63bsTKJNpB6Uf%!UFU; zG?uO@_Wi(t*m-FE8r3?F4x<@t=3#VUo8jM^L))({$7LF76sUDv%!TvR0G?H7`a*w# zpP7=9?KkY41jIEi@JNtRqxolDZqJdYUpH?U&5hNg8Y{1?55q_&TYlUgrT8CD?fCzh z>tUM$mX;Hy?zPBHiRs*pe!IifMbky?2@X32fBTX+c@TrYSQwoytkN}gs+=}g+B{s= zY+NsxN3&=&?P8CS5&8aH_blDlgUER7%1Quep_X0Qd3!41cQrqq{H80tCJR*=H$*%A zmcFTkoD%_8VYzzav#r>7+Ztu|tWo$m?ay^J>(b)$OQpYR6FJ`Bq%;$b8UVx(1_ve| z8i`md@?_g*rc!iITBa$H>z+l2@uxPcr9!mF{P5>X?TA}eClVIZ(X1ECGR^uZkUfQW z*oHq34BRHLW|QCCh1wA)1S8AaZYZ6uJIN>U%!d>W8kI!?@^RxPt%)0%w*F8@UN|#VFf(aJ{JoUnf#WY=Q%c+Hd17@dD*k@I zeC9L_m^U61BVwFBcnPO@+a5RZ7t+lA-tPlo8}7R40a`=ouN9kpT`d;}tA-7JN8Mq# zPXdbQMWq8s05H~g>w`Iu@U_z0?Gm4L6o?2 zSNCjGm^}2o%tTK?*WE@f&oNu{p8dBM+AMPrq(8#H)3(1a*?(g(@e}ZNsv@Zk7f~`Y zX~!uRW}IVGUv?@FQ(lcy0^+RmFvrb9v%;tY{mVZA3s%vU2N6y`t*8>c1#ZsNt$TuK3=GMV~5k%s5|JZH{Fhz3yM;d*jH%(1R>hS%xI+Ro6=>Z7YuyQ`#n59w&C7lA5j^xg9W)6HZp+zuhL?8E6CFkJS4X zZjPF-2k%nQkzyjQG{9$tDJGhohVsVKoCL#Urvn1>urk=V(Z0cA(*eHYUDke-MRA{K zt>4YY%H7%SH&MaEg^9~E9Eo^N97bU%R@tz)f!zPfbGX4Pl9rRryq2N#`XD%ID# z*^%TDJ!KUc&8t_?QR2bQtVDbQ^Ac!3d-7xc`MTR<8d))sxZPjLps-uU z1d~8a_#=s$Pid~+)2WR(T<@SR&!V=FXjN9dx#_Il_9ZD1h#JbCs=ASN@e0;{SU_COM7do+FS&vmr7opohO59a$lAm7!I7{Pb8spOLFDqoLa zSote^#sg8|e*M%$-{Y9B2h^0biAf^09$m)Y_vo;Q*#DJ^*5Kg$KNC_M$C{jun{umg3rHT>!Kx2By`?sFnWiZY319BQ@L?cX>;P_lx1{_TOAhSAQ>Rj^xmPP0Tl2hK0Zq)2j&% zrCS!Q&(6;eX3DLcoqr##^-ai9OJQ91S@gwIi`=%7*Lk3~fE5kcF0*JtJS(}63@?-* z&MIn`j~9mk0E;9x1P&k57f?Qi=A%%#FQgywi2l}$UlZZ4 zjlW`d53UhPR8;eiTmNgf7f!!s2{XsF9{b{>gxI1JWhNNZXWTn7DLe?B&)E>p>5;lqfqwjt zXazugHp#I-*N?-44J3-aut8C3xv3TFiSLT(&Ed<76SyXbR?dfUD~#o0FGLbf>pL0pANb(bR{z^tA zJg$iQ<)1Ra_3aJfWOC-Y`rW77<>;#u{{nxx<~L^p=}m~5oSgU&S5CWy@yJ6v!Iaoj zyTlC6wfhn=;U`Mj@d+oS(kNlbOsb#RWV=TEj+s6-8qiu4Blpf*FIL)4)G68Rtt2mq z$Ev~bfu)mAs!t)@B366Tx`Z`x5`_Xmry6NGb-~$U$7=&gll&)SSOJmL@mxmxpf{ez z#3T1RU-+?-lXA2I0O-YkzXjkTP!aa}^WMMtFo3kW}S;9y+cq(CLj+9 z6L8GDb)^3%Vf3C_15-dh4Z;uf>sl$D|KAKWA7za9`)Pd6eJnTqY3H8x<~Eh+sEbTg zIjN*cT&5e1Bn30~X~L9||4%DhaK>HWIL@E}Y14-Z&6kT-{-=dTTU_9F8WU8M1gU}z zEdgPNH9J4hay3+RE_&7Of792=PLDPE@VFVL(EphB-09XVnpjs?cbCg)zJ{ld<_Q)$ zvhEXBU`@c)e{P4}!R7wqLLHD~{EMEV@Q%rFbSUMOrw8Cwdfr9BJ`;|~OEh_mlEyO< zQ^B@O60g+oXYbHjeziTm7W>v)N1|5Rgdlxmx;L^KahUtf%8fj>Y0GW?Q@Zu6e{OVn z6@0Uvvd?F>D`F6r+V7#RaOD8jg;yDGViWWj$5v`$2z@Ged%LuX*2ep3`?2wEa+Slb z3;`_&R@PwNgw|4VSs81Ln_=!DA4=O_$vt=@{IhD}i?eztT`*NgGMN}i2`?%#^Y>#o z%Xn4M1tfV8`Y!s5GY-4yOp~Ws1Qr3NN($)X!MZ`Su+GtUAndMtiY%dtInwnW3DBPk zk<@ta!!lWM0m2^42yx0@?YA*L;rd2u=j1X+mvrCJ*VLxcQhixpWonNtV^(I`v*S6i za0kO&&>j|Qc(SlzO@6(nV_Ts61iK?SUI>JARy?4@?_jrqfmEL*Rb?4G910u|2!tmm3swh#?wJ9vMA*Q9+Z3D~h zI*rA~t$00OV#=jMp`M4annGEFD-7UjRv~i-n}^y#HU*s@II-W`p)qcfmWhZ=oIs>j zY8j@;pG>^Ri*I- zs9=LYO--x+p|dddcTRzPl9!Vx>Udd# z**1F9rkB@cc;A@?*;z|CbAMRkLB%Ezmqr;ui`8*Fj1^y`mYKjgmOH5$me}kyR9j_u zRv??bPZXus<70l;mimQ@(T}``Lt&DB7*XCBc+};)yjOzP@7k`deg?H6u&LFuNQT+(-59(dRguwHAP`*SMy&sI=TdkV5`?eE?iKf@76=D zrx$_IUCl{Hx$%a!;y71dYF8cRdYH9s>%7+-p(FZ4Uv0e{xA1xf3~uH&2P~BB3%+sL zCR30N2G7CP?u!lT-dO)k>|x#r&|)+^$Yo4a3ddb<-|Gwt;$|WN!)<2)k z4#W}u4sSfs?;(X2rqXcQ$QeY;LYoQSRYhBPyv77G z>Nc6X*iN-CNsQ6B&?Ki7Z5}hbPpDgZx{UBS3G+NUTK0o_^5~zHGbV=OpCV3)QkGSQP*J|}#jqYAJb@c3fY)XlJl8h3kG_v*tN5RNJP9{~3oze$ z^v_VlUU8SgWW!v$P^1h{Ek?70xs^_juX@^UI@;0GN9KIc+Zk$+`IAY5fUXWdsP;C6j9S!`u9 zU7LpD)|0#111akk{YYCe?Rb>YMUuV&^Tmmv#LG3Pn3VIXE7rT#r;v%e#o;yI9(;G5 zY6|9^ly^ZiGaf~p7p;@0WAH(dx>zpZ^U+V}4UuDa*ZF2qG%_PJl&7t73Qx1i>#CZk z{&D)VyD?SYO}@~!hG8W73DR%+;6}tne{MFOSu?hdjnwcaylej|f^v4!yU1>1_}AN+y`iM3REm`Y$8y1mL(;X?=ML7#Zv@t6B;H>vw^80Os2o?| z!*A#v42}eMuTRHRZZbZQW_GR)^xsa8+;Tg)9J1=KkX3JM&h?C8p@UBZr(e--BWJ@# zd|aLSL-a#&CaTid$`BF?;IBeHKfQ5`Xj~8;pDMX6uKNhsQS*C6w7YC&wCOY>tc_0d z=l&_bw(M(73N;cCDBkzQW@7|fyFCN>uJcqsJ`8lD6BGmS!X9yWDwt@4J!ITZ#7fD0 zYmnNzch!d_#Q*iYx?W3xFV+Y7x{ek(Yr0mWyH*oF*Zg^)smpz%_&uWvgEc<o_ z0(CSiHDC|9O2-v%OB{*3F>X!%P8#JRAo7&`vOh_v$8u$v!ldU@*Sbxa;M18rI!p_g z>-;nan_UiCvP9teufu^}#$VT7l-=y-q?l6qu|17ixS`Ktr zuh!NzlJC+m8+nylw_G<@cQ$yG*=b%?LGHa~bdLm!bZhB{dt_0{(dkwEdhbdMpHHfX zZ4ngJOMTh#YH3)1?N|Y9)C!4AIvQP~9{W^vx45^;gm>nGf7e}Xp>67k&6#EFl63OM zMb%yRG+rjt>bk8I&(-_wOvbTc!BAUWa)`x=7|YOhHah&w$%Doe^M2a;C7^=^znkqJ zL`fmIl?W8vMMMi3>65Z&zLX#?eEs{woy1C-x*ysf{LX~VU5B!{dTEQTnkbd8*-50~ zmf=?F8kX0uH{j9eW;2GWQ9+G6V{Ns4XD(^1vm!L>x0^^b7=nk3*ql*QtNj=ZWECQe z_PC{&=R4^reE-|fcH-9;6!^{L-PJX}k2fy+K6Rg7fWgPDOZr@o z3g+ZeyZV%IOSUv9VTbDj0=Hs>IT5ru(-%K|CS4FKY6m4HaFc7`Zhad%gjI9p{5HT0V1if?t-C}?~k{pwPK-#}f8{>j?1dwy* z6J~MYI{k>V!L!+wmus+i{w`zo5h4cq zENAs%mEQ3e78D*beW_Rm3B37@@R%wg zbrb28a|W>`V5Vu5PZ}Ev(Hwa?a~EUZt3Xe`3VkZ`T494{yy(KoVlALAIUAsP7vsS( ztNrxQc)CjeXZ-X%Pg!uPlKKg--s)(EF`RHnIwLNvhHG(fC%@N^_F$I@CBWnw+?03h zA)ohZ)wrkz!ps)w zNw^Z3sc1kZgg4e1rw-jYMMdMf!^}MLb-pWy5d>B=buvhcNl^(>(Aj3s=Dq~eN7Dm~ zXYdP*R4(cz6q0%fW;m07A>P3MC`f)bQ<%AZ6cusb|0-NKRRE%4qmoN(iE}>*&9~XP zl$TX^QP9CwHbEjO*-Lffd=APdARvDD^T$+;{q1^oq+tLL_$G(y$?EhDnpl*-V8CSW%W`~CEFAWb(F_GnSqogIu zHv*3d)!ucfKC7B_7U(YfaKc`WC-sJn+t0-C?*67x(|7l_=qR6?kN+sw4qb%A*;dvV zKDo8tjYSeUu(}KM3pdef@2gWF)S=Hf<*=GB`Z$sWWw;C*E8i`&0THGm|80WWGgO`? zUVSkSLP%jpSTG+nBWWfV zR2o)8<~+Ur35L)Hy3e)+CuSjedKX!aGbz}4zU7siaH+M9jgb+7>y)u^N?1_eE5@Nr z*wCYQIQPeyzZ!+=evMX0`x%`RG~!AsX)W8N!=hr!@;l40(O*{QxfpAm4FkQp`plMx zWwL+)+0#yM-|E59VwLv{%CXP=Hsc=A(<>*Z0IQ=vf5b6+#i81i;>_BA{Lz}GUm0D7 z$Nqb-gKp;ZufuxzR4*L%TYNubkPzyBlHZgbVbrIQWBI{BFQ>jB&&e`e#wSz+O&sy| z4Z6?*77ZyAz53(H7>vyulSCTZY_J_=IC>E@j_Q}+W9l6uFLQROOJ8H2DAAg7PY{!xHEwB%&L4=wpaw#FLSE% zDjYNzhdt`Z8fZ7>LA0asEzTPHZ#Os@W15?Bt1wUy>3axmcfu@@Hoc<AH6;q|bSNp($+`uOCs9`H5$)^)a(xo(ha$oR@NhL%}myKEApxo3k@ zPl$?Ng?C+gx*p!YKGn|K1moy>7NX;_Ay?70jiMWRGQiquI~YoFJ`FuzMAjd4)`7oW zRs~sl(b?g=f8!=gEr=f|gd-6D+)eR}BKJv+b%@uCoZ1u}Lvk30g6)A_%wT7vs@~(p zWGLGs-E>u)$Qkqthr(K~<($EU6*td}g5*nXS~XuN8`*i4`7qq<8zcfR_p_ML+2^b* z+Comx-iNf0g{n)QX1?T>-?yIl2>s53f~fO7rx{Wx7=RLM#+opI@wum_%vePxZ9HCL z4*0ad`5Qh$alhV2L4fejBhf&mXm|X9q{ss6-!SG6@U*}&fXu)+J{10h#}XAr>&}%> zkL|b@+qPEn+e0smk;9)Z~*dz?D4^=!M+TW=*J=P1zY@9wDdc zZ7u)m2b#kB)?>NQo&fG6M=eV^Pa-cJ@L!Jw{VP5zAHv?Uz(b3ce=Fopgfui2W{~=Z zV8J*<_~((oq~GB=PH2p44CfB32bvpy3q=b1e_}~@#MQ*yw_Z`FgcVP3w+H^1Ff^&$ z%N&k2`8?sEqDxyK#27ddXg8!BNa$DN_}y8AG{JHnS+0r; zM|t*FKpzx+Ky{)%e^F?@_>&eRF_C{5-hV0}7ze-?_N~h_&|w_ukBp|1a)3xZs@g=d zeu)m#&j|5_et%}w4`dW~-@1Qk`d z#fLhx_Ra$x~HW;_q=-wOW^UH$VgzEE7? z?A5QDTyg@_6QJ+__cPN}%y9++|xwh%Mzk&rTegouK zqZC;1KN@_)PNtH9Rxjjz|H)3fm#MHXv9A@W9!Jnb#}$TWOehE@VAAlI9u#*9?^IAK9b1i;@Zp=NN5fL(wUXdgcxU+ z3EF*N(f5@7TmAicWD=02CZm!EJx(uNbl=XB2Qw+PhL$PvERIU8`YqcmvN9|fi|U{l z*RP(hwnv)+OuLT##|dv!1;(H9%?T7f(W?n6We?Qgwh!yV90{nDw875B8nZ;GRX8R+ zp%Y3j$C0n)E2P!5StZ$NBA%4|N^S8oSgbpV_2+A$W3ws(6a-kVJi9#P7Ev`1dayU% zL3jy*IU2PmH~NEU9^aj>aPFqP5RU^k#!aWtlnI@j=k`&iirIc9aHt0r(BD70B0TJd zSGm7G26$H?)Y`}>@&Mr}1eDW~tPaB?LjF(&5)lQn^Fm4S6!kVQ^r%p@PK+P$*eU<+ zgI(~uTIp|}o}QlRlZXt@g4ZJQpDU+&Sy|tBCSOv&3HEzeo__HxPWu7Nracjpn|PIu zu%dwq-yNZI=>aPu&!-uB0yTcADnz9RIOWw`euT2cQyg2z`iVwo4H6|+b{mT02sjE= zOVY@xy^~>17iNzUjb79jIGCJ|>L!RwHU)ahhLK8taZbMO8;^S^h_=-LJV%^yVOn=& zfl5%Gp$n_RL~NAo?Zs*(IZ^y)aRuN)FTS0s9?FK$;^&rv zk0)7thxTw_N63&ZCEC84TFU$z3aGb?+Y>IlN}E3eElvAX3tW2NnlOq5+k0YPwR81F z*>;hxMBHL-X>*G?>yh;QIer`=fC^}^;=;^n7zfL6lxn5cZHZ|`9jyYu(UtSO!;I?z zth%dTc?CFtoaBadS(wF|!+cpkcfDD@U-$;e27NdPZjyOFOOc%jnFwkgdfF7Rm!UJ_ zBmpuN5jjM^YYY3<7wgDj%BiRf2SmZ3W<{>}_gy*{jh_ruP73fPk@d04X#!BxIrzm? zy!~(z`X8_dP6QrtJ?6M`wRsQBu%onZKqt&zxGBJ+s~8ze zkoT3I*f!v@TV20V>XBVKFTU=VxrY>bwD!fUXz*H`U^-B>z|JXIlqwh z`n-iP5jD-A&xGsW8fOSppqa`^OZCUWeEv4@ zsgW%dK94!e*#T|t0VN9Z7Xbh^AV~(HUIOhjTY&b=W1}FvzO^j9EWvHdMc_8AOc-Q0-lwie{O6>VIKz9R>>Wa=7{{z#|Zh(_w(Nh1&^A~8m4^a^QJtPJ1 z6Ybu>pvi4TWxHol^J>2HLaphtL2p`o(AsT&_dDJ&!`v=dxwCHG+S>87L=9e=11zfV!;KnS?1P?ld z%3{d8$<>kzpbTLw6NndmO` z2D|)z(u)ZI1}lcxpw{pRG{fT$Ooj}ciG*TiV}e*||AvtNl^CESv>jm_Bk2oj0QGmA zco2}WT*xzzWPNa6HSKu(52Mz}aMnmpfIqO_H^Kx6<+FLDF&o7UVSf^qG0C)I3jl5V z*0Fu?Sf7o;f}ko6W6=r;itxl)YJFHs<)3<6Ikwi**=Sh!P0HCz%ikmt&0+L>24Iqi zI1XO%%PR6d{eD}u$DUeZA8&R)CSn5g3#ia#WHe9_nWW>cZNsF!FIa)j;N%Mpl|Qq7 z^7dz0t8*#yTD9_M8Lh)R+qFFo0lGrfq+00l)eXow) zQaJP=%zemWfdKmb71PskC*xjC+ioVBJoN8dmr7fUN{D)Cvk;Epz^Ydq7gc`MUpBqi zZsj|j;nj;VxCB>@cDPZdDqn`ZH+jMhO&ANvkKk7^GU_-_x(VY7t=lW1lx`8SL*tof z^C1HR)&=D$vJ8;+cGHnu<}GI?=DQ!bVQNZB??jikR>L6aqO4pV3;Dw;9PT<4?e#&C z9@H0=G8H}G&IpzRNYLj*TJ@wU5``3GHY~lS<}RWBq-+)(giDZkMz~~Bi2dSs zc9%K4kE(F2)(qEBIEjfKR*(_F{8f`xf!Kz$YQev`bF>)qCfIZ~mnc22 z^J!Yu5F{G%q(r;~`#A5o;0@d^E~#8|51BR(Pp;GR(|^}d^Db~<5TaT=CYjjL_@1pk z&012L!Q_H)_?r>31eKi){x zKX5Ut=QTR_I1z*V8OG#NIq{C{GjO|qU|93Zkat8em8?sLg-TjW`JEh*^Ia7otfj!T z4W0;&Dw1sHBJwk9i1oVt{e;4`HOb;n-2F8wJrzWqq*}&~tlw`r1+apj)pBH?Jc!6YoQK1r<-3qQDM;8}S{2_Ql zO^!wl%cNK|&!W2t(*>&v=d~qizL?i8SIDXL%60DG%cE#k3+}eP~Q0ZYj^)xg=$;f55g79f-!Rayag@pGA2W})tM+A@sq7vIdJ?c$1!JuNW`G> zl4^2>L0|(;g1xmr{~0{DMV)%Fn(~oG4NJ}t-^Lt&zWzvd^wR6%{OHYH{6;jOYva#Z(I7DlSopT`!eZ>;Al`PAzPOd|9YfV#VZ zuAQw9``1ZKIrg-`XQ$3FPHsc3Z>x95bC8JhV}9hj>q$Te6`lL)R^NU`qnGr#_maPL6w0nwzC7bPX9hnW<4{=TZ0tKfY2C|B6k$Ss><{`$IHexTaa zxsh7zK8V-%$m`qJsE#O~CueRa7c%xN-*|u~5}LOBw>r~%kYrNPDR&j+9udA;#G@rIj`8eG?grpv%N=;hW;+4U{|aZAnZ>`me7kP0BfMKhgi zLuJn}UMFj%a;en|K8j@*K?nU()VmBF45_zwnO!TBV!eJnl0JQkoVymBBftYaqm5k$ z7`!Hvu07^|hq^y9TaLPR1U~*vkfRE!i5_H*Bhf_$gj;+Z6O_+~qJoN^O%tTSE-AYr zX}L;jms)(ir(bO@rD-->h>ejPQ*6xUqD3y5o)MbFF>7Dv`1!35sRON8o}}!7?z8HQ zgWo0CjAb;T583WXT!q%XU+Y{d1K`X#{@}L?GTCS5Y<{paTqUXI;lpi54t8+;xpR_m z_9xBi$he!XFaEMlFPP+WQWqo{CZw8tnSz7-WHlM0z4!wz{#Xg6w;h&(ih!B$9E)X` zLC=b9eK5o3+zavk>U8J8t!O>CyBRAmXniFR$_q1>d55dE+0g{}0I@zSNup6X(eaJ^ z`zad)* zhgqCmImWP-s;cQm}pAAvwUPQNfC?yse*{yml-UB3e{uBZ`|DOjJab~xOOTz zExv_kGJuLNWj^hx4Ls@!e=R$eU&Hb!D(IUmph@t3^C`-a&EQg!&yw;UD}Ed?V25`< zE7~=`ADf#W@$}UKEL%A*e4KbHhDBOaL=Gza`w0pA0cEWKLoaO~@MzVYe}q(z=XHVo z?kp-z8GoVnxF{$oY2B9>cBX24j)!Enb2tGqy>xi-eeZTLxdA2(w%@%R+q^>D9SiI5 z2fQKt9xxb~bK8?ux(}g z(pN<_>c4Dog=2qCeQ7tWLJq~G=S5FdBJY7%F4KDB5miIuYpzc z38(qya?4tH*JEi7(dcyWn9!ikZ6iGW)=8<$AkgzQypGBK%iSnAq{?JtV@WE7sefsiE(C&cgi!E0zr|A<$RSNM)u8=MEp!L+`*%C7G+t|R}S-|w$M8HLzU7PkV zR<_Q&yS*wNmkH%F2tRxe1$Yv6b5P)Z>7Z-k|k3 zf4Mv=NLJ1TzQuSw%=|j+3e7gNKtFv|Hih-=gE0;|FgQg(h!7%`qL#Pxx@WR6EVDoiE0yh_jSbBph8N?-C-G&xgepDYpbW# z_hUyxa}}yZqtyfS!O`DzJ!#X2I4f-8DgKL@QFIY_!lhkx-Nhp|`8s%7fC5Vw!7lU_ zn^Aa@`Mg&*;20ff`tE#9#TIVtDZ9AfM%DxTF)=#uH`9w7#Q+VWEaXP*&?g&()zILQ z%mu}Sug;JmNuCb-;E`-P_TLoAPxX70QcoD?DgWhZ1oeLk(sn7TU9;}L#vp7uxJ1ml z9zmyFkOrG@H=4%#RJ7_XF}NQ|fF25X$l&9HD_T#)<@P>7$oD6p`KKghv+N>H=5s;F z5xqElau*j}ZQPcJARlHx<$IHV??2nR^3v0L48R1Je>daZDe~HMV>;nbHfGJ+6-}F6 z_IKr01c3UP6@r3v5^Wia@_t?L-g!MStv6^oMg!=e(){OD&fjEZB(VjgsL_zW5QmXd=Ub~%UT?{TJixBAM8u~XkO+_O0dXoYKihjECF77Wx&` zqp!2efFPJk=?w;xm+1F>1q}K!e-*sKY-!v51PSH{xeuC=7vH&(`DdS>S8b1`K)<_v zYYOhCR(qQwd@(wXs@V+TbJT;-ealBECCp!p8g4vy5gYoeGT_-*-zHX%QaR9z9##=w zSU!8!RMAF>38bBW9m$IA&LEx1EMOVaNI z!EOdX@oh~@(N|C#+B@#2xXT3T9|4nk{=W&B^re7+*+dczT+2arCv!Q9Sb|D^Css*h z?d)@6G*x`gJ0sDoc=dFIQNb^fri%|HYIm3Wi@?~c$gJ{LKwpL;FxQI`(i?bXQKn-2 zMSouPQDl>MbnKLm`5E)r5MU~@-uo{l_V;!Q7%YAA_wV)ii?+{_$hy02FrQG6!qc{7 zJh<5Q0V@i!+r`?AZ2PLKBNabmn}a14rp`r*;(I5wkn|GatZ#O6eEB*3h;R(fZ$hdv z2JdiE6OV{PPL}7ipLQI=f@7C+ES_>0qLALsvtASEo;J6h@Q#{(R2K|8O*Vj||gROx0;!2KZwq%5KHs^i{-?S~P; zF4GgRK4(|`#4YZJ5Fy)cw)-Y8LKM*6e`my6h(%6y#hs!#>-#fLEZ8P70n?N;I5m~B z`Sv=MjLVQdt75Icpd1S9TWEo=YyvVFw#}VPhJtvQ3qK~_MXE4%0b-d=*MzNER~ZMp zJfjJRE@MhQzFOFN+vMmN0df#%_E%vRi|RBaXpcnx?iY_ zQ$*xTmx7sHQ4>e6WGNaRWZa6QjqR*vKy1{j@4(rLB*C=0H$G7Qz`8(o*w-HRzGt;> zD3pwg15)d-)X9v6c}jlU5dRt40|mzNOLPU}@Kjsk)#~y}|BDDSIZTeKfHws3txWN*Py`|9o@5bij-){6c9@zRdGL#1hjQh-@6mzwjTwA zPW_4qP5%|+CG$4gF;VilpUy0Xo+O8Cjg~{S7!ULVYa85b6|m#6@Tu7IAD|%0ne_sL zUO{gVanUPRyib(-VwYoe15*tmR@bYYegi61gyi#@?9yMgPU)Ybf=vfL;Y*gH`W%tA zC+eAU<~?5S`4529ik*&}gbi3PT=XA4r@V#em@OqNKk4_9KCjYjOrNU|+Tx5rNL zx1D|m8UNKz&r#oX{VzP9*Sr}7Qp6$!C6 z|G63fsudLt2i;W3v+6v%{WwFW2#RVY1udpIvV3CJ4){sGl06bP{q~oXtG(OK+mksR zn)(LAbJU>=YT2||4-mO&GV6C0m(9JLYziD*wE?hD<|khIiKg`$NaCv3O|EA^=+qHyE%{6$e+ zVDq_pXeRWnvQR^5kNG0n7!XeW4P>;6nbun+bd>@^Jqo3xp8HkFBCK@+8UuJ@_}6qg-VDxz9jtWAO-=f3L>5%w>U}Lw$VP^wQ>)0CzB7|Zgg!WqMTf+ z{4H>^JSG%mNiWB`pf*gWfeJvoWXO~o;OKFh_07bVhH>z@ zBdxMpEwdt|_z)~Wj!!Abm13ZqA`nFcP+^Z368;7k28J1nfD0_ycV4v|_4P6S6KH^J z_J-{%VOICpzg?7qx?k~y!2OQLzpVOu|HU8u{*PLnqduPJ@fjcOqdaJh?*HWo|A&J8 fXRKejMaTOz%f^>i*$@0f2}n*_8C)W1^y&Wq?=NBQ literal 0 HcmV?d00001 diff --git a/docs/en/images/bookstore-visual-studio-solution.png b/docs/en/images/bookstore-visual-studio-solution.png deleted file mode 100644 index b47636cd68b8b34478e44ccee1383de06bd5ba03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7369 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 loSXFtAwNF(wtRYlzi0RObyDdEz`%o)UZ~3