在4月份推送過這篇文章 簡明 ASP.NET Core 手冊 ,今天再次推薦這篇文章,是因為原作者更新到了新版本1.1.0,改動很大,幾乎所有章節都有很大程度的調整,這些調整都是根據讀者的建議而做,而且對於很多.NET Core的初學者來說,這是一個非常好的教程。
前言感謝你捧起這本 簡明 ASP.NET Core 手冊!我寫這本小書的目的,是幫助開發者和愛好者了解 ASP.NET Core 2.0,一個嶄新的,用於創建 Web應用 和 API 的框架。
這本 簡明 ASP.NET Core 手冊 內容組織成了一篇教程。你將從零開始,完整地構建一個 待辦事項(to-do) 應用,同時了解以下內容:
MVC (Model-View-Controller) 模式的基本內容
前端代碼(HTML, CSS, JavaScript)怎樣與後端代碼交互
什麼是依賴注入以及它的實用之處
如何進行資料庫的讀寫操作
如何添加 登錄、註冊功能,以及如何提升安全性
如何部署該應用到網絡上
別擔心,你可以在 對 ASP.NET Core (以及上面列表的內容)一無所知的狀態下開始學習。
開始之前你將要構建的這個應用,其完整源碼位於 GitHub(https://www.github.com/nbarbettini/little-aspnetcore-todo) 。如果需要與你自己的代碼做對比,可任意下載。
這本書本身也會由於修訂和內容的增加而頻繁更新。如果你閱讀的是 PDF、電子書,或者列印版,請查閱官網(littleasp.net/book)的版本更新。有關版本信息和更新內容,請查閱本書的最後一頁。
選擇你的語言閱讀感謝那些多語言的讀者,簡明 ASP.NET Core 手冊 已經被翻譯成其它語言:
The Little ASP.NET Core Book (English -- original version)
https://www.recaffeinate.co/book/
ASP.NET Core El Kitabı (Turkish)
https://sahinyanlik.gitbooks.io/kisa-asp-net-core-kitabi/
本書的目標讀者如果你剛開始編程,本書將使你了解構建最新web應用的模式和概念。通過從頭開始創建一些東西,你將學習構建一個 web 應用的方法(以及合理組織各模塊的方法)。儘管這個手冊不能事無巨細地講解你對編程所需的全部內容,但它將成為你的一個起點,通向更多高級的主題。
如果你已經在使用諸如 Node、Python、Ruby、Go 或者 Java 之類的後端語言寫代碼,你會注意到很多熟悉的概念,比如 MVC、視圖模板和依賴注入。你將使用 C# 進行進行編程,但跟你先前熟知的內容不會差異太大。
如果你是一個 ASP.NET MVC 開發者,你將如魚得水。 ASP.NET Core 增添了一些新工具並復用(及簡化)了你用過的那些東西。我會在後面指出其中的部分差異。
不論你此前在 web 編程方面經驗如何,本書都會傾囊相授,足以使你用 ASP.NET Core 創建一個簡單但實用的 web 應用。你將學習如何用前後端代碼實現設計目標,如何與資料庫交互,如何測試並部署應用到真實環境。
什麼是 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 應用。
又一個 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 從創建基礎就是安全的。它已經自動處理了 淨化輸入數據 和 跨域偽造請求(XSRF),你就不用操心這些了。你同時還享有 .NET 編譯器的靜態類型檢測的福利,它像個時刻警惕著,還有些強迫症的審校者。這樣,在使用一個變量或者某些數據時,那些無意識的錯誤就插翅難逃。
.NET Core 和 .NET 標準貫穿本書,你將學習有關 ASP.NET Core (web 框架)的知識。我會偶爾提及 .NET 運行時(用於運行 .NET 代碼的支持庫)。
你可能還會聽說 .NET Core 和 .NET標準,這些命名有些混亂,所以在此做一簡短的釋疑:
.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 Framework 是另一個 .NET標準 的實現,它只能運行在 Windows 上。在 .NET Core 出現並把 .NET 推向 Mac 和 Linux 之前,它是唯一的 .NET 運行時庫。 ASP.NET Core 也可以跑在 Windows 專用的 .NET Framework 上,但我不會過多涉及這個主題。
如果你已經被這些命名搞糊塗了,別發愁!咱們馬上就要寫代碼進行實踐了。
ASP.NET 4 開發者注意如果你從沒用過 ASP.NET 以前的版本,直接看下一章去吧!
ASP.NET Core 是對 ASP.NET 徹底的重寫,重點關注於讓該框架應用新的開發方法,並最終使其與 System.Web、IIS、和 Windows 解耦。你要是還記得 ASP.NET 4 的 OWIN/Katana 那些內容,你就已經學會一半了: Katana 項目成了 ASP.NET 5,而後者的名字最終被改成了 ASP.NET Core。
作為 Katana 的傳承, Startup 類成了起始和中心,Application_Start 和 Global.asax 則不復存在了。整個處理管線由中間件驅動,MVC 和 Web API 不再有區別:控制器可以方便的返回視圖、狀態碼,或者數據。依賴注入功能已經內置了,所以,如果你不想費勁的話,完全可以不用再安裝並配置一個服務容器了,比如 StructureMap 或者 Ninject。整個框架已經針對速度和運行時效率進行了優化。
好了,前言就到這兒。開始學習 ASP.NET Core 吧。
原文地址:https://windsting.github.io/little-aspnetcore-book/book/
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com