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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

ASP.NET Core 介绍

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

原文:Introduction to ASP.NET Core
作者:Daniel Roth、Rick Anderson、Shaun Luttin
翻譯:江振宇(Kerry Jiang)
校對(duì):許登洋(Seay)、魏美娟(初見)、姚阿勇(Mr.Yao)

ASP.NET Core 是對(duì) ASP.NET 的一次意義重大的重構(gòu)。本文介紹了 ASP.NET Core 中的一些新概念,并且解釋了它們?nèi)绾螏椭汩_發(fā)現(xiàn)代的 Web 應(yīng)用程序。

章節(jié):

  • 什么是 ASP.NET Core?

  • 為什么構(gòu)建 ASP.NET Core?

  • 應(yīng)用程序剖析

  • Startup

  • 服務(wù)(Services)

  • 中間件 (Middleware)

  • 服務(wù)器(Servers)

  • 內(nèi)容根目錄(Content root)

  • Web根目錄(Web root)

  • 配置(Configuration)

  • 環(huán)境(Environments)

  • 使用 ASP.NET Core MVC 構(gòu)建 web UI 和 web APIs

  • 客戶端開發(fā)

  • 后續(xù)步驟

什么是 ASP.NET Core?

ASP.NET Core 是一個(gè)新的開源和跨平臺(tái)的框架,用于構(gòu)建如 Web 應(yīng)用、物聯(lián)網(wǎng)(IoT)應(yīng)用和移動(dòng)后端應(yīng)用等連接到互聯(lián)網(wǎng)的基于云的現(xiàn)代應(yīng)用程序。ASP.NET Core 應(yīng)用可運(yùn)行于?.NET Core?和完整的 .NET Framework 之上。 構(gòu)建它的目的是為那些部署在云端或者內(nèi)部運(yùn)行(on-premises)的應(yīng)用提供一個(gè)優(yōu)化的開發(fā)框架。它由最小開銷的模塊化的組件構(gòu)成,因此在構(gòu)建你的解決方案的同時(shí)可以保持靈活性。你可以在 Windows、Mac 和 Linux 上跨平臺(tái)的開發(fā)和運(yùn)行你的 ASP.NET Core 應(yīng)用。 ASP.NET Core 開源在?GitHub?上。

為什么構(gòu)建 ASP.NET Core?

ASP.NET 的首個(gè)預(yù)覽版作為 .NET Framework 的一部分發(fā)布于15年前。自那以后數(shù)百萬(wàn)的開發(fā)者用它開發(fā)和運(yùn)行著眾多非常棒的 Web 應(yīng)用,而且在這么多年之間我們也為它增加和改進(jìn)了很多的功能。

ASP.NET Core 有一些架構(gòu)上的改變,這些改變會(huì)使它成為一個(gè)更為精簡(jiǎn)并且模塊化的框架。ASP.NET Core 不再基于?System.Web.dll?。當(dāng)前它基于一系列顆粒化的,并且良好構(gòu)建的?NuGet?包。這一特點(diǎn)能夠讓你通過僅僅包含需要的 NuGet 包的方法來(lái)優(yōu)化你的應(yīng)用。一個(gè)更小的應(yīng)用程序接口通過“只為你需要的功能付出”(pay-for-what-you-use)的模型獲得的好處包括更可靠的安全性、簡(jiǎn)化服務(wù)、改進(jìn)性能和減少成本。

通過 ASP.NET Core,你可以獲得的改進(jìn):

  • 一個(gè)統(tǒng)一的方式用于構(gòu)建 web UI 和 web APIs

  • 集成?現(xiàn)代的客戶端開發(fā)框架?和開發(fā)流程

  • 一個(gè)適用于云的,基于環(huán)境的?配置系統(tǒng)

  • 內(nèi)置的?依賴注入

  • 新型的輕量級(jí)的、模塊化 HTTP 請(qǐng)求管道

  • 運(yùn)行于 IIS 或者自宿主(self-host)于你自己的進(jìn)程的能力

  • 基于支持真正的 side-by-side 應(yīng)用程序版本化的?.NET Core?構(gòu)建

  • 完全以?NuGet?包的形式發(fā)布

  • 新的用于簡(jiǎn)化現(xiàn)代 web 開發(fā)的工具

  • 可以在 Windows 、Mac 和 Linux 上構(gòu)建和運(yùn)行跨平臺(tái)的 ASP.NET 應(yīng)用

  • 開源并且重視社區(qū)

