分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:41:42
Asp.net Core提供将IHttpClientFactory实例注册为服务,为用户创建和配置HttpClient, IHttpClientFactory提供如下的优势:
提供一个控制中心,用于创建命名或者类型HttpClient。
利用Delegate handler为HttpClient创建中间件。并提供基于Polly的扩展方法,为httpclient提供重试,错误处理等功能。
将HttpClientMessageHandler进行池化,并管理其生命周期。
为所有通过client的请求提供可配置的日志功能。
基本的使用形式
IHttpClientFactory有如下几种使用形式:
基本使用方法
命名客户端
强类型客户端
泛型客户端
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:39:26
本节我们来学习错误的处理。
Developer Exception Page
在开发的阶段打开UseDeveloperExceptionPage()中间件。
例如:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:37:05
关于路由这个部分,我想有几个技术要点是需要先理解清楚的,否则的话,可能很多新手同学对于理解Asp.net Core 3.0之后的以中间件: UseRouting和UseEndpoint这个两个概念可能会非常混淆,可能非常不明白为什么既然有了路由的中间件,为什么还需要Endpoint这样一个中间件。
先说为什么?我理解最主要的就是为了解耦,将路由匹配,路径选择这些功能和选择好路由之后实际执行完全分开,也就是如果你愿意,你完全可以自己重新定义路由组件,但是不影响Endpoint中间件的执行。
另外要理解的是我们在Startup的Configure方法中执行的扩展方法,都是在注册将来要在一个request里执行的委托,也就是在该方法里前后执行的顺序并不影响将来在request里执行的顺
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:35:11
.Net Core和.Net 5 以上有一个非常好的概念就是:Host, 中文可以翻译为主机,但是不够贴切,所以还是以Host比较好。Host作为一个程序的框架,非常方便大家用于设计多种类型的应用,微软也有很多产品都是基于这个模型来设计的,例如我们的ASP.net Core框架,以及Azure Funciton都是很优秀的代表。
那么怎么定义Host的概念呢?
Host就是指封装了一个应用的所有资源的对象,同时它也是一个程序框架,帮助大家快速的使用.Net Core和.Net进行应用开发,同时它还管理了应用的各种依赖资源以及应用的生命周期:
提供了依赖注入支持
支持日志
支持配置
IHostedService的实现,用于实现各种服务。例如WebHost就是一种实现了H
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:31:11
分类: Asp.net Core基础 ◆ 标签: #Asp.net Core #.Net技术 #Web ◆ 发布于: 2021-09-09
在Asp.net core中除了Console以外,其他的日志提供者都存储日志,例如Azure Application Insights将日志存储到该服务中,框架已经向用户提供了不少日志提供者,我们还是从最基本的模板来看一下默认已经启用了哪些日志提供者。
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public st
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:28:35
我们这里讲的环境指的是ASP.net Core应用运行的runtime环境。这些环境您可以自定义环境名称,并根据这些环境来设置不同的设置,但是有三个环境以及用来命名的环境的名称是ASP.net Core定义的:
Development: 开发环境
Staging: 预发布环境
Produciton: 产线环境
ASP.net Core生成的程序模板,也会根据这三个环境设定一些仅仅有该环境才有的特性,例如:
在Development开发环境下,启用中间件UseDeveloperExceptionPage
在预发布环境和产线环境,启用中间件UseExceptionHandler
注意在Startup类中的Configure方法可以注入IWebHostEnvironment实
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:26:19
我们上一节简要的介绍了应用如何访问存取配置,我们在存取配置时都是直接注入了IConfiguration实例,然后通过该实例的方法来访问配置,但是最佳的做法实际上是通过选项模式来访问配置。
先快速的看一下如何什么是选项模式。
我们有一个配置文件如下:
"Position": {
"Title": "Editor",
"Name": "Joe Smith"
}
定义一个选项类来表示这个这个配置:
public class PositionOptions
{
public const string Position = "Position";
public string Title { get; set; }
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:24:03
ASP.net Core基于Configuration Provider提供配置服务,Configuration Provider从配置源(Configuration source)读取键值对的配置,并提供给Asp.net Core。 默认支持如下的配置源:
配置文件: appsettings.json
环境变量
Azure Key Vault
Azure App Configuration服务
命令行参数
自定义的配置提供者
目录文件
内存对象
缺省配置
关于缺省的配置,我们从dotnet new或者Visual Studio创建的模板:
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:21:55
我们前面一章学习了.Net的Host的设计和描述了怎么样基于Host这个概念来开始一个ASP.net Core的应用该如何配置,我们在这一章先回顾一下:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHos
Read more
分类:
Asp.net Core入门
◆
标签:
#Asp.Net core基础
#基础
#Web
◆
发布于: 2023-06-04 20:18:05
什么是中间件(Middleware)? 中间件是一种装配到应用管道里处理请求和回应的软件,每个中间件组件都需要:
选择是否在管道里传递请求到下一个中间件组件中。
可以在调用下一个中间件组件之前或者是之后运行相应的代码,完成相应的任务.
在ASP.net Core框架中,请求委托(Request delegate)用来设计应用的管道(App pipeline), 任何一个HTTP请求都从应用管道处理过。ASP.net Core使用三个扩展方法来配置请求委托:
use扩展方法
Run扩展方法
Map扩展方法
任何一个请求委托可以指定未一个匿名的方法,或者是一个可重用的类,这个匿名方法或者可重用的类,在这里我们就称为- 中间件,或者中间件组件。中间件负责在应用管道中决定是否将
Read more