202102-23 ASP.NET Core WebApi版本控制的实现 前言:在日常项目开发中,随着项目需求不断的累加、不断的迭代;项目服务接口需要向下兼容历史版本;前些时候就因为Api接口为做版本管理导致接口对低版本兼容处理不友好。最近就像了解下如何实现WebApi版本控制,那么版本控制有什么好处呢?WebApi版本控制的好处有助于及时推出功能,而不会破坏现有系统,兼容性处理更友好。它还可以帮助为选定的客户提供额外的功能。接下来就来实现版本控制以及在SwaggerUI中接入Web... 继续阅读 >
202102-21 详解如何在ASP.NET Core中编写高效的控制器 通过遵循最佳实践,可以编写更好的控制器。所谓的“瘦”控制器(指代码更少、职责更少的控制器)更容易阅读和维护。而且,一旦你的控制器很瘦,可能就不需要对它们进行太多测试了。相反,你可以专注于测试业务逻辑和数据访问代码。瘦控制器的另一个优点是,它更容易维护控制器的多个版本。这篇文章讨论了使控制器变胖的坏习惯,然后探索了使控制器变瘦和易于管理的方法。我列出编写控制器的最佳实践可能并不全面,但我已经讨论了最... 继续阅读 >
202102-21 详解如何在ASP.NET Core中使用IHttpClientFactory 利用IHttpClientFactory可以无缝创建HttpClient实例,避免手动管理它们的生命周期。当使用ASP.NetCore开发应用程序时,可能经常需要通过HttpClient调用WebAPI的方法以检查终结点是否正常工作。要实现这一点,通常需要实例化HttpClient并使用该实例来调用你的方法。但是直接使用HttpClient也有一些缺点,主要与手动管理实例的生命周期有关。你可以使用IHttpClientFactory创建HttpClient来避免这些问题。IHttpClientFactory是在.Net... 继续阅读 >
202102-21 ASP.NET Core 使用Cookie验证身份的示例代码 ASP.NETCore1.x提供了通过Cookie中间件将用户主体序列化为一个加密的Cookie,然后在后续请求中验证Cookie并重新创建主体,并将其分配给HttpContext.User属性。如果您要提供自己的登录界面和用户数据库,可以使用作为独立功能的Cookie中间件。ASP.NETCore2.x的一个主要变化是不再存在Cookie中间件。取而代之的是在Startup.cs文件中的Configure方法中的调用UseAuthentication方法会添加设置HttpContext.User属性的Authenticati... 继续阅读 >
202102-21 如何在ASP.Net Core使用分布式缓存的实现 ASP.NetCore提供了多种类型的缓存,除了内存缓存和响应缓存之外,还提供了对分布式缓存的支持。在之前的一篇文章中,我讨论了ASP.NetCore的内存缓存。在本文中,我们将讨论如何在ASP.NetCore中使用分布式缓存,本篇就拿Redis和SQLServer作为演示。什么是分布式缓存分布式缓存可用于提高应用程序的性能和可伸缩性,通常分布式缓存被多个应用服务器共享,在分布式缓存中,缓存的数据不会落在某些个别的web服务器内... 继续阅读 >
202102-21 如何在ASP.Net Core中使用 IHostedService的方法 在我们应用程序中常常会有一些执行后台任务和任务调度的需求,那如何在ASP.NetCore中实现呢?可以利用AzureWebJobs或者其他一些第三方任务调度框架,如:Quartz和Hangfire。在ASP.NetCore中,也可以将后台任务作为托管服务的模式,所谓的托管服务只需要实现框架中的IHostedService接口并囊括进你需要的业务逻辑作为后台任务,这篇文章将会讨论如何在ASP.NetCore中构建托管服务。创建托管服务要想创建托管服务... 继续阅读 >
202102-21 ASP.NET Core中的配置详解 ASP.NETCore提供了一个灵活可扩展,基于键值的配置系统.但是配置系统独立于ASP.NETCore是Microsoft.Extensions类库的部分.它可以用于任何类型的应用程序1、以键-值对的形式读取配置appsettings.json文件:{"Position":{"Title":"编辑器","Name":"JoeSmith"},"MyKey":"Myappsettings.jsonValue","Logging":{"LogLevel":{"Default":"Information","Microsoft":"Warning","Mi... 继续阅读 >
202101-24 详解如何在ASP.NET Core Web API中以三种方式返回数据 在ASP.NETCore中有三种返回数据和HTTP状态码的方式,最简单的就是直接返回指定的类型实例,如下代码所示:[ApiController][Route("[controller]")]publicclassWeatherForecastController:ControllerBase{[HttpGet]publicIEnumerable<WeatherForecast>Get(){varrng=newRandom();returnEnumerable.Range(1,5).Select(index=>newWeatherForecast{Date=DateTim... 继续阅读 >
202101-24 详解如何在ASP.NET Core中使用Route特性 ASP.NETCore中的Route中间件的职责在于将request匹配到各自Route处理程序上,Route分两种:基于约定和基本特性模式。基于约定模式的Route采用集中化的方式,而基于特性的方式允许你在Action或者Controller上单独定义,到底采用哪一种可以基于你自己的应用场景,本篇就来讨论如何使用基于特性模式。创建Controller类创建一个DefaultController类,新增如下代码。publicclassDefaultController:... 继续阅读 >
202101-23 ASP.NET Core中如何实现重定向详解 前言ASP.NETCore是一个跨平台,开源的,轻量级的,模块化的,用于构建高性能的web开发框架,ASP.NETCoreMVC内置了多种方式将一个request请求跳转到指定的url,这篇文章我们就来讨论如何去实现。理解RedirectActionResultASP.NETCoreMVC中内置了几种Redirect,比如说:RedirectResult,RedirectToActionResult,RedirectToRouteResult和LocalRedirectResult,这些类都继承于ActionResult并可给前端返回Http302... 继续阅读 >
202101-22 如何在ASP.NET Core中使用Session的示例代码 ASP.NETCore是一个跨平台,开源的,轻量级,高性能并且高度模块化的web框架,Session可以实现用户信息存储从而可以在同一个客户端的多次请求之间实现用户追踪,在ASP.NetCore中可以使用Microsoft.AspNetCore.Session中间件来启用Session机制。中间件的价值在于可以在request->response的过程中做一些定制化的操作,比如说:监视数据,切换路由,修改流转过程中的消息体,通常来说:中间件是以链式的方式灌入到ASP... 继续阅读 >
202101-10 asp.net core集成CKEditor实现图片上传功能的示例代码 背景本文为大家分享了asp.netcore如何集成CKEditor,并实现图片上传功能的具体方法,供大家参考,具体内容如下。准备工作1.visualstudio2019开发环境2.netcore2.0及以上版本实现方法1、新建asp.netcoreweb项目2、下载CKEditor这里我们新建了一个系统自带的样本项目,去 CKEditor官网下载一个版本,解压后拷贝大wwwroot中3、增加图片上传控制器@usingCompanyName.ProjectName.Web.Host.Web.Model@modeldemock@{... 继续阅读 >
202101-08 ASP.NET Core中实现全局异常拦截的完整步骤 前言异常是一种运行时错误,当异常没有得到适当的处理,很可能会导致你的程序意外终止,这篇就来讨论一下如何在ASP.NetCoreMVC中实现全局异常处理,我会用一些样例代码和截图来说明这些概念。全局异常处理其实在ASP.NetCoreMVC框架中已经有了全局异常处理的机制,你可以在一个中心化的地方使用全局异常处理中间件来进行异常拦截,如果不用这种中心化方式的话,你就只能在Controller或者Action作用域上单独处理,... 继续阅读 >
202101-08 ASP.NET Core Controller与IOC结合问题整理 前言看到标题可能大家会有所疑问Controller和IOC能有啥羁绊,但是我还是拒绝当一个标题党的。相信有很大一部分人已经知道了这么一个结论,默认情况下ASP.NETCore的Controller并不会托管到IOC容器中,注意关键字我说的是"默认",首先咱们不先说为什么,如果还有不知道这个结论的同学们可以自己验证一下,验证方式也很简单,大概可以通过以下几种方式。验证Controller不在IOC中首先,我们可以尝试在ServiceProvider中获取某个Contro... 继续阅读 >
202101-03 asp.net core webapi文件上传功能的实现 最近开发一个新项目,使用了asp.netcore2.0,采用webapi开发后台,postgresql为数据库。最先来的问题就是上传文件的问题。POST文件的一些坑使用默认模板创建webapi的controller后,post请求,默认有//POSTapi/values[HttpPost]publicvoidPost([FromBody]stringvalue){}请求使用了[FromBody]标记,用来指示用请求体里获得数据。对于文件上传请求,直接在这个Post函数里使用Request.Form.Files是不行的,无法成功路... 继续阅读 >
202012-16 ASP.NET Core中如何利用多种方式给Action传参 前言ASP.NETCore是一个跨平台,开源的,轻量级,高性能并且高度模块化的web框架。在ASP.NETCoreMVC中有很多种方式可以给Action方法传递参数,比如说:url方式,querystring方式,requestheader,requestbody,form等等。本篇就和大家一起讨论下如何使用这些方式,并且用代码去一一验证。创建AuthorRepository类在这个例子中我会使用一个Repository类,然后在Controller下的Action方法调用这个Repository来... 继续阅读 >