1. ã¯ããã«
1.1 ãã¬ãŒã ã¯ãŒã¯ã®åœ¹å²ãšéèŠæ§
ãœãããŠã§ã¢éçºã®çŸä»£ã®ã¢ãããŒãã«ãããŠããã¬ãŒã ã¯ãŒã¯ã¯äžå¿çãªåœ¹å²ãæãããŠããŸãããã¬ãŒã ã¯ãŒã¯ãšã¯ãç¹å®ã®ããã°ã©ãã³ã°èšèªã«ãããŠãåå©çšå¯èœãªæ©èœãæ§é ãæäŸããããã®ã©ã€ãã©ãªãããŒã«ã»ããã®ããšãæããŸããããã«ãããéçºè ã¯åºæ¬çãªã¿ã¹ã¯ãã«ãŒãã³ãç¹°ãè¿ãæžãããšãªããçŠç¹ãæ¬åœã«éèŠãªéšåãããªãã¡ããžãã¹ããžãã¯ã®éçºã«çµã蟌ãããšãã§ããŸãã
ããšãã°ããŠã§ãã¢ããªã±ãŒã·ã§ã³ãéçºããéããŠãŒã¶ãŒèªèšŒãããŒã¿ããŒã¹ã®æäœããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®çæãªã©ãå€ãã®å ±éã¿ã¹ã¯ãååšããŸãããã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã§ããããã®ã¿ã¹ã¯ãè¿ éã«å®è¡ããããã»ãã¥ã¢ã§å¹ççãªã³ãŒããæžãããšãå¯èœãšãªããŸãã
ãŸããC#ã¯Microsoftãéçºãã匷åãªããã°ã©ãã³ã°èšèªã§ãããå€å²ã«ãããã¢ããªã±ãŒã·ã§ã³ã®éçºã«é©ããŠããŸããC#ã®ãã¬ãŒã ã¯ãŒã¯ã¯ããŠã§ããµãŒãã¹ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ããã¹ã¯ããããœãããŠã§ã¢ãŸã§ãå¹ åºãçšéã§äœ¿çšãããŠããŸãã
1.2 æ¬èšäºã®ç®çãšå¯Ÿè±¡èªè
æ¬èšäºã®äž»ãªç®çã¯ãC#ã®ãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠã®åºæ¬çãªç¥èãæäŸãããã®éžã³æ¹ã掻çšäŸã«ã€ããŠè§£èª¬ããããšã§ãããã®æ å ±ã«ãããèªè ãèªèº«ã®ãããžã§ã¯ãã«æãé©ãããã¬ãŒã ã¯ãŒã¯ãéžæããå¹æçã«äœ¿çšããããã®æåŒããšãªãããšãæåŸ ããŠããŸãã
察象èªè ãšããŠã¯ãC#ãåŠãã§ããæ¹ããœãããŠã§ã¢éçºã«èå³ãæã£ãŠããæ¹ãäžå¿ãšããŠããŸããåºæ¬çãªããã°ã©ãã³ã°ã®ç¥èãããã°ãæ¬èšäºã®å 容ãç解ããã®ã«ååã§ãããŸããå ·äœçãªå®è·µäŸãéããŠããã¬ãŒã ã¯ãŒã¯ã®å®éã®äœ¿çšæ¹æ³ãç¿åŸããããšãã§ããŸãã
2. C#ãšã¯
2.1 C#ã®æŠèŠãšç¹åŸŽ
C#ïŒã·ãŒã·ã£ãŒãïŒã¯ãMicrosoftãéçºãããªããžã§ã¯ãæåã®ããã°ã©ãã³ã°èšèªã§ããã.NETãã¬ãŒã ã¯ãŒã¯äžã§åäœããŸãã2000幎ã«åããŠå ¬éããããã以æ¥ãæ¥éã«æ®åããŠããŸãããC#ã¯ãJavaãC++ãªã©ã®èšèªããã®åœ±é¿ãåããŠããããããã®èšèªã®å€ãã®åŒ·åãªç¹æ§ãçµã¿èŸŒãã§ããŸãã
C#ã®äž»ãªç¹åŸŽãšããŠã以äžã®ç¹ãæããããŸãïŒ
1. åå®å šæ§ïŒC#ã¯ãå€æ°ã®åãã³ã³ãã€ã«æã«ç¢ºå®ãããããåã®ãã¹ãããã«ããã©ã³ã¿ã€ã ãšã©ãŒãé²ããŸãã
2. ã¡ã¢ãªç®¡çïŒã¬ãŒããžã³ã¬ã¯ã·ã§ã³ã«ãããéçºè ã¯ã¡ã¢ãªã®è§£æŸãæåã§è¡ãå¿ èŠããªããªããŸããã
3. ãªããžã§ã¯ãæåïŒã¯ã©ã¹ãã€ã³ã¿ãŒãã§ãŒã¹ãç¶æ¿ãªã©ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®äž»èŠãªèŠçŽ ããµããŒãããŠããŸãã
2.2 C#ã§ã®éçºã®ã¡ãªãã
C#ãéžæããéçºè ã«ãšã£ãŠã®ã¡ãªããã¯æ°å€ãååšããŸããæåã«ãC#ã¯Visual Studioãšãã匷åãªçµ±åéçºç°å¢(IDE)ãšé£æºããŠããããããããã°ããã¹ããéåžžã«å¹ççã«è¡ããŸããããã«ãããéçºã®ãµã€ã¯ã«ãè¿ éã«é²ããããšãå¯èœã§ãã
次ã«ãC#ã¯åºç¯ãªã©ã€ãã©ãªãšAPIã®ãµããŒããåããŠãããããå€æ§ãªã¿ã¹ã¯ãå°ãªãã³ãŒãè¡ã§å®çŸããããšãã§ããŸããäŸãã°ãããŒã¿ããŒã¹æäœãã°ã©ãã£ã«ã«ãªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®äœæããŠã§ãéçºãªã©ãC#ã¯å€å²ã«ãããçšéã«é©ããŠããŸãã
ããã«ãC#ã¯ã¯ãã¹ãã©ãããã©ãŒã ã®éçºããŒã«ã§ãã.NET Coreã®ç»å Žã«ãããWindowsã ãã§ãªããLinuxãMacOSã§ã®éçºããµããŒããããããã«ãªããŸãããããã«ãããããŸããŸãªãã©ãããã©ãŒã åãã®ã¢ããªã±ãŒã·ã§ã³ãäžã€ã®èšèªã§éçºããããšãå¯èœãšãªã£ãŠããŸãã
3. 人æ°ã®C#ãã¬ãŒã ã¯ãŒã¯10éž
3.1 ASP.NET Core: ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®çé
ASP.NET Coreã¯ãMicrosoftãéçºããã¢ãã³ãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãšAPIã®ããã®ãã¬ãŒã ã¯ãŒã¯ã§ãããªãŒãã³ãœãŒã¹ã§ãããã¯ãã¹ãã©ãããã©ãŒã ã«å¯Ÿå¿ããŠãããããWindowsãLinuxãMacOSäžã§ã®éçºãå¯èœã§ããMVCã¢ãŒããã¯ãã£ãæ¡çšããŠãããã¢ãžã¥ãŒã«æ§ãé«ããæ¡åŒµæ§ã«ãå¯ãã§ããŸããã¯ã©ãŠãããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³éçºãã倧èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã«ãé©ããŠããŸãã
3.2 Entity Framework Core: ããŒã¿ããŒã¹æäœã®å¹çå
Entity Framework Core (EF Core)ã¯ã.NET Coreçšã®ãªãŒãã³ãœãŒã¹ã®ãªããžã§ã¯ãé¢é£ãããã³ã° (ORM) ãã¬ãŒã ã¯ãŒã¯ã§ããããŒã¿ããŒã¹ãšã®ãããšããæœè±¡åããLINQã¯ãšãªã䜿çšããŠããŒã¿ããŒã¹æäœãè¡ãããšãã§ããŸããããã«ãããç ©éãªSQLã¯ãšãªãæžãå¿ èŠããªããã³ãŒãã®å質ãçç£æ§ãåäžãããããšãå¯èœã§ãã
3.3 Xamarin: ã¢ãã€ã«éçºã®ããã³ãã©ã³ããŒ
Xamarinã¯ãC#ãš.NETã䜿çšããŠiOSãAndroidãWindowsã®ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãéçºããããã®ãã©ãããã©ãŒã ã§ããäžã€ã®ãœãŒã¹ã³ãŒãã§è€æ°ã®ãã©ãããã©ãŒã åãã®ã¢ããªã±ãŒã·ã§ã³ãäœæã§ãããããéçºæéãšã³ã¹ããå€§å¹ ã«åæžããããšãã§ããŸãã
3.4 Blazor: ã¢ãã³ãªSPAéçº
Blazorã¯ãWebAssemblyãå©çšããŠãã©ãŠã¶äžã§C#ã³ãŒããå®è¡ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ããJavaScriptã䜿çšããã«ãC#ã®ã¿ã§ãªãããªã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³(SPA)ãéçºããããšãå¯èœã§ãã
3.5 5. ML.NET: æ©æ¢°åŠç¿ãæ軜ã«
ML.NETã¯ãMicrosoftãæäŸããC#ããã³.NETçšã®ãªãŒãã³ãœãŒã¹ã®æ©æ¢°åŠç¿ãã¬ãŒã ã¯ãŒã¯ã§ããç¹å®ã®æ©æ¢°åŠç¿ã®çµéšãèæ¯ãæããªãéçºè ã§ããç°¡åã«ã¢ãã«ã®ãã¬ãŒãã³ã°ãäºæž¬ãè¡ãããšãã§ããŸããããã«ãããããžãã¹ã«å³ããããŒã¿é§åã®ã¢ããªã±ãŒã·ã§ã³ã®éçºãå éãããŸãã
3.6 6. SignalR: ãªã¢ã«ã¿ã€ã éä¿¡ã®ããã®ã©ã€ãã©ãª
SignalRã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§ãªã¢ã«ã¿ã€ã ã®éä¿¡ãå®çŸããããã®ã©ã€ãã©ãªã§ããWebSocketãLong Pollingãšãã£ãæè¡ãçšããŠãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ã®å³æã®ããŒã¿äº€æããµããŒãããŸãã
3.7 7. Orleans: åæ£ã·ã¹ãã åã
ã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ç°å¢ã«ãããåæ£ã¢ããªã±ãŒã·ã§ã³ã®éçºããµããŒãããOrleansã¯ãã¢ã¯ã¿ãŒã¢ãã«ã®ååã«åºã¥ããŠèšèšãããŠããŸããããã«ãããé«ãã¹ã±ãŒã©ããªãã£ãšèé害æ§ãæã£ãã¢ããªã±ãŒã·ã§ã³ãç°¡åã«å®è£ ã§ããŸãã
3.8 8. Avalonia: ã¯ãã¹ãã©ãããã©ãŒã ã®ãã¹ã¯ãããã¢ããªéçº
Avaloniaã¯ãWindowsãLinuxãããã³Macã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ããäžã€ã®ã³ãŒãããŒã¹ã§éçºããããã®UIãã¬ãŒã ã¯ãŒã¯ã§ããMVVMãã¿ãŒã³ã«åºã¥ããŠãããç°¡æœãªXAMLãçšããŠUIããã¶ã€ã³ã§ããŸãã
3.9 9. NUnit: C#åãã®ãã¹ãã£ã³ã°ãã¬ãŒã ã¯ãŒã¯
å質ã®é«ãã³ãŒããä¿ã€ããã«ã¯ãé©åãªãã¹ããäžå¯æ¬ ã§ããNUnitã¯ãC#ã®ããã®ããã¥ã©ãŒãªãŠããããã¹ãã£ã³ã°ãã¬ãŒã ã¯ãŒã¯ã®äžã€ã§ããã¹ãã±ãŒã¹ã®å®çŸ©ãå®è¡ãå©ããè±å¯ãªæ©èœãæã£ãŠããŸãã
3.10 10. Akka.NET: ã¢ã¯ã¿ãŒã¢ãã«ã«åºã¥ãã䞊è¡ã»åæ£ã·ã¹ãã
Akka.NETã¯ãã¢ã¯ã¿ãŒã¢ãã«ã®ååã«åºã¥ããŠèšèšãããã䞊è¡ããã³åæ£ã·ã¹ãã ã®ããã®ãã¬ãŒã ã¯ãŒã¯ã§ãããã€ã¯ããµãŒãã¹ã®èšèšãã倧èŠæš¡ãªã·ã¹ãã ã®æ§ç¯ã«ãããŠãé«ãã¹ã±ãŒã©ããªãã£ãšèé害æ§ãæã£ãã¢ããªã±ãŒã·ã§ã³ãå¹ççã«éçºããããšãå¯èœã§ãã
4. ãã¬ãŒã ã¯ãŒã¯éžã³ã®ãã€ã³ã
ãã¬ãŒã ã¯ãŒã¯ã®éžã³æ¹ã¯ãéçºè ããããžã§ã¯ãã«ãã£ãŠç°ãªãããã決å®çãªæ£è§£ã¯ãããŸãããããããèæ ®ãã¹ããã€ã³ããæŽçããããšã§ããããžã§ã¯ãã®æåã«å¯äžãããã¬ãŒã ã¯ãŒã¯ãéžã¶ç¢ºçãé«ããããšãã§ããŸãã
4.1 ãããžã§ã¯ãã®ç®çãšå¿ èŠæ§ã®æŽç
ãŸãããããžã§ã¯ãã®ç®çãæ確ã«å®çŸ©ããããšãéèŠã§ããäŸãã°ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®éçºãç®çãšããŠããå ŽåãASP.NET Coreã®ãããªãŠã§ãéçºåãã®ãã¬ãŒã ã¯ãŒã¯ãé©ããŠããŸããäžæ¹ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãéçºããéã¯Xamarinãèæ ®ãããã§ããããç®çã«åãããŠãæãé©ãããã¬ãŒã ã¯ãŒã¯ãéžã¶ããšã§ãå¹ççãªéçºãæåŸ ã§ããŸãã
4.2 ã³ãã¥ããã£ã®æŽ»çºããšãµããŒã
ã³ãã¥ããã£ã®æŽ»çºãã¯ããã¬ãŒã ã¯ãŒã¯ã®æç¶çãªæé·ãåé¡ã®è§£æ±ºã«åœ¹ç«ã¡ãŸãã掻çºãªã³ãã¥ããã£ã¯ããã°ã®ä¿®æ£ãæ°æ©èœã®è¿œå ãè¿ éã«è¡ãåŸåããããŸãããŸãã質ã®é«ããµããŒããããã¥ã¡ã³ããæäŸããããããåŠç¿ããã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã«ãªããŸãã
4.3 åŠç¿æ²ç·ãšããã¥ã¡ã³ãã®è³ª
æ°ãããã¬ãŒã ã¯ãŒã¯ãåŠã¶éã®åŠç¿æ²ç·ã¯ãéçºã®ã¹ããŒããå質ã«å€§ããªåœ±é¿ãäžããèŠçŽ ãšãªããŸããåå¿è åãã«èšèšãããŠãããã¬ãŒã ã¯ãŒã¯ããè±å¯ãªããã¥ã¡ã³ããšãµã³ãã«ã³ãŒããæäŸãããŠãããã¬ãŒã ã¯ãŒã¯ã¯ãçæéã§ã®ã¹ãã«ã¢ãããéçºã®é²è¡ãå©ããŠãããŸãã
5. ã¹ããããã€ã¹ãããã¬ã€ã: åºæ¬çãªãã¬ãŒã ã¯ãŒã¯ã®äœ¿çš
ããã°ã©ãã³ã°ã®äžçã«ã¯ãæ°å€ãã®ãã¬ãŒã ã¯ãŒã¯ãååšããŠããŸããããã®äžã§ãç¹ã«æ³šç®ãããŠããã®ããC#ã®ãã¬ãŒã ã¯ãŒã¯ã§ããASP.NET CoreãEntity Framework Coreãããã³Xamarinã§ãããããã®ãã¬ãŒã ã¯ãŒã¯ãçšããŠãåºæ¬çãªãããžã§ã¯ããå®éã«äœæããæé ãã玹ä»ããŸãã
5.1 ASP.NET Core: ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®äœæ
ASP.NET Coreã¯ãã¢ãã³ã§ã¹ã±ãŒã©ãã«ãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãAPIãäœæããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãããŸããéçºç°å¢ãšããŠVisual Studioãã€ã³ã¹ããŒã«ããASP.NET Coreã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ãã³ãã¬ãŒããéžæããŸãããã®ãã³ãã¬ãŒãã䜿çšããããšã§ããŠãŒã¶ãŒèªèšŒãã¬ã€ã¢ãŠãã®åºæ¬çãªæ©èœãäºãçµã¿èŸŒãŸããç¶æ ã§ãããžã§ã¯ããéå§ããããšãã§ããŸãã
5.2 Entity Framework Core: ããŒã¿ããŒã¹æ¥ç¶ã®å®è£
Entity Framework Coreã䜿çšãããšãããŒã¿ããŒã¹ãžã®ã¢ã¯ã»ã¹ãããŒã¿ã®æäœãç°¡åã«å®è£ ããããšãã§ããŸããåãã«ãå¿ èŠãªNuGetããã±ãŒãžããããžã§ã¯ãã«è¿œå ããŸãã次ã«ãããŒã¿ã¢ãã«ãå®çŸ©ãããããããšã«ããŒã¿ããŒã¹ãšã®æ¥ç¶èšå®ãè¡ããŸããããã«ãããã³ãŒãäžã§ã®ããŒã¿ã®CRUDæäœãå¯èœãšãªããŸãã
5.3 Xamarin: ã·ã³ãã«ãªã¢ãã€ã«ã¢ããªã®éçº
ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®éçºã«ã¯Xamarinãéåžžã«æå¹ã§ãããã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã§ãiOSãšAndroidã®2ã€ã®ãã©ãããã©ãŒã åãã®ã¢ããªãåæã«éçºããããšãã§ããŸããXamarinã®ãããžã§ã¯ããéå§ããéã«ã¯ãå ±éã®ããžãã¹ããžãã¯ãC#ã§æžããããããã®ãã©ãããã©ãŒã åãã®UIãXAMLã§å®çŸ©ããŸãã
6. å¿çšçãªãã¬ãŒã ã¯ãŒã¯ã®æŽ»çš
è¿å¹Žãæè¡ã®é²åãšå ±ã«ãããé«åºŠãªæ©èœãæã€ãã¬ãŒã ã¯ãŒã¯ãå€æ°ç»å ŽããŠããŸããããã§ã¯ãç¹ã«æ³šç®ãéããŠããBlazorãSignalRãããã³ML.NETã®3ã€ã®ãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠããã®ç¹åŸŽã掻çšæ¹æ³ã«ã€ããŠè§£èª¬ããŸãã
6.1 Blazor: ãŠã§ãããã³ããšã³ãã®éçº
Blazorã¯ãC#ãçšããŠãŠã§ãã®ããã³ããšã³ãéçºãè¡ãããã®ãã¬ãŒã ã¯ãŒã¯ã§ããJavaScriptã®ä»£ããã«C#ãçšããããšãå¯èœãšãªãããŠã§ãããŒãžã®åçãªæäœãSPAïŒSingle Page ApplicationïŒã®éçºãç°¡åã«ãªããŸãããŸããBlazor WebAssemblyãå©çšããããšã§ããã©ãŠã¶äžã§C#ã³ãŒããçŽæ¥å®è¡ããããšãå¯èœã§ãã
6.2 SignalR: ãªã¢ã«ã¿ã€ã ãªéä¿¡ã®å®çŸ
ãªã¢ã«ã¿ã€ã ã®éä¿¡ãæ±ããããã·ãã¥ãšãŒã·ã§ã³ã¯å¢ããŠããããã®äžã§SignalRã¯éåžžã«æå¹ãªããŒã«ãšããŠç¥ãããŠããŸãããã£ããã¢ããªããªã³ã©ã€ã³ã²ãŒã ãæ ªäŸ¡ã®ãªã¢ã«ã¿ã€ã 衚瀺ãªã©ããŠãŒã¶ãŒãšã®ãªã¢ã«ã¿ã€ã ãªã€ã³ã¿ã©ã¯ã·ã§ã³ãå¿ èŠãªå Žé¢ã§ã®å©çšãèããããŸããWebSocketsãServer-Sent EventsãLong Pollingãšãã£ãæè¡ãããã¯ã°ã©ãŠã³ãã§å©çšããéçºè ã«ã¯ã·ã³ãã«ãªAPIãæäŸããŸãã
6.3 ML.NET: C#ã§ã®æ©æ¢°åŠç¿ã®å°å ¥
æ©æ¢°åŠç¿ã¯ä»ãå€ãã®ã¢ããªã±ãŒã·ã§ã³ã§å¿ èŠãšãããæè¡ã®äžã€ã§ããML.NETã䜿çšããã°ãC#ãF#ã®ç°å¢ã§ç°¡åã«æ©æ¢°åŠç¿ã¢ãã«ã®æ§ç¯ãå©çšãå¯èœã§ããç»åã®åé¡ãããã¹ãåæãäºæž¬ã¢ãã«ã®äœæãªã©ãå¹ åºãã¿ã¹ã¯ã«å¯Ÿå¿ããŠãããæ¢åã®.NETã¢ããªã±ãŒã·ã§ã³ã«æ©æ¢°åŠç¿ã®æ©èœãè¿œå ããéã«éåžžã«äŸ¿å©ã§ãã
7. å®è·µçãªãããžã§ã¯ãäŸ
ãã¬ãŒã ã¯ãŒã¯ã®åŠç¿ã¯éåžžã«éèŠã§ããããã®ç¥èãå®éã®ãããžã§ã¯ãã§çããããšãæçµçãªãŽãŒã«ã§ããããã§ã¯ãå žåçãªECãµã€ããäŸã«ãå ·äœçãªãããžã§ã¯ãã®æŠèŠãšãè€æ°ã®ãã¬ãŒã ã¯ãŒã¯ãçµã¿åãããéçºãããŒã解説ããŸãã
7.1 ECãµã€ãã®ãµã³ãã«ãããžã§ã¯ãæŠèŠ
ä»åã®ãµã³ãã«ãããžã§ã¯ãã§ã¯ããŠãŒã¶ãŒãååãé²èŠ§ããã«ãŒãã«è¿œå ããããŠè³Œå ¥ãããšããåºæ¬çãªæµããæã€ECãµã€ããæ³å®ããŸããããã³ããšã³ãã«ã¯Blazorããããã¯ãšã³ãã®APIãšããŠASP.NET Coreã䜿çšããŸãããŸããããŒã¿ããŒã¹ãšã®ããåãã«ã¯Entity Framework Coreã掻çšããŸãã
7.2 ãã¬ãŒã ã¯ãŒã¯ãçµã¿åãããéçºãããŒ
éçºãå§ããéããŸãããŒã¿ããŒã¹ã®èšèšãå¿ èŠãšãªããŸãããã®æç¹ã§Entity Framework CoreãçšããŠãå¿ èŠãªããŒãã«ããªã¬ãŒã·ã§ã³ã·ãããå®çŸ©ããŸãã次ã«ãASP.NET CoreãçšããŠAPIãäœæããŸãããã®APIã¯ååæ å ±ã®ååŸãã«ãŒããžã®è¿œå ãè³Œå ¥åŠçãªã©ãECãµã€ãã«å¿ èŠãªæ©èœãæäŸããŸããæåŸã«ãBlazorãçšããŠããã³ããšã³ããéçºããŸãããŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã«å¿ããŠãå ã»ã©äœæããAPIãšéä¿¡ããé©åãªã¬ã¹ãã³ã¹ã衚瀺ããŸãã
ãã®ããã«ãè€æ°ã®ãã¬ãŒã ã¯ãŒã¯ãçµã¿åãããããšã§ãå¹ççã§åŒ·åãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®éçºãå¯èœãšãªããŸãã
8. ãŸãšããšæ¬¡ãžã®äžæ©
ãã®èšäºãéããŠãå€ãã®ãã¬ãŒã ã¯ãŒã¯ã®åºæ¬çãªå©çšæ¹æ³ãå®è·µçãªæŽ»çšäŸã«ã€ããŠåŠã¶ããšãã§ããŸããããã¬ãŒã ã¯ãŒã¯ãå¹æçã«äœ¿çšããããšã§ãéçºã®å¹çåãã¢ããªã±ãŒã·ã§ã³ã®å質åäžã«å€§ããå¯äžããŸããããããåŠã³ã¯ããã§çµããã§ã¯ãããŸãããããã«æ·±ãåŠã¶ããã®ãªãœãŒã¹ããèªåã®ãããžã§ã¯ãã«æé©ãªãã¬ãŒã ã¯ãŒã¯ãéžã¶ããã®ãã³ãã以äžã«çŽ¹ä»ããŸãã
8.1 ãã¬ãŒã ã¯ãŒã¯ã®åŠã³ãæ·±ããããã®ãªãœãŒã¹
ãã¬ãŒã ã¯ãŒã¯ã«é¢ããç¥èãããã«æ·±ããããã«ã¯ãå ¬åŒããã¥ã¡ã³ããé¢é£ãããªã³ã©ã€ã³ã³ãŒã¹ãæžç±ã掻çšããããšãããããã§ããç¹ã«å ¬åŒããã¥ã¡ã³ãã¯ãææ°ã®æ å ±ã詳现ãªä»æ§ãèšèŒãããŠãããããåå¿è ããäžçŽè ãŸã§åœ¹ç«ã€ãªãœãŒã¹ãšãªããŸãããŸãããªã³ã©ã€ã³ã³ãã¥ããã£ããã©ãŒã©ã ã掻çšããããšã§ãä»ã®éçºè ãšã®æ å ±äº€æãçåç¹ã®è§£æ¶ãå¯èœã§ãã
8.2 èªåã®ãããžã§ã¯ãã«æé©ãªãã¬ãŒã ã¯ãŒã¯ãéžã¶ããã®ãã³ã
ãã¬ãŒã ã¯ãŒã¯ãéžã¶éã«ã¯ããããžã§ã¯ãã®èŠä»¶ãç®çããããŠèªèº«ã®æè¡ã¹ã¿ãã¯ãçµéšãèæ ®ããããšãéèŠã§ãããã¹ãŠã®ãã¬ãŒã ã¯ãŒã¯ããã¹ãŠã®ãããžã§ã¯ãã«é©ããŠããããã§ã¯ãªããããå ·äœçãªããŒãºã«åºã¥ããŠéžæãè¡ãããšãå¿ èŠã§ããäŸãã°ããªã¢ã«ã¿ã€ã ã®éä¿¡ãå¿ èŠãšããã¢ããªã±ãŒã·ã§ã³ã®å ŽåãSignalRã®ãããªãªã¢ã«ã¿ã€ã éä¿¡ã«ç¹åãããã¬ãŒã ã¯ãŒã¯ãããããã§ããäžæ¹ãè€éãªããžãã¹ããžãã¯ãæã€ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®å ŽåãASP.NET CoreãEntity Framework Coreã®ãããªåŒ·åãªããã¯ãšã³ããã¬ãŒã ã¯ãŒã¯ã®å©çšãæ€èšãããšè¯ãã§ãããã