有人說.NET在國內的氛圍越來越不行了,看博客園文章的瀏覽量也起不來。是不是要轉Java呢? 沒有必要扯起語言的紛爭,Java也好C#都只是語言是工具,各有各的使用場景。以前是C#非開源以及不能在Linux上使用,沒有被互聯網公司考慮,但它仍然有它的用途。這幾年國內互聯網公司進入蓬勃發展時期,所有才有這樣的趨勢。但並不代表C#不能做互聯網應用,可以說在接下來的一年內.net core將會成為一個很好的趨勢,結合容器以及微服務架構會成為互聯網公司另一個比較好的選擇。
作為現在在用.NET的公司,如果有機會可以考慮與時俱進,在真實項目中將.net core用起來。作為開發者,我們不能等着這個語言好了再去學習,那時候機會已經給那些先頭部隊給搶了。 :) 你們都知道我在說什么。
歡迎大家加入我建和ASP.NET Core學習群: qq: 92436737
我們首先來看看ASP.NET Core有哪些優勢?

公司的決策層為什么要做這樣的選擇?
如何來做升級和改造 ?
最小升級方案:將ASP.NET Core部署在IIS上
ASP.NET Core所有的項目都必須運行在Kestrel或者一個自定義的Web Server上。
在asp.net core 2.0時,采用默認的 WebHost.CreateDefaultBuilder().Builder() 得到的Host已將將 Kestrel和IISIntegration都添加進來。
public static void Main(string[] args){ BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) { return WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseKestrel(options => { options.Listen(IPAddress.Loopback, 5000); options.Listen(IPAddress.Loopback, 5001, listenOptions => { listenOptions.UseHttps("testCert.pfx", "testPassword"); }); }) .UseIISIntegration() .Build() }
IISIntegration其實是將IIS做一個反向代理,AspNetCoreModule的任務就是將請求轉發給Kestrel。
在我們的最小升級方案里面,部署到IIS是在生產環境中使用ASP.NET Core是最易實現和成本最低的一種。剩下的,等開發人員對ASP.NET Core掌握的比較牢固,對Linux的運維也有一些經驗之后可以再嘗試往Linux上遷移。
新老項目交互的問題

本文首發於公眾號jessetalk,如需轉載請保留公眾號二維碼。
ASP.NET Core依賴注入全知道:
https://mp.weixin.qq.com/s/lR9O7bXiI704kSu7bKdLGg
我心中的ASP.NET Core新核心對象之WebHost(一)
https://mp.weixin.qq.com/s/4Sm2dxMe_WeVOizhqX4ZdA
極簡版ASP .NET Core學習路徑
https://mp.weixin.qq.com/s/7oKnYLOrff_FmMLm7thnBg
