隨便照着[Getting Started — ASP.NET documentation作了一下練習,實在無趣。就是改個project.json再寫個hello world。html
什麼Code Behind(aspx, aspx.cs),事件代碼的, 都沒看到。(就看Visual Studio Code
的本事了,否則就沒有微軟特點了)git
貼個代碼結束 (用的不是和IIS或者IIS Express配套的那個ASP.NET,想用也沒有。而是Kestrel,名字是一種鳥,鳥Server?)。github
using System; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; namespace aspnetcoreapp { public class Startup { public void Configure(IApplicationBuilder app) { app.Run(context => { return context.Response.WriteAsync("Hello from ASP.NET Core!"); }); } } }
再回想起上次練習.NET Core 1.0學習(1),發現了幾點不一樣尋常的地方:json
.NET Core的東西好精簡。加起來才180個文件左右,109M左右。都放在/usr/share/dotnet下。 (毋庸置疑,裏面也包含了ASP.NET Core的東西,我作了簡單的aspnet試了OK。$HOME/.nuget下的東西和dotnet下的東西雷同不少。)app
反正比起Windows上那一坨坨的實在清爽太多。asp.net
但是爲啥可以少這麼多呢? (1)大量的Windows GUI相關的東西去掉了,我沒有看到任何和form相關的東西。更不要提那勞什子WPF,Silverlight了。 (2)一個是Windows上的GAC去掉了,估計連功能都沒作。 (3)ASP.NET的東西彷佛極少,都沒看到之前的System.Web.Dll。 這麼少的東西,天然不可能把異步
IIS不見蹤跡 也沒看見什麼Express的字樣。 作最初的aspnet的例子時發現是用Microsoft.AspNetCore.Server.Kestrel
來作Server的,靠譜嗎?不知道,看了github裏的介紹aspnet/KestrelHttpServer,不冷不熱吧,都沒怎麼看見宣傳,說好的IIS Express呢?學習
看見了libuv的身影。 這東西纔是NodeJS的半壁江山,異步事件驅動高效並且跨平臺的lib。上面提到的KestrelHttpServer就是用它作的,難怪這麼小。ui
忽然想起來,之前IIS特地把HTTP的一些處理放倒內河層作(http.sys)以便快速的處理request/response, IIS的速度也的確挺強悍,但是如今不用這個體制會怎麼樣?若是可以很好,那麼爲何還要作的那麼囉嗦。看來微軟也被libuv征服了,這是應該的。spa
看見了VB的身影 /root/.nuget/packages/Microsoft.VisualBasic/10.0.1/ref/netcore50/Microsoft.VisualBasic.dll
看來也許會支持,其實也不是什麼大事兒,由於畫面是甭期望的了,有沒有他誰還在意。
微軟扔掉了UI,赤膊到Linux上拼搏,優點大減啊。.NET Runtime自己的速度和Java VM的相比天然不能快到哪裏去,不然JVM必然會超過。 這個.NET Core搞好了,你們固然都愉快,就看微軟給不給力了,可別來個太粗暴的一刀切什麼的。