自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Avalonia基础学习详细

AvaloniaUI是一个基于.NET的跨平台UI框架,允许开发人员使用单个.NET代码库来构建跨平台的应用程序。

2024-07-15 10:00:00 935

原创 SQL Server特性

SQL Server是由美国Microsoft公司开发的一种关系型数据库管理系统(RDBMS),它提供了可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库解决方案。

2024-07-04 10:56:34 918

原创 并发编程实现

并发编程能够充分利用现代多核处理器的计算能力,提高应用程序的性能和响应速度。在同一时间段内执行多个任务或操作的能力。

2024-05-09 11:23:20 930

原创 C#多线程

多线程是指在一个程序中同时运行多个线程,每个线程都是独立的执行流。多线程可以提高程序的执行效率,特别是在需要同时执行多个任务的情况下。多线程可以同时进行多个任务,而不需要等待某个任务的完成才能进行下一个任务。多线程可以在单个程序中同时处理多个任务,并且可以充分利用多核处理器的能力。

2024-04-09 11:13:53 1002

原创 MediatR使用

MediatR是一个在.NET应用程序中实现"中介者模式"的开源库。中介者模式是一种行为设计模式,它允许对象之间通过一个中介者对象进行交互,而不是直接相互依赖和交互。MediatR通过将请求和处理程序解耦,使应用程序的不同组件之间的通信更加简单和灵活。通过将请求封装在一个对象中,然后将该对象传递给中介者,中介者将选择正确的处理程序来处理该请求。MediatR还提供了一些功能,如管道处理程序(Pipeline Behaviors)、日志记录、异常处理等,以增强中介者模式的功能和灵活性。

2024-03-15 14:16:56 521 1

原创 .Net个人聊天室

SignalR是一个开源的ASP.NET库,用于实现实时网络应用程序。它允许服务器端代码能够主动向客户端发送实时数据,并允许客户端与服务器之间进行实时双向通信。SignalR使用了多种技术来实现实时通信,包括WebSocket、Server-Sent Events(SSE)和Long Polling。SignalR可以用于各种应用场景,包括实时聊天、实时协作、实时推送通知以及实时数据更新等。它支持多种客户端平台,包括Web、桌面和移动设备。聊天功能的实现主要使用WebSocket全双工通讯传输。

2024-03-15 14:16:42 429

原创 使用邮箱发送验证码完成注册

使用MailKit邮件库发送验证码完成注册

2024-03-14 14:46:32 468

原创 .Net依赖注入

什么是依赖注入,依赖注入的简单实现,服务生存期,获取服务的方法,Web Api中使用依赖注入

2024-03-14 14:45:37 1330

原创 百度AI智能审核

百度内容审核平台(Baidu Content Audit Platform)是百度推出的一款用于进行内容审核的平台。该平台利用人工智能技术,对用户上传的各类内容进行审核和过滤,以实现内容的合规和安全,可以识别和过滤涉黄、涉政、暴恐、广告、侵权等不同类型的违规内容。

2024-03-13 13:53:29 1811

原创 .NET中使用Redis大全

安装:Install-Package StackExchange.Redis。

2024-03-13 13:52:29 2252

原创 .Net异步编程

异步编程与同步编程,异步编程的基本使用,Result的使用,异步编程与多线程,WhenAll方法和WhenAny方法

2024-03-12 14:26:31 882

原创 .Net中RabbitMQ的使用详情

RabbitMQ是一个开源的消息中间件,它实现了AMQP标准,并且可以在分布式系统中存储、转发和接收消息,可以将消息从一个应用程序发送到另一个应用程序,即使这些应用程序不同时运行,也可以在消息队列中存储消息,确保消息的可靠传递。也就相当于快递,你发快递,你的朋友收快递,RabbitMQ就是快递公司。RabbitMQ可以用于解决各种问题,如解耦系统组件、异步处理任务、实现事件驱动架构等。

2024-03-12 14:25:53 1417

原创 .Net中Redis的Hash表操作

Redis中的Hash是一种存储数据的数据结构,用于存储键值对的集合。Hash常用于存储对象或者记录,因为它可以将多个属性存储为一个键值对,这样可以方便地获取、修改、和删除对象中的单个属性。

2023-11-21 11:56:08 486

原创 .Net中Redis的基本使用

Redis可以用来存储、缓存和消息传递。它具有高性能、持久化、高可用性、扩展性和灵活性等特点,尤其适用于处理高并发业务和大量数据量的系统,它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。

2023-11-19 13:33:17 1496

原创 洋葱架构、三层架构及两者区别

洋葱架构它的名称来源于洋葱的层次结构,即软件代码的各层次之间的关系。在这种架构中,应用程序的各个组件通过一系列层次结构被逐层包裹在一起,形成一个类似于洋葱的结构。

2023-11-15 13:11:09 1424 1

原创 DDD贫血模型、充血模型

贫血模型是一种软件开发中的设计模式,它指的是将数据和业务逻辑分离的一种设计模式,其中数据和领域模型是独立于业务逻辑的。在贫血模型中,数据由数据对象存储,而业务逻辑由服务对象处理。这种设计模式的优点是使代码更加清晰和可维护,使得领域模型更具可重用性和扩展性。

2023-11-12 21:57:02 776

原创 DDD聚合、领域服务、应用服务

在DDD中,聚合被视为设计和实现领域模型的基础,它提供了一种清晰的方式来组织领域对象,并定义了领域对象之间的关系和行为。简单来说就是为了实现聚合。

2023-11-11 11:40:39 746

原创 DDD领域模型、事务脚本、实体、值对象

DDD指的是领域驱动设计(Domain-Driven Design),是一种软件开发方法论,强调将软件的关注点从技术层面转移到业务层面,将业务模型转化为软件实现的核心概念,并通过设计模式和规范化的方法来实现高质量的软件开发。

2023-11-08 11:16:30 363

原创 什么是微服务?与分布式又有什么区别?

它将一个应用程序划分为多个小型、独立的服务进行开发、部署和管理。每个服务都有自己的业务逻辑、数据存储、独立部署、独立维护等特点。微服务架构有利于提高开发效率、系统的可扩展性和灵活性,因为每个服务都可以独立开发、测试、部署和升级,同时也有助于降低应用程序的维护成本和风险。

2023-11-07 13:30:45 1430

原创 Linux网络配置、ping不通外网解决办法

有很多说服务当中有五项才是对的,也不一定,我这里也只有四项,所以在尝试一些其他办法后再决定重新安装vmware,最开始我也ping不成功,查看也是四项,重新装了一次还是四项,找了一些办法,得出最大的可能就是网络没有配置好。

2023-11-04 13:38:18 5631 3

原创 User-Agent防爬虫与应对策略

User-Agent是一个HTTP请求头的一部分,它向Web服务器提供关于客户端(通常是浏览器)的信息,以便服务器能够针对不同的浏览器提供适当的内容或在检测异常时进行诊断。User-Agent字符串通常包含浏览器的名称、版本号、操作系统和硬件平台。例如:下面这个就是我浏览器的User-AgentWin64;

2023-10-31 16:56:01 997

原创 Websocket传递JWT令牌

Authorize]是用于限制对web应用程序中某些操作或控制器的访问。在访问带有[Authorize]的方法的时候,需要前端通过自定义报文头的形式将JWT令牌传递给后端进行验证,否则是不能访问带有[Authorize]的方法。这里创建了一个实现SignalR的方法,该方法带有[Authorize],功能是前端传递什么返回什么。但是Websocket是不支持自定义报文头的,所以我们只能通过url将JWT令牌进行传递。启动连接,我们可以看到JWT令牌通过url中的QueryString传递。

2023-10-29 19:54:28 1282

原创 .NET、VUE利用RSA加密完成登录并且发放JWT令牌设置权限访问

使用RSA.ToXmlString(Boolean) 方法生成公钥以及私钥。

2023-10-26 00:44:09 2095

原创 文件切片上传

XMLHttpRequest上传axios上传FormData对象

2023-10-25 14:13:08 145

原创 JWT的封装、[Authorize]的使用

对方法进行[Authorize]标识,那么这个方法就必须要在JWT检验通过了才能使用,也就是在使用该方法时需要传输后端生成的JWT,否则就调用不了[Authorize]标识的方法。

2023-10-24 15:22:51 473

原创 JWT的基本使用

JWT由三部分组成,头部Header、负载Payload、签名Signature,分别使用'.'分隔开,主要用于认证身份使用。

2023-10-23 11:06:44 244

原创 VUE、.NET多文件的上传、接收

首先我们需要创建一个类OeEntity。创建一个post请求接收一个OeEntity类。该请求将上传的文件全部保存到本地中,返回给前端保存的所有文件地址。

2023-10-22 10:37:25 460

原创 VUE、.NET单文件的上传、接收

在.NET中文件的获取需要使用到IFormFile 接口,接口包括了几个方法和属性,我们需要使用到。方法:CopyTo(Stream)将上传的文件的内容复制到流中。OpenReadStream()打开请求流以读取上传的文件。属性:ContentDisposition获取已上传文件的原始 Content-Disposition 标头。ContentType获取已上传文件的原始 Content-Type 标头。FileName从 Content-Disposition 标头获取文件名。

2023-10-21 14:31:07 355

原创 VUE、.NET中使用SignalR

SignalR支持websockets实时通信,那什么又是websockets,这里使用我们所熟知的HTTP来对比,首先他们都基于TCP协议。websockets双工通信支持二进制通信HTTP单工通信支持文件等从表中我们看到websockets支持二进制通信,这就说明了性能和并发能力更强,其次websockets可以借助HTTP完成初始握手,并且共享HTTP的服务器端口,也就是说HTTP使用的80端口,那么websockets也同样可以使用80端口。

2023-10-20 17:14:28 658

原创 RSA加密,公钥、私钥的生成,前端使用公钥加密,JSEncrypt返回值为false的原因以及解决方法,XML转换Pkcs1、8

非对称加密算法,两个且不同的Key,一个公开,一个私密,公开加密,私密解密。特点:原文短,加密后密文长生成相对较慢安全性超强。

2023-10-13 20:49:53 3422

原创 传递base64格式给前端 解决Not allowed to load local resource问题

后端传过来的是一个这样的地址。在将这个图片地址直接在img标签上使用是这样的,同时浏览器报一个错误,这是浏览器的一个安全策略,禁止访问本地文件。

2023-10-02 16:38:56 321

原创 内存缓存,分布式缓存Redis等缓存的使用和缓存不一致,缓存穿透,缓存雪崩等问题的解决

在ASP.NET Core Web Api中使用缓存。内存缓存,分布式缓存Redis等缓存的使用和缓存不一致,缓存穿透,缓存雪崩等问题的解决

2023-09-26 18:21:12 183

原创 解决ASP.NET Core Web Api跨域问题,CORS,No ‘Access-Control-Allow-Origin‘

在使用ASP.NET Core Web Api创建后端接口,前端使用这个接口的时候出现了这个错误,这是一个跨域的问题,我们查看网络请求看到也是一个CORS问题,这是因为浏览器基于安全考虑,默认是不能向其他域名发送网络请求,默认只能在接口所在域名发送网络请求。

2023-09-24 23:55:05 1230

原创 FlurntAPI项目搭建到配置

实现FlurntAPI主要使用的是DbContext 类。DbContext 实例表示与数据库的会话,可用于查询和保存实体的实例。DbContext 是工作单元和存储库模式的组合。这里会完整的演示一遍全部流程。

2023-09-21 17:41:04 124

原创 c#回炉重造(七)接口,类继承多重接口,接口的显式实现

使用接口可以在类中包括来自多个源的行为。因为该语言不支持类的多重继承。 此外,如果要模拟结构的继承,也必须使用接口,因为它们无法实际从另一个结构或类继承。

2023-09-17 01:34:35 570 1

原创 c#回炉重造(六)重写,多态,抽象类

简单来说就是子类对父类方法的扩展或者改写,重写是要再继承的基础上,我们定义两个类NewClass,WithClass,使其WithClass继承自NewClass,在父类和子类中都定义了一个名Add的方法,父类中我们加入关键字virtual子类中我们加入override关键字,这样一个简单的重写就构建完毕了。

2023-09-16 00:50:49 272 1

原创 c#回炉重造(五)类的继承,类的访问级别,委托与Lambda表达式

继承是面向对象的编程的一种基本特性。借助继承,能够定义可重用(继承)、扩展或修改父类行为的子类。成员被继承的类称为基类。继承基类成员的类称为派生类。我们创建一个类A与一个类B,使其B继承自A,这样一个普通的继承就构造好了,类B拥有类A的所有字段和方法,也就是说类B也可以对其类A中的字段和方法进行修改和使用,但是不能将类A中的字段和方法消除。

2023-09-15 00:43:49 160

原创 c#回炉重造(四)Linq语句

语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称,使用查询语法,可以用最少的代码对数据源执行筛选、排序和分组操作。可使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO .NET 数据集、XML 文档和流以及 .NET 集合中的数据。接下来我们演示一下Linq语句的用法,我们这里连接了这样两个表的数据,上面的表为teach表,下面的为users表,我们给数据库创建一个实例化对象。select返回指定类型。

2023-09-14 16:05:00 145 1

原创 c#回炉重造(三)委托,值引用类型

委托用于将方法作为参数传递给其他方法。 事件处理程序就是通过委托调用的方法。 您可以创建一个自定义方法,当发生特定事件时某个类(例如 Windows 控件)就可以调用您的方法。Action委托可以使用此委托将方法作为参数传递,而无需显式声明自定义委托。 封装的方法必须与此委托定义的方法签名相对应。 这意味着封装的方法必须没有参数,也没有返回值。我们这里定义了一个没有传参也没有返回值的方法,方法为打印一段文字。 现在我们将该方法创建出来,并且再创建出一个Action委托。 我们

2023-09-13 15:57:49 119 1

原创 c#回炉重造(二)方法在内存中存在的形式,字段,属性

在c#中我们定义一个这样的类,里面有一个int类型的值a,还有一个long类型的值b,都将他们赋值为10,现在我们在主方法中对这个class类引用。我们这里对StuDent创建了一个实例化对象,那么我们创建的这个实例化对象在内存中是怎么表示的呢?

2023-09-12 18:43:56 167 1

空空如也

空空如也

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

TA关注的人

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