應(yīng)用程序剖析

一個(gè) ASP.NET Core 應(yīng)用其實(shí)就是一個(gè)在其?Main?方法中創(chuàng)建一個(gè) web 服務(wù)器的簡(jiǎn)單控制臺(tái)應(yīng)用程序:

using System;using Microsoft.AspNetCore.Hosting;namespace aspnetcoreapp{ ? ?public class Program{ ? ? ? ?public static void Main(string[] args) ? ? ? ?{ ? ? ? ? ? ?var host = new WebHostBuilder().UseKestrel().UseStartup<Startup>().Build();host.Run();}} }

Main?調(diào)用遵循 builder 模式的?WebHostBuilder?,用于創(chuàng)建一個(gè) web 應(yīng)用程序宿主。這個(gè) builder 有些用于定義 web 服務(wù)器 (如?UseKestrel)和 startup 類型(?UseStartup)的方法。在上面的示例中,web 服務(wù)器 Kestrel 被啟用,但是你也可以指定其它 web 服務(wù)器。我們將會(huì)在下一節(jié)展示更多關(guān)于?UseStartup?的內(nèi)容。WebHostBuilder?提供了一些可選方法,其中包括寄宿在 IIS 和 IIS Express 中的?UseIISIntegration?和用于指定根內(nèi)容目錄的?UseContentRoot。Build?和?Run?方法構(gòu)建了用于宿主應(yīng)用程序的?IWebHost?然后啟動(dòng)它來(lái)監(jiān)聽傳入的 HTTP 請(qǐng)求。

Startup

WebHostBuilder?的?UseStartup?方法為你的應(yīng)用指定了?Startup?類。

public class Program{ ? ?public static void Main(string[] args) ? ?{ ? ? ? ?var host = new WebHostBuilder().UseKestrel().UseStartup<Startup>()//手工高亮.Build();host.Run();} }

Startup?類是用來(lái)定義請(qǐng)求處理管道和配置應(yīng)用需要的服務(wù)。?Startup?類必須是公開的(public)并且包含如下方法:

public class Startup{ ? ?public void ConfigureServices(IServiceCollection services) ? ?{} ? ?public void Configure(IApplicationBuilder app) ? ?{} }
  • ConfigureServices?定義你的應(yīng)用所使用的服務(wù)(在下面查看?服務(wù)(Services)?)(例如 ASP.NET MVC Core framework、Entity Framework Core、Identity 等等)

  • Configure?定義你的請(qǐng)求管道中的?中間件(middleware)

  • 更多內(nèi)容請(qǐng)參考:?Application Startup

服務(wù)(Services)

服務(wù)是應(yīng)用中用于通用調(diào)用的組件。服務(wù)通過依賴注入獲取并使用。 ASP.NET Core 內(nèi)置了一個(gè)簡(jiǎn)單的控制反轉(zhuǎn)(IoC) 容器,它默認(rèn)支持構(gòu)造器注入,并且可以方便的替換成你自己選用的 IoC 容器。由于它的松耦合特性,依賴注入(DI) 使服務(wù)在整個(gè)應(yīng)用中都可以使用。例如,Logging?在你整個(gè)應(yīng)用中都可用。查看?Dependency Injection?獲取更多信息。

中間件(Middleware)

在 ASP.NET Core 中,你可以使用?Middleware?構(gòu)建你的請(qǐng)求處理管道。 ASP.NET Core 中間件為一個(gè)?HttpContext?執(zhí)行異步邏輯,然后按順序調(diào)用下一個(gè)中間件或者直接終止請(qǐng)求。一般來(lái)說(shuō)你要使用一個(gè)中間件,只需要在?Configure?方法里調(diào)用?IApplicationBuilder?上一個(gè)對(duì)應(yīng)的?UseXYZ?擴(kuò)展方法。

ASP.NET Core 帶來(lái)了豐富的內(nèi)置中間件:

