1. 程式人生 > >憑弔一下ASP.NET 5,然後跨平臺,越跨越開心

憑弔一下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就能跨:

  1. Windows:使用CoreCLR/.NET Framework)
  2. OS X:使用CoreCLR/Mono)
  3. 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,目前已經面向一小撮(別有用心的)

測試申請人士發放了Ubuntu的SQL Server for Linux。那麼按照M$的傳統,目測會有Express版本,也就是說搭個部落格或者是說搞點啥小程式什麼的就能直接上SQL Server了,也不用事事都靠MySQL辣。

EF Core 1.0 支援更多資料庫

沒關係,對SQL Server就是苛刻,還是覺得臘雞怎麼辦呢?那麼,在本文儲存時,EF Core 1.0已經支援以下資料庫:

  1. Microsoft SQL Server
  2. SQLite
  3. Microsoft SQL Server Compact Edition
  4. Npgsql (PostgreSQL)
  5. IBM Data Servers
  6. InMemory (for testing)

除了IBM Data Servers不支援.NET Core 1.0(DNX5)以外,其餘的都是支援的。

MySQL叻?

這個得問Oracle,畢竟這上面也沒有Oracle。不過PostgreSQL不失為一個不錯的解決方案。

好了安利就到此結束吧。給個ASP.NET Core 1.0的Demo:猛基這裡

怎麼打不開?

可能阿里雲伺服器沒續費了吧,我就開一個來做個CentOS的測試而已。