在傳統(tǒng).NET Framework 上運(yùn)行ASP.NET Core項(xiàng)目
新的項(xiàng)目我們想用ASP.NET Core來開發(fā),但是苦于我們歷史的遺產(chǎn)很多,比如《使用 JavaScriptService 在.NET Core 里實(shí)現(xiàn)DES加密算法》,我們要估計等到.NET Core 1.2我們才會有大部分的API,通過NodeJs方式有點(diǎn)曲線救國的味道,很多人會不認(rèn)同,如果要在純的.NET Core下運(yùn)行我們的ASP.NET Core項(xiàng)目,在特定的時間進(jìn)度內(nèi)很難辦到,不僅僅我們所依賴的一些API還沒有,還有我們大量的.NET Framwork的庫還來不及遷移到.NET Standard 兼容。本文就是向你介紹如何在我們的.NET Framework 4.5以上的環(huán)境下跑我們的ASP.NET Core項(xiàng)目,讓我們跟上.NET Core的發(fā)展步伐。
Scott hanselman 寫了一篇文章《How to reference an existing .NET Framework Project in an ASP.NET Core 1.0 Web App》向我們介紹了如何.NET Framework 4.5以上的環(huán)境下跑我們的ASP.NET Core項(xiàng)目。這篇文章里有一張圖解釋了這么做的原理:
.NET 4.5以上的版本和.NET Core的底層的編譯器和運(yùn)行時都是一樣的,ASP.NET Core 1.0也可以跑在NET Framework 4.6上,我們通過Visual Studio 2015 Update 3創(chuàng)建一個Web項(xiàng)目的時候有一個模板:
我們上面看到了3個ASP.NET Web項(xiàng)目類型:
- ASP.NET Web 應(yīng)用程序。這就是 4.6版本的 ASP.NET MVC 與 Web API。它在.NET 框架上運(yùn)行。
- ASP.NET Core Web應(yīng)用程序在.NET Core 1.0 上運(yùn)行,它是跨平臺的。如果你選擇它創(chuàng)建項(xiàng)目,你將能夠在任何地方運(yùn)行您的應(yīng)用程序,但您不能引用"完整的".NET Framework 程序集
- ASP.NET Core Web應(yīng)用程序在.NET 框架上運(yùn)行。那就是新的 ASP.NET Core 1.0 ,統(tǒng)一了 MVC 和 Web API,不支持WebForms,但在Windows的.NET 框架上運(yùn)行。這里有同學(xué)就有疑問了,最新的Mono 4.6 也實(shí)現(xiàn)了.NET 4.5的API,這個項(xiàng)目模板的應(yīng)用能否在Mono上跑呢,答案應(yīng)該是不行,因?yàn)镸ono的底層編譯器和運(yùn)行時還沒有和.NET Core統(tǒng)一,不過Mono正在路上,已經(jīng)開始統(tǒng)一底層的編譯器和運(yùn)行時,具體大家可用去https://trello.com/b/vRPTMfdz/net-framework-int