程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 在傳統.NET Framework 上運行ASP.NET Core項目,frameworkcore

在傳統.NET Framework 上運行ASP.NET Core項目,frameworkcore

編輯:關於.NET

在傳統.NET Framework 上運行ASP.NET Core項目,frameworkcore


新的項目我們想用ASP.NET Core來開發,但是苦於我們歷史的遺產很多,比如《使用 JavaScriptService 在.NET Core 裡實現DES加密算法》,我們要估計等到.NET Core 1.2我們才會有大部分的API,通過NodeJs方式有點曲線救國的味道,很多人會不認同,如果要在純的.NET Core下運行我們的ASP.NET Core項目,在特定的時間進度內很難辦到,不僅僅我們所依賴的一些API還沒有,還有我們大量的.NET Framwork的庫還來不及遷移到.NET Standard 兼容。本文就是向你介紹如何在我們的.NET Framework 4.5以上的環境下跑我們的ASP.NET Core項目,讓我們跟上.NET Core的發展步伐。

 

Scott hanselman 寫了一篇文章《How to reference an existing .NET Framework Project in an ASP.NET Core 1.0 Web App》向我們介紹了如何.NET Framework 4.5以上的環境下跑我們的ASP.NET Core項目。這篇文章裡有一張圖解釋了這麼做的原理:

 aspnetcore46

.NET 4.5以上的版本和.NET Core的底層的編譯器和運行時都是一樣的,ASP.NET Core 1.0也可以跑在NET Framework 4.6上,我們通過Visual Studio 2015 Update 3創建一個Web項目的時候有一個模板:

image

我們上面看到了3個ASP.NET Web項目類型:

  • ASP.NET Web 應用程序。這就是 4.6版本的 ASP.NET MVC 與 Web API。它在.NET 框架上運行。
  • ASP.NET Core Web應用程序在.NET Core 1.0 上運行,它是跨平台的。如果你選擇它創建項目,你將能夠在任何地方運行您的應用程序,但您不能引用"完整的".NET Framework 程序集
  • ASP.NET Core Web應用程序在.NET 框架上運行。那就是新的 ASP.NET Core 1.0 ,統一了 MVC 和 Web API,不支持WebForms,但在Windows的.NET 框架上運行。這裡有同學就有疑問了,最新的Mono 4.6 也實現了.NET 4.5的API,這個項目模板的應用能否在Mono上跑呢,答案應該是不行,因為Mono的底層編譯器和運行時還沒有和.NET Core統一,不過Mono正在路上,已經開始統一底層的編譯器和運行時,具體大家可用去https://trello.com/b/vRPTMfdz/net-framework-integration-into-mono ,了解具體的工作進展,下個穩定版本Mono 4.8應該就可以支持了,具體可以參考 Dockerized .NET Core 1.0.1 and .NET Framework on Mono 4.7。

我們選擇ASP.NET Core Web應用程序在.NET 框架上運行模板創建項目,創建出來是這樣的:

image 

 

接著我們再創建2個.NET Framework 4.5的庫,然後在asp.net core應用裡面引用:

image

image

我們來看asp.net core項目的project.json, 不久的將來在Visual Studio 2017 RC發布的時候,project.json 的功能會和csproj以及msbuild 合並在一起, 你會注意到 ClassLIbrary1 沒有列出的最高級別依賴項節點下,但作為一種框架特定依賴像這樣:

image

此外請注意,在這種情況下它是一種type="project"的依賴關系,在這種情況下,我沒有建立 NuGet 包來進行引用。不過因為 .NET Core toolin 是在預覽中有一些缺陷,這些缺陷要等等工具完善來修復。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved