ASP.NET CoreãæäŸãããã¹ãŠã®æ°æ©èœãç¿åŸããã«ã¯ã©ãããã°ããã§ããïŒ èè ã¯ãæ¶ç©ºã®äŒç€ŸAlpine Ski HouseãäŸãšããŠäœ¿çšããŠãç¹å®ã®åé¡ã®è§£æ±ºçã説æããŸãã åç« ã®åã«ã¯ãéçºããŒã ãçŽé¢ããŠããåé¡ãšããã®åé¡ãã©ã®ããã«å æãããã«ã€ããŠã®çãã¹ããŒãªãŒããããŸãã ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ãŒãã¯ã©ãŠãã§äœæ¥ããããã®ã¢ããªã±ãŒã·ã§ã³ã®å±éããã³èšèšã®æ¹æ³ããã®ä»å€ãã®ããšãç解ããå¿ èŠããããŸãã
ãã®æ¬ã¯ãæ¶ç©ºã®äŒç€ŸAlpine Ski Houseã§ã®æåã®ã¢ããªã±ãŒã·ã§ã³éçºã¹ããªã³ããæ±ã£ãŠããŸãã åç« ã®åã«ã¯ãéçºããŒã ãçŽé¢ããŠããåé¡ãšããããã©ã®ããã«å æãããã«ã€ããŠã®çãã¹ããŒãªãŒããããŸãã ãã£ã¯ã·ã§ã³ã®èŠçŽ ãååšããã«ããããããããã®æ¬ã¯ãASP.NET Core MVCã®æ©èœã ãã§ãªããéçºè ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãä¿å®ãããã³å±éããããã«äœ¿çšããããŒã«ã«ã€ããŠãæ·±ãã«ããŒããŠããŸãã
ASP.NET Core MVCã«é¢ããã¹ããŒãªãŒãšæè¡æ å ±ã«å ããŠãæ¬æžã§ã¯ãææ°ã®Webéçºè ã䜿çšããEntity Frameworkã®æ°ããããŒãžã§ã³ãããã±ãŒãžç®¡çã·ã¹ãã ãããã³åšèŸºæè¡ã«ã€ããŠèª¬æããŠããŸãã çè«çãªãã¬ãŒãã³ã°è³æã«å ããŠãã¢ã«ãã³ã¹ããŒããŠã¹ã®ããã°ã©ããŒã«ãã£ãŠéçºããããããžã§ã¯ããä»å±ããŠããŸãã
ãã®æ¬ã¯èª°ã®ããã«æžãããã®ã§ããïŒ
ãã®æ¬ã¯ãASP.NET Coreã«åºã¥ããŠæ°ããã¢ããªã±ãŒã·ã§ã³ãäœæããã€ã³ã¿ãŒããããä»ããŠãã®ã¢ããªã±ãŒã·ã§ã³ãžã®ã¢ã¯ã»ã¹ãæäŸãããã¹ãŠã®æ®µéãéããŠããã°ã©ããŒãã¬ã€ãããŸãã å€ãã®ããã°ã©ããŒã¯ãçŸåšå©çšå¯èœãªãœãããŠã§ã¢ããŒã«ãè±å¯ã«ããã«ããããããããŸã Webéçºã®äžçããé ãé¢ããŠããããWebFormsãä»ããŠWebéçºãšãããã«ããæ¥è§ŠããŠããŸããã ãã®æ¬ã¯ãèªè ãç©æ¥µçã«éçºããŠãããã¬ãŒã ã¯ãŒã¯ã§ææ°ã®ã¢ããªã±ãŒã·ã§ã³ãèšèšããããã«å¿ èŠãªã¹ãã«ãç¿åŸããã®ã«åœ¹ç«ã¡ãŸãã ã¯ã©ãŠãã§äœæ¥ããããã®ã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ãå±éãèšèšããŒã«ã«ã€ããŠåŠç¿ããŸãã
ãã®æ¬ã¯ããªãã«é©ããŠããªãå Žå...
ããªããASP.NET Core MVCã®éçºã«å¯æ¥ã«åŸããããŸãã¯çŽæ¥é¢äžããŠããçµéšã®ããASP.NET MVCéçºè ã§ããå Žåããã®æ¬ã¯ããªãã«é©ããªããããããŸããã
æ¬ã®æ§é
ãã®æ¬ã¯ãã¢ããªã±ãŒã·ã§ã³éçºäžã«åã ã®ã¹ããªã³ãã«ã€ããŠéçºè ãã¬ã€ããããšããçããã¢ãããŒãã䜿çšããŠããŸãã ãã¯ãããžãŒã ãã§ãªãããšã©ãŒããã®å埩ããã»ã¹ãšããŠãŒã¶ãŒã®ãã£ãŒãããã¯ã«å¯Ÿããéçºè ã®åå¿ãèæ ®ããŸãã æåããå§ããŠãæ¬æ Œçãªå®è¡å¯èœãªè£œåã§çµãããŸãã
æ¬ã¯4ã€ã®éšåã«åãããŠããŸãã
â¢ããŒãIãã¹ããªã³ãã¯ã³ïŒã¢ã«ãã€ã³ã¹ããŒããŠã¹ã¢ããªã±ãŒã·ã§ã³ãã§ã¯ãèªè ã«ç¶æ³ã®æ¬è³ªã玹ä»ããŸããæ¬ã§äœ¿çšãããã¢ããªã±ãŒã·ã§ã³ãšã¹ããŒãªãŒã®æ¶ç©ºã®ç»å Žäººç©ã«ã€ããŠèª¬æããŠããŸãã
â¢ããŒãIIãã¹ããªã³ã2ïŒ1000ã¹ãããã®æ ãã¯ãã¢ããªã±ãŒã·ã§ã³ã®äž»ãªæ©èœçåŽé¢ãšãå±éããã®å Žã§éå§ãããã€ãã©ã€ã³ã®èšå®ã«å°å¿µããããã»ã¹ã¯éçºããŒã å šäœãç解ã§ããããã«ããŸãã
â¢ããŒãIIIãã¹ããªã³ã3ïŒããŒã¹ããªãã¶ããŒã¹ãã§ã¯ãå®éã®ããžãã¹ããã»ã¹ã§ãã¹ãã¢ããªã±ãŒã·ã§ã³ã®äœ¿çšãéå§ããããã«å¿ èŠãªåºæ¬æ©èœã«çŠç¹ãåœãŠãŸãã ç¹ã«ãEntity Frameworkã³ã¢ãä»ããããŒã¿ã®æäœãRazorããŒã¹ã®ãã¥ãŒã®äœæãæ§æãšãã°ãã»ãã¥ãªãã£ãšæš©éã®ç®¡çãæåŸã«äŸåé¢ä¿ã®æ³šå ¥ã«ã€ããŠèª¬æããŸãã
â¢ããŒãIVãã¹ããªã³ã4ïŒãã£ããã·ã¥ã©ã€ã³ã§ã¯ãJavaScriptãšäŸåé¢ä¿ã®ç®¡çã«ã€ããŠèª¬æããåã®ãããã¯ã®ããã€ããéçºããŸãã
ãã®æ¬ã¯ããã¹ãããªãã¡ã¯ã¿ãªã³ã°ãæ¡åŒµæ©èœã®è¿œå ãªã©ã®éèŠãªãããã¯ã§çµãããŸãã
æç² ã³ãŒãå質ã®ãªãã¡ã¯ã¿ãªã³ã°ãšæ¹å
1幎åã«æžããã³ãŒãã«æºè¶³ããŠããéçºè ã¯ã»ãšãã©ããŸããã å€ãã®ããã°ã©ãã³ã°ã»ãããŒã§ãããããžã§ãŒã¯ïŒããã°ã©ããŒã¯ã誰ããã®ãŽããæžããã®ãïŒããšå«ã³ãæŽå²ã調ã¹ãŠãããã圌ã ãšããããŸãã ããã¯å®éã«çŽ æŽãããæ©äŒã§ãã ã³ãŒãã®èšè¿°ãéå§ãããšãå€ãã®å Žåããµããžã§ã¯ãé åãããã°ã©ãã³ã°ã®åé¡ãããã³èšè¿°ããªããã°ãªããªãã¢ããªã±ãŒã·ã§ã³ã®æ§é ã®ã¿ãç解ããããšããŠããŸãã å¿ãäžåºŠã«åžåã§ããæ å ±ã®éã¯éãããŠãããå€ãã®ãå¯åéšåããã³ãŒãã®æ§é ãæ©èœã®ãšã©ãŒã«ã€ãªããããšããããããŸãã æ°ãæåŸãã¢ããªã±ãŒã·ã§ã³ã®ç解ãåäžãããšãã«æ»ã£ãŠå€ãã³ãŒããä¿®æ£ããããšã¯ãæ倧ã®èŽ æ²¢ã§ãã
ãã®ç« ã§ã¯ããªãã¡ã¯ã¿ãªã³ã°ã®æŠå¿µãšãããã©ãŒãã³ã¹ãæãªãããšãªãã¢ããªã±ãŒã·ã§ã³ã®æ©èœãæ¹åããå¯èœæ§ã«ã€ããŠèª¬æããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ãšã¯äœã§ããïŒ
ããªãã¡ã¯ã¿ãªã³ã°ããšããçšèªã¯ã1990幎代åé ã«William OpdykeãšRalph Johnsonã«ãã£ãŠææ¡ãããŸããã ã¯ããThe Gang of Fourã«ãã£ãŠæžãããæ¬ããããŸã1 ãªãã¡ã¯ã¿ãªã³ã°ã¯ãã³ãŒããããã¯ã®å éšæ§é ã®å€åãšããŠç解ããããã®çµæãã³ãŒããããç解ãããããªãããã¹ãã§äŸ¿å©ã«ãªããå€æŽã«ããããé©å¿ãããã®å€éšæ©èœã¯å€åããŸããã å ¥åããŒã¿ãåãåããåºåããŒã¿ãæäŸããããã©ãã¯ããã¯ã¹ãã®åœ¢åŒã®é¢æ°ãæ³åãããšãå ¥åãšåºåãå€æŽãããªãå Žåãããã©ãã¯ããã¯ã¹ãã®å éšæ§é ã®å€æŽã¯ç¹å¥ãªåœ¹å²ãæãããŸããïŒå³23.1ïŒã
ãã®èŠ³å¯ã«ãããæ©èœãç¶æããã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªå質ãåäžãããªãããã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã眮ãæããããšãã§ããŸãã ãŸãããé¢æ°ããšããçšèªãã³ãŒããããã¯ã®æå®ãšããŠäœ¿çšããŸããããã®ç¯å²ã¯é¢æ°ã®å éšæ§é ã«éå®ãããå¿ èŠã¯ãããŸããã ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®ãã€ã³ãã¯ãå®è£ ã®è©³çŽ°ãé瀺ããªãããã«æœè±¡åãåºãå°å ¥ããããšã§ãã ãªãã¡ã¯ã¿ãªã³ã°ã®ç®çã§ããã©ãã¯ããã¯ã¹ããšèŠãªãããšãã§ããå€ãã®ãã¶ã€ã³ããããŸãã æåã®åè£ã¯ã¯ã©ã¹ã§ãã å ¥åããŒã¿ãšåºåããŒã¿ãå€æŽãããªãå Žåãã¯ã©ã¹ã®å®è£ ã¯éèŠã§ã¯ãªããããé©åãšæãããå éšã¡ã«ããºã ãå€æŽã§ããŸãã åå空éã¯ãã¯ã©ã¹ãšåãã¬ãã«ã®ä¿è·ãæäŸããŸãããã眮æã®åè£ãšèŠãªãããšãã§ããŸãã æåŸã«ããã€ã¯ããµãŒãã¹ã®äžçã§ã¯ãã¢ããªã±ãŒã·ã§ã³å šäœãå¥ã®ã¢ããªã±ãŒã·ã§ã³ã«çœ®ãæããããšãã§ãããã®ãããªçœ®ãæãããªãã¡ã¯ã¿ãªã³ã°ã®äžéšã«ãªããŸãã
ã¡ãŒãªã³ã°ãªã¹ããä»ããŠé»åã¡ãŒã«ãéä¿¡ããããšã責åãšãããµãŒãã¹ãæ€èšããŠãã ããã å ¥åã¯ãåä¿¡è ãšéä¿¡ããã¡ãã»ãŒãžã®ãªã¹ãã§ãã ããã§ã®åºåã®å Žæã¯ãçµæã«ãã£ãŠå ããããŠããŸãïŒåä¿¡è ã®ãªã¹ãããã®ãã¹ãŠã®åä¿¡è ã«ããã¡ãã»ãŒãžã®åä¿¡ïŒå³23.2ïŒã
ãã€ã¯ããµãŒãã¹ãã¡ãã»ãŒãžãéä¿¡ããæ¹æ³ã¯é¢ä¿ãããŸããïŒSendgridã䜿çšããããç¬èªã®ãµãŒããŒããã ãããã«ããŠããçµæã¯åããŸãŸã§ãã ãã®å Žåããã€ã¯ããµãŒãã¹ã®çœ®æã¯ãªãã¡ã¯ã¿ãªã³ã°ãšèŠãªãããšãã§ããŸãã
ããã°ã©ãã¯éåžžãã³ãŒãã®æ¹åã«åœ¹ç«ã€ãªãã¡ã¯ã¿ãªã³ã°ãåŒã³åºããŸãã äœåãªã¡ãœãããã©ã¡ãŒã¿ãŒãé€å€ããŸããïŒ DevOpsã®ãµããŒããæ¹åããããã«ãé°æ¹¿ãªæ¹æ³ã§ãã°ãšã³ããªãè¿œå ããŸãããïŒ ã©ã¡ãã®å Žåãã³ãŒãã®å質ãŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®å質ã¯åäžããŸããããããã¯ããããã¢ããªã±ãŒã·ã§ã³ã®æ©èœãå€æŽããããããªãã¡ã¯ã¿ãªã³ã°ãšæ£åŒã«èŠãªãããšã¯ã§ããŸããã ãªãã¡ã¯ã¿ãªã³ã°ã®å®çŸ©ãå®å šã«é å®ããã«ã¯ãå ¥åïŒãã©ã¡ãŒã¿ãŒã®æ§æãå«ãïŒãšåºåïŒãžã£ãŒãã«å ã®ã¡ãã»ãŒãžãå«ãïŒã®äž¡æ¹ãå€æŽããªãããšãå¿ èŠã§ãã
ã³ãŒãå質è©äŸ¡
éçºè ãã³ãŒãã®å質ãæ¹åããããã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢äžããŠããå Žåããã¡ãããã³ãŒãã®å質ãè©äŸ¡ããããã®äœããã®åºæºãå¿ èŠã§ãã ã³ãŒãå質ãè©äŸ¡ããããã®ããŒã«ãããã°ãããã¯çŽ æŽãããããšã§ããããã¯ãã³ãŒãå質ã®ããããåŽé¢ãåäžã®æ°å€ã§è¡šãããšãã§ããéã®æã¡ã©ããã®ãªãã¡ããªãã¯ã§ãã æ®å¿µãªããããã®ãããªã¡ããªãã¯ã¯ååšããŸããã é·å¹Žã«ããããé å¿ã¯ã©ããããã³æ±å¿ã¯ã©ããããã³ãŒãè¡ã®ãšã©ãŒæ°ã®æšå®ãã³ãŒãã®ãã¹ãç¯å²ã®æšå®ãŸã§ãç¡æ°ã®å質ã¡ããªãã¯ãææ¡ãããŠããŸããã ã³ãŒãå質ã¡ããªãã¯ã®ã»ãããéžæããããšã¯ãããèªäœãæ¬å šäœã«å€ãããããã¯ã§ãã
ãã ããã³ãŒãã®å質ãè©äŸ¡ããã«ã¯ãããã€ãã®ç°¡åãªã¡ããªãã¯ã匷調衚瀺ãããšäŸ¿å©ã§ãã
â¢ã³ãŒãã¯ãæ³å®ãããŠããããšãè¡ããŸããïŒ äžèŠãããšæããã§ããããã®ææšã¯ãã°ãã°å¿ããããŸãã ã³ãŒã1,000è¡ãããã®å ±åããããšã©ãŒã®æ°ããŸãã¯ã¯ã©ã¹ããšã®ãšã©ãŒã®æ°ã«ãã£ãŠæšå®ã§ããŸãã äžéšã®éçºè ã¯ãã®ã¡ããªãã¯ãã°ããŒãã«ã«äœ¿çšãã2ã€ã®ãããžã§ã¯ãã®çžå¯Ÿçãªå質ãæ€åºãããæ¬ é¥ã®æ°ã§æ¯èŒããŸãã ãã ãã2ã€ã®ãããžã§ã¯ãã1ã€ã®åé¡ã解決ããããšã¯ãªãããããã®ã¢ãããŒãã¯éçç£çã§ãã é»åã°ãªãŒãã£ã³ã°ã«ãŒããäœæããã³é ä¿¡ããã·ã¹ãã ããã€ã³ã¹ãªã³ãã£ã¹ãã³ãµãŒå¶åŸ¡ã·ã¹ãã ãšåãçšåºŠã®è€éããŸãã¯ãšã©ãŒçãæã€ããšãæåŸ ããããšã¯å¯èœã§ããïŒ ãããããã¡ããã§ãã ãã®ã¡ããªãã¯ã¯ãä»ã®ã»ãšãã©ã®è£œåãšåæ§ã«ãã°ã«ãŒããšè£œåãæéãšãšãã«æ¹åãããŠãããã©ããã調ã¹ãã®ã«åœ¹ç«ã¡ãŸãã
â¢ã³ãŒãã¯éæ©èœèŠä»¶ãæºãããŠããŸããïŒ é¢æ°ã®å ¥åãŸãã¯åºåã«é¢ä¿ããªãèŠä»¶ïŒããšãã°ãã³ãŒããã©ã°ã¡ã³ãã®ããã©ãŒãã³ã¹ããã®ã»ãã¥ãªãã£ãªã©ïŒã«ã€ããŠè©±ããŠããã
â¢ã³ãŒãã¯ã©ããããæ確ã§ããïŒ çæ³çãªã³ãŒãã¯ãŸã£ããååšããããšã©ãŒãæ€åºããããèŠä»¶ãå€åããããããããé ããæ©ãã誰ãããããæŽæ°ããå¿ èŠããããŸãã ã³ãŒãã®äœæè ãã€ãŸãããªããããã®ã誰ããã«ãªãããšãã§ããŸãïŒ æ¬¡ã®ã¹ãããããã芧ãã ããã
for (var i = 1; i < parts.length; i++) { root[parts[i]] = root[parts[i]] || (root[parts[i]] = {}); root = root[parts[i]]; }
ããã¯å¹ççã§ã¹ããŒããªã³ãŒããããããŸãããããããç解ããããšã¯ã»ãšãã©äžå¯èœã§ãã ãããããããèªã¿ãããã®å®¢èŠ³çãªææšãèŠã€ããããšã¯å°é£ã§ãã ãã®ã¡ããªãã¯ã¯ãã¡ã³ããã³ã¹ã®å©äŸ¿æ§ã«é¢ããéçºè ã®åæãããæèŠã®å ·äœåã»ã©ã§ã¯ãããŸããã éå¿ã«æ©ãŸãããŠããªãæ®éã®äººã ã®ã°ã«ãŒãã§ã¯ãã³ãŒãã®èªã¿æ¹ã«é¢ããŠæ·±å»ãªéããçããããšã¯ãã£ãã«ãããŸããã ã³ãŒãã¬ãã¥ãŒã¯ãã³ãŒãã®ãããŸããªã»ã¯ã·ã§ã³ãçºèŠããããã®åªããããŒã«ã§ãã
å¥ã®åçŽã ãå®çšçãªã¡ããªãã¯-埪ç°çè€éã-ã¡ãœããã®ã³ãŒãåå²ã®æ°ã«ãã£ãŠé¢æ°ã®è€éããæšå®ããŸãã ifã³ãã³ãã1ã€æã€ã¡ãœããã«ã¯ãã³ãŒãã®2ã€ã®å¯èœãªåå²ãå«ãŸããŸããã€ãŸãããã®åŸªç°çè€é床ã¯2ã§ãïŒå³23.3ïŒã
â¢ã³ãŒãã¯èŠä»¶ã®å€æŽã«ç°¡åã«å¯Ÿå¿ã§ããŸããïŒ ç¹°ãè¿ããŸããããã®ã¡ããªãã¯ã¯çŽ æ°ãšããŠè¡šçŸã§ããŸããã ããããããã¯çµéšè±å¯ãªéçºè ã®ã°ã«ãŒãã§çããæèŠã§ãã éçºè ã®é¡ã®é žæ§è¡šçŸã«ãããšãã³ãŒãã«é倧ãªå€æŽãå ããããå Žåããã®ç®æšãéæããããã©ãããèªä¿¡ãæã£ãŠå€æã§ããŸãã
ãããã®4ã€ã®åçŽãªã¡ããªãã¯ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã©ã®éšåããªãã¡ã¯ã¿ãªã³ã°ããå¿ èŠãããããå€æããããã®è¯ãåºçºç¹ã§ãã ãããããã¢ããªã±ãŒã·ã§ã³ã®æé·ãšéçºäžã«ãæ°ããã¡ããªãã¯ãçºèŠããŠè¿œå ã§ããããã«ãªãã§ãããã
è€æ°ã®ã¡ããªãã¯ãèªç±ã«äœ¿çšã§ããå Žåãã¢ããªã±ãŒã·ã§ã³ã誀ã£ãã¡ããªãã¯çšã«æé©åãããŠããªãããšã確èªããããšãéèŠã§ãã 人ã ã¯ãæ æã«ã·ã¹ãã ã欺ãåŸåããããŸãã é¢æ°ããæãéããªã¿ãŒã³ãæäŸããããã©ãŒãã³ã¹ã¡ããªãã¯ãéžæããããã¡ã¢ãªã³ã¹ãã«åççãªå¶éãèšå®ããã¡ããªãã¯ãè¿œå ããªãå Žåãèšç®ãªãœãŒã¹ãšåŒãæãã«ã¡ã¢ãªãæ¶è²»ããããã«é¢æ°ãæé©åããããšããã§ãããã ãããæ¬åœã«å¿ èŠãªãã®ãªã®ããæçµçãªç®æšããã©ã³ã¹ãªã®ããèããŠãã ããã ã¡ããªãã¯ãåæããæé©åãééã£ãæ¹åã«é²ãŸãªãããšã確èªãããããããªããã¡ããªãã¯ã®ã»ãããæŽæ°ããŸãã
èè ã«ã€ããŠ
éçºæè¡ã«ããã5åã®Microsoft MVPã¹ããŒã¿ã¹ã§ãããžã§ãŒã ãºãã§ã³ããŒãºã¯ãAzureããã³AWSã§ASP.NET CoreãšMVCãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠçŸåšéçºäžã§ãã 圌ã¯ç¬ç«ããã³ã³ãµã«ã¿ã³ãã§ãããæåž«ã§ãããç©æ¥µçãªããã¬ãŒã§ãããå€ãã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®ã¡ã³ããŒã§ããããŸãã
4åMicrosoft MVPã§ããDavid Packettã¯ããœãããŠã§ã¢éçºè ã§ãããç¬ç«ã³ã³ãµã«ã¿ã³ãã§ãã 圌ã¯ãWindowsããã³Webã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ã«.NETã䜿çšããè±å¯ãªçµéšãæ·±ãæè¡çèæ¯ãé«å質ã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãžã®æ ç±ãæã£ãŠããŸãã
Microsoft MVPãã«ããŒã§ããSimon Timmsã¯ãã³ãã¥ããã£ã®äž»å¬è ãããã¬ãŒãéçºè ãããã³ç¬ç«ã³ã³ãµã«ã¿ã³ãã§ãã 圌ã®æè¡çé¢å¿ã¯éåžžã«å€æ§ã§ãããåæ£ã·ã¹ãã ããææ°ã®JavaScriptãã¬ãŒã ã¯ãŒã¯ãŸã§ãã¹ãŠã楜ããã§ããŸãã éçºã®åéãšé²è¡äžã®äœæ¥ã®çµç¹ã®äž¡æ¹ã§åªãããã¬ãŒãã³ã°ãåããŠããããã圌ã¯ãã°ãã°ã°ã«ãŒããçæ°ã«è¿œã蟌ã¿ã建èšãšéçºãããµãŒããŒã®ã¡ã³ããã³ã¹ãŸã§ã®ãã¹ãŠã®æ®µéã«åå ããŸãã
»æ¬ã®è©³çŽ°ã«ã€ããŠã¯ãåºç瀟ã®ãŠã§ããµã€ããã芧ãã ãã
» ã³ã³ãã³ã
» æç²
ããŒã«ãŒã®ã¯ãŒãã³ã20ïŒ ãªã-ASP.NET Core