ASP.NET Core 簡介

.NET Core 是 .NET Framework 的新一代版本,是微軟開發的第一個具備跨平臺 ( Windows、Mac OSX 、Linux ) 能力的應用程序開發框web

ASP.NET Core 是 Microsoft 新開發的,基於 .NET Core 的 Web 開發框架數據庫

ASP.NET Core 是對 ASP.NET 的從新設計,變得快速,靈活,現代,而且能夠跨不一樣平臺工做。npm

若是你以前已經接觸過 ASP.NET,有過任何 MVC 或 Web API 的經驗,那麼你會有很強烈的熟悉感。跨域

在本教程中,咱們將會學習如何使用 ASP.NET Core 開發網頁應用程序, 建立、編輯和查看數據庫中的全部數據安全

ASP.NET 簡史

ASP.NET 設計之初,就爲 Web 而生,也自那時起,該框架經歷了一個穩步的演變,並最終將咱們引導至其最新的 ASP.NET Core 2.1 版本微信

ASP.NET 的演變史,其實就是一部 Web 框架的演變史的徹底版,也是過去這麼多年互聯網的發展史多線程

  1. ASP.NET Core 2.1 不是 ASP.NET 4.x 的延續,或者這麼說, ASP.NET Core 1.0 不是 ASP.NET 4.6 的延續框架

  2. ASP.NET Core 是一個全新的 Web 框架,它與 ASP.NET 並行發展異步

  3. ASP.NET Core 是對 ASP.NET 的從新設計,更小,也更模塊化模塊化

  4. 雖然能從 ASP.NET Core 中看到不少 ASP.NET 的熟悉身影,但這並不徹底同樣, ASP.NET Core 是對 ASP.NET 環境的一個重大改變
     

    什麼是 ASP.NET Core?

    ASP.NET Core 是一個由微軟建立的,用於構建 web 應用、API、微服務 的 web 框架。它使用常見的模式,諸如 MVC(Model-View-Controller)、依賴注入,和一個由中間件構成的請求處理管線。它基於 Apache 2.0 許可證開放源碼,就是說,源代碼能夠自由獲取,而且歡迎社區成員以 缺陷修復 和 新功能提交 的方式進行貢獻。

    ASP.NET Core 運行在微軟的 .NET 運行時庫上,相似於 Java 的 虛擬機(JVM)或者 Ruby 的解釋器。有幾種語言(C#,Visual Basic,F#)能夠用來編寫 ASP.NET Core 程序。C# 是最多見的選擇,我在本書中也會採用它。你能夠在 Windows、Mac,和 Linux 上構建並運行 ASP.NET Core 應用。
     

ASP.NET Core 的優勢

ASP.NET Core 具備如下優勢:

  1. ASP.NET Core 有着大量的體系結構更改,這些更改使得 ASP.NET Core 更精簡和更模塊化

  2. 模塊化的設計,使得 ASP.NET Core 再也不基於 System.Web.dll ,而是基於一組精細且充分考慮的 NuGet

  3. ASP.NET Core 容許咱們優化應用程序,只包含必要的 NuGet 包

  4. 更爲精簡的應用程序能夠帶來更高的安全性,更少的維護,更好的性能以及更低的成本

使用 ASP.NET Core ,咱們能夠得到如下好處:

  1. 能在 Windows,Mac 和 Linux 上構建和運行跨平臺的 ASP.NET 應用程序

  2. 使用 ASP.NET Core 能夠構建和並行運行版本化的應用程序

  3. 新的工具簡化了現代 Web 應用程序的開發

  4. 統一的方式構建 Web UI 和 Web API

  5. 雲環境配置

  6. 內置依賴注入

  7. 使得 Razor 標記更接近原聲 HTML 的標籤助手

  8. 應用程序便可以在 IIS 中運行,也能夠在本身的進程中運行

     

    又一個 web 框架,需求何在?

    現存的 web 框架選項已經不少了:Node/Express、Spring、Ruby on Rails、Django、Laravel 等等,數不勝數。ASP.NET Core 又有什麼可取之處呢?

  • 速度 ASP.NET Core 很快。由於 .NET Core 是編譯運行的,執行速度遠高於解釋執行的語言,好比 JavaScript 或者 Ruby、ASP.NET Core 也已經爲多線程和異步任務做了專門的優化。與使用 Node.js 寫的代碼相比,執行速度高出 5-10 倍是很正常的。

  • 生態 ASP.NET Core 可能初出茅廬,但 .NET 卻已久經考驗。在 NuGet(.NET 的包管理系統,相似 npm、Ruby gems,或者 Maven)上有成千上萬的軟件包。有現成的包可用來完成 JSON 反序列化、數據庫鏈接、PDF生成,或者幾乎你能想到的任何需求。

  • 安全性 微軟的開發團隊很注重安全性,ASP.NET Core 的構建就是爲完全的安全性。它已經自動處理了淨化輸入數據和跨域僞造請求(CSRF),你就不用操心這些了。你同時還享有 .NET 編譯器的靜態類型檢測的優點,它像個時刻警戒着,還有些強迫症的審校者。這樣,在使用一個變量或者某些數據時,那些無心識的錯誤就插翅難逃。

  • 做爲對比,這裏要指出, .NET Framework 是另外一個 .NET標準 的實現,它只能運行在 Windows 上。在 .NET Core 出現並把 .NET 推向 Mac 和 Linux 以前,它是惟一的 .NET 運行時庫。 ASP.NET Core 也能夠跑在 Windows 專用的 .NET Framework 上,但我不會過多涉及這個主題。

    若是你已經被這些命名搞糊塗了,別發愁!我們立刻就要寫代碼進行實踐了。
     

    .NET Core 和 .NET 標準

    你可能還會據說 .NET Core 和 .NET標準,這些命名有些混亂,因此在此作一簡短的釋疑:

    .NET 標準 是一個平臺無關的接口,它定義了特性和 API。值得指出的是,.NET 標準並不等同於任何實際的代碼或者功能,僅僅是 API 的定義。.NET 標準現存多個不一樣的「版本」或者說級別,反映出提供 API 的數量(或者說 API 所覆蓋的廣度)。好比 .NET標準2.0 的 API 數量比 .NET標準1.5 多,後者的 API 又比 .NET標準1.0 多。

    .NET Core 是可安裝在 Windows、Mac或者Linux上的 .NET 運行時庫。它在各個操做系統上,使用對應的平臺相關代碼實現了定義於 .NET 標準中的 API。你將要把它安裝到機器上,用來構建和運行 ASP.NET Core 應用程序。
     

    .NET Core與 .NET Framework 相比優點包括: 跨平臺、提升性能、並行版本控制、新API、開源。目前NET Framework 還不會被 .NET Core 代替。Core會試圖縮小兩者在實現上的差距,下表將 ASP.NET Core 與 ASP.NET 4.x 進行比較:

    ASP.NET Core ASP.NET 4.x
    針對 Windows、macOS 或 Linux 進行生成 針對 Windows 進行生成
    Razor 頁面是在 ASP.NET Core 2.x 及更高版本中建立 Web UI 時建議使用的方法 使用 Web 窗體、SignalR、MVC、Web API、WebHooks 或網頁
    每一個計算機多個版本 每一個計算機一個版本
    比 ASP.NET 4.x 性能更高 良好的性能
    選擇 .NET Framework 或 .NET Core 運行時 使用 .NET Framework 運行時


    運用場景

        (1) 在什麼狀況下要求使用 .NET Core包括: 用戶有跨平臺需求、用戶正在面向微服務、用戶正在使用 Docker 容器、須要高性能和可擴展的系統、需按應用程序提供並行的 .NET 版本。

        (2) 在什麼狀況下使用.NET Framework包括: 當前使用 .NET Framework(建議擴展而不是遷移)、不可用於 .NET Core 的第三方 .NET 庫或 NuGet 包、不可用於 .NET Core 的 .NET 技術、不支持 .NET Core 的平臺。

         不可用於 .NET Core的.NET技術包括:不能用於 ASP.NET Web 窗體、WCF 服務的實現(未來會考慮在Core上實現)、工做流相關的服務。

     

    歡迎添加我的微信號:Like若所思。

    歡迎關注個人公衆號,不只爲你推薦最新的博文,還有更多驚喜和資源在等着你!一塊兒學習共同進步!

相關文章
相關標籤/搜索