做者:Eleven程序員
來源:公衆號【軟謀net】json
【前言】服務器
.Net Core開源&跨平臺,已經肉眼可見將成爲.Net平臺的將來,在企業招聘需求上已經頻頻見到,接觸到不少公司內部都已經開始嘗試Core的項目了,尤爲是騰訊的財付通所有是基於Core+微服務搭建的,讓人倍感振奮!Eleven最近出個專題,以當下最新的Asp.Net Core 2.2 Preview3爲版本,給你們來一套系統教程,但願小夥伴兒們能多多關注!函數
【環境搭建】微服務
我這邊使用的VisualStudio版本爲2017企業版15.7.4(並非最新版本,專業版社區版也都是能夠的)。以前安裝是自帶的Core是1.1版本,如今須要安裝最新的sdk(dotnet-sdk-2.2.100-preview3-009430-win-x64.exe),以及最新的runtime(dotnet-runtime-2.2.0-preview3-27014-02-win-x64)。相關環境配置,須要的話能夠關注底部公衆號後,聯繫助教老師獲取!測試
【項目創建】網站
下面開始動手創建Asp.Net Core2.2項目了,添加項目,選擇Web,而後選擇 ASP.NET Core Web應用程序模板,另外那個是原來的Framework版本的。ui
這裏選擇.NET Core,而後選擇最新的ASP.NET Core2.2,選擇下面的MVC應用程序,點擊肯定便可完成建立!創建完後的項目以下,一個典型的MVC項目,可是跟Framework下的有明顯差別,增長了Program和Startup,這二位將是本文的主角了!spa
【Program】對象
看到Program,應該有種很親切的感受,包括裏面的Main方法,這就是整個程序的入口。實際上,咱們創建的這個項目,本質就是個控制檯程序而已,查看項目屬性能夠得知。但爲啥這個Program能當成MVC網站呢?
祕密就是那個CreateDefaultBuilder方法,這裏面是啓動一個Kestrel的服務器來完成請求的監聽和響應的,在之前Core版本里,這裏還有不少的配置項,如今已經內置爲一個Default了。而後這裏簡單理解下,就是初始化一個服務器,而後Run一下,咱們的Web服務器就算是啓動了。其中在初始化服務器的時候,使用了一個Startup類,下面來詳析一番!
【Startup】
在 ASP.NET Core 中,Startup 類提供了應用程序的入口,並且在全部應用程序中都有 Startup 類。ASP.NET 會在主程序集中搜索名爲 Startup 的類(在任何命名空間下)。ASP.NET 並不關心 Startup 類是否是定義爲 public,若是它符合命名規範,ASP.NET 將繼續加載它。若是有多個 Startup 類,也不會觸發異常,ASP.NET 將基於命名空間選擇其中一個(匹配項目的根命名空間優先,不然使用第一個按字母排列的命名空間中的類)。
打開Startup類,大概分三塊,這個是典型的構造函數注入,完成了一個叫IConfiguration類型變量的注入,至因而怎麼注入的,後文中會講到。這個變量是用來讀取配置文件的,跟之前Framework下那個System.ConfigurationManager類差很少的。
而後是ConfigureServices方法,上面的註釋描述的很清楚,是交給運行時環境調用的方法,而後用來給容器註冊服務的(跟剛纔說到的注入一致)。在Asp.Net Core裏面,IOC容器是直接內置了的,也就是這個IServiceCollection。感興趣的小夥伴兒能夠去嘗試下,直接nuget就能夠下載Microsoft.Extensions.DependencyInjection,跟常見的容器用法幾乎同樣的,後面單獨開文章再講這個。這裏完成所有須要依賴注入對象的初始化。
最下面是Configure方法,也是由運行時環境調用的,用來配置HTTP請求的處理管道的。Web的本質就是對Http請求的處理,最終獲得一個響應結果,而這個方法,清晰的描述了,該如何去處理請求。
【內置服務和啓動】
下面我就能夠啓動網站了,之前在作網站開發測試的時候,習慣性的去指定一下網站的端口和默認頁,可是如今項目類型是控制檯項目,相關的配置如今轉移到項目的Properties--->launchSettings.json文件裏面,能夠在這裏修改生效!順便說一下,由於創建項目的時候,勾選了SSL支持,那麼這裏啓動的會是https的Url,並且這個sslPort好像只能是以443開頭,不然可能會沒法訪問。
而後一個徹底沒有作任何修改的Asp.Net Core2.2的項目就運行起來啦!
【結語】
本篇只介紹了最基本的環境搭建和項目創建過程,解釋了一番項目結構,下一篇文章中將帶你們嘗試一些簡單的功能開發嘗試了!在這裏應該感慨一下,Asp.Net Core的項目,外表看上去和以前,就是至關的不同,而在本質上,變化可能會更多的。可是這些變化都是向着更優秀的方向的,但願你們能敞開心胸,擁抱變化!歡迎關注公衆號,歡迎討論,歡迎轉發,願天下有需求的人都能看到!
想了解更多幹貨,歡迎關注公衆號【程序員在職場】
程序員在職場