Visual Studio for Mac中的ASP.NET Core


所以你們都聽到了#Build 2017的消息,Mac上的Visual Studio已經被完全發布,是一般的。為了慶祝這個版本,我將在我的Mac上寫幾篇關於構建一些不同的.net應用的帖子。

正如你已經期望的標題,本文將在ASP.NET核心我將使它簡短而簡單。

我將建立的虛擬應用程序將在電影上。以下是創建新項目並選擇ASP.NET Core Empty時的外觀。

截圖2017-05-13 00.53.28.png

在選擇名稱並創建項目之后,Visual Studio只是為您提供了一個簡單的網絡項目,其中一些nugets正在恢復,在第一次運行時,正如預期的那樣,您將在默認瀏覽器中獲得一個舊的漂亮Hello World。

截圖2017-05-13 01.01.10.png

現在讓我們探索模板,並了解我們可以免費獲得這個Empty模板並開始構建我們的應用程序。

如上圖所示,我們為我們生成了兩個文件Program.cs和Startup.cs以及Movies.csproj本身,其中包含相關信息,以告訴Visual Studio該應用程序的功能。

截圖2017-05-13 01.07.51.png

現在來看看Program.cs文件 截圖2017-05-13 01.15.35.png

這個文件實際上有一個Main方法,我們在Web項目中沒有看到一段時間,ASP.NET Core應用程序需要一個主機來運行。該主機實現IWebHost接口,暴露了啟動主機所需的功能和服務。

上面的行首先創建了WebHostBuilder的一個實例,一個構建和配置主機的類幫助器,首先配置說明是UseKestrel實際上告訴主機使用Kestrel服務器,下一個配置UseContentRoot是告訴主機應該在哪里找到內容您可以看到文件以當前目錄作為參數。UseIISIntegration,另一方面加入支持IIS / IIS快速集成和用來指定一個反向代理由紅隼進行內部服務器。UseStartup告訴主機如何配置中間件和服務,並且您可以看到這是兩個文件之間的鏈接,它告訴主機在另一個文件中使用啟動類的實例。最后,它構建此主機並返回為此角色配置的實例。

下一行host.Run()  是實際運行Web應用程序並阻止調用線程的主機,直到主機關閉。還有一個替代的非阻塞方法host.Start()。

下一個文件Startup.cs是將要使用的實際ASP.NET配置,我們將在隨后的帖子和主題中重新訪問此文件。截圖2017-05-13 01.37.20

在這個文件中沒有什么可以描述的,它很簡單(到目前為止)。其中一個方法被聲明為添加服務。另一個用於初始配置。

正如你可以看到依賴注入是內置在.NET Core和本機支持的,如果你注意到using語句,你將Microsoft.Extensions.DependencyInjection來處理它。因此,所有的參數值將設在幕后運行時綁定,所有你需要做的就是要求實現的目標IApplicationBuilder,或IHostingEnvironment甚至是ILoggerFactory,你會得到你用一個具體的實施; 當我們探索更多並深入ASP.NET Core時,還有更多的這些來到這里。

該方法中的第一行添加了一個控制台記錄器,如果使用Kestrel運行Windows,則您將始終獲得一個“命令”窗口,您可以在網頁上執行某些操作時查看日志跟蹤。在Mac上使用Visual Studio時,這個記錄器將被嵌入應用程序輸出窗口中。

截圖2017-05-13 01.47.43.png

一個關於ASP.NET Core的intersting的事情,它只是一個核心任何服務,你需要添加或配置,你必須要求它!即使是舊的異常頁面(黃色屏幕死亡),現在是一個可愛的淡藍色屏幕的死亡告訴你什么發生錯誤,也不是我們只告訴應用程序生成器添加這個DeveloperExceptionPage只在Developement環境中,這是一個很好的實踐中,因為您不想在生產中暴露內部代碼異常,您可能希望構建自定義的500錯誤頁面。添加此開發人員異常頁面實際上是在管道中添加了一個“中間件”,這是一個很快會談到的主題。

最后一行是管道命令的終止中間件,它偵聽來自此服務器的請求。它需要一個委托(處理程序)參數,並且您可以看到這是我們獲得“Hello World”的地方,我們只需將純文本寫入當前上下文的Repsonse。

這是所有的這個帖子,非常基本的沒有代碼實際上是寫的,但我相信這個帖子是一個插入ASP.NET核心和初學者即將發布的帖子。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM