日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core 2.0 特性介绍和使用指南

發(fā)布時(shí)間:2023/12/4 asp.net 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core 2.0 特性介绍和使用指南 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ASP.NET Core 2.0 發(fā)布日期:2017年8月14日

ASP.NET團(tuán)隊(duì)宣布ASP.NET Core 2.0正式發(fā)布,發(fā)布Visual Studio 2017 15.3支持ASP.NET Core 2.0,提供新的Razor Pages項(xiàng)目模板。

詳細(xì)發(fā)布信息查看.NET Core 2.0.0發(fā)布說明文檔

最新版SDK下載:https://dot.net/core

ASP.NET Core 2.0提供一系列新功能使得Web應(yīng)用開發(fā)、發(fā)布、部署和維護(hù)變得更加容易,框架性能得到進(jìn)一步提升。

前言:答讀者問(time by:2017.8.19)

在開始之前先集中回復(fù)前兩篇文章評(píng)論中大家比較關(guān)注的問題

  • 問題1:工具的更新問題
    問題by @軒轅劍:有沒單獨(dú)升級(jí)到15.3的更新啊?
    答案by @yyww:下載新版本的安裝程序,1M多,會(huì)自動(dòng)更新的

VS2017安裝程序經(jīng)過重構(gòu)變成模塊化安裝,所以對(duì)于15.3版本的更新是增量更新,下載最新的安裝程序,會(huì)自動(dòng)檢測(cè)。

Visual Studio For Mac 7.1也一樣,檢測(cè)軟件更新,進(jìn)行增量更新。

  • 問題2:.NET Standard到底是什么?
    問題by @wdwwtzy:這個(gè)系列不錯(cuò),想聽聽 standard 到底是啥,建議深入一些,現(xiàn)在太淺了
    問題by @海闊天空XM:幾張?bào)w系結(jié)構(gòu)圖?

.NET Standard是一組API集合,支持.NET Standard的.NET平臺(tái)之間可以實(shí)現(xiàn)代碼共享,基于.NET Standard構(gòu)建的類庫可以在支持.NET Standard的.NET平臺(tái)進(jìn)行復(fù)用,防止代碼碎片化。
目前支持.NET Standard 2.0的平臺(tái)有:

  • .NET Framework 4.6.1

  • .NET Core 2.0

  • Mono 5.4

  • Xamarin.iOS 10.14

  • Xamarin.Mac 3.8

  • Xamarin.Android 7.5

  • UWP (預(yù)計(jì)2017年下半年發(fā)布)

在深入一點(diǎn),看這張圖

平臺(tái)對(duì).NET Standard 支持對(duì)應(yīng)表(by @農(nóng)碼一生)


【圖】

  • 問題3:關(guān)于System.Drawing API是否提供?
    問題by @PowerShell免費(fèi)軟件:.net core2正式版了,增加了System.Drawing。
    有人在上面成功運(yùn)行以前的winform程序嗎?誰能幫忙搞個(gè)hello試試看嗎?

命名空間System.Drawing是增加了,只提供了結(jié)構(gòu)體,并沒有提供繪圖類,相信在接下來的版本會(huì)支持。

項(xiàng)目升級(jí)到ASP.NET Core 2.0

ASP.NET Core 2.0 可以同時(shí)運(yùn)行在.NET Framework 4.6.1?和?.NET Core 2.0框架,更改項(xiàng)目目標(biāo)框架為:netcoreapp2.0

<PropertyGroup><TargetFramework>netcoreapp2.0</TargetFramework></PropertyGroup>

在Visual Stdio中可以設(shè)置項(xiàng)目屬性

frameborder="0" scrolling="no" style="border-width: initial; border-style: none; width: 883px; height: 176px;">

也可以手動(dòng)編輯項(xiàng)目文件,將原項(xiàng)目中Microsoft.AspNetCore.*引用包升級(jí)到2.0

<ItemGroup><PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /><PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0" /><PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.0" /></ItemGroup>

ASP.NET Core 2.0項(xiàng)目發(fā)布做了優(yōu)化,發(fā)布文件只包含引用的類庫。這個(gè)優(yōu)化有助于使發(fā)布過程更流暢,更容易分發(fā)Web應(yīng)用程序。

將 ASP.NET Core 1.0 升級(jí)到 2.0 詳細(xì)內(nèi)容可以參看這篇文章。

新增功能:Razor Pages介紹

ASP.NET Core 2.0中,提供一種新的編碼方式,這種方式在頁面邏輯集中的場(chǎng)景下比使用MVC架構(gòu)開發(fā)更加簡單。

Razor Pages是頁面優(yōu)先的架構(gòu),允許用戶開發(fā)界面時(shí),使用簡單的服務(wù)端交互方式,通過頁面模型對(duì)象(Page Model)進(jìn)行數(shù)據(jù)交互,而無需控制器中轉(zhuǎn)。

