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

来源:http://www.cnblogs.com/shanyou/archive/2016/11/07/6036574.html
-Advertisement-
Play Games

新的項目我們想用ASP.NET Core來開發,但是苦於我們歷史的遺產很多,比如《使用 JavaScriptService 在.NET Core 里實現DES加密演算法》,我們要估計等到.NET Core 1.2我們才會有大部分的API,通過NodeJs方式有點曲線救國的味道,很多人會不認同,如果要在 ...


新的項目我們想用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 是在預覽中有一些缺陷,這些缺陷要等等工具完善來修複。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 以上就介紹了比SwipeRefreshLayout更漂亮和強大的下拉刷新控制項:Android-MaterialRefreshLayout 1.xml 2.Java 3、參考網站 https://github.com/android-cjj/Android-MaterialRefreshLayout/ ...
  • SQL 對大小寫不敏感! 數據操作語言 (DML): select - 從資料庫表中獲取數據 update - 更新資料庫表中的數據 delete - 從資料庫表中刪除數據 insert into - 向資料庫表中插入數據 數據定義語言 (DDL): create database - 創建新資料庫 ...
  • 公司的redis業務很多,redis監控自然也是DB監控的一大模塊,包括採集、展示、監控告警。本文主要介紹redis監控的主要指標和採集方法。 一、Redis監控系統邏輯 1、DBA通過前臺頁面添加redis監控,填寫ip和埠,配置閾值、負責人等信息 2、前臺調用自動調度平臺介面將redis監控採 ...
  • ImageSharp 是支持.NET Core跨平臺圖形處理庫,ImageSharp是ImageProcessor 的.NET Core跨平臺實現。 ImageSharp 支持如下操作: 調整大小,裁剪,翻轉,旋轉,邊緣檢測等。 支持BMP,PNG,GIF,JPEG 編碼器。 EXIF 讀取和針對J ...
  • 演算法名稱 Alias Method 測試 最後推薦個站,全世界的手機號碼免費使用 天神號碼www.ahjesus.com ...
  • c#中重新生成時,報錯:命令“copy ...... ” 已退出,返回值為1. 錯誤截圖如下: 解決辦法: 點擊“項目”右鍵--“屬性”--“生存事件”--找到“生成後事件命令行”清空裡面的內容,即可生存成功。 ...
  • 談到數組時,當被問及數組是從什麼數開始時,估計大部分程式員都會直接說出數組當然是從0開始的。這個回答當然沒有錯,現在我們就來瞭解一下C#中的下限非0的數組。 首先看一下數組的相關介紹: 1.數組:是允許將多個數據項當作一個集合來處理的機制。 2.數組的分類:在CLR中,數組可分為一維數組,多維數組, ...
  • MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MV ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...