
ASP.NET 1.0ã®æåã®äºåãªãªãŒã¹ã¯ã»ãŒ15幎åã«çºè¡šããããã以æ¥äœçŸäžäººãã®éçºè ãããã䜿çšããŠããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãäœæããã³å®è¡ããé·å¹Žã«ããã£ãŠèšå€§ãªéã®ã³ãŒããšæ©èœãè¿œå ããŸããã
ç§ãã¡ã®ããŒã ãåãçµãã§ããASP.NET 5ãšåŒã°ããæ°ããASP.NETãªãªãŒã¹ã«ã€ããŠã®ãã¥ãŒã¹ãæžããŠããã®ã§ãç§ã¯ä»æ¥éåžžã«è奮ããŠããŸãã ãã®ãªãªãŒã¹ã®äžéšãšããŠãASP.NETãããã³ã³ãã¯ãã§ãã¢ãžã¥ãŒã«åŒã§ãã¯ãã¹ãã©ãããã©ãŒã ã«ããã¯ã©ãŠããã¹ãã£ã³ã°åãã«ããŠããŸãã ASP.NET 5 Previewã¯ãæè¿å©çšå¯èœã«ãªã£ãææ°ã®Visual Studio 2015 CTPã§ããŠã³ããŒãã§ããŸãã
ASP.NET 5ã¯ãææ°ã®Webã¢ããªã±ãŒã·ã§ã³ãäœæããWindowsãLinuxãããã³Macã§åäœããããã«èšèšããããªãŒãã³ãœãŒã¹ã®Webãã¬ãŒã ã¯ãŒã¯ã§ãã MVC 6ãã¬ãŒã ã¯ãŒã¯ãšWeb APIãå«ãŸããŠããŸãã ASP.NET 5ã¯SignalR 3ã®åºç€ã«ããªããŸããåœåãASP.NET 5ã¯.NET CoreCLRã§å®è¡ããããã«èšèšãããŠããŸãããå®å šãª.NET Frameworkã§ãå®è¡ã§ããŸãã
ASP.NET 5ã§ã¯ãWebãã¬ãŒã ã¯ãŒã¯ã®ã³ã¢ãããã³ã³ãã¯ãã«ïŒSystem.Web.dllãäžèŠã«ãªã£ãïŒãã¢ãžã¥ã©ãŒã«ïŒçŸåšã¯ã»ãšãã©ã®æ©èœãNuGetããã±ãŒãžã®åœ¢åŒã§äœæãããŠããã®ã§ãå¿ èŠãªãã®ïŒã ASP.NET 5ã§ã¯ã次ã®å€æŽãè¡ãããŸãã
- WindowsãLinuxãããã³Macã§ã®ã¯ãã¹ãã©ãããã©ãŒã ASP.NETã¢ããªã±ãŒã·ã§ã³ã®ã¢ã»ã³ããªãšæäœã
- .NET Coreã§äœæ¥ãã
- ææ°ã®Webã¢ããªã±ãŒã·ã§ã³ã®éçºãç°¡çŽ åããæ°ããããŒã«ããã
- Web UIããã³Web APIã®åäžæè¡ã¹ã¿ãã¯
- ã¯ã©ãŠã察å¿ã®ç°å¢ããŒã¹ã®æ§æ
- NuGetããã±ãŒãžã®äœæãšäœ¿çšã®ãã€ãã£ããµããŒã
- ãã€ãã£ãäŸåæ§æ³šå ¥ã®ãµããŒã
- IISãŸãã¯ç¬èªã®ã¢ããªã±ãŒã·ã§ã³ã§ãã¹ãããæ©èœ
ãããŠæçµçãªçµæãšããŠãASP.NETã¯ããªãã¿ã§ãããWebéçºã®çŸä»£ã®çŸå®ã«ã¯ããã«ããé©åãããã®ã«ãªããŸããã
æè»ãªã¯ãã¹ãã©ãããã©ãŒã ã©ã³ã¿ã€ã
ASP.NET 5ã¯2ã€ã®ã©ã³ã¿ã€ã ã§å®è¡ãããã¢ããªã±ãŒã·ã§ã³ããã¹ãããå Žæãéžæã§ããŸãã ã©ã³ã¿ã€ã ã®éžæã¯æ¬¡ã®ãšããã§ãã
.NET Coreã¯ããŸã£ããæ°ããã¯ãã¹ãã©ãããã©ãŒã ã©ã³ã¿ã€ã ã§ãããééã¯ã»ãšãã©ãããŸããã .NET CoreãéžæãããšããŸã£ããæ°ããå©ç¹ã掻çšã§ããŸãã
1ïŒ.NET Coreã©ã³ã¿ã€ã ãã¢ããªã±ãŒã·ã§ã³ã«çŽæ¥æäŸããæš©å©ããããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ãã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããŠããããŒãžã§ã³ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ã§åäœããããšãæå³ããŸãã rutimeããŒãžã§ã³ã¯ãä»ã®ã¢ããªã±ãŒã·ã§ã³ããã«ã¢ããããä»ã®ããŒãžã§ã³ãšäžŠè¡ããŠåäœããŸãã ãããä»ã®ã¢ããªã±ãŒã·ã§ã³ã®åäœã«åœ±é¿ãäžããããšãæããããšãªããã©ã³ã¿ã€ã ã®ããŒãžã§ã³ãæ°ããããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããŸãã ããã«ãããã¢ããªã±ãŒã·ã§ã³ãšãã¬ãŒã ã¯ãŒã¯ã®æ°ããããŒãžã§ã³ã®å±éãã¯ããã«ç°¡åã«ãªããä»ã®ã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã«æŽæ°ã§ããããã«ãªããŸãã
2ïŒã¢ããªã±ãŒã·ã§ã³ã¯ãæ¬åœã«å¿ èŠãªæ©èœã®ã¿ã«äŸåããŸãã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã«é¢ä¿ã®ãªããµãŒãã¹ãæŽæ°ããããã«æ±ããããããšã¯ãããŸããã ããã«ãããä»ã®ã¢ããªã±ãŒã·ã§ã³ã«åœ±é¿ãäžããããšãªããã¢ããªã±ãŒã·ã§ã³ãããè¿ éãã€ç°¡åã«å±éã§ããŸãã
3ïŒã¢ããªã±ãŒã·ã§ã³ãã¯ãã¹ãã©ãããã©ãŒã ã«ã§ããŸãã WindowsãLinuxãããã³Mac OS Xçšã®ã¯ãã¹ãã©ãããã©ãŒã ããŒãžã§ã³ã®.NET CoreãæäŸããŸããéçºçšã«éžæãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããã³å±éçšã«éžæãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«é¢ä¿ãªããã©ãã§ã.NETã䜿çšã§ããŸãã ã¯ãã¹ãã©ãããã©ãŒã ããŒãžã§ã³ã®ã©ã³ã¿ã€ã ã¯ãŸã ãªãªãŒã¹ãããŠããŸããããç©æ¥µçã«åãçµãã§ãããããã«å ¬åŒãã¬ãã¥ãŒãå ¬éããããšãçŽæããŠããŸãã
.NET Framework-.NET Frameworkã®ãã«ããŒãžã§ã³ãšæ¯èŒãããšãçŸåš.NET Core APIã¯ã¯ããã«å¶éãããŠãããããã¢ããªã±ãŒã·ã§ã³ã.NET Coreã§å®è¡ããã«ã¯ãããããå€ãã®å€æŽãè¡ãå¿ èŠããããŸãã ã¢ããªã±ãŒã·ã§ã³ãæŽæ°ããããªãå Žåã¯ãå®å šãª.NET FrameworkïŒããŒãžã§ã³4.5.2以éïŒäžã®ASP.NET 5ã§å®è¡ã§ããŸãã ããããããšã§ã.NET Framework APIã®å®å šãªã»ãããååŸããã¢ããªã±ãŒã·ã§ã³ã¯å€æŽãªãã§åäœããŸãã
MVC 6ã¯çµ±åããã°ã©ãã³ã°ã¢ãã«ã§ãã
MVCãWeb APIãããã³WebããŒãžã¯è¿œå æ©èœãæäŸããå€ãã®å Žåããœãªã¥ãŒã·ã§ã³éçºïŒSLNïŒã§äžç·ã«äœ¿çšãããŸãã ãã ããASP.NETã®ä»¥åã®ãªãªãŒã¹ã§ã¯ããããã®ãã¬ãŒã ã¯ãŒã¯ã¯åå¥ã«éçºãããããã倧éã®éè€ãšççŸãå«ãŸããŠããŸããã MVC 6ã§ã¯ãããããã¹ãŠã®ã¢ãã«ãåäžã®ããã°ã©ãã³ã°ã¢ãã«ã«çµåããŸããã ããã§ããããã®ãã¬ãŒã ã¯ãŒã¯ã®éããã調æŽãããå¿ èŠãªããWeb UIãšãµãŒãã¹ã®äž¡æ¹ãå«ãWebã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã ãŸããã·ã³ãã«ãªWebããŒãžã¢ããªã±ãŒã·ã§ã³ãææ°ã®ä¿¡é Œæ§ã®é«ãMVCã«ã·ãŒã ã¬ã¹ã«è»¢éã§ããŸãã
åãã³ã³ãããŒã©ãŒããåãMVCãã£ã«ã¿ãŒãã€ãã©ã€ã³ã䜿çšããŠãRazorãã¥ãŒããŒã¿ãè¿ãããšãã§ããããã«ãªããŸããã
æ¢åã®ãã¬ãŒã ã¯ãŒã¯ãçµ±åããããšã«å ããŠããµãŒããŒéçºã容æã«ããæ°ããæ©èœãè¿œå ããŠããŸãã ããšãã°ãã¿ã°ãã«ããŒã ããŒã¯ã¢ããå ã®ã¿ã°ã®ã»ãã³ãã£ã¯ã¹ãåçŽã«æ¡åŒµããããšã«ããããã¥ãŒã§HTMLãã«ããŒã䜿çšã§ããŸãã
ã€ãŸã ãã®ããã«æžã代ããã«ïŒ
@Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group"> @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label"}) <div class="col-md-10"> @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" }) @Html.ValidationMessageFor(m => m.UserName, "", new { @class ="text-danger" }) </div> </div>
次ã®ããã«èšè¿°ããŸãã
<div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="UserName" class="col-md-2 control-label"></label> <div class="col-md-10"> <input asp-for="UserName" class="form-control" /> <span asp-validation-for="UserName" class="text-danger"></span> </div> </div>
ã¿ã°ãã«ããŒã¯ããã¬ãŒã³ããŒã·ã§ã³ããããèªç¶ãã§èªã¿ãããããŸãã ãŸããHTMLãã«ããŒåºåã®ã«ã¹ã¿ãã€ãºãç°¡çŽ åããŸãã
MVC6ã¢ããªã±ãŒã·ã§ã³ã®ä»ã®äŸã衚瀺ããã«ã¯ããªã³ã¯ãã芧ãã ããïŒãã¥ãŒããªã¢ã«
ææ°ã®Webéçº
ä»é±ãASP.NET 5ãã¬ãã¥ãŒããªãªãŒã¹ããŸãããããã«ã¯ããšããããã¢ããªã±ãŒã·ã§ã³ãå°ãæ¹åããããã®æ©èœãå«ãŸããŠããŸãã
ãã€ãããã¯ãªéçº
Visual Studio 2015ã§ã¯ãåçã³ã³ãã€ã«ã䜿çšããŸãã å€æŽã確èªããããã«æ¯åã¢ããªã±ãŒã·ã§ã³ãåã³ã³ãã€ã«ããå¿ èŠã¯ãªããªããŸããã 代ããã«ãïŒ1ïŒã³ãŒããå€æŽããïŒ2ïŒå€æŽãä¿åããïŒ3ïŒãã©ãŠã¶ãŒãæŽæ°ããïŒ4ïŒå€æŽãã¢ããªã±ãŒã·ã§ã³ãèªåçã«æŽæ°ããæ¹æ³ã確èªããŸãã