在項(xiàng)目啟動(dòng)文件中,添加代碼

public class Startup{ ?

?public void ConfigureServices(IServiceCollection services) ? ?{ ?
?? ? ?// 包含對(duì)Razor Pages 和控制器支持.services.AddMvc();} ?
?? ?public void Configure(IApplicationBuilder app) ? ?{app.UseMvc();} }

當(dāng)在服務(wù)注冊(cè)中調(diào)用AddMvc方法時(shí)會(huì)激活Razor Pages功能。
添加一個(gè)測(cè)試頁面,放在Pages目錄下,命名為Now.cshtml。

@page<html> ? ?<body> ? ? ? ?<h2>The server-local time now is:</h2> ? ? ? ?<p>@DateTime.Now</p> ? ?</body></html>

這看起來像是標(biāo)準(zhǔn)的Razor視圖,只是在頁面頂部添加標(biāo)記@page,就定義該頁面為獨(dú)立的Razor Page,在頁面中依然可以使用 HtmlHelpers, TagHelpers 或者.NET 代碼,可以像在Razor視圖中一樣定義方法,只需添加塊級(jí)元素@functions,然后在其內(nèi)部編寫代碼。

@page@functions {public string FormatDate(DateTime theTime) {return theTime.ToString("d"); }}<html><body><h2>The server-local time now is:</h2><p>@FormatDate(DateTime.Now)</p></body></html>

結(jié)合使用PageModel對(duì)象,可以創(chuàng)建更加復(fù)雜的頁面交互,PageModel是一個(gè)MVVM架構(gòu)概念,相當(dāng)于視圖模型(VM),允許執(zhí)行方法并將屬性綁定到對(duì)應(yīng)的頁面中。在Pages目錄中創(chuàng)建一個(gè)NowModel.cshtml.cs?類。

namespace MyFirstRazorPage.Pages{
?public class NowModel : PageModel{ ?
?private IFileProvider _FileProvider; ?
?
?public NowModel(PhysicalFileProvider fileProvider) ? ?{_FileProvider = fileProvider;LastModified = _FileProvider.GetFileInfo("Pages/Now.cshtml").LastModified.LocalDateTime;} ?

?? ?public DateTime LastModified { get; set; } ?
? ?
? ??public void OnGet() { }} }

這個(gè)類繼承自PageModel,根據(jù)頁面業(yè)務(wù)需要可以構(gòu)建與頁面交互的邏輯類,并且可以對(duì)該類中的業(yè)務(wù)邏輯進(jìn)行單元測(cè)試。在本例中,將LastModified屬性加載到頁面。另外注意OnGet方法用來聲明PageModel可以響應(yīng)HTTP GET請(qǐng)求。

更新Razor Page,使用PageModel定義的LastModified屬性。

@page
@model MyFirstRazorPage.Pages.NowModel

<html> ? ?<body> ? ? ? ?<h2>This page was last updated:</h2> ? ? ? ?<p>@Model.LastModified</p> ? ?</body></html>

更多Razor Pages詳細(xì)介紹參看資料。

回到目錄

模板更新

模板已經(jīng)增強(qiáng),不僅包含MVC模式的Web應(yīng)用程序模板,也包含Razor Pages Web應(yīng)用程序模板,還包含一系列單頁應(yīng)用(SPA)程序模板。這些單頁模板使用Javascript服務(wù)功能在ASP.NET Core服務(wù)中嵌入NodeJS,將JavaScript應(yīng)用程序服務(wù)器作為項(xiàng)目中的一部分進(jìn)行編譯。

命令行工具提供的內(nèi)置項(xiàng)目模板


Entity Framework Core 2.0提供DbContext池

參看:Entity Framework Core 2.0發(fā)布(稍后發(fā)布,會(huì)用單獨(dú)一篇文章總結(jié))


監(jiān)視器、無代碼更改配置、應(yīng)用程序監(jiān)視器

運(yùn)行在Azure應(yīng)用服務(wù)上的ASP.NET Core 2.0項(xiàng)目無需修改,提供性能分析、錯(cuò)誤報(bào)告和Azure應(yīng)用程序監(jiān)視功能。

在Visual Studio 2017中右鍵項(xiàng)目,Add->Application Insights Telemetry,啟動(dòng)應(yīng)用程序數(shù)據(jù)收集,然后可以直接預(yù)覽日志信息和應(yīng)用程序性能報(bào)告。

這個(gè)功能可以讓我們?cè)陂_發(fā)階段,對(duì)應(yīng)用程序性能做出測(cè)試和反饋,當(dāng)程序發(fā)布到Azure之后,可以在Azure門戶中進(jìn)行分析和調(diào)試,程序信息的收集從第一次發(fā)布應(yīng)用程序并導(dǎo)航到云門戶時(shí)開始。Azure將會(huì)以一個(gè)紫色橫幅提示您,這表明應(yīng)用程序監(jiān)視和分析功能是可用的。

