202102-21 .net core Api 部署到Linux的方法步骤 一.环境介绍1..net开发环境:asp.netcore3.12.Linux环境:CentOSLinuxrelease7.9.2009(Core)3.Swagger:Swashbuckle.AspNetCore6.04.开发工具:VS2019,xShell7,xFtp7二.搭建API2.1使用vs2019新建一个API项目2.2安装Swagger选择上面的工具--》NuGet包管理器--》管理解决方案的管理包搜索Swashbuckle.AspNetCore,并安装即可Swashbuckle.AspNetCore2.3配置Swagger找到项目的中Startup.cs文件,修改内容如下:代码如下:publicvoi... 继续阅读 >
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-20 在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle数据库 前言虽然一直在说“去IOE化”,但是在国企和政府,Oracle的历史包袱实在太重了,甚至很多业务逻辑都是写在Oracle的各种存储过程里面实现的……我们的系统主要的技术栈是Django/Spring/AspNetCore,Java的不必说对Oracle支持肯定没问题,关键在于Django对Oracle版本有要求,兼容性不是特别好,Oracle版本没办法随意升级的,所以我想到用.NetCore来写个中间层,让其他系统可以方便的使用Oracle的数据和存储过程…ODP.NETCore是... 继续阅读 >
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-22 如何在ASP.NET Core中使用Session的示例代码 ASP.NETCore是一个跨平台,开源的,轻量级,高性能并且高度模块化的web框架,Session可以实现用户信息存储从而可以在同一个客户端的多次请求之间实现用户追踪,在ASP.NetCore中可以使用Microsoft.AspNetCore.Session中间件来启用Session机制。中间件的价值在于可以在request->response的过程中做一些定制化的操作,比如说:监视数据,切换路由,修改流转过程中的消息体,通常来说:中间件是以链式的方式灌入到ASP... 继续阅读 >
202101-13 .NET Core 处理 WebAPI JSON 返回烦人的null为空 前言 项目开发中不管是前台还是后台都会遇到烦人的null,数据库表中字段允许空值,则代码实体类中对应的字段类型为可空类型Nullable<>,如int?,DateTime?,null值字段序列化返回的值都为null,前台对应字段赋值需要做null值判断,怎么才能全局把null替换为空。 本文分享WebAPI接口服务统一返回null替换为空的方法。一、分析问题 &nb... 继续阅读 >
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 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-29 asp.net core中如何使用cookie身份验证 背景ASP.NETCoreIdentity是一个完整的全功能身份验证提供程序,用于创建和维护登录名。但是,cookie不能使用基于的身份验证提供程序ASP.NETCoreIdentity。配置在Startup.ConfigureServices方法中,创建具有AddAuthentication和AddCookie方法的身份验证中间件服务:services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();app.UseAuthentication();AuthenticationScheme传递... 继续阅读 >
202012-16 ASP.NET Core中如何利用多种方式给Action传参 前言ASP.NETCore是一个跨平台,开源的,轻量级,高性能并且高度模块化的web框架。在ASP.NETCoreMVC中有很多种方式可以给Action方法传递参数,比如说:url方式,querystring方式,requestheader,requestbody,form等等。本篇就和大家一起讨论下如何使用这些方式,并且用代码去一一验证。创建AuthorRepository类在这个例子中我会使用一个Repository类,然后在Controller下的Action方法调用这个Repository来... 继续阅读 >
202012-10 Asp.net core中RedisMQ的简单应用实现 最近一个外部的项目,使用到了消息队列,本来是用rabbitmq实现的,但是由于是部署到别人家的服务器上,想尽量简化一些,项目中本来也要接入了redis缓存,就尝试使用redis来实现简单的消息队列。使用redis做消息队列有两种方法,一种是使用pub/sub,另一种是使用list结构,配合brpop来消费。这两种方式各有特点,这里简述一下:pub/sub模式,支持多客户端消费,但是不支持持久化,这就意味着客户端断开的时间内发布的消息将会全部... 继续阅读 >
202012-07 Asp.Net Core实现Excel导出功能的实现方法 在web应用程序开发时,或许你会遇到这样的需求,如何在Asp.NetCore中实现excel或者word的导入导出,在NuGet上有大量的工具包可以实现这样的功能,本篇就讨论下如何使用ClosedXML实现Excel数据导出。安装ClosedXML如果想实现Excel的导出功能,在Asp.NetCore中有很多的dll可以做到,其中的一个叫做ClosedXML,你可以通过可视化界面NuGetpackagemanager去安装,也可以使用命令行NuGetpackagemanagerconso... 继续阅读 >
202012-05 Asp.net Core 3.1基于AspectCore实现AOP实现事务、缓存拦截器功能 最近想给我的框架加一种功能,就是比如给一个方法加一个事务的特性Attribute,那这个方法就会启用事务处理。给一个方法加一个缓存特性,那这个方法就会进行缓存。这个也是网上说的面向切面编程AOP。AOP的概念也很好理解,跟中间件差不多,说白了,就是我可以任意地在方法的前面或后面添加代码,这很适合用于缓存、日志等处理。在netcore2.2时,我当时就尝试过用autofac实现aop,但这次我不想用autofac,我用了一个更轻量级的框架... 继续阅读 >