Part 2: Your First API
Tags: csharp, dotnet, dotnetcore
Published: 2023-05-21 15:34:29

**Traditional Approach (Hello world)**

_TL; DR
Visual Studio ဒါမှမဟုတ် VS Code နဲ့ .NET project setup လုပ်ဖူးတဲ့သူတွေကတော့ ဒီအပိုင်းကို ကျော်သွားနိုင်ပါတယ် (နောက်မို့ပျင်းဖို့ကောင်းတယ်လေ)။ တခါမှ မလုပ်ဖူးသေးတဲ့ သူတွေကတော့ ဒီအပိုင်းကို ပြီးအောင်အရင်ဖတ်ပြီး လက်တွေ့လိုက်လုပ်ကြည့်ပေါ့။ အရင်ဆုံး ဘာမှလိုက်မလုပ်ဘဲ တခေါက်ပြီးအောင်အရင်ဖတ်လိုက်ပါ။ ပြီးမှ ကိုယ်နှစ်သက်ရာတခုနဲ့ လက်တွေ့ setup လုပ်ကြည့်ပါ။ အက်တာက ပိုမြန်ပါလိမ့်မယ်။_

C# နဲ့ .NET Core အကြောင်းလည်း သိသွားပြီ Development Environment လည်း ready ဖြစ်နေပြီဆိုတော့ ထုံစံအတိုင်း Hello world လိုက်ကြတာပေါ့။ ကျနော် က Web development အကြောင်းရေးမှာဆိုတော့ Browser မှာပဲ Hello World လိုက်ပါမယ်။ အရင်ဆုံး Visual Studio နဲ့ project တခု create လုပ်ပါမယ်။ ပြီးရင်တော့ VS Code နဲ့လုပ်ပါမယ်။ Code တွေအကြောင်းကိုတော့ နောက်ဆုံးကျမှ ရှင်းပြပါမယ်။ နောက်ပိုင်း Series တခုလုံးမှာ Visual Studio ကို VS အဖြစ်သုံးပြီး Visual Studio Code ကိုတော့ VS Code အဖြစ်သုံးသွားပါမယ်။

**Project Creation with Visual Studio 2022**

အရင်ဆုံး VS ကိုဖွင့်ပါ။

![Visual Studio start page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xcbx9ipcdi6itp01v4bq.png)

ပထမဆုံးမြင်ရမဲ့ Visual Studio Start Page ဖြစ်ပါတယ်။ Create a new project ကို Click လိုက်ပါ။ နောက် Page တခုကိုရောက်သွားပြီဆို Template တွေအများအပြား ရှိနေတဲ့ အထဲက Filter ထဲမှာ ကျနော် ပုံမှာပြထားတဲ့အတိုင်း Language နေရာမှာ C#, Platform နေရာမှာ All platforms, Project Type နေရာမှာ Web ကိုရွေးပြီး ကျလာတဲ့ Template တွေထဲကနေ ASP.NET Core Empty ကို ရွေးပြီး ညာဘက်အောက်ထောင့်က Next ကိုနှိပ်လိုက်ပါ။ 

![Project Selection](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7z9q5qvhh2crhlkwmq25.png)

ပြီးရင် Project name, Location ရွေးပြီး Next ကို ထပ်သွားပါ။ နောက် Page တခုကို ရောက်တဲ့ အခါမှာတော့ Framework မှာ .NET 7.0 ရွေးပြီး Configure for HTTPS ကို Checkmark လုပ်ပြီး ကျန်တာတွေကိုတော့ uncheck လုပ်ထားခဲ့ပြီး Create ကိုနှိပ်လိုက်ပါ။ 

![Project config](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h6v7vrw0e3mwv5gy7zc6.png)