  • 靜態(tài)文件(Static files)

  • 路由(Routing)

  • 身份驗(yàn)證(Authentication)

你也可以創(chuàng)建你自己的?自定義中間件。

你也可以在 ASP.NET Core 中使用任何基于?OWIN?的中間件。查看?OWIN?獲取更多信息。

服務(wù)器(Servers)

ASP.NET Core 托管模式并不直接監(jiān)聽請(qǐng)求;而是依賴于一個(gè) HTTP?server?實(shí)現(xiàn)來(lái)轉(zhuǎn)發(fā)請(qǐng)求到應(yīng)用程序。這個(gè)被轉(zhuǎn)發(fā)的請(qǐng)求會(huì)以一組 feature 接口的形式被包裝,然后被應(yīng)用程序組合到一個(gè)?HttpContext中去。 ASP.NET Core 包含了一個(gè)托管的跨平臺(tái) web 服務(wù)器,被稱為?Kestrel,它往往會(huì)被運(yùn)行在一個(gè)如?IIS?或者?nginx?的生產(chǎn) web 服務(wù)器之后。

內(nèi)容根目錄(Content root)

內(nèi)容根目錄是應(yīng)用程序所用到的所有內(nèi)容的根路徑,例如它的 views 和 web 內(nèi)容。內(nèi)容根目錄默認(rèn)與宿主應(yīng)用的可執(zhí)行程序的應(yīng)用根目錄相同;一個(gè)替代的地址可以通過?WebHostBuilder?來(lái)設(shè)置。

Web根目錄(Web root)

你的應(yīng)用的Web根目錄(Web root)是你項(xiàng)目中所有公共的、靜態(tài)的資源,如 css、js 和 圖片文件的目錄。靜態(tài)文件中間件將默認(rèn)只發(fā)布 Web 根目錄(Web root)和其子目錄中的文件。 Web 根目錄(Web root)默認(rèn)為?/wwwroot,但是你也可以通過?WebHostBuilder?來(lái)指定另外一個(gè)地址。

配置(Configuration)

ASP.NET Core 使用了一個(gè)新的配置模型用于處理簡(jiǎn)單的鍵值對(duì)。新的配置模型并非基于System.Configuration?或者?web.config?;而是從一個(gè)有序的配置提供者集合拉取數(shù)據(jù)。內(nèi)置的配置提供者支持多種不同的文件格式如(XML,JSON, INI)和用于支持基于環(huán)境的配置環(huán)境變量。你也可以實(shí)現(xiàn)你自己自定義的配置提供者。查看?Configuration?獲取更多信息。

環(huán)境(Environments)

環(huán)境,如 “Development” 和 “Production”,是 ASP.NET Core 中的第一級(jí)概念而且它可以設(shè)置成使用環(huán)境變量。查看?Working with Multiple Environments?獲取更多信息。

使用 ASP.NET Core MVC 構(gòu)建 web UI 和 web APIs

  • 你可以使用 Model-View-Controller(MVC)模式創(chuàng)建優(yōu)秀的并且可測(cè)試的 web 應(yīng)用程序。查看MVC?和?測(cè)試。

  • 你可以構(gòu)建支持多種格式并且完全支持內(nèi)容協(xié)商的 HTTP 服務(wù)。 查看?Formatting

  • Razor?提供了一種高效的語(yǔ)言用于創(chuàng)建?Views

  • Tag Helpers?啟用服務(wù)器端的代碼參與到 - Razor 文件的創(chuàng)建和 HTML 元素渲染

  • 你可以使用自定義或者內(nèi)置的 formatters (JSON, XML)來(lái)構(gòu)建完全支持內(nèi)容協(xié)商的 HTTP 服務(wù)

  • Model Binding 模型綁定?自動(dòng)的映射 HTTP 請(qǐng)求中的數(shù)據(jù)到 action 方法參數(shù)

