.NET Core 簡介

来源:https://www.cnblogs.com/fer-team/p/18097204
-Advertisement-
Play Games

前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...


     微軟於2016年推出了新一代的開發平臺,並且將其命名為.NET Core。相較於舊的.NET Framework。

.NET Core有如下優點:

   1).NET Core採用模塊化開發。不再像.NET Framework那樣需要安裝整個安裝包。.NET Core核心只包含很少的文件,所有其他模塊都需要單獨安裝。根據需要引用各自不動的版本和包。

(2).NET Core支持獨立部署,也就是說,可以把.NET Core運行時環境和開發的程式打包到一起部署。這樣就不需要在伺服器上安裝.NET Core運行環境,只要把程式複製到伺服器上,程式就能運行,這對容器化、無伺服器(Serverless)等非常友好。

(3)程式的運行效率更高。.NET Core的所有管道都是可以插拔的,我們可以決定程式需要哪些管道及它們的執行順序,因此用.NET Core開發出來的程式運行效率更高。

(4)ASP.NET Core程式內置了簡單且高效的Web伺服器—Kestrel。Kestrel被嵌入ASP.NET Core程式中運行,因此整個ASP.NET Core程式其實就是一個控制台程式。Kestrel可被配置上安全、HTTPS、限流、壓縮、緩存等功能,從而成為直接面向終端用戶的Web伺服器,這樣網站運行不依賴於IIS;也可以將其配置成輕量級的Web伺服器,而安全、HTTPS、限流、壓縮、緩存等功能則由部署在它前面的IIS、Nginx等反向代理伺服器完成。

微軟為什麼拋棄舊的.NET Framework,而重新開發新的平臺呢?

 .NET Framework是2002年由微軟推出的開發平臺,那時候還沒有雲服務平臺、容器、微服務等概念,也就不能在平臺中考慮這些因素,因此我們基於.NET Framework進行新項目的開發無法滿足功能需求。

.NET Standard介紹

   .NET Standard規定了一系列需要被所有.NET Core、.NET Framework及Xamarin等共同實現的API,包括有哪些類、有哪些方法、參數和返回值是什麼等。需要說明的是,.NET Standard只是一個規範,不是一個框架。不要以為.NET Standard是一個被.NET Framework、.NET Core、Xamarin等共用的基礎庫,.NET Standard只是規定了需要被實現的規範,但是不負責具體實現。對於.NET Standard類型的類庫項目,當我們分別在.NET Core項目和.NET Framework項目中引用這個類庫的時候,就可以看到它們執行時的差別。

.NET Standard隨著.NET技術的升級而升級,不同版本的.NET Core、.NET Framework等支持不同版本的.NET Standard,越高版本的.NET Core、.NET Framework等支持的.NET Standard版本越高。如下圖所示

 如果一個類庫遵守一個版本的.NET Standard規範,那麼不低於對應這個版本的.NET Core、.NET Framework的項目都可以使用這個類庫。比如一個類庫遵守.NET Standard 2.0規範,那麼不低於.NET Core 2.0或者不低於.NET Framework 4.6.1的項目就都可以使用這個類庫。如果我們要編寫一個給公眾使用的類庫,為了讓.NET Core、.NET Framework、Xamarin等開發人員都能使用這個類庫,這個類庫就應該是.NET Standard類庫,並且.NET Standard的版本應儘可能低一些,這樣低版本的.NET Core、.NET Framework、Xamarin的項目也能使用這個類庫。

 總而言之,.NET Standard是一個.NET平臺下的規範,使得我們開發的類庫可以被.NET Framework、.NET Core、Xamarin等使用,提高了代碼的復用性。.NET Standard已經完成了它的歷史使命。從.NET 5開始,微軟將不再更新.NET Standard,而是會把.NET 5、.NET 6等視為單一的代碼庫,並會通過編譯期和運行時的檢查來解決不同平臺下它們所支持的功能具有差異這一問題。

作者:小羽信息 出處:http://www.cnblogs.com/fer-team/ 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...