အက်သည့်နောက်မှာတော့ VS ဟာ ကိုယ်ပေးထားတဲ့ Location မှာ ကိုယ်ပေးလိုက်တဲ့ နာမည်နဲ့ Project တခုသွားဆောက်ပေးသွားမှာပါ။ ဒါဆိုရင်တော့ နောက်တဆင့်မှာ အက်သည့် code ကို run ရမှာဖြစ်ပါတယ်။ ဘာမှမလုပ်ခင်မှာ localhost မှာ https ကိုသုံးရမှာမလို့ ကိုယ့်စက်မှာရှိတဲ့ browser တွေက accept လုပ်မဲ့ SSL certificate တခုကို dotnet cli သုံးပြီး ကြို generate လုပ်ထားလိုက်ပါမယ်။ (_ဒီ process ကို VS က အလိုလျောက်လုပ်ပေးသွားမှာ ဖြစ်ပေမဲ့ VS Code နဲ့ပါ အဆင်ပြေသွားအောင် ကြိုလုပ်ထားလိုက်တာပါ_)။ ဆိုတော့ cmd or terminal ကြိုက်တဲ့ဟာ တခုဖွင့်ပြီးတော့ အောက်က command ကို run ပေးလိုက်ပါ။

`dotnet dev-certs https --trust`

ဒါက localhost အတွက် browser မှာ https ကိုအသုံးပြုနိုင်ဖို့ SSL certificate တခု generate လုပ်လိုက်တာပါ။ ပြီးရင်တော့ VS ကိုပြန်လာပြီး Program.cs file ကိုဖွင့်လိုက်ရင် Hello World ကို code ၄ ကြောင်းနဲ့ အသင့်ရေးထားပေးတာကို တွေ့ရမှာပါ။ ဘာမှ လုပ်မနေဘဲ အပေါ် Menu bar မှာရှိတဲ့ Run button က https ဆိုတာကို နှိပ်ပြီး run လိုက်ရင် Browser တခုပွင့်လာပြီး https://localhost:7214/ ဆိုတဲ့ Url မှာ Hello World! ဆိုတဲ့ စာကို ဖော်ပြနေမှာဖြစ်ပါတယ်။_(localhost နောက်က port ကတော့ ကျနော့်စက်နဲ့ ကွဲပြားနိုင်ပါတယ်)_ အက်သည် Browser ဟာ VS ရဲ့ Hot Reload Pipeline နဲ့ ချိတ်နေမှာဖြစ်ပြီးတော့ ကိုယ်က Code changes တခုလုပ်လိုက်တိုင်း Browser က Result ကို Auto update လုပ်ပေးနေမှာပါ။ 

![Frist Lookup](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p3b2dlyxr882ety2vtoy.png)

Browser Result

![Browser Result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7vrp2tl4ed9h58kgz43b.png)

Code ထဲက Hello World! ဆိုတဲ့ စာကိုပြင်ပြီး `Ctrl+S` နဲ့ Save ပြီး Browser ကို Refresh လုပ်ကြည့်လိုက်ပါ။

![Hotreload](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0scq32ohz3h3lh11m6lw.png)

