aspnetcore
文章平均质量分 85
SpringHgui
这个作者很懒,什么都没留下…
展开
-
这个设计原则,你认同吗?
前言我们都知道依赖注入的方式常见的主要有三种构造函数注入属性注入接口注入在大名鼎鼎的Spring框架中大量使用属性注入的方式,属性注入的方式写起来那是真的爽;而在Asp.NetCore中则不支持属性注入,如果不使用第三方库,我们就只能在构造函数上写上一堆参数,比较麻烦,有些人是非常讨厌这种注入方式,选择使用第三方IOC框架。思考一个问题Asp.Net Core框架哪哪都牛逼,可偏偏不支持很多人崇尚的属性注入呢?如果你还在期待什么时候支持这一特性,可能会让你失望了。但也不排除社区呼声很高的情原创 2022-05-22 23:38:15 · 117 阅读 · 0 评论 -
干掉RedisHelper,请这样用分布式缓存
前言我们在项目中使用Redis时通常是写一个单例模式的RedisHelper静态类,暴露一些常用的Get、Set等操作,在需要使用地方直接RedisHelper.StringGet(xx,xx)就可以了,这样虽然简单粗暴地满足我们对Redis的所有操作需要,但是这在Asp.Net Core的项目显得不是那么优雅了。首先你的RedisHelper静态类无法使用Asp.Net Core容器,又如何优雅的通过依赖注入获取IConfiguration中的配置项呢?既然我们使用Asp.Net Core这么优秀的框架原创 2022-05-19 23:55:03 · 641 阅读 · 0 评论 -
HttpContext.TraceIdentifier那严谨的设计
前言Asp.Net Core中有一个不受人重视的属性HttpContext.TraceIdentifier,它在链路追踪中非常有用,下面是官方的定义:在项目中一般会将该字段输出到每一条日志中,也可以将此Id作为通用响应字段返回前端,后续可以根据该属性和日志匹配,快速定位整个链路日志。在本地开发时我通常观察到该值的格式大概如下长这个样子0HLEACIU86PT6:0000000D,在生产环境中查看日志时,却不是这种格式,而是Guid格式,虽然都是唯一标识,都能满足我的需要,但是为什么会产生这一差原创 2022-05-17 23:13:48 · 585 阅读 · 0 评论 -
Asp.Net Core 7 preview 4 新特性--限流中间件
前言限流是应对流量暴增或某些用户恶意攻击等场景的重要手段之一,然而微软官方从未支持这一重要特性,AspNetCoreRateLimit这一第三方库限流库一般作为首选使用,然而其配置参数过于繁多,对使用者造成较大的学习成本。令人高兴的是,在刚刚发布的.NET 7 Preview 4中开始支持限流中间件。UseRateLimiter尝鲜安装.NET 7.0 SDK(v7.0.100-preview.4)通过nuget包安装Microsoft.AspNetCore.RateLimiting创建.Net原创 2022-05-12 23:14:58 · 414 阅读 · 0 评论 -
AspNetCore开源中间件-VueRouterHistory
前言用过VueRouter路由组件的应该都知道,VueRouter有hash和history两种模式。hash模式会在url中插入#,history模式下url则看上去更加简洁美观。如果想要支持history模式则必须要后端服务进行配合。常用后端服务器配置方式请参考 后端配置例子后端配置例子注意:下列示例假设你在根目录服务这个应用。如果想部署到一个子目录,你需要使用 Vue CLI 的 publicPath 选项 (opens new window)和相关的 router base property原创 2022-05-09 23:09:21 · 385 阅读 · 0 评论 -
AspNetCore7.0源码解读之UseMiddleware
UseMiddlewareExtensions前言本文编写时源码参考github仓库主分支。aspnetcore提供了Use方法供开发者自定义中间件,该方法接收一个委托对象,该委托接收一个RequestDelegate对象,并返回一个RequestDelegate对象,方法定义如下:IApplicationBuilder Use(Func<RequestDelegate, RequestDelegate> middleware);委托RequestD原创 2022-05-07 21:02:51 · 515 阅读 · 0 评论 -
使用aspnetcore前后端分离开发,你一定要知道这个。
前言用过Vue单页面应用开发的,一定都知道Vue-router这个路由组件,它支持hash和history两种模式。HTML5 History 模式vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。原创 2022-04-22 00:01:15 · 3262 阅读 · 0 评论 -
AspNetCore配置多环境log4net配置文件
前言在之前的文章中有讲到AspNetCore多环境配置文件的应用,我们根据自己多种环境分别配置多个appsettings.$EnvironmentName.json文件。在实际的开发中我们可能会遇到不只一个配置文件,如当我们使用log4net日志库时,喜欢使用单独的log4net.config配置文件。并且我们还遇到不同环境下的配置文件还存在差异。这时我们可能可以效仿appsettings.json多环境配置的风格实现多环境配置文件。配置log4net新建Web项目安装Microsoft.Ext原创 2022-04-18 23:38:32 · 1675 阅读 · 0 评论 -
ASP.NET和ASP.NETCore多环境配置对比
前言多环境配置应该都很熟悉了,最为常见的环境便是Debug和Release,例如下图是新建的一个asp.net项目,配置文件展开共有三个文件组成有些开发者从来没了解过Web.Debug.config和Web.Release.config,始终是一个Web.config文件改来改去来切换不同的配置,但凡有点追求都不能忍受这种煎熬。asp.net下的多环境配置双击打开Web.Debug.config和Web.Release.config任何一个,看看里面的内容。Web.Debug.config&原创 2022-04-18 19:12:52 · 253 阅读 · 0 评论 -
ASP.NETCore统一处理404错误都有哪些方式?
###当未找到网页并且应用程序返回 404 错误时,ASP.NET Core MVC 仅呈现通用浏览器错误页面,如下图所示###这不是很优雅,是吗?###我们平时看到的404页面一般是这样的###还有这样的###试了下京东,地址不存在的时候是会重定向到首页##下面就来演示下ASP.NET Core中如何实现这种自定义的404页面处理。新建项目 ASP.NET Core MVC(WebApi处理方式也一样)####新建好的项目直接运行的效果####随便输入一个地址 /test404原创 2022-04-14 21:35:16 · 751 阅读 · 0 评论