æ°ããéçºçµéšãåŸãããŸããããã¯ãã³ã³ãã€ã«ãããèšèªã§äœæ¥ãããããã€ã³ã¿ãŒããªã¿ãŒèšèªã§äœæ¥ããããã«èŠããŸãã
ä»ã®ã³ãŒããšãã£ã¿ãŒïŒããšãã°ãCïŒãããžã§ã¯ããæäœããããã®ã¢ãã€ã³ãåããSublime Text 3ïŒã䜿çšããŠãASP.NET 5ãããžã§ã¯ããæäœããããšãã§ããŸãã Visual Studioã®ãã¹ãŠã®æ©èœã¯ãã³ãã³ãã©ã€ã³ããŒã«ã§èŠã€ããããšãã§ããŸããããã®éã¯ã¯ãã¹ãã©ãããã©ãŒã ã§ãïŒã€ãŸããã€ã³ãã¬ãŒã¹ç·šéã¯Mac OS XãšLinuxã®äž¡æ¹ã§å©çšã§ããŸãïŒã
äžè¬çãªWebéçºããŒã«ãšã®çµ±å
å°æ¥ã®MS Visual Studio 2015ã®ãã1ã€ã®æ©èœã¯ã人æ°ã®ãããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ããBowerãGruntãGulpã®çµã¿èŸŒã¿ãµããŒãã§ããããã¯ãåéçºè ã«ãšã£ãŠäžå¯æ¬ ãªããŒã«ã§ãããšèããŠããŸãã
- Bowerã¯ãJavaSciptãšCSSã®äž¡æ¹ãå«ãã¯ã©ã€ã¢ã³ãåŽã®ããã±ãŒãžãããŒãžã£ãŒã§ãã
- GruntãšGulpã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã¯ãŒã¯ãããŒãèªååããã¿ã¹ã¯ã©ã³ããŒã§ãããLESSãCoffeeScriptãTypeScriptãã¡ã€ã«ã®æ§ç¯ãªã©ã®ã¿ã¹ã¯ã«GruntãŸãã¯Gulpã䜿çšã§ããŸãã JSLintãèµ·åããJSãã¡ã€ã«ãçž®å°ããŸãã
BowerïŒ JavaScriptã©ã€ãã©ãªãASP.NETãããžã§ã¯ãã«è¿œå ããã«ã¯ãbower.jsonæ§æãã¡ã€ã«ã«çŽæ¥è¿œå ããŸãã