စောနက Url ကိုပဲ copy ယူပြီး [Postman ](https://www.postman.com/)မှာ GET request ပို့လိုက်ရင်လဲ တူညီတဲ့ result ကိုပဲ return လုပ်ပေးနေမှာဖြစ်ပါတယ်။ 
_[**လက်ရှိအခြေအနေမှာတော့ Postman ကိုသုံးဖို့မလိုသေးပါဘူး။ ဥပမာအနေနဲ့ပြောတာပါ။ နောက်ပိုင်း Web API အပိုင်းကိုရောက်တဲ့အခါမှာတော့ ဒီ Tool ကကျယ်ကျယ်ပြန့်ပြန့်သုံးရမှာပါ**]_

![Postman result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/616qb5vgd8oqmhqwvune.png)

ဒီတခါ Message ထဲကစာကိုပဲ ပုံစံတမျိုးထပ်ရေးပြီး Browser မှာကြည့်လိုက်ပါ။ 

![Json response](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xbwp37v2v7qnya6t0huz.png)

ဒါဟာ အသေးစား API တခုကို .NET SDK အပေါ်မှာ Code 4 ကြောင်းထဲနဲ့ ဖန်တီးလိုက်တာပါ။ ဒီအထိ ကျနော်ဘာမှ မရှင်းပြရသေးပါဘူး။ Code တွေကို မရှင်းပြခင်မှာ VSCode နဲ့ အပေါ်က API ကို create လုပ်ကြည့်ပါမယ်။ 

**Projection Creation with VS Code**

 VS Code ကိုဖွင့်ပါ။ ပြီးရင် `` Ctrl+BackTick(`) `` ဒါမှမဟုတ် Menu bar က Terminal=>New Terminal ကိုနှိပ်ပြီး Terminal အသစ်တခုခေါ်လိုက်ပါ။ ပြီးရင် ကိုယ် Project လုပ်မဲ့ folder ထဲအထိ cd Command နဲ့သွားလိုက်ပါ။ ကိုယ်လိုချင်တဲ့ folder ထဲရောက်ပြီဆိုရင်တော့ အောက်က Command ကို အသုံးပြုပြီး project တခုဆောက်လိုက်ပါ။

`dotnet new web -n vsCodeAPI ` 

ရှေ့ဆုံးက dotnet က dotnet command line ကိုသုံးမယ်လို့ပြောတာပါ။ သူ့နောက်က new ကတော့ project အသစ်တခု create လုပ်မယ်ပြောတာပါ။ နောက်က web ဆိုတာက template က empty web application တခုဖြစ်တယ်လို့ပြောတာပါ။ နောက်မှာပါလာတဲ့ -n ဆိုတဲ့ attribute က Name ကို ကိုယ်စားပြုတာပါ။ -n vsCodeAPI ဆိုတာ vsCodeAPI လို့နာမည်ပေးဖို့ပြောလိုက်တာပါ။ အပေါ်က command ကိုကြည့်လိုက်ရင် vsCodeAPI အမည်နဲ့ လက်ရှိ location မှာ Empty web application project တခုဆောက်ပေးပါလို့ dotnet cli ကို ခိုင်းလိုက်တာပါ။ အောက်မှာကြည့်ပါ။

![create project in VS Code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ailjd72dkqqfxgpmx25p.png)

ဒါဆိုရင်တော့ VS Code ကနေပြီး project တခုဆောက်ပေးပြီးသွားပြီ ls command ရိုက်လိုက်ရင် ကိုယ်ပေးခဲ့တဲ့ နာမည်နဲ့ folder တခုတိုးလာတာကိုတွေ့ရပါမယ်။ ကျနော်က vsCodeAPI လို့ပေးခဲ့လို့ အက်သည် folder ထဲကို cd command နဲ့ `cd vsCodeAPI` ဆိုပြီး ဝင်လိုက်ပါတယ်။ ပြီးရင် အက်သည့် folder VS Code မှာပွင့်လာဖို့ အောက်က command ရိုက်ပါမယ်။

`code .`

ဒါဆိုရင်တော့ စောနက လုပ်ထားတဲ့ Project ကို Mount လုပ်ထားတဲ့ VS code window နောက်တခုပွင့်လာတာကိုတွေ့ရမှာဖြစ်ပါတယ်။

![VS Code Lookup](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/19kl0bt5y8wnd1snkgj4.png)

Trust the authors ကိုအမှန်ခြစ်ပြီး Yes နှိပ်ပြီး ပိတ်လိုက်ပါ။ ပြီးရင်တော့ ထုံးစံအတိုင်း Program.cs ကိုဖွင့်လိုက်ရင် VS မှာတုန်းက မြင်ရတာနဲ့ ဆင်တူ Hello World code implementation ကိုတွေ့ရမှာပါ။ 

![VS Code Hello World](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pg9u8wrcmg1x1rpxo9m9.png)

ဒီတော့ သူ့ကို run ဖို့ Terminal ကိုပြန်ခေါ်ပြီး အောက်က command ကိုရိုက်လိုက်ပါ။

`dotnet run`

![Running dotnet in VS Code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3pvo3kkxbif7v4960e65.png)

ရိုးရှင်းပါတယ်။ ဒါဆိုရင်တော့ ပုံမှာမြင်နေရတဲ့ အတိုင်းပါပဲ။ `dotnet run` command က App ကို run ပေးထားနေပြီး http://localhost:5289 ဆိုတဲ့ port ကနေ listen လုပ်နေပြီလို့ ဖော်ပြနေပါတယ်။ ဒီတော့ http://localhost:5289 ကို Browser ထဲမှာ သွားရိုက်ထည့်လိုက်တဲ့ အခါ VS နဲ့ လုပ်ခဲ့တဲ့ result အတိုင်း တွေ့ရမှာပါ။ `dotnet run ` command က နောက်ကွယ်မှာ `dotnet build` ဆိုတဲ့ command ကိုအရင် run ပြီးမှ App ကို Host လုပ်တာပါ။ `dotnet build` က compile လုပ်တဲ့ command ဖြစ်လို့ code changes တွေလုပ်ပြီး error ရှိမရှိစစ်ချင်တယ်ဆိုရင် အသုံးဝင်ပါတယ်။ Run နေတာကို ရပ်ချင်တယ်ဆိုရင်တော့ VS Code Terminal ထဲမှာ `Ctrl+C` ကိုနှိပ်ပြီး ရပ်နိုင်ပါတယ်။

donet new နဲ့ Create လုပ်တဲ့ Project နဲ့ VS ကနေ Create လုပ်တဲ့ project တွေရဲ့ သိသာထင်ရှားတဲ့ ကွဟချက်ကတော့ Solution file(.sln) ပါ။ dotnet new cli သုံးပြီး Create လုပ်လိုက်တဲ့ project တွေမှာ solution file ပါလေ့ မရှိပါဘူး။ VS ကနေ project တွေ Create လုပ်ရင်တော့ ပထမဆုံး sln ဖိုင်ကို အရင်လုပ်ပေးတယ်။ Solution ဖိုင်ဟာ IDE(eg. VS, Rider) တွေအတွက် မရှိမဖြစ် ဖိုင်တခုဖြစ်ပြီး .NET project တွေအတွက်အရေးပါတဲ့ လုပ်ဆောင်ချက်တွေ လုပ်ဆောင်နိုင်ပါတယ်။ Multi-layer Mangement, Build Order, Source Control စတဲ့ လုပ်ဆောင်ချက်တွေ အတွက်တော့ အင်မတန်အရေးပါပါတယ်(အရေးပါတယ်ဆိုတာက သပ်ရပ်တဲ့ Development setting အတွက်ပြောတာပါ .NET project တွေက sln မရှိလည်း Reference လုပ်လို့ရပါတယ်)။ CLI ကနေ Solution file create လုပ်ပြီးမှ Project တွေကို Solution ဖိုင်နဲ့ organize လုပ်လို့ရပါတယ်။ ဒါတွေကိုတော့ MVC အပိုင်းရောက်တဲ့အခါ ကျနော်ဆက်ရေးသွားပါမယ်။

**Project File Composition**

Project တခုဆောက်ပြီး run ကြည့်ပြီးပြီဆိုတော့ .NET Project တခုရဲ့ ဖွဲ့စည်းပုံနဲ့ စောနက ကျနော်တို့ run လိုက်တဲ့ code တွေအကြောင်းရှင်းပြဖို့ကျန်ပါတယ်။ VS or VS Code ကနေပြီး .NET project ကို create လုပ်လိုက်တဲ့အခါ ပုံမှန်အားဖြင့် app setting json ဖိုင်တွေနဲ့ project ဖိုင်ရယ် Entry point ဖြစ်တဲ့ Program.cs ဖိုင်ရယ်ပါလာပါတယ်။ နောက် Properties folder, bin folder နဲ့ obj folder ပေါ့။ app configuration တွေကိုဟိုးအရင် .NET Framework တွေမှာ web.config ဆိုတဲ့ xml config ဖိုင်နဲ့ သတ်မှတ်ခဲ့ပေမဲ့ .NET Core ကနေစပြီး ရိုးရှင်းတဲ့ JSON ဖိုင်တွေနဲ့ပဲ configure လုပ်ပါတယ်။ အက်သည်မှာ ရိုးရိုး appsettings.json နဲ့ appsettings.Development.json ဆိုပြီး ဖိုင်နှစ်ခုပါလာတာကိုတွေ့ရမှာပါ။ appsettings.json ဖိုင်တွေက application မှာသုံးမဲ့ log config တွေ option value တွေ connection string တွေ စတဲ့ configuration တွေသတ်မှတ်ဖို့အတွက် အသုံးပြုတာပါ။ ဒါပေမဲ့ ကျနော်တို့ တကယ့်လက်တွေ့ project တွေရေးတဲ့အခါမှာတော့ Development Stage, Staging Stage, Production Stage ဆိုပြီးတော့ Phrase တွေခွဲပြီးသွားကြလေ့ရှိပါတယ်။ အက်လိုမတူညီတဲ့ Development Environment တွေအတွက် configuration တွေလုပ်လို့ရအောင် appsetting ဖိုင်တွေ ခွဲပေးထားတာဖြစ်ပါတယ်။ Web host ဟာ appsettings.json ဖိုင်ကို production stage မှာသုံးမှာဖြစ်ပြီးတော့ local မှာဆိုရင်တော့ appsettings.Development.json ဖိုင်ကို ဦးစားပေးအသုံးပြုသွားမှာပါ။ ဆိုလိုတာက Key တူတဲ့ Value နှစ်ခုကို json ဖိုင်နှစ်ခုလုံးမှာထည့်ထားရင် app ကို Web server မှာ run တဲ့အခါ appsettings.json ထဲက Vlaue ကို evaluate လုပ်မှာဖြစ်ပြီးတော့ local မှာ run နေတဲ့အချိန်မှာတော့ appsettings.Development.json evaluate လုပ်မှာပါ။ ဒါက App ကို run နေတဲ့ running mode တွေကြောင့်ဖြစ်ပါတယ်။ Intro မလို့ ဒီလောက်သိထားရင် လုံလောက်ပါပြီ။ 

Properties folder ထဲမှာ launchSettings.json ဖိုင်ရှိပါတယ်။ Debug လုပ်ဖို့ setting ဖိုင်ဖြစ်ပါတယ်။ အက်သည့်ဖိုင်ထဲမှာတော့ app ကို run မဲ့ profile configuration တွေကိုသတ်မှတ်ထားလို့ရတယ်။ ဥပမာ app ကိုသက်ဆိုင်ရာ lunch profile မှာကိုယ် run စေချင်တဲ့ port ကိုပြောင်းလိုက်တာမျိုး လုပ်နိုင်ပါတယ်။ အပေါ်မှာ ရေးခဲ့တဲ့ app ရဲ့ port ကိုပြောင်းချင်တယ်ဆိုရင် launchSettings.json ဖိုင်ထဲက https profile ရဲ့ applicationUrl မှာ http://localhost:8001 လို့ပြောင်းပေးထားရင် app ကို https နဲ့ run တဲ့အခါမှာ server က http://localhost:8001 ကနေ listen လုပ်နေမှာဖြစ်ပါတယ်။ 

Project file ကတော့ .csproj extension နဲ့ရှိနေတဲ့ဖိုင်ပါ။ Double click နှိပ်ပြီးဖွင့်ကြည့်လိုက်ရင် လက်ရှိ Project ရဲ့ Hosting model config တွေကို တွေ့ရမှာပါ။ ဒီဖိုင်ထဲမှာ Project Reference တွေ Nuget Package Reference တွေ Warning suppression တွေအတွက် configuration တွေလာလုပ်ထားလို့ရပါတယ်။ ဒီမှာတော့ ဒီလောက်သိထားရင် ရပါပြီ။

obj folder နဲ့ bin folder ကျန်ပါတယ်။ ရိုးရိုးရှင်းရှင်းပဲ နားလည်လိုက်ပါ။ bin folder က IL code တွေ store ထားတာဖြစ်ပြီးတော့ obj folder ကတော့ debug setting တွေ store ထားတာပါ။ နောက်ပိုင်းမှာ Source generator ဆိုတဲ့ .NET feature တမျိုးအကြောင်းရောက်ရင် obj folder အကြောင်းကို ထပ်တွေ့ရအုံးမှာပါ။ ဒီတော့ project structure ကိုဒီမှာရပ်ပြီးတော့ code တွေအကြောင်းဆက်သွားပါမယ်။ အက်တာက ပိုစိတ်ဝင်စားဖို့ကောင်းမှာပါ။ 

.NET Core ဟာ modular framework ဖြစ်ပါတယ်။ သဘောကတော့ သက်ဆိုင်ရာ service တွေ toolchain တွေကို အပိုင်းလိုက် ခွဲခြမ်းတည်ဆောက်ထားတာကို ဆိုလိုတာပါ။ Modular ဖြစ်ခြင်းရဲ့ အားသာချက်က ကိုယ်လိုအပ်သလောက်ပဲ ယူသုံးလို့ရသွားတာပါ။ အရင် .NET app တွေမှာဆို App တခု run ဖို့ ဆိုင်ရာ config တွေ service တွေ အကုန် setup လုပ်ပေးမှ run ပဲ run လို့ရပါတယ်။ Service တခု Config တခုများ missing ဖြစ်နေပြီ ဒါမှမဟုတ် Crash ဖြစ်နေပြီဆိုရင်တော့ ချွေးပြန်အောင်ဖြေရှင်းရတာပါ။ မဆိုင်တဲ့ဟာက ပြဿနာထဖြစ်ရင် ဖြေရှင်းရတော်တော်လက်ပေါက်ကပ်ပါတယ်။ .NET Core မှာတော့ အက်သည့်ပြဿနာ လုံးဝ မရှိတော့ပါဘူး။ အကြောင်းကတော့ framework တခုလုံး modular ဖြစ်သွားလို့ပါပဲ။ ကိုယ်အသုံးမလိုရင် ဘာ Service ဘာ Config ကိုမှ လုပ်ပေးစရာမလိုလို့ပါ။ Project folder ထဲက Program.cs ဖိုင်ထဲက code ကို လေ့လာကြည့်ပါမယ်။ 

```
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();
```
.NET Core ဟာ Architecture အရ Console Application တမျိုးပဲဖြစ်ပါတယ်။ ပုံမှန် Console App တွေဟာ Entry point လို့ခေါ်တဲ့ Program.cs ဖိုင်နဲ့ အက်ဖိုင်ထဲမှာ Main လို့ခေါ်တဲ့ Method ရှိနေဖို့လိုပါတယ်။ Runtime ဟာ app တခုကို run မယ်ဆိုရင် အရင်ဆုံး Main Method ကို ရှာပြီး Invoke လုပ်ပါတယ်။ ဒါကို Entry point လို့ခေါ်တာပါ။ အရင် .NET Core version တွေမှာတော့ အက်သည် Main method မှာ Host Builder ကို Create လုပ်ပြီး Startup class နဲ့ app ကို run ပေးရပါတယ်။ .NET 6 ကနေစပြီးတော့ Top Level Statement ဆိုတဲ့ Feature ပါလာပြီး App Startup Architecture ကိုလည်းပြောင်းလဲလိုက်တဲ့အတွက် အလွန်ကို ရိုးရှင်းလွယ်ကူတဲ့ App Startup တခုဖြစ်သွားပါတယ်။ Top Level Statement ဆိုတာကတော့ တခြားတော့မဟုတ်ပါဘူး။ အရင် Main method ကို ကိုယ်က ရေးပေးရမဲ့အစား Compiler ကသူ့ဘာသူ Program.cs ဖိုင်ထဲက code တွေနဲ့ Implement လုပ်ပေးသွားတာပါ။ ဒီတော့ Main method မလိုတော့ဘဲ Program.cs မှာ Code တွေတန်းရေးလို့ရသွားပါတယ်။ Code ထဲမှာတော့ အရင်ဆုံး Web App Builder တခုကို WebApplication class ကနေ CreateBuilder() method သုံးပြီးဆောက်လိုက်ပါတယ်။ တကယ်က app မဖြစ်သေးပါဘူး ငြမ်းဆင်ထားတဲ့ အဆင့်ပါ။ ဒီနေရာမှာ ကိုယ်လိုအပ်တဲ့ Service တွေကိုပေါင်းထည့်နိုင်ပါတယ်။ ဥပမာ ကိုယ်က MVC app ရေးချင်တယ်ဆိုပါစို။ ဒါဆို
```
builder.Services.AddMVC();
```
ဆိုပြီး MVC Service ကိုပေါင်းထည့်နိုင်ပါတယ်။ ဒါပေမဲ့ အခု မလုပ်ပါဘူး။ ဘာလို့လဲ ဆိုတော့ မလိုအပ်လို့ပါ။ ပြီးရင်တော့ builder.Build() method ကိုသုံးပြီး Application ကို Create လုပ်ပါတယ်။ ဆိုတော့ app တခုရလာပြီ။ မ run ခင် ကိုယ်အသုံးလိုတဲ့ Component တွေအတွက် configure လုပ်ပေးနိုင်ပါသေးတယ်။ စောနက MVC service add ထားတယ်ဆိုပါတော့။ သူ့ကို သုံးဖို့ဆို 
```
app.UseMvc();
```
ဆိုတဲ့ Method ကိုသုံးပြီး MVC middleware ကိုခေါ်ပေးနိုင်ပါတယ်။ (_Middleware ကဘာလဲဆိုတာ ဒီနေရာမှာ သိဖို့မလိုသေးပါဘူး_) တကယ်လို့ MVC service add မထားဘဲ UseMvc() ခေါ်လိုက်ရင်တော့ Error throw သွားမှာဖြစ်ပါတယ်။ သူ့ဆိုင်ရာ service မရှိလို့ပါ။ Code ထဲမှာ 
```
app.MapGet("/", () => "Hello World!");
```
ဆိုတာတွေ့မှာပါ။ ဒါက .NET Core ရဲ့ Minimal API configuration ပါ။ GET header နဲ့ ဝင်လာပြီး path မပါလာတဲ့ request တွေဆိုရင် ဒီ method ကနေ response လုပ်မယ်ဆိုပြီးရေးထားတာပါ။ Action method ကိုတော့ Lambda body expression သုံးပြီး ရေးထားတာပါ။ Minimal API တွေရဲ့ default response type က Json ပါ။ ဒါကြောင့်မလို့ VS မှာ ကျနော်ရေးခဲ့တဲ့ Object Response ဟာ Json အဖြစ် browser မှာပြနေတာပဲဖြစ်ပါတယ်။ ကျနော် နောက်ပိုင်းမှာ Minimal API အကြောင်း ဆက်ရေးသွားမှာမလို့ အက်ကျမှဘဲ အကျယ်လေ့လာလိုက်ပါ။ ပြီးရင်တော့ app.Run() method နဲ့ စ run လို့ရပါပြီ။

ဒီတော့ ပထမဆုံး Application Basic ကိုတော့ ကောင်းကောင်းနားလည်သွားပြီထင်ပါတယ်။ ကိုယ်တိုင် ပြန်စမ်းကြည့်လိုက်ပါအုံး။

_Focus on your code, you will be happy(iLied) xD_