由Nate Barbettini
版權所有©2018。保留所有權利。
ISBN:978-1-387-75615-5
在創意共享歸因4.0許可下發布。您可以自由以任何格式共享,複製和重新分發本書,或重新混合併出於任何目的(甚至在商業上)進行轉換。您必須給予適當的信用,並提供鏈接到許可證。
有關更多信息,請訪問https://creativecommons.org/licenses/4.0/
感謝您拿起小ASP.NET核心書!我寫了這本簡短的書,以幫助開發人員和對Web編程感興趣的人了解ASP.NET Core 2.0,這是一個用於構建Web應用程序和API的框架。
Little ASP.NET核心書籍的結構是教程。您將從開始到完成並學習:
不用擔心,您無需了解ASP.NET Core(或以上任何一個)即可開始。
您將構建的應用程序的完成版本的代碼可在GitHub上使用:
https://www.github.com/nbarbettini/little-aspnetcore-todo
如果您想查看成品,請隨時下載它,或在編寫自己的代碼時進行比較。
該書本身經常使用錯誤修復和新內容更新。如果您正在閱讀PDF,電子書或打印版本,請查看官方網站(Littleasp.net/book),以查看是否有更新的版本。這本書的最後一頁包含版本信息和一個更改。
多虧了一些出色的多語言貢獻者,Little ASP.NET核心書已轉化為其他語言:
ASP.NET Core ElKitabı (土耳其)
簡明asp.net核心手冊(中文)
如果您是編程的新手,本書將向您介紹用於構建現代Web應用程序的模式和概念。您將學習如何通過從頭開始構建一些東西來構建Web應用程序(以及大型材料的結合在一起)!儘管這本小書將無法涵蓋有關編程所需的所有信息,但它將為您提供一個起點,以便您可以學習更多的高級主題。
如果您已經用Node,Python,Ruby,Go或Java等後端語言進行編碼,您會注意到許多熟悉的想法,例如MVC,查看模板和依賴項注入。該代碼將在C#中,但看起來與您已經知道的內容不會太大。
如果您是ASP.NET MVC開發人員,您會感到賓至如歸! ASP.NET Core添加了一些您已經知道的東西(並簡化)。我將指出以下一些區別。
無論您以前在Web編程方面的經驗如何,本書都會教您在ASP.NET Core中創建一個簡單有用的Web應用程序所需的一切。您將學習如何使用後端和前端代碼,如何與數據庫進行交互以及如何將應用程序部署到世界上。
ASP.NET Core是Microsoft為構建Web應用程序,API和微服務而創建的Web框架。它使用常見模式,例如MVC(模型視圖控制器),依賴項注入和由中間軟件組成的請求管道。它是Apache 2.0許可證下的開源,這意味著源代碼可以免費使用,並鼓勵社區貢獻錯誤修復和新功能。
ASP.NET Core在Microsoft的.NET運行時運行,類似於Java Virtual Machine(JVM)或Ruby Instrument。您可以用多種語言(C#,Visual Basic,F#)編寫ASP.NET核心應用程序。 C#是最受歡迎的選擇,這是我在本書中使用的選擇。您可以在Windows,Mac和Linux上構建並運行ASP.NET核心應用程序。
已經有很多很棒的網絡框架可供選擇:節點/Express,Spring,Ruby on Rails,Django,Laravel等。 ASP.NET核心具有什麼優勢?
速度。 ASP.NET核心很快。因為編譯了.NET代碼,因此在JavaScript或Ruby等解釋的語言中,執行速度要比代碼快得多。 ASP.NET Core還針對多線程和異步任務進行了優化。通常,與Node.J.編寫的代碼相比,通常會提高5-10倍的速度。
生態系統。 ASP.NET核心可能是新的,但是.NET已經存在了很長時間。 Nuget(.NET軟件包管理器;想想NPM,Ruby Gems或Maven)上有成千上萬個軟件包。已經有可用於JSON避難化的軟件包,數據庫連接器,PDF生成或您幾乎可以想到的其他內容。
安全。 Microsoft的團隊認真對待安全性,ASP.NET Core旨在從頭開始安全。它處理諸如消毒數據和防止跨站點偽造(CSRF)攻擊之類的事情,因此您不必這樣做。您還可以從.NET編譯器中獲得靜態鍵入的好處,這就像始終打開非常偏執的襯裡一樣。這使得不打算使用可變或大量數據來做一些您不打算做的事情變得更加困難。
在本書中,您將學習有關ASP.NET Core(網絡框架)的知識。我有時會提到.NET運行時,即運行.NET代碼的支持庫。如果這對您來說聽起來像是希臘語,那就跳到下一章!
您可能還會聽到.NET Core和.NET標準。命名令人困惑,因此這是一個簡單的解釋:
.NET標準是一種平台 - 不合骨界面,可定義功能和API。重要的是要注意,.NET標準不代表任何實際的代碼或功能,僅代表API定義。有不同的“版本”或.NET標準級別反映了可用的API(或API表面積的寬度)。例如,.NET Standard 2.0比.NET標準1.5的API多,該API比.NET標準1.0多。
.NET Core是可以在Windows,Mac或Linux上安裝的.NET運行時。它在每個操作系統上使用適當的平台特定代碼實現了.NET標準接口中定義的API。這是您將在自己的計算機上安裝的內容來構建和運行ASP.NET核心應用程序。
而且,出於良好的衡量標準, .NET Framework是一個僅Windows標準的.NET標準的實現。這是唯一的.NET運行時間,直到.NET Core出現並將.NET帶到Mac和Linux。 ASP.NET Core也可以在僅Windows的.NET框架上運行,但是我不會太多。
如果您對所有這些命名感到困惑,那就不用擔心了!我們會稍微提取一些真實的代碼。
如果您沒有使用過以前的ASP.NET版本,請前進到下一章。
ASP.NET Core是ASP.NET的完整接地重寫,重點是現代化框架,最後將其與System.Web,IIS和Windows解耦。如果您還記得ASP.NET 4中的所有OWIN/KATANA東西,那麼您已經到了一半:Katana Project成為ASP.NET 5,最終將其重命名為ASP.NET Core。
由於Katana的遺產, Startup類是正面和中心,並且不再有Application_Start或Global.asax 。整個管道都是由中間件驅動的,MVC和Web API之間不再拆分:控制器可以簡單地返回視圖,狀態代碼或數據。依賴性注入出現,因此您不需要安裝和配置諸如結構圖或ninject之類的容器。整個框架已針對速度和運行時效率進行了優化。
好吧,介紹足夠。讓我們潛入ASP.NET Core!