Visual Studioãå©çšå¯èœãªããã±ãŒãžã®ãªã¹ããIntelliSenseã«æäŸããããšãå¿ããªãã§ãã ããã 次åãœãªã¥ãŒã·ã§ã³ãéããšãVisual Studioã¯äžè¶³ããŠãããã¹ãŠã®ããã±ãŒãžãèªåçã«åŸ©å ããããããããããã¹ãŠããŒãžã§ã³ç®¡çã·ã¹ãã ã«é 眮ããå¿ èŠã¯ãããŸããã
ãµãŒããŒåŽã®ããã±ãŒãžã®å Žåããã¡ããNuGetã䜿çšããå¿ èŠããããŸãã
GruntïŒçŸä»£ã®Webéçºã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã ãã«éçºãšã¯ç°ãªãéåžžã«å€ãã®ã¿ã¹ã¯ã«åŸäºããŠããããšã«æ°ä»ãããšãã§ããŸãïŒLESSãTypeScriptãCoffeeScriptãã¡ã€ã«ã®åéãJavaScriptã®çž®å°ããŠãããJSãã¹ãã®å®è¡ãªã©ãªã©...ããã«ãåããŒã ã«ã¯ããããžã§ã¯ãã§äœ¿çšãããããŒã«ã«åºã¥ããç¬èªã®èŠä»¶ã»ããããããŸãã ã¿ã¹ã¯ã©ã³ããŒã«ããããããã®ã¿ã¹ã¯ã®èª¿æŽãšç®¡çã容æã«ãªããŸãVisual Studioã¯ãæã人æ°ã®ãã2ã€ã®ã©ã³ããŒãGruntãšGulpããµããŒãããŠããŸãã
次ã«äŸã瀺ããŸããããšãã°ãLESSãã¡ã€ã«ãåéããã«ã¯Gruntãå¿ èŠã§ãã 次ã«ãpackage.jsonãéããŠãGruntã®ãµãŒãããŒãã£ãã©ã°ã€ã³ã§ããgrunt-contrib-lessããã±ãŒãžãè¿œå ããå¿ èŠããããŸãã