  • Model Validation 模型驗(yàn)證?自動(dòng)的執(zhí)行客戶端和服務(wù)器端驗(yàn)證

客戶端開發(fā)

ASP.NET Core 在設(shè)計(jì)時(shí)已考慮到和各種客戶端框架(AngularJS,KnockoutJS?和?Bootstrap)的無(wú)縫集成。查看?Client-Side Development?獲取更多信息。

相關(guān)文章:

  • ASP.NET Core 1.0 入門——了解一個(gè)空項(xiàng)目

  • ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

  • .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡(jiǎn)介

  • 云服務(wù)器下ASP.NET Core 1.0環(huán)境搭建(包含mono與coreclr)

  • 使用VS Code開發(fā)ASP.NET Core 應(yīng)用程序

  • dotnet run是如何啟動(dòng)asp.net core站點(diǎn)的

  • ASP.NET Core提供模塊化Middleware組件

  • “dotnet restore"和"dotnet run"都做了些什么?

  • 探秘 dotnet run 如何運(yùn)行 .NET Core 應(yīng)用程序

  • .NET Portability Analyzer 已開源

  • ASP.NET Core的配置(1):讀取配置信息

  • ASP.NET Core的配置(2):配置模型詳解

  • .NET Core 1.0 RC2 歷險(xiǎn)之旅

  • 使用VS Code開發(fā) 調(diào)試.NET Core 應(yīng)用程序

  • 讓我們Core在一起:ASP.NET Core & .NET Core

  • .NET Core VS Code 環(huán)境配置

  • 官方博客明確了 .NET Core RC2/RTM 時(shí)間表

  • .NET Core全新的配置管理[共9篇]

  • 利用記事本創(chuàng)建一個(gè)ASP.NET Core RC2 MVC應(yīng)用

  • 微軟.NET 正式劈腿成功,橫跨所有平臺(tái)

  • .NET Core 1.0 CentOS7 嘗試

  • 解讀發(fā)布:.NET Core RC2 and .NET Core SDK Preview 1

  • [.NET Core].NET Core R2安裝及示例教程

  • ASP.NET Core 開發(fā)-中間件(Middleware)

  • 結(jié)合Jexus + Kestrel 部署 asp.net core 生產(chǎn)環(huán)境

  • 通過Jexus 部署 dotnetcore版本MusicStore 示例程序

  • ASP.NET Core 中文文檔 第一章 入門

  • 用 Visual Studio Code 在 macOS 上創(chuàng)建首個(gè) ASP.NET Core 應(yīng)用程序

  • 用 Visual Studio 和 ASP.NET Core MVC 創(chuàng)建首個(gè) Web API

  • 用 Visual Studio 發(fā)布一個(gè) Azure 云 Web 應(yīng)用程序

  • ASP.NET Core MVC 與 Visual Studio 入門

  • 第二章指南(4.2)添加 Controller

  • DotNet Core 介紹

  • asp.net core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)

  • 教你實(shí)踐ASP.NET Core Authorization(免看文檔教程)

  • asp.net core 使用 Redis 和 Protobuf 進(jìn)行 Session 緩存

  • asp.net core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)

  • 第二章 指南(4.3)添加 View

  • dotnet core開發(fā)體驗(yàn)之開始MVC

  • dotnet core 開發(fā)體驗(yàn)之Routing

  • 聊聊ASP.NET Core默認(rèn)提供的這個(gè)跨平臺(tái)的服務(wù)器——KestrelServer

  • 簡(jiǎn)析.NET Core 以及與 .NET Framework的關(guān)系

  • .NET Core 使用Dapper 操作MySQL

  • 使用 CommandLineApplication 類創(chuàng)建專業(yè)的控制臺(tái)程序

  • 簡(jiǎn)析 .NET Core 構(gòu)成體系

  • .NET Core也可以使用MongoDB了

  • .NET Core & ASP.NET Core 1.0在Redhat峰會(huì)上正式發(fā)布

  • .NET Core:面向未來(lái)的開源跨平臺(tái)開發(fā)技術(shù)

  • 微軟說(shuō)它深愛著Linux,現(xiàn)在它用行動(dòng)證明了


原文地址:http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-0-intro.html


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

贊賞

人贊賞

總結(jié)

以上是生活随笔為你收集整理的ASP.NET Core 介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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