自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Redis安装

下载地址: https://github.com/MicrosoftArchive/redis/releases最新下载地址:https://github.com/zkteco-home/redis-windows/releaseswin+r 输入 services.msc ,看一下服务有没有启动,没启动 手动启动一下 本示列Linux系统为CentOS 7.9 #可通过wget下载也可以在官网下载后通过工具上传先cd /usr/local/redis 再wget https://downloa

2023-07-29 16:18:36 38

原创 ASP.NET Core的部署

网站发布1、不能直接把bin/Debug部署到生产环境的服务器上,性能低。应该创建网站的发布版,用【发布】功能。2、两种部署模式:“框架依赖”和“独立”。两者的优缺点。1:框架依赖的部署模式下,我们发布生成的程序集中不包含.NET运行时,所以我们需要在服务器上安装对应版本的.NET运行时2:独立模式下,我们生成的程序集包含.NET运行时,所以我们不需要在服务器上安装对应版本的.NET运行时。3:对于大多数情况下,独立模式更符合项目的部署要求。在独立模式下,我们只需要把程序集复制到服务器上

2023-06-15 18:52:46 372

原创 ASP.NET Core Web API

Controller继承自ControllerBase,只不过增加了视图相关的方法,一般mvc项目选用Controller而Web API项目选择ControllerBase即可。ASP.NET Core Web API中的操作方法返回值如果是普通数据类型,则返回值默认被序列化为JSON格式的响应报文体返回。对于失败的请求,一般要统一响应报文体的格式以便在客户端进行处理。声明一个表示错误的详细信息类其中code参数表示错误的自定义业务代码。

2023-06-15 16:18:21 194

原创 Restful

5:服务器端要通过状态码来反映资源获取的结果:200 (意思是一切正常),201(新增成功),400(错误请求,一般是客户端请求的参数错误),401(未授权,没登录的意思),、403(没有权限,一般指已经登录,但是你没有权限访问当前方法),404(没有找到任何资源),500 (服务器错误)2:具有不同的请求方法(也叫请求谓词),主要有get、post、put、delete,获取资源使用get,新增资源使用post,整体更新使用put,删除资源使用delete。3:什么是“幂等”,举例?

2023-06-15 15:44:13 79

原创 ASP.NET Core Web 入门

1:MVC开发的系统一般是在浏览器中查看,而目前访问服务器的客户端已不仅仅是浏览器了,很多客户端和服务器之间一般都是使用JSON结构来传递数据,所以需要将数据进行结构化,执行结构化操作的服务叫做Web API。浏览器提交的请求会被封装到模型类的对象中,然后传递给控制器,控制器对其进行处理后将结果放到模型类的对象中再传给视图,视图则解析模型对象渲染成HTML输出给浏览器。1:MVC中,控制器由Controller类实现,视图一般为*.cshtml文件,模型则是C#中的普通类。

2023-06-15 15:19:13 217

原创 SignalR服务器端消息推送

在传统的HTTP中,只能客户端主动向服务器端发起请求,服务器端是无法主动向客户端发送消息的,但是有一些场景需要我们服务器端主动向客户端发送消息,那么主要有以下3种方式实现原理: 利用Ajax定时朝后端发送请求,比如每隔五秒钟发一次请求,那么你的数据延迟就可能会高达五秒特点: 数据延迟,消耗资源过大,请求次数太多原理: 利用Ajax + 队列 定时朝后端发送请求, 如果没有数据则会阻塞但是不会一直阻塞, 比如阻塞你30秒,还没有数据则返回,然后让客户端浏览器再次发送请求数据的请求。

2023-06-15 11:57:10 676

原创 请求数据校验

上文中,我们提到了.NET Core中内置数据校验机制的不足,这里向读者推荐优秀的数据校验框架FentValidaion 它可以让我们用类似于.NET Core中Fluent API的方式进行校验规则的配置,也就是我们可以把对模型类的校验放到单独的校验类中。在程序中,需要进行数据验证的场景经常存在,且数据验证是有必要的。1:我们的校验规则都是跟模型类耦合在一起的,这违返了面向对象的“单一职责原则”,而且同一个模型类在不同的地方可能需要不同的校验规则,这种难以实现.[比较]:验证模型中的两个属性是否匹配。

2023-06-15 09:48:29 161

原创 托管服务(IHostedService,BackgroundService)

有些工作是需要后台运行的,比如每天凌晨备份数据库。ASP.NET Core提供了托管服务来供我们编写后台代码。托管服务只需要实现IHostedService即可,一般在开发时编写继承自BackgroundService的类,该类不进实现了IHostedService接口,并且处理了任务取消等逻辑,我们只需实现BackgroundService中定义的ExecuteAsync方法即可。

2023-06-14 21:00:37 423

原创 JWT提前撤回

当遇到用户被删除或者用户在另一个设备上登陆等场景时需要将JWT提前撤回,但是JWT是保存在客户端,无法在服务器中进行删除。:是在用户表中增加一列JWTVersion,用来存储最后一次发放出去的令牌版本号,每次登陆、发放令牌的时候都让JWTVersion自增,当服务器收到客户端提交的JWT后,将客户端的JWTVersion和服务器的进行比较,如果客户端的值小于服务器中的值则过期。

2023-06-13 16:14:51 169

原创 JWT(代替Session会话)

经典的保持登陆状态的办法是Session,也就是用户登陆后,服务器产生唯一标识SessionId,并把SessionId和登陆的用户信息保存在服务器内存中,通时将SessionId发送给浏览器(),当浏览器再次访问的时候,http请求中便携带了SessionId,服务器根据该Id在内存中取到用户信息,这样就实现了登陆功能功能。1:如果Session保存在内存中,当登陆用户多的时候,会占用服务器大量服务器内存,而且无法支持分布式集群。

2023-06-11 18:23:09 384

原创 c# 日志

Microsoft.Extensions.Logging(这个是日志的基础包)

2023-06-02 15:30:55 265

原创 .Net Core配置系统

Net Core配置系统支持文件(Json、XML、INI)、注册表、环境变量、命令行、Key Vault等。:Microsoft.Extensions.Configuration(这个是个基础包)//配置创建器//添加一个待解析的JSON文件//option:option为true时,Config.json文件不存在时不会报错,返回null;//option为false时,Config.json文件不存在时直接报异常。

2023-06-02 14:31:13 156

原创 .NET Core 依赖注入

使用了依赖注入框架之后,所有我们注入到容器中的类型的创建、销毁工作都由容器来完成,那么容器什么时候创建一个类型实例,什么时候销毁一个类型实例呢?根据我们的需要,我们可以向容器中注册服务的时候,对服务的生命周期进行设置。注册到容器中的对象(依赖项注入术语中,服务通常是指向其他对象提供服务的对象,既可以作为其他类的依赖项,也可能依赖于其他服务。在某些情况下,对于某些特殊的类,我们需要注册成单例模式,这可以减少实例初始化的消耗,还能实现跨 Service 事务的功能。控制反转的目的是让框架完成对象的创建和组装。

2023-06-01 16:13:41 391

原创 C# Lambda表达式

Action fun1 = (name, age) => Console.WriteLine("你好");正因为任何 Lambda表达式都可以转换为委托类型,那么在需要使用委托的地方都可以结合Lambda使用,极大的方便了委托的使用和提高代码的简洁度。若指定有0个输入参数,则需要用空括号( )表示,即:( ) => { Console.WriteLine(“你好”);如果编译器无法推算出类型,则可以显示地指定类型,即:( int x, int y) => x+y;

2023-05-25 15:00:52 160 1

原创 C# 委托

从数据结构来讲,委托是和类一样是一种用户自定义类型。委托是方法的抽象,它存储的就是一系列具有相同签名和返回回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行。

2023-05-25 12:04:50 100 1

原创 .net 数据库操作技术

现代应用开发的经验,都要求尽量保持数据库的干净,避免使用存储过程、外键、视图等,这些功能都应该在程序端来实现,所以推荐使用Dapper。2、由于EFCore,增加了LINQ至SQL的翻译步骤,如果复杂一些的LINQ语句,机翻的结果可能不是最优的SQL语句,同时,EFCore会对实体类状态进行跟踪,所以性能会稍低于Dapper。5、EF Core是官方推荐、推进的框架,尽量屏蔽底层数据库差异,.NET开发者必须熟悉,根据的项目情况再决定用哪个。.net 常用的orm:EF,EF core、Dapper、

2023-05-22 15:08:40 337

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除