もうみんな、ASP.NET vNEXTっていうか、.NETでの開発方法の変更が気になって仕方ないすね。
ここまで変えてくるのかよ!っていうくらい感動的。.NET初めて出てきた時くらいのワクワクですねー。
とりあえず、KVMつかってみよー。
https://github.com/aspnet/home
に書かれてること素直にやるだけす。
cloneしてkvmsetup。
PowerShellでもCmdでも。それぞれ別々にね。
kvm install なんちゃらかんちゃらで .kreにランタイムをごっそり。MyGet。
で、Samples/ConsoleAppでkvm restore。これで、一個上のpackagesに色々ごっそり。MyGet。
あとはもうk run。
すげー!Hello World。binがないー!!し、Tempにcscなら吐き出すはずのものがないー!
あ、SET KRE_TRACE=1ね。
klr.exeさんよー!中でRoslynだねー。
KRuntime structure
https://github.com/aspnet/Home/wiki/KRuntime-structure
次。HelloWeb。k runじゃなくてk web。
StaticFilesモジュール。いや、StaticFileMiddleware。これもpackagesにMicrosoft.AspNet.StaticFiles.dllとしてMyGet。
Task Invoke(HttpContext context)なんだけど、そうでしたっけ?
Task Invoke(IDictionary
次。HelloMvc。
同じですね。k webですね。
うほ。うごきよる。しかもRazorリポジトリにごっそり入ってるから、移行中なんだね。すげーなー。
Microsoft.AspNet.Mvc.Razorのソースみたら、ICompilationServiceの実装がRoslynCompirationService。BuildManager使わないんじゃん!kprojって拡張子気になるけどおいとこ。やべー。興奮してきた。Razorはまだcshtmlしか実装してないみたい。vbhtmlのコードがなかった。
Microsoft.AspNet.Mvcがどこまで移行してるのか、試しに、HomeControllerとIndex.cshtmlをいじってみたよ。
Controllers/HomeController.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Microsoft.AspNet.Mvc; | |
using MvcSample.Web.Models; | |
namespace MvcSample.Web | |
{ | |
public class HomeController : Controller | |
{ | |
public IActionResult Index(string name = "My Name") | |
{ | |
return View(User(name)); | |
} | |
public User User(string name) | |
{ | |
User user = new User() | |
{ | |
Name = name, | |
Address = "My address" | |
}; | |
return user; | |
} | |
} | |
} |
Views/Home/Index.cshtml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@{ | |
Layout = "/Views/Shared/_Layout.cshtml"; | |
ViewBag.Title = "Home Page"; | |
string helloClass = null; | |
} | |
<div class="jumbotron"> | |
<h1>ASP.NET</h1> | |
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p> | |
<p><a href="http://asp.net" class="btn btn-primary btn-large">Learn more »</a></p> | |
</div> | |
<div class="row"> | |
<h3 title="@Model.Name" class="@helloClass">Hello @Model.Name!</h3> | |
</div> | |
@using(Html.BeginForm()){ | |
@Html.TextBoxFor(m =>m.Name) | |
<input type="submit" /> | |
} |
するがな!
すごいがな!
ブルブルしてきた。超ブルブルしてきたSystem.Web完全に分離できてるー。かっけー。そんなの当分先になると思ってたのにー。MVC6でも参照なくすんかいー。
ちょっと、こう、やべし。超楽しい。どこかのLINQの人じゃないけど、超楽しい。
まだIISで動かしてない(KLR上で動かすだけだからビルドじゃなくて実行しただけ)から、Heliosだとどんなbinになるのか気になるしー。App_CodeとかASP.NETでのシステムフォルダの扱い(app_globalresourcesとかさー)がどこまで行けるようになるのかなー。たまらん!
ん?
the assemblies never exist on the disk.
んん!?
・No-compile developer experience
って書いてるね...。まじか。ビビった。