ๅฎ่ฃ
ๅ้
็ฝฎ Lino CLI
ๅผๅงไฝฟ็จ็็ฌฌไธๆญฅ Lino CLI ๅฐฑๆฏๅจๆจ็ๅผๅ็ฏๅขไธญๅฎ่ฃ
่ฏฅๅทฅๅ
ทใ
ๅฎๅๅธไธบ dotnet ๅ
จๅฑๅทฅๅ
ท๏ผ่ฟๆๅณ็ๅฎๅฐๅฏ็จไบๆจ่ฎก็ฎๆบไธ็ไปปไฝ.NET ้กน็ฎใ
ๅฎ่ฃ
ๅ่ฏท็กฎ่ฎคๅฝๅๆจกๆฟๆ้็.NET SDKๅฏ็จไธ็ป็ซฏๅฏไปฅ่ฟ่ก dotnet ๅนถไธ.NET ๅ
จๅฑๅทฅๅ
ท็ฎๅฝไฝไบ PATHใ
็ฌฌ1ๆญฅ๏ผๅฎ่ฃ
่ฆๅฎ่ฃ
๏ผๆๆดๆฐ๏ผLino CLI๏ผ่ฏทๅจ็ป็ซฏไธญ่ฟ่กไปฅไธๅฝไปค๏ผ
dotnet tool install --global Tolitech.Lino
้่ฆๆ็คบ๏ผ
- ๅฆๆๅทฒ็ปๅฎ่ฃ
ไบ็ๆฌ๏ผๅๅฏไปฅไฝฟ็จ
dotnet tool update --global Tolitech.Lino ๆดๆฐใ
- ้ช่ฏ.NET ๅ
จๅฑๅทฅๅ
ท็ฎๅฝๆฏๅฆไฝไบ
PATH ็ณป็ป็ๅฝไปค lino ๅ่ฝๆญฃๅธธใ
็ฌฌ2ๆญฅ๏ผ้
็ฝฎ่ฏญ่จ
ๅฎ่ฃ
ๅ๏ผๅปบ่ฎฎ้
็ฝฎ CLI ๅฐๅจๆถๆฏใๆ็คบๅๆฅๅฟไธญไฝฟ็จ็่ฏญ่จ๏ผๆๆๅ๏ผ๏ผ
lino preferences culture set
็ณป็ปไผ่ฆๆฑๆจไปๅฏ็จ่ฏญ่จไธญ่ฟ่ก้ๆฉใๆญค่ฎพ็ฝฎๅฏ็กฎไฟๆๆ่ฏดๆๅๆ็คบๅไปฅๆ้่ฏญ่จไธ่ดๆพ็คบใ
ๆญค้ฆ้้กนๆดๆนไบ CLI ๆฌๅฐๅๆถๆฏใๆ็คบๅๆๅฏผ๏ผๅฎไธไผ้ๅฝๅ้กน็ฎไธญ็ๆ็ๅฎไฝใๆๅกใๆจกๅๆไธๅกๆฏ่ฏญใ
็ฌฌไธๆญฅ๏ผ่ฎค่ฏไธๆณจๅ
่ฆ่ฎฟ้ฎๆๆ Lino ๅ่ฝ๏ผๅ
ๆฌ้ซ็บงๆจกๆฟใDocker ๅพๅๅๅธไปฅๅไธๅค้จๆๅก็้ๆ๏ผๆจๅฟ
้กป็ป่ฟ่บซไปฝ้ช่ฏใ
- ๅฆๆๆจ่ฟๆฒกๆๆณจๅ๏ผ่ฏทไฝฟ็จไปฅไธๅฝไปคๆณจๅ๏ผ
- ๅฆๆๆจๅทฒ็ปๆณจๅ๏ผ่ฏทไฝฟ็จไปฅไธๆนๅผ็ปๅฝ๏ผ
ไผๅ็ไปไน๏ผ CLI ๅจๆฌๅฐๅญๅจ่บซไปฝ้ช่ฏไปค็๏ผๅ
่ฎธๆจๆง่ก้่ฆ่ฎฟ้ฎๅไฟๆค่ตๆบ็ๅฝไปค๏ผ่ๆ ้ๆฏๆฌกไฝฟ็จๆถ้ฝ็ปๅฝใ
ไฟๆๆญคไปค็็็งๅฏๆง๏ผๅนถ้ฟๅ
ๅจไธๅ็ๅผๅไบบๅใCI ไปฃ็ๆๆบๅจไน้ดๅ
ฑไบซ็ธๅ็็จๆท้
็ฝฎๆไปถใ
็ฌฌๅๆญฅ๏ผ้ช่ฏ
่ฆ็กฎ่ฎคๅฎ่ฃ
ๅ่บซไปฝ้ช่ฏๆฏๅฆๆๅ๏ผ่ฏท่ฟ่ก๏ผ
ๅฆๆ่ฏฅๅฝไปค่ฟๅๅทฒๅฎ่ฃ
็็ๆฌ๏ผๅๆจๅฏไปฅๅผๅงไฝฟ็จ Lino CLI ๅจๆจ็้กน็ฎไธญใ
ๅๅปบ MyApp ้กน็ฎ
ๅจๆญคๆญฅ้ชคไธญ๏ผๆไปฌๅฐไฝฟ็จไปฅไธๅฝไปคๅๅปบ้กน็ฎ็ๅๅง็ปๆ Lino CLIใ
่ฏฅ้กน็ฎๅฐไฝไธบๆผ็คบๆๅกใๆจกๅใๅ็ซฏๅๆๆไบไปถ้ๆ็ๅๅปบ็ๅบ็กใ
Lino ้กน็ฎไธไป
ไป
ๆฏไธไธชๅ
ๅซ่งฃๅณๆนๆก็ๆไปถๅคน๏ผๅฎๅฎไนไบๆๅก่พน็ใๅ
ฑไบซๅบใAspire ไธปๆบใๅ็ซฏๆกๆถใๆต่ฏใๅ
็ฎก็ใๅๆๅจๅไธไธไธชๅฝไปค้็จ็้
็ฝฎ็็บฆๅฎใ
ๆญฅ้ชคไธ๏ผ่ฟ่กๅๅปบๅฝไปค
่ฆๅๅปบๆฐ้กน็ฎ๏ผ่ฏทๅจ็ป็ซฏไธญ่ฟ่กไปฅไธๅฝไปค๏ผ
CLI ๅฐ้ๆญฅๆๅฏผๆจ๏ผ่ฏข้ฎไปฅไธไฟกๆฏ๏ผ
- ้กน็ฎๅ็งฐ๏ผ ๆไปฌๅฐไฝฟ็จ
MyApp๏ผไฝๆจๅฏไปฅ้ๆฉไปปไฝๆจๅๆฌข็ๅ็งฐ๏ผ
- ้ๅ ๅ่ฝ๏ผ ไปฃ็ ๅๆๅจใๅๅธๅผ็ผๅญใๅผๆญฅไบไปถๆฏๆ็ญใ
็ฌฌ 2 ๆญฅ๏ผ้
็ฝฎๅบๆฌๅ่ฝ
ๅฏนไบ่ฟไธช้กน็ฎ๏ผๆไปฌๅปบ่ฎฎไปไธๅผๅงๅฐฑๅฏ็จไปฅไธๅ่ฝ๏ผ
- ไปฃ็ ๅๆๅจ๏ผ ็กฎไฟไปฃ็ ้ตๅพช่ฏๅฅฝๅฎ่ทตๅไธ่ด็ๆ ๅ๏ผ้ฒๆญขๅธธ่ง็ๅฎๆฝ้่ฏฏ๏ผ
- ๅๅธๅผ็ผๅญ๏ผ ๆ้ซๅคๆๅกๅบๆฏไธ็ๅบ็จๆง่ฝ๏ผ้ฟๅ
ไธๅฟ
่ฆ็ๆฐๆฎๅบๆฅ่ฏข๏ผ
- ๅผๆญฅ้ไฟก๏ผ ๅ
่ฎธไฝฟ็จไบไปถๅ้ๅ่ฟ่กๆๅกไน้ด็้ๆ๏ผ็กฎไฟๅฏๆฉๅฑๆงๅ่งฃ่ฆใ
ๅจๆญค้กน็ฎไธญๅฏ็จๆๆ่ฟไบ้้กน้ๅธธ้่ฆ๏ผๅ ไธบๆไปฌๅฐๅๅปบๅคไธช้่ฟ้ๆไบไปถ่ฟ่ก้ไฟก็ๆๅกใ
่ฟๅฐไฝฟๆจไบ่งฃๅฆไฝไฝฟ็จ Lino ๆๅปบๆจกๅๅๅๅๅธๅผ็ณป็ปใ
็ฌฌไธๆญฅ๏ผ็ๆ็ปๆ
ๆง่กๅฝไปคๅนถ้
็ฝฎ่ตๆบๅ๏ผCLIๅฐ็ๆๅๅง้กน็ฎ็ปๆใๅฎๅฐๅ
ๆฌ๏ผ
- ๆๅกๅๆจกๅๆไปถๅคน๏ผ
- ๅ็ซฏๆจกๆฟ๏ผๅฆๆ้็จ๏ผ๏ผ
- ๅๅง็ผๅญ่ฎพ็ฝฎใไบไปถๅ้ๆ๏ผ
- ๅๅค็ผ่ฏ็่งฃๅณๆนๆก (.slnx) ๅ้กน็ฎ (.csproj) ๆไปถใ
็ฐๅจไฝ ็้กน็ฎ ๆ็ๅบ็จ็จๅบ ๅทฒๅๅคๅฅฝๆฅๆถๆไปฌๅฐๅจไธไธๆญฅไธญ้
็ฝฎ็ๆๅกใๆจกๅใๅฎไฝๅๅ็ซฏใ
ๅจ็ปง็ปญไนๅ๏ผๆๅผ็ๆ็่งฃๅณๆนๆกๅนถ่ฟ่ก dotnet build ็กฎ่ฎคๅผ็จใๆบ็ๆๅจใๆจกๆฟใ้กน็ฎๆไปถๅๅๅง้
็ฝฎๆฏไธ่ด็ใ
ๆทปๅ Backoffice Web ๅบ็จ็จๅบ
ไธไธชๅฎๆด็็ณป็ป้ๅธธ้่ฆ่ณๅฐไธไธช Web ๅบ็จ็จๅบๆฅๆไฝๅใๅจๆฌๆๅไธญ๏ผ่ฏฅๅบ็จ็จๅบ็งฐไธบ Backoffice ไปฃ่กจ็ฎก็ๅใ็ป็ๆๆไฝ็จๆท็ๆงไบงๅใ็ฑปๅซใๅบๅญใ้ๅฎๅๅ
ถไป็ณป็ปไฟกๆฏ็ๅ
้จ็้ขใ
Web ๅบ็จ็จๅบไธไผๅไปฃๅๆๅกใๅฎๅ
ๅฝ่ง่งๅ
ฅๅฃ็นๆฅไฝฟ็จ APIใ่งฆๅๅฝไปคใๆฅ้
ๆฅ่ฏขๅนถๆพ็คบไธๆๅกไธญๅทฒๅปบๆจก็่งๅไธ่ด็ๅฑๅนใ
ๆญฅ้ชคไธ๏ผ่ฟ่กๅๅปบๅฝไปค
่ฆๅ้กน็ฎๆทปๅ ๆฐ็ Web ๅบ็จ็จๅบ๏ผ่ฏทไฝฟ็จ๏ผ
ไธบไบไพฟไบ่พๅ
ฅ๏ผไนๅฏไปฅไฝฟ็จๅซๅ lino webapp newใๆง่ก่ฟ็จไธญ๏ผ่ฏทไธบ Web ๅบ็จ็จๅบๆไพๆธ
ๆฐ็ๅ็งฐ๏ผๅจๆฌ็คบไพไธญ๏ผๆไปฌๅฐไฝฟ็จ Backofficeใ
lino web-app new --name Backoffice
็ฌฌ 2 ๆญฅ๏ผไบ่งฃ็ๆ็็ปๆ
ๆต็จ็ปๆๅ๏ผLino ไผๅจ src/WebApps/<WebAppName> ไธญๅๅปบ Web App ็ๅๅง็ปๆใๅฏนไบ Blazor ๅบ็จ็จๅบ๏ผ่ฏฅ็ปๆๅฏ่ฝๅ
ๆฌ server/client ้กน็ฎใๅ
ฑไบซ่ตๆบใๆฌๅฐๅๆไปถใ็จไบๆถ่ดน APIs ็ clients๏ผไปฅๅ็จๅ็ฑ lino page new ไฝฟ็จ็็บฆๅฎใ
- ้กต้ขใ็ปไปถใๅธๅฑใๆๅกๅๅบ็จ็จๅบ่ตๆบ็ๆไปถๅคน๏ผ
- ๆถ่ดน้กน็ฎๆๅกๆด้ฒ็ API ๆ้็ HTTP ๅฎขๆท็ซฏๅๅ็บฆ๏ผ
- ็ฝ็ปไฝ้ชไฝฟ็จ็ๆฌๅฐๅ่ตๆบๅๅๅงๆจกๆฟ๏ผ
- ๅฝๅบ็จ็จๅบ็ฑปๅ้่ฆ่ฟ็งๅ็ฆปๆถ๏ผๅฎขๆท็ซฏ/ๆๅกๅจ้กน็ฎ๏ผ
- ๅฐๅจ้กต้ข็ๆไธญ้็จ็่ทฏ็บฟใๅฏผ่ชๅ้ๆ็บฆๅฎ๏ผ
- ๅฝๅฐ่บซไปฝ้ช่ฏๅ่ฝๆทปๅ ๅฐ้กน็ฎไธญๆถ๏ผไธ่บซไปฝ้ช่ฏๅๆๆ็้ๆ็นใ
ๆญฅ้ชค 3๏ผไฝๆถๅจๆต็จไธญๅๅปบ Web ๅบ็จ็จๅบ
ๅฆๆไฝ ๅทฒ็ป็ฅ้็ณป็ปไผๆ Blazor ็้ข๏ผ่ฏทๅจๅๅปบ้กน็ฎไนๅๅฐฝๆฉๅๅปบ Web Appใ่ฟๆ ทๅ็ปญ็ๆ็ servicesใmodulesใentitiesใAPIs ๅ pages ๅฐฑไผไธๆถ่ดนๅฎไปฌ็ Web ๅบ็จ็จๅบไฟๆไธ่ดใ
่ฟไธชๆต็จ็นๅซๆ็จ๏ผๅ ไธบๅ็ปญๅๅปบ็ services ไนไผ็ๆ็ฑ Blazor ้กน็ฎๆถ่ดน็ๅผบ็ฑปๅ Api.Contracts ๅ Api.Client ้กน็ฎใไปไธๅผๅงๅฐฑๆ Web App๏ผๅฏไปฅๆดๅฎนๆ้ช่ฏๅฎๆด่ทฏๅพ๏ผdomainใAPIใcontractsใHttpClient ๅ้กต้ขใ
้่ฆๆ็คบ
- ๅๅฐๅฟ
้กป้่ฟ็ๆ็APIๆฅๆถ่ดนๆฐๆฎ๏ผๅจๆญฃ็กฎ็ๆๅกๅๆจกๅไธญ็ปดๆคไธๅก้ป่พใ
- ๅจๅ
ฌๅผ็ฎก็้กต้ขไนๅ๏ผ่ฏทๆฃๆฅ่บซไปฝ้ช่ฏใๆๆใ่ง่ฒใๆ้ๅ่ฎฟ้ฎ็ญ็ฅใ
- ๆจๅฏไปฅๅๅปบๅคไธช Web ๅบ็จ็จๅบ๏ผไพๅฆ
Backoffice ๅ
้จๅไธไธช Site ๅฝๅไผใๆ้ใ้จ็ฝฒๆ่่ดฃไธๅๆถ๏ผๅ
ฌๅผใ
- ้ฟๅ
ๅจๅไธไธช Web ๅบ็จ็จๅบไธญๆททๅๅ
ฌๅ
ฑๅ็ฎก็ๆต็จ๏ผๅ ไธบ่ฟไผๅฏผ่ดๅฎๅ
จใๅฏผ่ชใ้จ็ฝฒๆๅข้ๆๆๆๅๅพๅฐ้พใ
ๅๅปบ Web ๅบ็จ็จๅบๅ๏ผๆๅๅฏไปฅ็ปง็ปญ่ฎจ่ฎบๅฐๆไพๆญค็้ขๆไฝฟ็จ็ๆฐๆฎๅไธๅก่งๅ็ๆๅกๅๆจกๅใ
ๅๅปบๆๅกๅๆจกๅ
ๅจๆญคๆญฅ้ชคไธญ๏ผๆไปฌๅฐๆๅปบๆๆๅบ็จ็จๅบ็ๆๅกๅๆจกๅใ
็ฎๆ ๆฏๅๅปบไธไธชๆจกๅๅๅๅฏๆฉๅฑ็ๆถๆ๏ผๅ
่ฎธ็ณป็ป็ไธๅ้ขๅ๏ผไพๅฆไบงๅใ็ฑปๅซใๅบๅญใ้ๅฎๅๅชไฝ๏ผ็ฌ็ซๅๅฑ๏ผไฟๆๅ่ๅๅนถๆนไพฟ็ปดๆคใ
ๆๅกๅฎไน้จ็ฝฒๅๆไน
ๅ่พน็๏ผๆจกๅๅจๆจกๅๅๆๅกไธญ็ป็ปไธๅก้ขๅใๅจๅๅปบๆไปถไนๅ๏ผ่ฏไผฐๅ็ๅชไบ้จๅ้่ฆ่ชๅทฑ็ๆฐๆฎๅบใ็ฌ็ซ็ๆฌใ้ๆๅ่ฎฎๆๅ็ฌ็ๆๆๆใ
็ฌฌ 1 ๆญฅ๏ผๅฎไนๆๅก
ๆๅ๏ผๆไปฌๅฐๅๅปบไปฅไธๆๅก๏ผๆฏไธชๆๅก้ฝๆๆ็กฎๅฎไน็่่ดฃ๏ผ
- Catalog ๏ผๆจกๅๅ๏ผโโ่ด่ดฃ็ฎก็ไบงๅใ็ฑปๅซๅไปทๆ ผ๏ผ
- Sales โ ่ด่ดฃๅค็้ๅฎๅ่ฎขๅ๏ผ
- Stock โ ่ด่ดฃ็ฎก็ๅบๅญๅๅๅจ๏ผ
- Security โ ่ด่ดฃ่ฎค่ฏใๆๆๅ็จๆท็ฎก็ใ
่ฆๅๅปบ็คบไพไธญ็ services๏ผ่ฏทไธบๆฏไธช service ๆง่กไธไธชๅฝไปคใๅจ Catalog wizard ไธญ้ๆฉ modular architecture๏ผๅฏนไบๅ
ถไปๆๅก๏ผ้ๆฉ้ๅ็ฎๅ่พน็็ architectureใ
lino service new --name Catalog
lino service new --name Sales
lino service new --name Stock
lino service new --name Security
ๅฝไปคๆง่กๆ้ด๏ผCLI ไผ่ฆๆฑๆไพ๏ผ
- Service name: ไพๅฆ
Catalog๏ผ
- Display name and architectural style: ๅฏนไบ็ดงๅ่พน็้ๆฉ simple architecture๏ผๅฝ service ๆ็ฌ็ซไธๅ
่็ๅบๅๆถ้ๆฉ modular๏ผ
- Database: ้ๆฉๆ้ๅ้กน็ฎ็ๆๆฏ๏ผSQL ServerใPostgreSQL ็ญ๏ผ๏ผ
ๆญฅ้ชค 2๏ผๅจ services ๅ
ๅๅปบ modules
ๅนถ้ๆๆ services ้ฝ้่ฆ modularใๅจๆไปฌ็ project ไธญ๏ผๅชๆ Catalog service ไผๆ modules๏ผ็จไบๅ็ฆป merchandising ๅ pricing ็ญ่่ดฃใ
ๆไปฌไธบ Catalog service ๅฎไนไปฅไธ modules๏ผ
- Merchandising โ products ๅ categories ็ฎก็๏ผ
- Pricing โ pricesใpromotions ๅๅๆดๅๅฒ็ฎก็ใ
่ฆๅๅปบ Catalog ็ modules๏ผ่ฏทๆง่ก๏ผ
lino module new --service Catalog --name Merchandising
lino module new --service Catalog --name Pricing
ๆจๅฏไปฅๅจๆจกๅๅๆๅกไธญๅๅปบไปปๆๆฐ้็ๆจกๅ Catalogใ
ๆญคๅค๏ผๆ นๆฎๅคๆ็จๅบฆ๏ผๆไบๆจกๅๅฐๆฅๅฏ่ฝไผๆไธบ็ฌ็ซ็ๆๅกใ
่ฟ้ๆๅบ็ๅ็ฆปไป
็จไบๆๅญฆ็ฎ็๏ผๅนถไฝไธบๆจกๅๅ็ป็ป็็คบไพใ
ไธ่ฆๅชไฝฟ็จๆจกๅๆฅๅๅปบๆไปถๅคน๏ผๅฝๅฎไปฌไฟๆคๅ
ทๆ่ชๅทฑ็ๅฎไฝใ็จไพใAPIใ่ฟ็งปๅไบไปถ็ไธๅก้ขๅๆถ๏ผ่ฏทไฝฟ็จๅฎไปฌใ
ๆ็ป้กน็ฎ็ปๆ
ๅๅปบๆๅกๅๆจกๅๅ๏ผๆจ็่งฃๅณๆนๆกๅบๅ
ทๆ็ฑปไผผไบไปฅไธ็็ปๆ๏ผ
MyApp/
โโโ src/
โโโ Aspire/
โโโ Integrations/
โโโ Services/
โ โโโ Catalog/
โ โ โโโ Modules/
โ โ โ โโโ Merchandising/
โ โ โ โโโ Pricing/
โ โ โโโ MyApp.Catalog.Host
โ โ โโโ MyApp.Catalog.Infrastructure
โ โโโ Sales/
โ โโโ Security/
โ โโโ Shared/
โ โโโ Stock/
โโโ WebApps/
โโโ Backoffice/
โ โโโ Services/
โ โ โโโ Catalog/
โ โ โโโ Sales/
โ โ โโโ Security/
โ โ โโโ Stock/
โ โโโ MyApp.WebApp.Backoffice
โ โโโ MyApp.WebApp.Backoffice.Client
โโโ Shared/
โโโ MyApp.WebApp.Shared
โโโ tests/
โโโ Services/
โโโ Catalog/
โ โโโ Merchandising/
โ โโโ Pricing/
โโโ Sales/
โโโ Security/
โโโ Shared/
โโโ Stock/
็ปๆ่ฏดๆ๏ผ
Services/๏ผๅ
ๅซๆๆ็ณป็ปๆๅก๏ผๆฏไธชๆๅก้ฝๆ่ชๅทฑ็ไธๅก้ป่พใๅบ็ก่ฎพๆฝๅๆ็ฎก๏ผ
Modules/๏ผๆจกๅๅๆๅกไธญ็ๆไปถๅคน๏ผๅ
่ฎธๆจ็ป็ป็นๅฎๅ่ฝๅนถไฟๆไธ่ด็ไปฃ็ ๏ผ
WebApps/๏ผไธ็ณป็ป็ธๅ
ณ็ๅ็ซฏ๏ผๅทฒ็ปไธๆๅก้ๆ๏ผ
Shared/๏ผๆๅกๅๅ็ซฏไน้ดๅ
ฑไบซ็ๅบๅ่ตๆบ๏ผ
tests/๏ผๆๆๅกๅๆจกๅ็ป็ป็ๅๅ
ๅ้ๆๆต่ฏใ
้่ฟ่ฟ็งๆจกๅๅ็ปๆ๏ผๆฏไธชๅข้ๆๅผๅไบบๅ้ฝๅฏไปฅๅจ็ณป็ป็ไธๅ้จๅ็ฌ็ซๅทฅไฝ๏ผไป่ไฟ่ฟๅฏๆฉๅฑๆงใ็ปดๆคๅๆต่ฏใ
ๅๅปบๆๅกๅๆจกๅๅ๏ผ่ฟ่ก dotnet build ็กฎ่ฎค้กน็ฎๅทฒๆญฃ็กฎ้ๅ ๅฐ่งฃๅณๆนๆกใๆ็ฎก Aspireใๅ
ฑไบซ้กน็ฎๅๆต่ฏๆกๆถใ
ๆทปๅ ่ฎค่ฏๅๆๆ
่บซไปฝ้ช่ฏๅๆๆๆฏไปปไฝ็ฐไปฃ็ณป็ป็ๅบๆฌ่ฆ็ด ใ
่บซไปฝ้ช่ฏ่ฏๆ็จๆทๆฏ่ฐ๏ผๆๆๅฎไนไบ่ฏฅ็จๆทๅฏไปฅๆง่ก็ๆไฝใๅจ Lino CLI ไธญ๏ผ่บซไปฝ้ช่ฏๅ่ฝไธบ็จๆทใ่ง่ฒใๆ้ใไปค็ใ่ฎฟ้ฎ็ญ็ฅไปฅๅไธ API ็้ๆ็ๆๅฟ
่ฆ็ๅบ็กใ
ๆญฅ้ชคไธ๏ผ่ฟ่ก่ฎค่ฏๅฝไปค
่ฆๆทปๅ ่บซไปฝ้ช่ฏๅๆๆๅ่ฝ๏ผ่ฏทไฝฟ็จไปฅไธๅฝไปค๏ผ
CLI ๅฐๆๅฏผๆจๅฎๆไปฅไธๆญฅ้ชค๏ผ
-
ๆๅกๆๆจกๅ็้ๆฉ๏ผ ๆจ้่ฆๆ็คบ่บซไปฝ้ช่ฏๅทฅไปถ็ๅฎ่ฃ
ไฝ็ฝฎใ
ๅจๆไปฌ็็คบไพ้กน็ฎไธญ๏ผๆไปฌไฝฟ็จ่ฏฅๆๅก Security๏ผ้ไธญไบ็ณป็ป็ๆๆๅฎๅ
จ้ป่พ๏ผ
- ้ๅ ่ฎพ็ฝฎ๏ผ ๅๅปบ็จๆทใ่ง่ฒใๆ้ใไปค็่กจๅ่ฎฟ้ฎ็ญ็ฅ้
็ฝฎ๏ผ
- ไปค็็ๅฝๅจๆ๏ผ ๆ นๆฎไบงๅ็ๅฎๅ
จ็ญ็ฅๅฎไน่ฎฟ้ฎไปค็ๅๅทๆฐไปค็็่ฟๆๆถ้ด๏ผ
- ็จๆทๆ ่ฏ็ฌฆ็ฑปๅ๏ผ ้ๆฉ็จๆทๆจกๅๅ็ๆ็ๅ็บฆไฝฟ็จ็็ฑปๅใ
็ฌฌ2ๆญฅ๏ผ็ๆ็ปๆ
ๆง่กๅฝไปคๅ๏ผๆๅก Security ๅฐๅ
ๅซๆไปถๅๆไปถๅคน๏ผไพๅฆ๏ผ
- ๅ/ๅฎไฝ๏ผ ็จๆทใ่ง่ฒใๆ้ๅไปค็็่ๅใๅฎไฝๅ่งๅ๏ผ
- ๅบ็ก่ฎพๆฝ/ๆไน
ๆง๏ผ ๆฐๆฎๅบ้
็ฝฎใEntity Framework ๅฎๅ
จ่กจๆ ๅฐๅ่ฟ็งป๏ผ
- ๅบ็จ๏ผ ๅฝไปคใๆฅ่ฏขใๅค็็จๅบใ่บซไปฝ้ช่ฏๆๅกใไปค็็ๆใๅญ่ฏ้ช่ฏๅๆ้ๆฃๆฅ๏ผ
- API/ไธปๆบ๏ผ ็ปๅฝใๆณจ้ใๆณจๅใๅทๆฐไปค็ๅๅไฟๆคๆไฝ็็ซฏ็น๏ผ
- ไธ็ฝ็ปๅบ็จ็จๅบ้ๆ๏ผ ๅฝๅญๅจ Web ๅบ็จ็จๅบๆถๆฏๆ็ป่ฟ่บซไปฝ้ช่ฏ็ๆตใ
่ฟๆ ท๏ผๆจ็ๅบ็จ็จๅบๅฐๅ
ทๆๅผบๅคง็่บซไปฝ้ช่ฏๅ็ฒพ็ป็่ฎฟ้ฎๆงๅถ๏ผๅฏไปฅๆฏๆๅคไธช็จๆทๅไธๅ็บงๅซ็ๆ้ใ
ๅฐฝ็ฎกๅฆๆญค๏ผ็ๆ็ไปฃ็ ๅบ่ฏฅ่ขซ่งไธบๅๅฎ็ๅบ็ก๏ผ่ไธๆฏๆ็ป็ๅฎๅ
จๅฎกๆฅใๅจ็ไบงไนๅ๏ผๆฃๆฅไปค็็ๅฝๅจๆใๆ้่ฎพ่ฎกใๅฏ็ ็ญ็ฅใHTTPSใๆบๅฏใ้็้ๅถใๆฅๅฟๅ้จ็ฝฒ้
็ฝฎใ
ๆทปๅ Background Job
ๅจๅๅธๅผๅๆจกๅๅ็ณป็ปไธญ๏ผๅฐฑๅๆไปฌๆญฃๅจๆๅปบ็็ณป็ปไธๆ ท Lino CLI๏ผๅนถ้ๆๆๆๅก้ฝ็ดๆฅ็ธไบ้ไฟกใ
ไธบไบ็กฎไฟไฟกๆฏไบคๆข็ไธ่ดๆงๅๅฏ้ ๆง๏ผๆไปฌไฝฟ็จ้ๆไบไปถใ
็ถ่๏ผไธบไบ้ซๆใๅผๆญฅๅฐๅค็่ฟไบไบไปถ๏ผๆไปฌ้่ฆ Background Jobsใ
Lino้็จๆ ๅ Outbox ๅพๆก ็กฎไฟๆๅก็ๆ็ๆๆๆถๆฏๅจๅ้ไนๅ้ฝๅพๅฐๅฏ้ ่ฎฐๅฝใ
ๅๆญค๏ผๆไปฌๅฎ็ฐไบ๏ผ
- ้ฟๅ
ๆๅกๆ
้ๆ้ๅฏๆถไบไปถไธขๅคฑ๏ผ
- ็กฎไฟๅไธๆกๆถๆฏๅชๅ้ไธๆฌก๏ผ
- ๅ
่ฎธๅจๅ้ๅคฑ่ดฅ็ๆ
ๅตไธ้ๆฐๅค็ๆถๆฏ๏ผ
- ๅฐไบไปถๅค็ไธไธปๅบ็จ็จๅบ้ป่พๅๅผ๏ผไป่ๆ้ซๆง่ฝๅๅฏๆฉๅฑๆงใ
็ฌฌ1ๆญฅ๏ผๆง่กๅฝไปค
่ฆๅฐBackground Jobๆฏๆๆทปๅ ๅฐๆจ็้กน็ฎ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
lino feature background-job add
CLI ไผ่ฆๆฑๆจ้ๆฉ่ฆๅฎ่ฃ
Background Job็ๆๅกใไธ่ฌๆฅ่ฏด๏ผๆจไผ้ๆฉ้ไธญไบไปถๅถไฝ็ๆๅก๏ผไพๅฆ Catalog ๆ่
Salesใ
ๅจๅฝๅ้้กนไธญ๏ผๅๅฏผ่ฟๅฏไปฅ่ฏทๆฑๆจกๅใไฝไธๅบใๆฏๅฆๅบๅค็ Outbox ไบไปถใ่ฎกๅๅๆน้ๅคงๅฐใๅฝๅๆจกๆฟๆต็จไฝฟ็จ Hangfire ่ฟ่ก้ๅคไฝไธๆง่กใ
็ฌฌ2ๆญฅ๏ผ้
็ฝฎๆง่ก
ๅจ้
็ฝฎ่ฟ็จไธญ๏ผๆจๅฐ่ฝๅคๅฎไน๏ผ
- ๆฃๆฅ้ด้๏ผ ็กฎๅฎBackground Jobๆฃๆฅ่กจ็้ข็ Outbox ๅฏนไบๆฐๆถๆฏใ้ด้ๅคช็ญไผๅขๅ ่ตๆบๅ ็จ๏ผ้ด้ๅคช้ฟไผๅปถ่ฟไบไปถไผ ้๏ผ
- ไธๆฌกๅค็ไธๆน่ฎฐๅฝ๏ผ ๆงๅถๆฏๆฌก่ฟ่กๅฐ่ฏปๅๅๅ้็ไบไปถๆฐ้ใ่พๅคง็ๆนๆฌกๅฏไปฅๆ้ซๆง่ฝ๏ผไฝ้่ฆๆดๅค็ๅ
ๅญๅๅค็่ฝๅ๏ผ
- ๆฃ็ดขๆฟ็ญ๏ผ ๅฆๆๅ้ๆถๆฏๅคฑ่ดฅ๏ผๆจๅฏไปฅ้
็ฝฎไฝไธๅฐ่ฏ้ๆฐๅ้็ๆฌกๆฐใ
่ฟไบๅๆฐๅๅณไบ็ณป็ป็ๅคงๅฐใๆบๅจๅฎน้ๅ้ขๆ็ไบไปถ้ใ
็ฌฌไธๆญฅ๏ผ็ๆ็ปๆ
้
็ฝฎๅฎๆๅ๏ผ้กน็ฎๅฐๆไธไธชBackground Jobๅๅคๅค็ๆฅ่ช่กจ็ๆถๆฏ Outbox ๅจๆฏ้กนๆๅกไธญใ
- ็จไพๆดๆนๅๅนถ่ฎฐๅฝๅๆ้ๆไบไปถใ
- ๅทฅไฝๅๅ
ๅฐๆฅ่ช Outbox ็ไธๅกๆฐๆฎๅๆถๆฏไฟๅญๅจๅไธไบๅกไธญใ
- Hangfire ่ฟ่กๆน้่ฏปๅๅพ
ๅค็ๆถๆฏ็้ๅคไฝไธใ
- ๅฝๅฏ็จๅผๆญฅ้ไฟกๆถ๏ผๆถๆฏๅฐๅๅธๅฐ้
็ฝฎ็้ๆๅผๆ๏ผไพๅฆ RabbitMQใ
- ๅทฒๅฎๆใๅคฑ่ดฅใๆง็ๆๅกไฝ็ๆถๆฏๅฏไปฅ็ฑไธบไฝไธ็ๆ็้ป่พๅ้
็ฝฎๆฅๅค็ใ
่ฟ็กฎไฟไบๆๆ้ๆไบไปถ้ฝๅพๅฐๅฏ้ ใ้ซๆ็ๅค็๏ผๅ
่ฎธๅคไธชๆๅกๅๆจกๅๅผๆญฅ้ไฟก๏ผ่ไธๅฝฑๅไธป็ณป็ป็ๆง่ฝใ
ๆ้่ฆ็ๆไฝ่งๅๆฏไฟๆไบๅก่พน็ๆธ
ๆฐ๏ผ้่ฆ้่ฟ Outbox ๅ้็ไบไปถๅฟ
้กปๅจไธๅ
ถไปฃ่กจ็ไธๅกๆดๆน็ธๅ็ไบๅกๆตไธญๅๅปบใ
ๅๅปบๅฎไฝๅๆไธพ
ๅจๆฌ่ไธญ๏ผๆไปฌๅฐ่ฏฆ็ปไป็ปๅบ็จ็จๅบ็ๅฎไฝใๆไธพๅValue Object็่ฎพ่ฎก๏ผๆพ็คบๆฏไธช้กน็ฎๅฐๅจๅชไบๆๅกๅๆจกๅไธญๅๅปบใ
1. ๅๅปบๅฎไฝ Category
่ฆๅจ Catalog ๆๅกๅ Merchandising ๆจกๅไธญๅๅปบ Category entity๏ผ่ฏทๆง่ก๏ผ
lino entity new --service Catalog --module Merchandising --name Category
่ฏฅๅฎไฝๅฐๅจๆๅกไธญๅๅปบ Catalog ๅนถๅจๆจกๅไธญ Merchandising ๅ
ทๆไปฅไธ็ปๆ๏ผ
โโโโโโฌโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ PK โ FK โ Property name โ Type โ Length โ Required โ Auto-increment โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ x โ โ Id โ Guid โ โ x โ x โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Name โ string โ 50 โ x โ โ
โโโโโโดโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ
2. ๅๅปบๅฎไฝ Product
ๆฅไธๆฅ๏ผๆไปฌๅจๅไธๆๅกๅๆจกๅไธญๅๅปบ Product entityใๅจๆญคๆต็จไธญ๏ผValue Object ProductDimension ๅ enum ProductStatus ไผไฝไธบ Product aggregate ็ไธ้จๅ๏ผๅจ entity ๅๅปบ wizard ๅ
้จ้
็ฝฎ๏ผ
lino entity new --service Catalog --module Merchandising --name Product
ๆง่ก่ฟ็จไธญ๏ผๆทปๅ ็ฎๅ propertiesใไธ Category ็ relationshipใValue Object ็ฑปๅ็ Dimensions property๏ผไปฅๅ Enum ็ฑปๅ็ Status propertyใ
โโโโโโฌโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ PK โ FK โ Property name โ Type โ Length โ Required โ Auto-increment โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ x โ โ Id โ Guid โ โ x โ x โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Name โ string โ 100 โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Description โ string โ 500 โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Price โ decimal โ โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ x โ CategoryId โ Category โ โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Dimensions โ ValueObject โ โ โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Status โ Enum โ โ x โ โ
โโโโโโดโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ
2.1 ๅจ Product ๅ
้
็ฝฎ Value Object ProductDimension
ๅจๆฌๆๅ็ๅบๆฏไธญ๏ผProductDimension ไธๆฏ้่ฟๅ็ฌๅฝไปคๅๅปบ็ใๅฎไผๅจ Product ็ lino entity new ่ฟ็จไธญไฝไธบ Dimensions property ๆทปๅ ๏ผ็จไบ่กจ็คบไบงๅๅฐบๅฏธ๏ผ
โโโโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโ
โ Property name โ Type โ Length โ Required โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโค
โ Width โ decimal โ โ x โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโค
โ Height โ decimal โ โ x โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโค
โ Depth โ decimal โ โ x โ
โโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโ
ๆณจๆ๏ผlino value-object new ๅฝไปค้็จไบ้่ฆๅ็ฌๅๅปบ Value Object ็ๅบๆฏใๅจ่ฟไบๆ
ๅตไธ๏ผ่ฏทไฝฟ็จ็ฎๆ service ๅ module ๅๆฐ๏ผ
lino value-object new --service <ServiceName> --module <ModuleName> --name <ValueObjectName>
2.2 ๅจ Product ๅ
้
็ฝฎ Enum ProductStatus
ๅๆ ท๏ผProductStatus ไผๅจ Product ็ lino entity new ไธญไฝไธบ Status property ้
็ฝฎใๅฎๅฎไนไบงๅ็ถๆ๏ผ
โโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ Value โ Name โ Display Name โ
โโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ 1 โ Active โ Active โ
โโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ 2 โ Inactive โ Inactive โ
โโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ 3 โ Discontinued โ Discontinued โ
โโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
ๆณจๆ๏ผๅฝ้่ฆๅจๅ
ถไปๅบๆฏไธญๅ็ฌๅๅปบ enum ๆถ๏ผไนๅฏไปฅไฝฟ็จ lino enumeration new ๅฝไปค๏ผ
lino enumeration new --service <ServiceName> --module <ModuleName> --name <EnumerationName>
3. ๆทปๅ ๆฐๅฑๆง
้็้กน็ฎ็ๅๅฑ๏ผๆไปฌๅฏไปฅ็ผ่พ็ฐๆๅฎไฝไปฅๆทปๅ ๆฐๅฑๆงใ
ไพๅฆ๏ผๆไปฌๅฐๅๅฎไฝๆทปๅ ๅพๅๅ่กจ Product:
lino entity edit --service Catalog --module Merchandising --entity Product
ๅจๅไธๆต็จไธญ๏ผๆไปฌๅๅปบ็ฑปๅไธบ List<ProductImage> ็ Images propertyใ็ฑไบ ProductImage ๅฑไบ Product aggregate๏ผๅฎ็็ปๆไนไผๅจ Product ็ lino entity edit ่ฟ็จไธญ้
็ฝฎ๏ผ
โโโโโโฌโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ PK โ FK โ Property name โ Type โ Length โ Required โ Auto-increment โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ x โ โ Id โ Guid โ โ x โ x โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Name โ string โ 100 โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Description โ string โ 500 โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Price โ decimal โ โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ x โ CategoryId โ EntityId โ โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Dimensions โ ValueObject โ โ โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Status โ Enum โ โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ x โ Images โ List โ โ โ โ
โโโโโโดโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ
3.1 ๅจ Product ๅ
้
็ฝฎ ProductImage
ๅจๆญคๅบๆฏไธญ๏ผProductImage ไธๆฏ้่ฟๅ็ฌๅฝไปคๅๅปบ็ใๅฎไผๅจ็ผ่พ Product ๆถไฝไธบ Images collection ็้กน่ฟ่ก้
็ฝฎ๏ผๅนถๅ
ทๆไปฅไธ็ปๆ๏ผ
โโโโโโฌโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ PK โ FK โ Property name โ Type โ Length โ Required โ Auto-increment โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ x โ โ Id โ Guid โ โ x โ x โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ x โ ProductId โ EntityId โ โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ UploadDate โ DateTimeOffset โ โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Image โ File โ โ x โ โ
โโโโโโดโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ
ๆณจๆ๏ผlino entity new ๅฝไปค็จไบๅจๅ
ถไปๅบๆฏไธญๅๅปบ็ฌ็ซ entitiesใๅฝ entity ไธๆฏ็ผ่พ็ฐๆ aggregate ็ไธ้จๅๆถ๏ผ่ฏทไฝฟ็จ๏ผ
lino entity new --service <ServiceName> --module <ModuleName> --name <EntityName>
4. ไธบๅ
ถไปๆๅกๅๅปบๅฎไฝ
ๆๅฝนไธญ Sales๏ผๆไปฌๅๅปบๅฎไฝ ProductSnapshot๏ผ่ฟๅฐ็ฑ้ๆไบไปถๆไพใ
ไฝไธบๅฎไฝ็ๅๅงId Product ๆฅ่ชๆๅก Catalog๏ผ่ฟ้ไธ่ฝ่ชๅขใ
lino entity new --service Sales --name ProductSnapshot
โโโโโโฌโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ PK โ FK โ Property name โ Type โ Length โ Required โ Auto-increment โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ x โ โ Id โ Guid โ โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Name โ string โ 100 โ x โ โ
โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ โ โ Price โ decimal โ โ x โ โ
โโโโโโดโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ
ๆณจๆ๏ผๅฏนไบ Sales ๆๅก๏ผๅชๅจ ProductSnapshot ไธญๅคๅถไบๅฟ
่ฆ fieldsใไธบไบ็ฎๅๆๆกฃ๏ผCustomerใOrder ๅ StockItem ็ญ่กฅๅ
entities ไธๅจๆญค่ฏฆ็ป่ฏดๆใProductSnapshot ไฝไธบ shadow entity ๅทฅไฝ๏ผๅฎๆฏ็ฑๅ
ถไปๆๅกๆฅๆ็ๆฐๆฎ็ๆฌๅฐใๆๅฐไธๅๆง็ๅฏๆฌใ่ฟๅ
่ฎธ Sales ๆฅ่ฏขๆ้็ไบงๅๆฐๆฎ๏ผ่ไธ็ดๆฅไพ่ต Catalog ็ entity ๆ databaseใ
่ฟ็ง็ปๆไนๅฏไปฅ้่ฟ lino shadow new ๅฝไปคๅๅปบ๏ผๅฎๆฏ lino shadow-entity new ็ๅซๅใๅจๆญคๆต็จไธญ๏ผLino ไผๅคๅถๅฆไธไธช service ๆ module ไธญๆไธช entity ็็ปๆ๏ผๅนถๅ
่ฎธๅช้ๆฉๅฏนๆถ่ดน context ๆๆไน็ propertiesใ
lino shadow new --service <ServiceName> --module <ModuleName> --name <ShadowEntityName>
ๅจ็คบไพไธญ๏ผๆบ entity ๆฏ Catalog.Merchandising.Product๏ผ็ฎๆ ๆฏ Sales ๆๅก๏ผไป
ไฟ็้ๅฎๆ้็ fieldsใ
ๅๅปบไบไปถๅๅ
ถๅค็็จๅบ
ๅ้กพไธไธ๏ผๅจไธไธไธชไธป้ขไธญ๏ผๆไปฌๅๅปบไบไธไธชๆจกๅๅๆๅก Catalog.Merchandising ๅฎไฝ Product, Category ๅ ProductImage๏ผๅผ็ญๆถ Sales ๆไปฌๅๅปบๅฎไฝ ProductSnapshotใ
็ฐๅจ๏ผ่ฎฉๆไปฌๅๅปบๅไบไปถๅ้ๆไบไปถใ็ฎๆ ๆฏๅจๆๅกไธๅๅปบๆๆดๆฐไบงๅๆถ Catalog๏ผ่ฟไบๅๅ่ขซๅคๅถๅฐๆถ่ดน่
ๆๅกไธญ๏ผไพๅฆ Sales ๅ Stockใ
1. ๅๅปบ้ขๅไบไปถ
็ฌฌไธๆญฅๆฏๅๅปบ้ขๅไบไปถ ProductCreated ๅ ProductUpdated ไฝฟ็จๅฝไปค๏ผ
ๅจๅๅปบ่ฟ็จไธญ๏ผๆไปฌๅฏไปฅๅฐไบไปถไธๅค็็จๅบๅ
ณ่่ตทๆฅ๏ผๅๆถ้
็ฝฎ้ๆไบไปถ็่งฆๅใ่ฟ้ไธญไบๆๆๅฟ
่ฆๆต็จ็ๅๅปบใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Question โ Answer โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Select a service: โ Catalog โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Select a module: โ Merchandising โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Select a entity: โ Product โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Select the event type: โ Domain Event โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Enter the name of the event: โ ProductCreated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Do you want to create an associated event handler? โ Yes โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Trigger a integration event? โ Yes โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Choose the integration event to be triggered: โ (Create new integration event) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Enter the name of the event: โ ProductCreated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Which model will be used for this integration event? โ Creation model โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅๆ ท็ๆนๅผ๏ผๆไปฌๅๅปบไบไปถ ProductUpdated:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Question โ Answer โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Select a service: โ Catalog โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Select a module: โ Merchandising โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Select a entity: โ Product โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Select the event type: โ Domain Event โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Enter the name of the event: โ ProductUpdated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Do you want to create an associated event handler? โ Yes โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Trigger a integration event? โ Yes โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Choose the integration event to be triggered: โ (Create new integration event) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Enter the name of the event: โ ProductUpdated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Which model will be used for this integration event? โ Update model โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๆไบ่ฟไธช๏ผๆไปฌๆ๏ผ
- ๅๅปบ็ๅไบไปถ๏ผ
ProductCreated ๅ ProductUpdated๏ผ๏ผ
- ็ธๅบ็้ขๅไบโโไปถๅค็็จๅบ๏ผ
- ๅไบไปถๅค็็จๅบ่ชๅจๅฐ้ๆไบไปถ่ฎฐๅฝๅฐ Outboxใ
2. ๅๅปบ้ๆไบไปถๅค็็จๅบ
ไธไธๆญฅๆฏๅฎไนๅชไบๆๅกๅฐไฝฟ็จ้ๆไบไปถใไธบๆญค๏ผๆไปฌไฝฟ็จ๏ผ
ๅๅปบๆต็จๆถๅ๏ผ
- ้ๆฉๅฐๅ
ๅซๅค็็จๅบ็ๆๅกใๆจกๅๅๅฎไฝ๏ผ
- ้ๆฉๅฐไฝฟ็จ็้ๆไบไปถๅๅ
ถๆฅ่ชๅชไธชๆๅก/ๆจกๅ/ๅฎไฝใ
ไพๅฆ๏ผๅจๆๅกไธญ Sales ๆไปฌๅๅปบไบๅค็็จๅบ ProductCreated ๅ ProductUpdated ่ฟๅฐๆถ่็ฑ Catalog.Merchandising.Product:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ Question โ Answer โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select a service: โ Sales โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select a entity: โ ProductSnapshot โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select the event type: โ Integration Event โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select the event's service to be consumed: โ Catalog โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select the event's module to be consumed: โ Merchandising โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select the event's entity to be consumed: โ Product โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Choose the event to be consumed: โ ProductCreated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Enter the name of the event handler: โ ProductCreated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ Question โ Answer โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select a service: โ Sales โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select a entity: โ ProductSnapshot โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select the event type: โ Integration Event โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select the event's service to be consumed: โ Catalog โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select the event's module to be consumed: โ Merchandising โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select the event's entity to be consumed: โ Product โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Choose the event to be consumed: โ ProductUpdated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Enter the name of the event handler: โ ProductUpdated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโ
่ฟๆ ท๏ผๆไปฌๅจๆๅกไธญๆไธคไธช้ๆไบไปถๅค็็จๅบ Sales๏ผไป
ๆถ่้ๆไบไปถไธญ็ๅฟ
่ฆๅญๆฎต Catalog.Merchandisingใ
่ฟๅฏ็กฎไฟๅคๅถ่กจไป
ไฟ็ๅบๆฌๆฐๆฎ๏ผไป่ไผๅๅญๅจๅๆง่ฝใ
ๅจๆถๆๆน้ข๏ผ้ขๆ็ๆต็จๆฏ๏ผๅฝไปคๅค็็จๅบๆดๆน่ๅ๏ผๅผๅๅไบไปถ๏ผๅค็็จๅบๅๅค้ๆไบไปถ๏ผOutbox ๅญๅจๆถๆฏ๏ผBackground Jobๅค็้ฎ้ข๏ผๆถๆฏๅผๆๅฐๆถๆฏไผ ้็ปๆถ่ดน่
ใ
่ฟ้ฟๅ
ไบๆๅกไน้ด็ๅๆญฅ่ฆๅ๏ผๅนถ้ไฝไบๆฐๆฎๅบ่ขซๆดๆน่ๆฒกๆๅๅธ็ธๅบไบไปถ็้ฃ้ฉใ
็ๆ็ฝ้กตใAPIใๅฝไปคๅๆฅ่ฏข
็ๅทจๅคงไผๅฟไนไธ Lino CLI ๆฏๅ
่ฎธไปฅ่ชๅจๅ็ๆนๅผ้ๆๅๅปบ็ฝ้กตใAPIใๅฝไปคๅๆฅ่ฏข๏ผไป่็ฎๅๆดไธชๅผๅๆต็จใ
ๅฝ้ขๅๆจกๅ่ถณๅค็จณๅฎๆถ๏ผๆญคๅฝไปคไผๅๅปบไปๅฑๅนๅฐๆไน
ๅ็ๅฎๆด่ทฏๅพ๏ผไฝฟไนๅๆญฅ้ชคไธญๅฎๆ็ๅปบๆจกๅทฅไฝๅฏนๆ็ป็จๆทๅฏ่งใ
้ฆๅ
๏ผๅช้่ฟ่กๅฝไปค๏ผ
ๅจๆญค่ฟ็จไธญ๏ผๆจๅฐ๏ผ
- ้ๆฉ่ฆๅ
ฌๅผ็ๆๅกใๆจกๅๅๅฎไฝ๏ผ
- ้ๆฉๅฐ็ๆ็้กต้ข็็ฑปๅๅๅ็งฐ๏ผ
- ้ๆฉๅฐๆไธบๅ่กจไธ้จๅ็ๅญๆฎต๏ผ
- ่ชๅจ็ๆๅ่กจ้กต้ข๏ผๅ้กต็ฝๆ ผ๏ผๅๅๅปบ/็ผ่พ่กจๅ๏ผ
- ็ๆHttpClient็ฑปไพๅ็ซฏไฝฟ็จ๏ผ
- ๅๅปบ่ฏทๆฑ/ๅๅบๅ็บฆๅๆๆๅฟ
่ฆ็ REST API๏ผPOSTใPUTใPATCHใDELETE ๅ GET๏ผ๏ผ
- ๅๅปบๅฝไปคใๆฅ่ฏขใๅค็็จๅบๅ้ช่ฏๅจ๏ผ่ฟไบๅฝไปคใๆฅ่ฏขใๅค็็จๅบๅ้ช่ฏๅจๅฐ่ฟๅ
ฅๆฐๆฎๅบ๏ผ็กฎไฟๅฎๆด็ CRUD ๆต็จใ
้่ฟ่ฏฅๅฝไปค๏ผๆจๆ ้ๆๅจ็ผๅๆฅๅฃๅฑใAPIๅไธๅก้ป่พ๏ผๅณๅฏ่ทๅพๅ่ฝ้ฝๅ
จ็ๅบ็จ็จๅบ๏ผไฟๆๆๅกไน้ด็ๆ ๅๅไธ่ดๆงใ
ๅณไพฟๅฆๆญค๏ผ่ฏทๅจ็ๆๅๆฃๆฅไธๅก่งๅๅ้ช่ฏ๏ผๅ ไธบๅนถ้ๆฏไธช่งๅ้ฝๅฏไปฅๅ็ฌไปๅฑๆงๅ
ๆฐๆฎๆจๆญๅบๆฅใ
ๅฏนไบ่ฟไธช้กน็ฎ๏ผๆไปฌๅฏไปฅไธบไปฅไธๅฎไฝ็ๆ้ๆ้กต้ข๏ผ
- Catalog.Merchandisingใ
Category
- Catalog.Merchandisingใ
Product
- Salesใ
ProductSnapshot
็ๆ้กต้ขใAPI ๅๅฝไปค/ๆฅ่ฏขๅ๏ผๅบ็จ็จๅบๅฐๅๅคๅฅฝๅจๅ็ซฏๅๅ็ซฏไน้ดๅฎๅ
จไบคไบ๏ผๅ
ถไธญ้ช่ฏใ่ทฏ็ฑๅๆไน
ๆงๅทฒ็ฑ Lino CLIใ
่ทๆญฅ dotnet build ็ๆๅๅฐฝๆฉ่ฏๅซๆๅ็ๅ่ใไธไธ่ด็ๅๅๆๆ่ฟๆจกๅๆดๆน็ๅฝฑๅใ
ๅๅปบๅๅบ็จ่ฟ็งป
ๅๅปบๆๆดๆนๅฎไฝใValue Objectใๆไธพใๅ
ณ็ณปใ่บซไปฝ้ช่ฏใ็งๆทๆฏๆๆBackground Jobๆไน
ๆงๅ๏ผ็ๆ่ฟ็งปไปฅไฟๆๆฐๆฎๅบๅไปฃ็ ไธ่ดใ่ฟ็งปๅฐๆจกๅๆดๆน่ฝฌๆขไธบๆ็กฎ็ใๅฏ็ๆฌๅไธๅฏๅฎกๆฅ็ๅทฅไปถใ
่ฟ Lino CLI ไธ Entity Framework ๅ่ฐๆญค่ฟ็จ๏ผ้ๆฉๆญฃ็กฎ็ๆๅก/ๆจกๅ๏ผไฝฟ็จๆๅก็ๅฝๅ็ๆฌๅนถ็ป็ป็ๆ็่ๆฌไปฅไฟ่ฟๅฏ่ฟฝๆบฏๆงใ
็ฌฌ 1 ๆญฅ๏ผๅๅปบ่ฟ็งป
่ฆๅๅปบๆฐ็่ฟ็งป๏ผ่ฏท่ฟ่ก๏ผ
lino database migrations add
่ฏฅๅฝไปค่ฟๅฏไปฅๆฅๅๅซๅ๏ผไพๅฆ lino database migrations new ๅ lino database migrations create๏ผไฝๆๆกฃไธญ็้ฆ้ๆนๅผๆฏ addใ
ๅจๆง่ก่ฟ็จไธญ๏ผๆจๅฟ
้กปๅ็ฅ๏ผ
- ไพๅฆ๏ผๅฐๆฅๆถ่ฟ็งป็ๆๅก
Catalog;
- ๅฝๆๅกๆฏๆจกๅๅ็ๆถ๏ผๅๅฝฑๅ็ๆจกๅ๏ผไพๅฆ
Merchandising;
- ๆๅก็ๅฝๅ็ๆฌ๏ผ่ฏปๅ่ช
src/Services/<ServiceName>/version.txt;
- ๅฏน่ฟ็งป็ๅฎข่งๆ่ฟฐ๏ผไพๅฆ
Initial migration ๆ่
Add product imagesใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ Question โ Answer โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select a service: โ Catalog โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Select a module: โ Merchandising โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Current version of the service: โ 0.1.0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Provide a description for this migration: โ Initial migration โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโ
ๅฝๆจๅทฒ็ป็ฅ้ๆๅกๅๆจกๅๆถ๏ผๅฏไปฅ็ดๆฅ่พๅ
ฅๆญคๆฐๆฎ๏ผ
lino database migrations add --service <ServiceName> --module <ModuleName>
็ฌฌ2ๆญฅ๏ผ็ๆไปไน
็กฎ่ฎคๅๅปบๆถ๏ผLino ไธบๆ้ๆๅกๆๆจกๅๆไน
ๅ้กน็ฎๅๅคๆญฃ็กฎ็ Entity Framework ๅฝไปคใๅจๆจกๅๅๆๅกไธญ๏ผ่ฟ็งปๅจ็ธๅบ็ๆจกๅไธญไฟๆ้็ฆป๏ผ้ฟๅ
ๆททๅๆฅ่ชไธๅไธไธๆ็ๆดๆนใ
- ไธๅฝๅๆๅก็ๆฌ็ธๅ
ณ็ๆฐๆฐๆฎๅบ่ฟ็งป๏ผ
- ็ธๅบ็ SQL ่ๆฌ๏ผ็ป็ปๅจๆไน
ๅฑไธญ๏ผไฝไบ็ๆฌๅ่ทฏๅพไธญ๏ผไพๅฆ /scripts/<็ๆฌ>/<ๆไปถๅ>;
- ไธๆ้ๆๅกๆๆจกๅ็ๅบ็ก่ฎพๆฝ/ๆไน
ๆง็ปๆๅ
ผๅฎน็ๅทฅไปถ๏ผ
- ๅฏ่ฟฝๆบฏ็ๅๅฒ่ฎฐๅฝไธๆๅก็ๆฌใๆถๆๆดๆนๅๅบ็จ็จๅบๅๅธ็ธๅ
ณใ
ๆญฅ้ชค 3๏ผๅๅบๅนถๅบ็จ่ฟ็งป
ๅจๅฐๆดๆนๅบ็จๅฐๆฐๆฎๅบไนๅ๏ผ่ฏทๅๅบๅทฒ็ฅ็่ฟ็งปๅนถ็กฎ่ฎค้ขๆ็่ฟ็งปๆฏๅฆๅญๅจ๏ผ
lino database migrations list --service <ServiceName> --module <ModuleName>
่ฆๅฐ่ฟ็งปๅบ็จๅฐ้
็ฝฎ็็ฏๅข๏ผ
lino database migrations apply --service <ServiceName> --module <ModuleName>
ๅจๆฌๅฐๅผๅไธญ๏ผๆญคๆต็จๅ ๅฟซไบๆจกๅ้ช่ฏ้ๅบฆใๅจๅ
ฑไบซๆ็ไบง็ฏๅขไธญ๏ผ้่ฟๅข้ๅฎไน็้จ็ฝฒๆต็จๅบ็จ่ฟ็งป๏ผๅนถๅจๅฟ
่ฆๆถ่ฟ่ก่ๆฌๅฎกๆฅใๆนๅๅๅคไปฝใ
็ฌฌ 4 ๆญฅ๏ผๅจๅๆง็ฏๅขไธญๅ่ฝฌๆ็งป้ค
ไฝฟ็จ revert ๅฝๆจ้่ฆ่ฟๅๅจๅๆง็ฏๅขไธญๅบ็จ็่ฟ็งปๆถ๏ผ่ฏทไบ่งฃ่ฏฅๆไฝๅฏ่ฝไผๆ นๆฎ่ฟ็งป็ๅ
ๅฎนๆง่ก็ ดๅๆงๅฝไปค๏ผ
lino database migrations revert --service <ServiceName> --module <ModuleName>
ไฝฟ็จ remove ้ๅธธๅจๆไบคๆๅๅธๆดๆนไนๅๆพๅผๆๅไธไธชๆชๆไบค็่ฟ็งป๏ผ
lino database migrations remove --service <ServiceName> --module <ModuleName>
่ฏๅฅฝๅๆณ
- ๆฏๅฝๆไน
ๆจกๅๅ็ๆดๆนๆถๅๅปบ่ฟ็งป๏ผๆฐๅฎไฝใๅฑๆงใๅ
ณ็ณปใ็ดขๅผใ็บฆๆใ่บซไปฝ้ช่ฏ่กจๆ Outbox ่กจใ
- ๅจๅบ็จไบๅ
ฑไบซ็ฏๅขไนๅๆฃๆฅ็ๆ็ไปฃ็ ๅ SQLใ
- ่ฏท็นๅซๆณจๆ้ๅฝๅใ็ฑปๅๆดๆนใๅๅ ้คใ้ฎๆดๆนใๆถๆๆดๆนๅๅฏ่ฝๅฏผ่ดๆฐๆฎไธขๅคฑ็ๆไฝใ
- ไฟๆๆๅก็ๆฌไธ็ๆ็่ๆฌไฟๆไธ่ด๏ผไปฅไพฟไบๅฎกๆ ธใ่ฎกๅๅๆปๅๅๅธๆฒ้ใ
- ๅๅปบ่ฟ็งปๅ๏ผ่ฟ่กๆๅปบๅ็ธๅ
ณๆต่ฏไปฅ็กฎ่ฎคๅใๆไน
ๆงใAPI ๅ็ๆ็้กต้ขไฟๆไธ่ดใ
้่ฟ้ตๅพชๆญคๆต็จ๏ผๆฐๆฎๅบไธ Lino ไธญๅฎไน็ๅๆจกๅไฟๆไธ่ด๏ผๅนถไธๆฏไธชๆถๆๆดๆน้ฝ่ขซ่ฎฐๅฝไธๆฅใๅฏ่ท่ธชๅนถๅๅคๅจ้จ็ฝฒไนๅ่ฟ่กๅฎกๆฅใ
ๆญฅ้ชค 5๏ผๅจๆฌๅฐ้ช่ฏๅบ็จ็จๅบ
ๅฝ projectใWeb AppใservicesใmodulesใentitiesใmigrationsใAPIsใCommands ๅ Queries ๅๅคๅฅฝๅ๏ผ่ฏทๅจ็ๆ Docker images ไนๅ้ช่ฏๅบ็จ็จๅบใ้ฆๅ
๏ผๆๅปบ solution๏ผ็กฎ่ฎคๆๆ็ๆ็ projectsใcontracts ๅ clients ไป็ถไธ่ด๏ผ
็ถๅ๏ผ้่ฟ Aspire AppHost ่ฟ่กๅบ็จ็จๅบ๏ผ
dotnet run --project src/Aspire/AppHost/<ProjectName>.AppHost.csproj
ไฝฟ็จ Aspire dashboard ๆฃๆฅ APIsใWeb Appใdatabaseใcacheใmessaging ๅ Background Jobs ๆฏๅฆๆญฃ็กฎๅฏๅจใไนๅ๏ผๅจ Backoffice ไธญๆต่ฏไธป่ฆ flows๏ผ็ๆ็ pagesใBlazor ๅฏน Api.Client ้กน็ฎ็่ฐ็จใๅทฒๅบ็จ็ migrationsใๅฏ็จๆถ็ authentication๏ผไปฅๅๅบๆฏไธญๅ
ๅซ็ events ๆ jobsใ
ๅฝๅบ็จ็จๅบ่ฝๅคๆๅปบใๅจๆฌๅฐ่ฟ่ก๏ผๅนถไธไธป่ฆ flows ๅทฒ้ช่ฏๅ๏ผproject ๅฐฑๅฏไปฅ่ฟๅ
ฅ packaging ้ถๆฎตใ
็ๆ Docker ๅพๅ
ๅฝๅบ็จ็จๅบ่ฝๅคๆๅปบใ้่ฟ AppHost ๅจๆฌๅฐ่ฟ่ก๏ผๅนถไธไธป่ฆ flows ๅทฒ็ป่ฟๆต่ฏๅ๏ผไฝ ๅฏไปฅไธบ services ๅ web applications ็ๆ Docker images๏ผไปฅไพฟๅ็ปญๅๅธๅฐ container registryใ
ๅฝ้ๅฎ้กน็ฎๅทฒๅๅคๅฅฝไฝไธบ images ๆๅ
ๆถ๏ผ่ฏทไฝฟ็จ lino buildใ
่ฟ Lino CLI ไฝฟ็จไปฅไธๅฝไปค็ฎๅๆญค่ฟ็จ๏ผ
่ฟ่กๆถ๏ผๆจๅฐ็ๅฐ้กน็ฎไธญๅฏ็จ็ๆๆๆๅกๅ Web ๅบ็จ็จๅบๅๅ
ถๅฝๅ็ๆฌ็ๅ่กจ๏ผ
Select the services or web applications you want to include in the build:
> [ ] Services
[ ] Catalog |0.1.0|
[ ] Sales |0.1.0|
[ ] Security |0.1.0|
[ ] Stock |0.1.0|
[ ] Web applications
[ ] Backoffice |0.1.0|
ๆจๅฏไปฅ้ๆฉไธ้กนๆๅค้กนๆๅกๅ Web ๅบ็จ็จๅบๆฅๅๆถ็ๆๅพๅใๅช้ๆ ่ฎฐๆ้็้กน็ฎๅณๅฏใ
็ถๅ๏ผ็ณป็ปไผ่ฆๆฑๆจ้ๆฉๅฆไฝๆดๆฐ็ๆ็ๅพๅ็็ๆฌใๅฏ็จ็้้กนๆ๏ผ
- ไฟ็ๅฝๅ็ๆฌ โ ไธๆนๅ็ฐๆ็ๆฌ๏ผ
- ไฟฎ่กฅ โ ๅขๅ ่กฅไธ็ๆฌ๏ผไพๅฆ๏ผ0.1.0 โ 0.1.1๏ผ๏ผ
- ๆฌก่ฆ็ โ ๅขๅ ๆฌก่ฆ็ๆฌ๏ผไพๅฆ๏ผ0.1.0 โ 0.2.0๏ผ๏ผ
- ไธป่ฆ็ โ ๅขๅ ไธป่ฆ็ๆฌ๏ผไพๅฆ๏ผ0.1.0 โ 1.0.0๏ผใ
้ๆฉๆๅกๅนถๅฎไน็ๆฌๅข้ๅ๏ผ Lino CLI ๆง่ก๏ผ
- ไธบๆฏไธชๆๅกๅ Web ๅบ็จ็จๅบๆๅปบไปฃ็ ๏ผ
- ็ๆๅฏนๅบ็Docker้ๅ๏ผ
- ๅบ็จๅ
ทๆๅฎไน็ๆฌ็ๆ ็ญพ๏ผ
- ไฝฟๅพๅๅฏๅจๅฎนๅจๆณจๅ่กจไธญๅๅธ๏ผ
- ไฝฟ็จๅๅธๅๆฐ๏ผไพๅฆ
-c Release, -p:PublishProfile=DefaultContainer, -p:ContainerRepository, -p:ContainerImageTag ๅ -p:ContainerLabelVersion๏ผๅๅณไบ็ๆ็้กน็ฎ็ฑปๅใ
ๅจ่ฏฅ่ฟ็จ็ปๆๆถ๏ผ่่ๅฐๆๆ Web ๆๅกๅๅบ็จ็จๅบๅๅทฒ้ๆฉ๏ผ็ๆ็ๅพๅๅฐๅ
ทๆไปฅไธ็ปๆ๏ผ
- my-app/services/catalog-host - ๆ ็ญพ๏ผ0.1.0
- my-app/services/sales-api - ๆ ็ญพ๏ผ0.1.0
- my-app/services/security-api - ๆ ็ญพ๏ผ0.1.0
- my-app/services/stock-api - ๆ ็ญพ๏ผ0.1.0
- my-app/webapps/backoffice - ๆ ็ญพ๏ผ0.1.0
ไธ่ฌๆฅ่ฏด๏ผ็ฎๅ็ๆๅกๅพๅพไผ็ๆ็ฑปไผผ็ๅญๅจๅบ project-name/services/service-name-api:1.2.3๏ผๆจกๅๅๆๅกไฝฟ็จไธปๆบไฝไธบ project-name/services/service-name-host:1.2.3๏ผๅ Blazor ๅบ็จ็จๅบไฝฟ็จ็ฑปไผผ็่ทฏๅพ project-name/webapps/webapp-name:1.2.3ใ
่งๅฏ๏ผ ่ฟไธช่ฟ็จไฟ่ฏไบDocker้ๅ็ไปฃ็ ๅ็ๆฌ็ไธ่ดๆง๏ผๆนไพฟๅค็ฏๅข็้จ็ฝฒๅ็ปดๆค๏ผๅๆถไนๅฏไปฅ่ฎฉๆฏไธชๆๅก้็ฆปๅจ็ฌ็ซ็ๅฎนๅจไธญใ
็ๆๆฌๅฐ้ๅๅ๏ผๅฐๅ
ถๅๅธๅฐๆจ็้จ็ฝฒๅนณๅฐไฝฟ็จ็ๆณจๅ่กจ๏ผไพๅฆ Docker HubใGitHub ๅฎนๅจๆณจๅ่กจใAWS ECRใAzure ๅฎนๅจๆณจๅ่กจๆๅ
ถไป็ฌฆๅ OCI ็ๆณจๅ่กจใ่ฏทๅฟๅจๆ ๅไธญๅ
ๅซๆบๅฏใ็ไบง่ฟๆฅๅญ็ฌฆไธฒๆๅญๆฎใ
ๅจๅบ็จ็จๅบไธญๅๅปบ็ๆฌ
Lino ็ปดๆคๅไธชๆๅก็่ฟ่ก็ๆฌ src/Services/<ServiceName>/version.txt ๅๆฏไธช็ฝ็ปๅบ็จ็จๅบ src/WebApps/<WebAppName>/version.txtใ่ฟๅ
่ฎธๆจไธบๆฏไธชๅฏ้จ็ฝฒ้กน็ฎ่งๅ็ฌ็ซ็ๆฌใ
ๅจๆดๆน็ๆฌไนๅ๏ผๆฃๆฅๅฝๅ็ถๆ๏ผ
ไฝฟ็จ lino version show ๅฝๆจ้่ฆๅจ่ฏข็นๅฎๆๅกๆ็ฝ็ปๅบ็จ็จๅบๆถใ
ๅขๅ Web ๆๅกๆๅบ็จ็จๅบ็ๆฐ็ๆฌๆฏไธไธช็ฎๅไธ้ไธญ็่ฟ็จใ Lino CLIใๅช้่ฟ่กๅฝไปค๏ผ
ๅฐฑๅ็ๆ Docker ๅพๅไธๆ ท๏ผๅฝๆจ่ฟ่กๆญคๅฝไปคๆถ๏ผๆจๅฐ็ๅฐ้กน็ฎไธญๆๆๆๅกๅ Web ๅบ็จ็จๅบ็ๅฎๆดๅ่กจใ
ไป
ๆจ้ๆฉ็้กน็ฎ็็ๆฌไผๅขๅ ๏ผๅ
ถไฝ้กน็ฎไฟๆไธๅใ
Select the services or web applications that will have version changes:
> [ ] Services
[ ] Catalog |0.1.0|
[ ] Sales |0.1.0|
[ ] Security |0.1.0|
[ ] Stock |0.1.0|
[ ] Web applications
[ ] Backoffice |0.1.0|
้ๆฉๆ้็้กน็ฎๅ๏ผ็ณป็ปไผ่ฆๆฑๆจ้ๆฉ็ๆฌๅข้็็ฑปๅใๅฏ็จ็้้กนๆ๏ผ
- ไฟฎ่กฅ โ ไธๅฝฑๅๅ่ฝ็ๅฐไฟฎๆญฃ๏ผ
- ๆฌก่ฆ็ โ ๆทปๅ ไธไปฅๅ็ๆฌๅ
ผๅฎน็ๆฐๅ่ฝ๏ผ
- ไธป่ฆ็ โ ๅฏ่ฝไผ็ ดๅไธไปฅๅ็ๆฌ็ๅ
ผๅฎนๆง็ๆดๆนใ
้่ฆๅผบ่ฐ็ๆฏ๏ผWeb ๆๅกๅๅบ็จ็จๅบ็็ๆฌๅฏนไปฅไธๆน้ขๆ็ดๆฅๅฝฑๅ๏ผ
- ๅพๅๆ ็ญพDocker๏ผ
- ็จไบๅญๅจๆฐๆฎๅบ่ฟ็งป็ๆ็่ๆฌ็ๆไปถๅคน๏ผ
- ๆงๅถๅๅธๅ้กน็ฎๅๅฒ่ฎฐๅฝ๏ผ
- ๅ่ก่ฏดๆใ้จ็ฝฒๆธ
ๅไปฅๅไธ API ๆถ่ดน่
็ๆฒ้ใ
ๅจๅบ็จ็ขฐๆไนๅ๏ผ่ฏทๆฃๆฅๅๅธไธญๅ
ๅซ็ไปฃ็ ๆดๆนใ่ฟ็งปใ้ๆไบไปถใAPI ๅ็บฆๅๅ็ซฏๆดๆนใไธไธช็ๆฌ ไฟฎ่กฅ ๅฟ
้กปไปฃ่กจๅ
ผๅฎน็ไฟฎๅค๏ผ ๆฌก่ฆ็ ๅฟ
้กปไปฃ่กจๅ
ผๅฎน็ๆทปๅ ๏ผๅนถไธ ไธป่ฆ็ ๅฎๅบ่ฏฅไฟ็็จไบ้่ฆๆถ่ดน่
้ๅบ็ๅๅใ
่ณๆญค๏ผๆไปฌๆป็ปไบไฝฟ็จไปฅไธๅฝไปคๆๅปบ Web ้กน็ฎ็ๆๆๅบๆฌๅฝไปค็ๅๆญฅๆๅ๏ผ Lino CLI๏ผไปๅฎ่ฃ
ใๅๅปบๆๅกใๅฎไฝใไบไปถๅ้กต้ข๏ผๅฐ Docker ๆ ๅ็ๆๅ็ๆฌๆงๅถใ
ๅฎๆด็ๆต็จๆฏๅฏ่ฟฝ่ธช็๏ผๅปบๆจกๅใ็ๆ็จไพๅๅฑๅนใ้่ฟๆๅปบๅๆต่ฏ่ฟ่ก้ช่ฏใๅๅปบ่ฟ็งปใๅๅธๅธฆๆ็ๆฌๆ ็ญพ็ๆ ๅไปฅๅๅๅธๅ
ทๆๆพๅผ SemVer ๅผ็ๆฏไธชๆๅกๆ Web ๅบ็จ็จๅบใ
ไธ่ฆๅฟ่ฎฐๅ
ณๆณจๆไปฌ็้ข้ YouTube ้ตๅพช่ฏฆ็ป็ๆ็จใๅฎ็จๆผ็คบๅไฝฟ็จ่ฏฅๅทฅๅ
ท็ๆๅทง๏ผไป็ฎๅ็ๆไฝๅฐ้ซ็บงๅ่ฝใ