點(diǎn)擊進(jìn)入查看應(yīng)用程序監(jiān)視服務(wù),無需重新編譯和部署,應(yīng)用程序監(jiān)視服務(wù)將開始報(bào)告捕獲到的活動(dòng)數(shù)據(jù)。

數(shù)據(jù)報(bào)告顯示了應(yīng)用程序中失敗的請(qǐng)求和錯(cuò)誤的數(shù)量。單擊關(guān)注的數(shù)據(jù)項(xiàng),將展示關(guān)于失敗請(qǐng)求的詳細(xì)信息:

上圖中拋出一個(gè)System.Exception,點(diǎn)擊查看異常報(bào)告,可以查看拋出異常的詳細(xì)信息,包括調(diào)用堆棧:

應(yīng)用程序監(jiān)視的快照調(diào)試現(xiàn)在支持ASP.NET Core 2.0應(yīng)用。如果設(shè)置在應(yīng)用程序中配置快照調(diào)試,則頂部的“打開調(diào)試快照”鏈接將顯示并顯示完整的調(diào)用堆棧,可以單擊堆棧中的方法來查看本地變量:

好了!我們可以更進(jìn)一步,點(diǎn)擊右上角的“下載快照”按鈕,在Visual Studio中啟動(dòng)一個(gè)異常調(diào)試會(huì)話。

這些頁面的性能如何?從應(yīng)用程序監(jiān)視頁面中,選擇左側(cè)的性能選項(xiàng),深入地研究每個(gè)請(qǐng)求在應(yīng)用程序的性能跟蹤。

更多信息參看使用應(yīng)用程序洞察的性能分析。

如果您想要使用您的應(yīng)用程序的原始日志,您可以在應(yīng)用程序服務(wù)中啟用診斷日志,并將診斷級(jí)別設(shè)置為警告或錯(cuò)誤,以查看該異常被拋出。

最后,選擇左邊的日志流,您可以看到您在開發(fā)人員工作站上所擁有的控制臺(tái)。選擇將在Azure中觸發(fā)的嚴(yán)重級(jí)別或更大級(jí)別的錯(cuò)誤和日志消息。

所有應(yīng)用程序感知功能都可以在 ASP.NET Core 中使用,不用重新編譯和部署。快照調(diào)試需要添加額外的步驟和一些代碼,而配置就像在啟動(dòng)類中添加額外代碼一樣簡單。

更新信息參看:應(yīng)用程序洞察在線文檔

Razor支持C# 7.1

Razor視圖引擎借助Roslyn編譯器支持C# 7.1功能,比如:默認(rèn)表達(dá)式、推斷的元組名稱和模式匹配泛型。要在項(xiàng)目中使用c# 7.1特性,在項(xiàng)目文件中添加以下屬性,然后重新加載解決方案:

<LangVersion>latest</LangVersion>

C# 7.1本身還是預(yù)覽版狀態(tài),可以在其GitHub存儲(chǔ)庫中查看這些特性的語言規(guī)范。

簡化應(yīng)用程序的主機(jī)配置

主機(jī)配置已經(jīng)大大簡化,默認(rèn)ASP.NET Core項(xiàng)目模板中提供WebHost.CreateDefaultBuilder,自動(dòng)分配一個(gè)Kestrel服務(wù)器,如果IIS可用則嘗試運(yùn)行在IIS上,并配置標(biāo)準(zhǔn)控制臺(tái)日志提供程序。

public class Program{ ? ?
? ? public static void Main(string[] args) ? ?{BuildWebHost(args).Run();} ?

? ? public static IWebHost BuildWebHost(string[] args) =>WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().Build(); }

總結(jié)

ASP.NET Core 2.0提供的一系列新功能提供編寫應(yīng)用程序的新方法,簡化了應(yīng)用程序在生產(chǎn)環(huán)境的管理和維護(hù)。

相關(guān)文章:?

  • .NET Core 2.0 正式發(fā)布信息匯總

  • .NET Standard 2.0 特性介紹和使用指南

  • .NET Core 2.0 的dll實(shí)時(shí)更新、https、依賴包變更問題及解決

  • .NET Core 2.0 特性介紹和使用指南

  • Entity Framework Core 2.0 新特性

  • 體驗(yàn) PHP under .NET Core

  • .NET Core 2.0使用NLog

  • 升級(jí)項(xiàng)目到.NET Core 2.0,在Linux上安裝Docker,并成功部署

  • 解決Visual Studio For Mac Restore失敗的問題

原文地址:http://www.cnblogs.com/vveiliang/p/7380260.html


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注

總結(jié)

以上是生活随笔為你收集整理的ASP.NET Core 2.0 特性介绍和使用指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。