憑弔一下ASP.NET 5,然後跨平臺,越跨越開心
ASP.NET 5 is dead
ASP.NET 5在今年早些時候被宣判死刑了。但是這並不影響我們之前在ASP.NET 5乃至ASP.NET MVC平臺上的經驗累積——沒錯,微軟改名部門又立功了!他們覺得ASP.NET 5會讓人覺得是4.6的升級版,所以改名成了ASP.NET Core 1.0...順帶把.NET Core 5.0重新命名為了.NET Core 1.0,EF7也隨著變為了EF Core 7。
其實M$這次改名不算錯,的確,5是與4.6的關係不是升級而是另起爐灶全新開發,應該是並排關係而非演進關係。改為1.0更容易讓人明白這是重裝出發。不過依然繼承了ASP這個頭頭,所以可以預計的未來,有更多人分不清ASP、ASP.NET、ASP.NET MVC、ASP.NET vNext、ASP.NET 5、ASP.NET Core...
跨平臺,越跨越開心
根據微軟的的Tempo來看,16'Q1就應該要釋出ASP.NET Core 1.0了,在這之前我發過一篇博文是說第一個ASP.NET vNext程式,那麼這個程式其實只在Windows和OS X上執行測試,那麼一發布就立下跨平臺Flag的ASP.NET Core 1.0到底能不能跨到Linux上呢?
在Ubuntu 15和CentOS 7上測試結果很讓人滿意,沒錯,跨過去了。
不過啊,CoreCLR只能在Ubuntu的Docker容器內才起作用,甚至都不支援CentOS!但是怎麼說讓人滿意呢?那肯定是軟粉的自嗨一直在努力耕耘的Mono啦!
Mono在兩年以前其實就能跑ASP.NET啦,那個時候依賴xSP技術。同時Mono也沒有很多人想象中那麼糟糕,也是蠻早就支援WindowsForms程式的執行(可以使用MoMA來檢測一下有沒有不相容的),同時WCF的支援也做了很大一部分,所以M$做不完的事情交付給這個*nix界的.NET來解決的話就類似在DNX451上跑一樣一樣的,所以表現的結果是非常不錯。
至此,ASP.NET Core 1.0 RC1-update1就能跨:
- Windows:使用CoreCLR/.NET Framework)
- OS X:使用CoreCLR/Mono)
- Linux:使用Mono/CoreCLR(僅Ubuntu的Docker),官方暫時只公佈了CentOS和Ubuntu的部署方法
做為“第一代”還算不錯啦!
P.S.:對比一下OS X和Linux可以發現,同樣都是*nix,富二代和窮二代受到的態度差距就是大。
SQL Server love Linux
其實關於SQL Server的槽點一直都有,很多人都認為SQL Server臘雞,連MySQL都不如...這裡為了不引起拉鋸戰我們就不討論資料庫孰優孰劣,這裡說的是SQL Server預計會在2017年支援Linux,目前已經面向一小撮(別有用心的)
EF Core 1.0 支援更多資料庫
沒關係,對SQL Server就是苛刻,還是覺得臘雞怎麼辦呢?那麼,在本文儲存時,EF Core 1.0已經支援以下資料庫:
- Microsoft SQL Server
- SQLite
- Microsoft SQL Server Compact Edition
- Npgsql (PostgreSQL)
- IBM Data Servers
- InMemory (for testing)
除了IBM Data Servers
不支援.NET Core 1.0(DNX5)以外,其餘的都是支援的。
MySQL叻?
這個得問Oracle,畢竟這上面也沒有Oracle。不過PostgreSQL不失為一個不錯的解決方案。
好了安利就到此結束吧。給個ASP.NET Core 1.0的Demo:猛基這裡。
怎麼打不開?
可能阿里雲伺服器沒續費了吧,我就開一個來做個CentOS的測試而已。