Note
ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ è¦ã§ãã ãµã¤ã³ã¤ã³ã¾ãã¯ãã£ã¬ã¯ããªã®å¤æ´ã試ããã¨ãã§ãã¾ãã
ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ è¦ã§ãã ãã£ã¬ã¯ããªã®å¤æ´ã試ããã¨ãã§ãã¾ãã
.NET ã¯ããã¾ãã¾ãªç¨®é¡ã®ã¢ããªã±ã¼ã·ã§ã³ãæ§ç¯ããããã®ç¡æã®ã¯ãã¹ãã©ãããã©ã¼ã ã®ãªã¼ãã³ã½ã¼ã¹éçºè ãã©ãããã©ã¼ã ã§ãã è¤æ°ã®è¨èªã§è¨è¿°ãããããã°ã©ã ãå®è¡ã§ããC# ãæãä¸è¬çã§ãã ããã¯ãå¤ãã®å¤§è¦æ¨¡ãªã¢ããªã«ãã£ã¦éç¨ç°å¢ã§ä½¿ç¨ãããé«ããã©ã¼ãã³ã¹ã©ã³ã¿ã¤ã ã«ä¾åãã¦ãã¾ãã
.NET ããã¦ã³ãã¼ããã¦æåã®ã¢ããªã®ä½æãéå§ããæ¹æ³ã«ã¤ãã¦ã¯ãã使¥ã®éå§ããåç §ãã¦ãã ããã
.NET ãã©ãããã©ã¼ã ã¯ãçç£æ§ãããã©ã¼ãã³ã¹ãã»ãã¥ãªãã£ãä¿¡é ¼æ§ãæä¾ããããã«è¨è¨ããã¦ãã¾ãã
ã¬ãã¼ã¸ ã³ã¬ã¯ã¿ã¼ (GC) ãä»ããèªåã¡ã¢ãªç®¡çãæä¾ãã¾ãã ããã¯ãGC ã¨å³å¯ãªè¨èªã³ã³ãã¤ã©ã使ç¨ãããããã¿ã¤ã ã»ã¼ãã§ã¡ã¢ãª ã»ã¼ãã§ãã
async
/ããã³awaitããªããã£ããä»ãã¦Taskãæä¾ãã¾ãã ããã«ã¯ãåºç¯ãªæ©è½ãåããè¤æ°ã®ãªãã¬ã¼ãã£ã³ã° ã·ã¹ãã ã¨ããã ã¢ã¼ããã¯ãã£ã®ããã©ã¼ãã³ã¹ç¨ã«æé©åããã夿°ã®ã©ã¤ãã©ãªãå«ã¾ãã¦ãã¾ãã
.NET ã«ã¯ã次㮠è¨è¨ãã¤ã³ããããã¾ãã
- çç£æ§ã¯ãéçºè ã® ã¦ã¼ã¶ã¼ ã¨ã¯ã¹ããªã¨ã³ã¹ã«è²¢ç®ããã©ã³ã¿ã¤ã ãã©ã¤ãã©ãªãè¨èªãããã³ãã¼ã«ããã¹ã¦åãããã« ã¹ã¿ãã¯ã§ãã
- å®å ¨ãªã³ã¼ã ã¯ä¸»è¦ãªã³ã³ãã¥ã¼ãã£ã³ã° ã¢ãã«ã§ããã å®å ¨ã§ãªãã³ã¼ã ã§ã¯è¿½å ã®æåæé©åãå¯è½ã«ãªãã¾ãã
- éçã³ã¼ãã¨åçã³ã¼ã ã®ä¸¡æ¹ããµãã¼ãããã¦ããããããã¾ãã¾ãªã·ããªãªãå¯è½ã«ãªãã¾ãã
- ãã¤ãã£ã ã³ã¼ãç¸äºéç¨æ©è½ã¨ãã¼ãã¦ã§ã¢çµã¿è¾¼ã¿é¢æ° ã¯ãä½ã³ã¹ãã§é«å¿ 宿§ (çã® API ã¨å½ä»¤ã¢ã¯ã»ã¹) ã§ãã
- ã³ã¼ãã¯ãã©ãããã©ã¼ã é (OS ããã³ããã ã¢ã¼ããã¯ãã£) éã§ç§»æ¤å¯è½ã§ããããã©ãããã©ã¼ã ã®ã¿ã¼ã²ããè¨å®ã«ãããç¹æ®åã¨æé©åãå¯è½ã«ãªãã¾ãã
- æ±ç¨ããã°ã©ãã³ã° ã¢ãã«ã® ç¹æ®ãªå®è£ ã«ãããããã°ã©ãã³ã° ãã¡ã¤ã³ (ã¯ã©ã¦ããã¯ã©ã¤ã¢ã³ããã²ã¼ã ) å ¨ä½ã®é©å¿æ§ãå®ç¾ããã¾ãã
- OpenTelemetry ã gRPC ãªã©ã®æ¥çæ¨æºã¯ãç¹æ³¨ã½ãªã¥ã¼ã·ã§ã³ãããåªå ããã¾ãã
.NET ã¯ãMicrosoft ã¨ã°ãã¼ãã« ã³ãã¥ããã£ã«ãã£ã¦å ±åã§ç®¡çããã¦ãã¾ãã 宿çãªæ´æ°ã«ãããã¦ã¼ã¶ã¼ã¯ã»ãã¥ãªãã£ã§ä¿è·ãããä¿¡é ¼æ§ã®é«ãã¢ããªã±ã¼ã·ã§ã³ãéç¨ç°å¢ã«ãããã¤ã§ãã¾ãã
ã³ã³ãã¼ãã³ã
.NET ã«ã¯ã次ã®ã³ã³ãã¼ãã³ããå«ã¾ãã¦ãã¾ãã
- ã©ã³ã¿ã¤ã -- ã¢ããªã±ã¼ã·ã§ã³ ã³ã¼ããå®è¡ãã¾ãã
- ã©ã¤ãã©ãª - JSON è§£æãªã©ã®ã¦ã¼ãã£ãªãã£æ©è½ãæä¾ãã¾ãã
- ã³ã³ãã¤ã© -- C# (ããã³ãã®ä»ã®è¨èª) ã½ã¼ã¹ ã³ã¼ãã (ã©ã³ã¿ã¤ã ) å®è¡å¯è½ã³ã¼ãã«ã³ã³ãã¤ã«ãã¾ãã
- SDK ããã®ä»ã®ãã¼ã« - ææ°ã®ã¯ã¼ã¯ããã¼ã使ç¨ãã¦ã¢ããªã®æ§ç¯ã¨ç£è¦ãå¯è½ã«ãã¾ãã
- ã¢ã㪠ã¹ã¿ã㯠-- ASP.NET Core ã Windows ãã©ã¼ã ãªã©ãã¢ããªã®ä½æãå¯è½ã«ãã¾ãã
ã©ã³ã¿ã¤ã ãã©ã¤ãã©ãªãããã³è¨èªã¯ã.NET ã¹ã¿ãã¯ã®æ±ã§ãã .NET ãã¼ã«ãã¢ã㪠ã¹ã¿ãã¯ãªã©ã®ä¸ä½ã¬ãã«ã®ã³ã³ãã¼ãã³ã (ASP.NET Core ãªã©) ã¯ããããã®æ±ã®ä¸ã«æ§ç¯ããã¾ãã C# 㯠.NET ã®ä¸»è¦ãªããã°ã©ãã³ã°è¨èªã§ããã.NET ã®å¤ã㯠C# ã§è¨è¿°ããã¦ãã¾ãã
C# ã¯ãªãã¸ã§ã¯ãæåã§ãããã©ã³ã¿ã¤ã ã¯ãªãã¸ã§ã¯ãã®åãããµãã¼ããã¾ãã C# ã«ã¯ã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ãå¿ è¦ã¨ãããã©ã³ã¿ã¤ã ã¯ãã¬ã¼ã¹æ©è½ä»ãã®ã¬ãã¼ã¸ã³ã¬ã¯ã¿ã¼ãæä¾ãã¾ãã ã©ã¤ãã©ãª (ããã³ã¢ã㪠ã¹ã¿ãã¯) ã¯ããããã®æ©è½ãæ¦å¿µã¨ãªãã¸ã§ã¯ã ã¢ãã«ã«å½¢æããéçºè ãç´æçãªã¯ã¼ã¯ããã¼ã§ã¢ã«ã´ãªãºã ãçç£çã«è¨è¿°ã§ããããã«ãã¾ãã
ã³ã¢ ã©ã¤ãã©ãªã§ã¯ä½åãã®åãå
¬éããã¦ããããã®å¤ã㯠C# è¨èªã¨çµ±åãããçæã¨ãªãã¾ãã ãã¨ãã°ãC# ã® foreach ã¹ãã¼ãã¡ã³ãã使ç¨ããã¨ãä»»æã®ã³ã¬ã¯ã·ã§ã³ãåæã§ãã¾ãã ãã¿ã¼ã³ãã¼ã¹ã®æé©åã«ããã List<T> ãªã©ã®ã³ã¬ã¯ã·ã§ã³ãç°¡åãã¤å¹ççã«å¦çã§ãã¾ãã ãªã½ã¼ã¹ç®¡çã¯ã¬ãã¼ã¸ ã³ã¬ã¯ã·ã§ã³ã«ä»»ãããã¨ãã§ãã¾ãããIDisposableãããã³ using ã¹ãã¼ãã¡ã³ãã§ã®ç´æ¥çãªè¨èªãµãã¼ãã使ç¨ãã¦ãè¿
éãªã¯ãªã¼ã³ã¢ãããå¯è½ã§ãã
è¤æ°ã®å¦çãåæã«å®è¡ããããã®ãµãã¼ãã¯ãå®è³ªçã«ãã¹ã¦ã®ã¯ã¼ã¯ãã¼ãã®åºæ¬ã§ãã ããã¯ãUI ã®å¿çæ§ãç¶æããªããããã¯ã°ã©ã¦ã³ãå¦çãè¡ãã¯ã©ã¤ã¢ã³ã ã¢ããªã±ã¼ã·ã§ã³ãä½åãã®åæè¦æ±ãå¦çãããµã¼ãã¹ã夿°ã®åæåºæ¿ã«å¿çããããã¤ã¹ãã³ã³ãã¥ã¼ãã£ã³ã°éä¸åæä½ã®å¦çã並ååãã髿§è½ãã·ã³ãªã©ã§ãã éåæããã°ã©ãã³ã°ã®ãµãã¼ãã¯ãC# ããã°ã©ãã³ã°è¨èªã®æä¸ä½ã®æ©è½ã§ããã async ãã¼ã¯ã¼ã㨠await ãã¼ã¯ã¼ããæä¾ãã¾ãããã®ãã¼ã¯ã¼ãã使ç¨ããã¨ãéåææä½ãç°¡åã«è¨è¿°ãã¦ä½æã§ããè¨èªã§æä¾ããããã¹ã¦ã®å¶å¾¡ããã¼ã³ã³ã¹ãã©ã¯ãã®å©ç¹ãå¼ãç¶ã享åã§ãã¾ãã
ã¿ã¤ãã·ã¹ãã ã¯ãå®å ¨æ§ãèª¬ææ§ããã¤ãããºã ããã¤ãã£ãã¨ã®ç¸äºéç¨æ§ã®ããããã«å¤§å¹ ãªæè»æ§ãæä¾ãã¾ãã ã¾ã第ä¸ã«ãåã·ã¹ãã ã¯ãªãã¸ã§ã¯ãæåããã°ã©ãã³ã° ã¢ãã«ãå¯è½ã«ãã¾ãã ããã«ã¯ãåã(åä¸ã®åºåºã¯ã©ã¹) ç¶æ¿ãã¤ã³ã¿ã¼ãã§ã¤ã¹ (æ¢å®ã®ã¡ã½ããå®è£ ãå«ã)ãä»®æ³ã¡ã½ãããã£ã¹ããããå«ã¾ãã¦ããããªãã¸ã§ã¯ãã®åãã許å¯ãããã¹ã¦ã®åã¬ã¤ã¤ã¼ã«é©åãªåä½ãæä¾ãã¾ãã ã¸ã§ããªãã¯å ã¯ã¦ããã¿ã¹ã§ãããã¯ã©ã¹ã 1 ã¤ä»¥ä¸ã®åã«ç¹åã§ãã¾ãã
.NET ã©ã³ã¿ã¤ã ã¯ãã¬ãã¼ã¸ ã³ã¬ã¯ã¿ã¼ãä»ãã¦èªåã¡ã¢ãªç®¡çãæä¾ãã¾ãã ã©ã®è¨èªã§ãããã®ã¡ã¢ãªç®¡çã¢ãã«ã¯ãæãå®ç¾©çãªç¹æ§ã§ããå¯è½æ§ãããã¾ãã ããã¯ã.NET è¨èªã®å ´åã«å½ã¦ã¯ã¾ãã¾ãã .NET ã«ã¯èªå·±ãã¥ã¼ãã³ã°åã®ãã¬ã¼ã¹ GC ãããã¾ãã ããã¯ãããæ¥µç«¯ãªã¯ã¼ã¯ãã¼ãã®æ§æãªãã·ã§ã³ãæä¾ããªãããä¸è¬çãªã±ã¼ã¹ã§ "ãã³ãºãªã" ã®ä½¿ç¨ãæä¾ãããã¨ãç®çã¨ãã¦ãã¾ãã ç¾å¨ã® GC ã¯ãé·å¹´ã«ãããæè³ã¨ã夿°ã®ã¯ã¼ã¯ãã¼ãããã®å¦ç¿ã®çµæã§ãã
å¤åã¨ã¹ã¿ãã¯å²ãå½ã¦ã¡ã¢ãªãããã¯ã¯ããã¼ã¿ã¨ãã¤ãã£ããã©ãããã©ã¼ã ã®ç¸äºéç¨ãå¯è½ã«ããããã«ã.NETã®GCã«ãã£ã¦ç®¡çãããåã«æ¯ã¹ã¦ãããç´æ¥çã§ä½ã¬ãã«ã®å¶å¾¡ãæä¾ãã¾ãã .NET ã®ããªããã£ãåã®ã»ã¨ãã©ã¯æ´æ°åã¨åæ§ã«å¤åã§ãããã¦ã¼ã¶ã¼ã¯åæ§ã®ã»ãã³ãã£ã¯ã¹ã§ç¬èªã®åãå®ç¾©ã§ãã¾ãã å¤å㯠.NET ã®ã¸ã§ããªã㯠ã·ã¹ãã ãéãã¦å®å
¨ã«ãµãã¼ãããã¦ããããã㯠List<T> ã®ãããªã¸ã§ããªãã¯åãå¤åã³ã¬ã¯ã·ã§ã³ã®ãã©ããã§ãªã¼ãã¼ãããã®ãªãã¡ã¢ãªè¡¨ç¾ãæä¾ã§ãããã¨ãæå³ãã¦ãã¾ãã
ãªãã¬ã¯ã·ã§ã³ 㯠"ãã¼ã¿ã¨ãã¦ã®ããã°ã©ã " ãã©ãã¤ã ã§ãããããã°ã©ã ã® 1 ã¤ã®é¨åã§ãã¢ã»ã³ããªãåãããã³ã¡ã³ãã¼ã®è¦³ç¹ãããå¥ã®é¨åã«å¯¾ãã¦åçã«ã¯ã¨ãªãå®è¡ãã¦å¼ã³åºããã¨ãã§ãã¾ãã ããã¯ãé å»¶ãã¤ã³ãã£ã³ã° ããã°ã©ãã³ã°ã®ã¢ãã«ã¨ãã¼ã«ã§ç¹ã«æ´»ç¨ã§ãã¾ãã
ä¾å¤ã¯ã.NET ã®ä¸»è¦ãªã¨ã©ã¼å¦çã¢ãã«ã§ãã ä¾å¤ã«ã¯ãã¨ã©ã¼æ å ±ãã¡ã½ãã ã·ã°ããã£ã§è¡¨ãããããã¹ã¦ã®ã¡ã½ããã§å¦çãããããå¿ è¦ããªãã¨ããå©ç¹ãããã¾ãã ã¢ããªã±ã¼ã·ã§ã³ã®ä¿¡é ¼æ§ã«ã¯ãé©åãªä¾å¤å¦çãä¸å¯æ¬ ã§ãã ã¢ããªãã¯ã©ãã·ã¥ããã®ãé²ãããã«ãã³ã¼ãã§äºæãããä¾å¤ãæå³çã«å¦çã§ãã¾ãã ã¯ã©ãã·ã¥ããã¢ããªã¯ãæªå®ç¾©ã®åä½ãæã¤ã¢ããªãããä¿¡é ¼æ§ãé«ãã診æå¯è½ã§ãã
ASP.NET Core ã Windows ãã©ã¼ã ãªã©ã®ã¢ã㪠ã¹ã¿ãã¯ã¯ãä½ã¬ãã«ã®ã©ã¤ãã©ãªãè¨èªãã©ã³ã¿ã¤ã ãåºã«ãã¦å©ç¨ãã¾ãã ã¢ã㪠ã¹ã¿ãã¯ã¯ãã¢ããªã®æ§ç¯æ¹æ³ã¨å®è¡ã®ã©ã¤ããµã¤ã¯ã«ãå®ç¾©ãã¾ãã
SDK ããã®ä»ã®ãã¼ã«ã使ç¨ããã¨ãéçºè
ã®ãã¹ã¯ãããã¨ç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ (CI) ã®ä¸¡æ¹ã§ãææ°ã®éçºè
ã¨ã¯ã¹ããªã¨ã³ã¹ãå®ç¾ã§ãã¾ãã ææ°ã®éçºè
ã¨ã¯ã¹ããªã¨ã³ã¹ã«ã¯ãã³ã¼ãã®ãã«ããåæããã¹ããå«ã¾ãã¾ãã .NET ããã¸ã§ã¯ãã¯ãå¤ãã®å ´åãNuGet ããã±ã¼ã¸ã®å¾©å
ã¨ä¾åé¢ä¿ã®æ§ç¯ã調æ´ãã 1 ã¤ã® dotnet build ã³ãã³ãã«ãã£ã¦ãã«ãã§ãã¾ãã
NuGet ã¯ã.NET ã®ããã±ã¼ã¸ ããã¼ã¸ã£ã¼ã§ãã ããã«ã¯ãå¤ãã®ã·ããªãªã«å¯¾å¿ããæ©è½ãå®è£ ããæ°åä¸ã®ããã±ã¼ã¸ãå«ã¾ãã¦ãã¾ãã ã¢ããªã®å¤§é¨åã¯ãä¸é¨ã®æ©è½ã®ããã« NuGet ããã±ã¼ã¸ã«ä¾åãã¦ãã¾ãã NuGet ã®ã£ã©ãªã¼ã¯ Microsoft ã«ãã£ã¦ç®¡çããã¦ãã¾ãã
ç¡æã§ãªã¼ãã³ ã½ã¼ã¹
.NET ã¯ç¡æã§ãªã¼ãã³ ã½ã¼ã¹ã§ããã .NET Foundation ããã¸ã§ã¯ãã§ãã .NET ã¯ãMicrosoft 㨠GitHub ã®ã³ãã¥ããã£ã«ãã£ã¦ ãããã¤ãã®ãªãã¸ããªã§ç®¡çããã¦ãã¾ãã
.NET ã½ã¼ã¹ã¨ãã¤ããªã«ã¯ MIT ã©ã¤ã»ã³ã¹ãä»ä¸ããã¾ãã Windows ã«ã¯è¿½å ã®ã©ã¤ã»ã³ã¹ãé©ç¨ããã¾ãã
æ¯æ´
.NET ã¯ã.NET ãè¤æ°ã®ãªãã¬ã¼ãã£ã³ã° ã·ã¹ãã ã§å®è¡ã§ããææ°ã®ç¶æ ã«ä¿ãããããã«åä½ããè¤æ°ã®çµç¹ã«ãã£ã¦ãµãã¼ãããã¦ãã¾ãã Arm64ãx64ãx86 ã®ã¢ã¼ããã¯ãã£ã§ä½¿ç¨ã§ãã¾ãã
.NET ã®æ°ãããã¼ã¸ã§ã³ã¯ãMicrosoft ã® ãªãªã¼ã¹ã¨ãµãã¼ã ããªã·ã¼ã«å¾ã£ã¦ãæ¯å¹´ 11 æã«ãªãªã¼ã¹ããã¾ãã ãããç«ææ¥ (第 2 ç«ææ¥) ã« æ¯ææ´æ° ãããé常ã¯å¤ªå¹³æ´æ¨æºæã®åå 10 æã«æ´æ°ããã¾ãã
.NET ã¨ã³ã·ã¹ãã
.NET ã«ã¯è¤æ°ã®ããªã¨ã¼ã·ã§ã³ãããããããããç°ãªã種é¡ã®ã¢ããªããµãã¼ããã¦ãã¾ãã è¤æ°ã®ããªã¢ã³ãã®çç±ã¯ãä¸é¨ã®å±¥æ´ãä¸é¨ã®æè¡ã§ãã
.NET ã®å®è£ :
- .NET (Core) -- ã¢ãã³ .NETã .NET ã®ã¯ãã¹ãã©ãããã©ã¼ã ã§ãªã¼ãã³ ã½ã¼ã¹ã®å®è£ ãã¯ã©ã¦ãã®æä»£ãèãç´ãã䏿¹ã§ãäºææ§ã¯é常ã«é«ãã¾ã¾ã§ãã é²åããç©æ¥µçã«ãµãã¼ãããã¦ãã¾ãã
- .NET Framework -- å ã® .NETã Windows 㨠Windows Server ã®å¹ åºãæ©è½ã«ã¢ã¯ã»ã¹ã§ãã¾ãã ç¾å¨ãã¡ã³ããã³ã¹ä¸ã§ãç©æ¥µçã«ãµãã¼ãããã¦ãã¾ãã
- Mono -- å ã®ã³ãã¥ããã£ã¨ãªã¼ãã³ ã½ã¼ã¹ã® .NETã .NET Framework ã®ã¯ãã¹ãã©ãããã©ã¼ã å®è£ ã