Visual Studo 2015ã®æ°ããTask Runner ExplorerãããŒãžã£ãŒã䜿çšããŠãã¿ã¹ã¯ãç¹å®ã®ãã«ãã¹ãããïŒãã«ãåããã«ãåŸãã¯ãªãŒã³ããŸãã¯SLNãã¡ã€ã«ãéããŠãããšãïŒã«å²ãåœãŠãŸãã

ããã«ãããäžè¬çãªã¿ã¹ã¯ã®èªååãçã«ãã³ã¹ãããã®æäœã«ãªããŸãã
ç°¡çŽ åãããäŸåé¢ä¿ç®¡ç
ASP.NET 5ã§ã¯ãNuGetããã±ãŒãžãè¿œå /åé€ããã³æŽæ°ããããšã§äŸåé¢ä¿ã管çããŸãã NuGetããã±ãŒãžãããŒãžã£ãŒã䜿çšããããNuGetããã±ãŒãžã®ãªã¹ããšãããžã§ã¯ãã§äœ¿çšãããŠããããŒãžã§ã³ã®ãªã¹ããå«ãJSONãã¡ã€ã«ïŒproject.jsonïŒãç·šéããã ãã§ãã project.jsonãã¡ã€ã«ã¯ç°¡åã«æäœã§ããä»»æã®ãã¡ã€ã«ãšãã£ã¿ãŒã§èªç¶ã«ç·šéã§ããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãŠãã§å®è¡ãããŠãããšãã«äŸåé¢ä¿ãæŽæ°ã§ããŸãã
Project.jsonã¯æ¬¡ã®ããã«ãªããŸãã

Visual Studio 2015ã§ã¯ãIntelliSenseã䜿çšããŠãäŸåé¢ä¿ãšããŠè¿œå ã§ããå©çšå¯èœãªNuGetããã±ãŒãžãèŠã€ããããšãã§ããŸãã

IntelliSenceã¯ãå©çšå¯èœãªããŒãžã§ã³ã®ãªã¹ããæäŸããŸãã

ãªãŒãã³ãœãŒã¹
ãªãŒãã³GitHubãªããžããªã§ASP.NET 5ãéçºããŠããŸãã ã³ãŒããèŠãããšãã§ããç§ãã¡ãŸãã¯ã³ãã¥ããã£ã«ãã£ãŠè¡ããããã¹ãŠã®å€æŽãèŠãããšãã§ããŸãã ãã®ã³ãŒããããŠã³ããŒãããŠå€æŽãããã«ãªã¯ãšã¹ããè¡ãããšãã§ããŸãã ãœãŒã¹ã³ãŒããéãããšã§ã補åå ã§äœãèµ·ãã£ãŠããã®ããç解ãããããã¹ãŠãææ¡ãããããŠãASP.NETãèªåã§å€æŽã§ããããã«ãªããšèããŠããŸãã

.NETå éšã«ã€ããŠè©³ããç¥ãããã§ããïŒ
ãã®åŸãç§ãã¡ã®å ã«æ¥ãŠãã ããïŒ éããªãäžé£ã®CLRiumïŒ2ã»ãããŒãã¢ã¹ã¯ã¯ïŒ4æ3ã4æ¥ïŒããšã«ããªã³ãã«ã°ïŒ5æ17æ¥ïŒãããã³ãµã³ã¯ãããã«ãã«ã¯ïŒ5æ29ã30æ¥ïŒã§éå¬ãããŸãïŒãªã³ã©ã€ã³æŸéãå«ãŸããŸãïŒã .NETã®å°æ¥ã«ã€ããŠèª¬æããŸããæ°ããCoreCLRãASP.NET 5ãRyuJITæ©èœãããŒãã³ã¢Roslynã®äŸãããã³CoreFxã®åå«ã®æ§é ã«ã€ããŠèª¬æããŸãã èå³æ·±ãæçšãªç¥èã®ç¡éã®ã¹ããªãŒã ã¯ãç¬èªã®CïŒããã°ã©ã ãã©ã®ããã«æ©èœããããããããç解ããã ãã§ãªãããã©ãããã©ãŒã ã®ãã«ãã¯ãŒã䜿çšã§ããæãã.NETã®æªæ¥ã«åããããšã«ã圹ç«ã¡ãŸãïŒ
