.NET Core
文章平均质量分 74
Archy_Wang_1
有些代码不应该被忘记,也没有源代码不应该被记住。
展开
-
ASP.NET Core项目实战:短信功能与分布式限流
本文详细介绍了在ASP.NET Core项目中实现短信功能和分布式限流的过程。通过合理的架构设计和代码实现,我们可以有效地将这两个功能集成到项目中,提高系统的可用性和安全性。原创 2024-08-12 08:37:20 · 488 阅读 · 0 评论 -
探索亿级短URL生成器的架构设计
这样生成的的短 URL 必然唯一,通常采用自增序列号的方式进行生成。其中“+”和“/”在 URL 中会被编码为“%2B”以及“%2F”,需要进行再编码,因此直接使用标准 Base64 编码进行短URL 编码并不合适,所以,我们需要针对 URL 场景对 Base64 编码进行改造,Base64 编码表中的 62,63 进行编码移除,更新为Base62编码。预生成短URL是指提前生成一些短URL并保存到数据库中,当用户需要缩短长URL时,直接从数据库中获取一个未被使用过的短URL,而不是现场生成新的短URL。转载 2024-07-19 17:11:12 · 787 阅读 · 0 评论 -
SQLSugar 基本语法+数据库读写分离
面向对象的操作数据库,相比EFCore、Dapper等其他ORM框架性能支持性能轻便快捷,数据库的读写分离能大大减轻数据库的压力原创 2024-07-06 15:26:05 · 2127 阅读 · 0 评论 -
.net core 的缓存方案
Redis也有多种,我使用过ServiceStack.Redis和StackExchange.Reids,这两个的区别也是很大的ServiceStack.Redis是商用的,不给钱每个小时的使用是有限的,好像是六千次,但是速度稍微比StackExchange.Reids快一点点,毕竟是收费的,但是StackExchange.Reids没有使用限制,所以这里主要讲一下StackExchange.Reids怎么用。写到需要使用缓存的项目的appsettings.json里面。原创 2024-06-29 09:38:41 · 708 阅读 · 0 评论 -
C# 如何实现一个事件总线
EventBus(事件总线)是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。它允许不同的组件通过发布和订阅事件来进行解耦和通信。在给定的代码片段中,我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件的发布和订阅。IEvent和。IEvent是一个空接口,用于约束事件的类型。是一个泛型接口,用于约束事件处理程序的类型。它定义了处理事件的异步方法HandleAsync和处理异常的方法HandleException。原创 2024-02-17 11:49:36 · 1211 阅读 · 1 评论 -
揭秘:一行代码搞定.Net API高并发的烦恼
在追求高效的同时,我们更希望能让开发者从重复的工作中解放出来,将更多的精力投入到创新和业务的核心中去。今天,我带来了一种简洁高效的方案。的特性就可以啦,我再这里对中间件提供了2个参数,分别是锁定的最大时间和锁定后的错误提示。这个方法用于获取请求的EndPoint来判断是否包含ApiLock的特性。我们可以看到,当我们连续点击2次测试接口时,我们发现第二次调用就会返回被锁定了。原创 2024-02-19 11:06:49 · 852 阅读 · 0 评论 -
.NetCore手写一个 API 限流组件
接下来我们就要来实现 IRateLimiting 这个接口需要做的内容了,为了保持足够的扩展性,我们使用 abstract 来声明抽象类,比如说我实现了一套 IRateLimiting 通用的逻辑,你想要在我的基础之上进行修改符合自己业务的逻辑,就可以基础我的 abstract 类来进行扩展。上面定义的这个对象,只是一些简约的处理限流的行为,在我们面对复杂多变的业务场景时,IRateLimiting 不一定能够满足我们,在面对持续变化的业务,我们最好不要直接在这个对象里进行更改,而是新增加一个新的对象。原创 2023-11-16 09:50:57 · 588 阅读 · 0 评论 -
ASP.NET Core 启用CORS
W3C提供了标准来放宽同源策略,允许实现跨源资源共享(CORS),如果https://bar.other实现CORS https://foo.example/A.html能够ajax请求并读取B.html。通常,这个值为*,这意味着服务器共享请求资源针对互联网上的每个域名,有时候,这个header的值将被设置为特定域名(或者域名列表),这意味着服务将共享资源仅仅针对特定域名(域列表)。现在页面A.html有一个ajax代码尝试读取B.html的HTML的源代码,B页面位于。原创 2023-11-23 08:58:05 · 763 阅读 · 0 评论 -
.NET Core 中插件式开发实现
虽然微软文档说.NET Core中使用AssemblyLoadContext来实现程序集的加载及卸载实现,但通过验证在加载引用外部dll后,加载后不能正常卸载。或者使用方式还不正确。原创 2023-11-03 10:20:44 · 1186 阅读 · 0 评论 -
C#/.NET/.NET Core优秀项目和框架每周精选开篇
注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享。每周精选优秀的C#/.NET/.NET Core项目和框架,帮助开发者发现功能强大、性能优越、创新前沿、简单易用的项目和框架。无论你是寻找灵感、学习新技术、改进代码质量,还是想拓展自己的技术视野,每周精选都会为你提供有价值的参考和指导。关注每周精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发效率和质量。原创 2023-08-11 08:33:40 · 297 阅读 · 0 评论 -
ASP.NET Core 使用Filter和Redis实现接口防重
背景日常开发中,经常需要对一些响应不是很快的关键业务接口增加防重功能,即短时间内收到的多个相同的请求,只处理一个,其余不处理,避免产生脏数据。这和幂等性(idempotency)稍微有点区别,幂等性要求的是对重复请求有相同的和,通常需要在接口内部执行业务操作前检查状态;而防重可以认为是一个业务无关的通用功能,在ASP.NET Core中我们可以借助过Filter和redis实现。关于Filter。原创 2023-05-23 09:26:10 · 500 阅读 · 1 评论 -
.Net 6.0 部署Linux+Nginx +PM2教程
因为工作最近接手的项目是部署到Linux中,需要使用到Linux , Nginx和PM2 的一些操作,我就开始倒腾了一两天试试能不能把自己的项目也整一套放到Linux中,Linux 在日常工作中可以说是非常普遍,也是主流,看一百遍不如做一遍,所以希望还没有接触到的童鞋,看完这篇文章后也能去试着部署一下,一起进步!,这个的if的意思是只有开发环境才会执行,如没有拿出来,即便发布成功也无法访问Swagger UI,本人就被这个小问题折磨了有一上午!好了,我们终于到了最后一步了!原创 2023-04-20 08:49:17 · 1561 阅读 · 0 评论 -
.Net Core对于RabbitMQ封装分布式事件总线
RabbitMQ是一种开源的消息代理和队列管理系统,用于在分布式系统中进行异步通信。它的主要功能是接收和分发消息,并且支持多种协议,包括AMQP,STOMP,MQTT等。原创 2023-02-13 08:56:53 · 976 阅读 · 0 评论 -
.NET Core统一参数校验、异常处理、结果返回功能实现
我们开发接口时,一般都会涉及到参数校验、异常处理、封装结果返回等处理。如果每个后端开发在参数校验、异常处理等都是各写各的,没有统一处理的话,代码就不优雅,也不容易维护。所以,我们需要统一校验参数,统一异常处理、统一结果返回,让代码更加规范、可读性更强、更容易维护。比如我们需要入参为必填,只需要在实体类字段添加 [Required]统一标准的返回格式。一般一个标准的响应报文对象。在控制器返回的时候,进行返回包装。遇到未处理的异常进行统一的封装。定义一个统一的返回对象模板。data:返回的数据。原创 2022-11-23 17:23:34 · 1450 阅读 · 0 评论 -
Vol版Vue.NetCore开源项目
Vue + .NetCore前后端分离,不一样的快速发开框架(提供Vue2/Vue3版本)原创 2022-10-28 16:24:25 · 1408 阅读 · 0 评论 -
收集.NET6中一些常用组件的配置
在根目录下新建一个 cs文件,比如Globalusing.cs,在里面添加你的全局引用,和常规引用不同的是,在using前面添加 global有时候我们不想把配置全部放在 appsettings.json ,我们想自己建立一个文件夹来存储其他配置文件,比如config/...json之类的,咋整呢,我们新建个文件夹 config,下面建立一个配置文件app.json,里面存几个配置以便验证。使用前添加如下代码即可。原创 2022-10-06 09:10:42 · 1447 阅读 · 0 评论 -
.NET 6.0中使用Identity框架实现JWT身份认证与授权
我们将使用微软 框架来存储用户和角色信息。(身份认证)是验证用户凭据的过程,而(授权)是检查用户访问应用程序中特定模块的权限的过程。在本文中,我们将了解如何通过实现 JWT 身份认证来保护 应用程序。我们还将了解如何在 中使用授权来提供对应用程序各种功能的访问。我们将用户凭据存储在 SQL Server 数据库中(注:您可以使用MySQL、PostgreSQL等其他关系型数据库),我们将使用 EF Core 框架和 Identity 框架进行数据库操作。 是一个开放标准 (RFC 7519),它定义了原创 2022-07-27 10:19:09 · 1494 阅读 · 0 评论 -
在IIS服务器上部署SSL证书(基于阿里云平台)
在WinServer服务器上IIS部署https加密证书的步骤原创 2022-06-14 19:23:45 · 2058 阅读 · 1 评论 -
IIS实现全站HTTPS自动替换HTTP
IIS上搭建的网站,配上SSL证书后,希望自动将80端口转到443端口,可以按如下操作:1、购买SSL证书(我用的阿里云的免费证书),然后IIS设置好SSL。2、如果IIS没有URL重写模块,则需要下载安装URL重写模块:Microsoft URL Rewrite Module3、取消勾选“SSL设置”-》“要求 SSL” 4、URL重写规则:ASP.NET站可直接修改web.config,和界面操作结果一致......原创 2022-06-14 19:12:03 · 2001 阅读 · 0 评论 -
一文帮你彻底掌握Nginx
第一章:Nginx概述1.1、Nginx概述Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。1.2、Nginx官网官网地址:http://nginx.org/1.3、Nginx用处Nginx可以作为静态页面的Web服务器,同时还支持CGI协议的动态语言,比如Perl、P原创 2022-05-07 11:53:01 · 625 阅读 · 1 评论 -
如何在ASP.Net Core的生产环境中保护swagger ui
当您使用 dotnet 5 创建 WebApi 项目时,项目中会默认集成 swagger。如下所示。正如您在上面图片中看到的那样,开发人员仅在开发环境中很好地添加了swagger。所以你只能在开发模式下看到swagger页面。但是,如果您想在生产环境中访问 swagger 页面,但同时又希望不是每个人都应该能够看到您的 api 端点,该怎么办呢?在本教程中,我将阐述如何使用一些身份验证机制来保护生产环境中的 swagger 定义。在下面的实例中,我将使用基本身份验证,所以让我..原创 2022-03-30 09:07:25 · 1888 阅读 · 0 评论 -
Nginx从安装到高可用实战
一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yuminstallgcc-c++(2)安装PCRE库,用于解析正则表达式yuminstall-ypcrepcre-devel(3)zlib压缩和解压缩依赖yuminstall-yzlibzlib-devel(4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是ht...原创 2021-12-31 14:07:39 · 269 阅读 · 0 评论 -
Nginx从安装到高可用
一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yum install gcc-c++1(2)安装PCRE库,用于解析正则表达式yum install -y pcre pcre-devel1(3)zlib压缩和解压缩依赖yum install -y zlib zlib-devel1(4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https原创 2021-12-31 08:54:50 · 153 阅读 · 0 评论 -
.net core 中如何有效屏蔽重复提交
一.咨询区Guilherme Ferreira:我通过 post 方式向我的一个webapi中提交数据,然后插入到数据库中,在 ui端,当用户点击某一个 button 之后,代码会将 button 禁用,但因为某些原因,点击按钮的速度比禁用按钮的函数还要快,这就造成了post两次的情况,也就插入了两条同样的数据。在客户端我用 axios 来做 post 提交,请问我如何在 server 端规避这种事情?二.回答区 Christian Gollhardt: 前段时间刚好遇到了这个场景原创 2021-10-20 08:34:54 · 2082 阅读 · 0 评论 -
AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别
1.services.AddMvcCore()只注册运行Controller/Razor Pages 必要的核心服務,确保Pipeline 程序可运行,其余如像 Data Annotation Model Validation、身分验证等服务要自己加挂,除有特殊客户需求,一般不太常用。2.services.AddControllers()包含 AddMvcCore() 所做的动作外,再加上:身份验证服务Swagger/Open API 等 API 文件动态产生功能Data ...原创 2021-10-15 11:29:15 · 516 阅读 · 0 评论 -
ASP.NETCore数值型Id加密成无意义的字符串
一般来说,我们推荐使用整数Id作为数据表的主键,这样可以提供不少好处:存储空间小,简洁易懂,方便分页、排序、索引。但当这种Id暴露到外部时,比如订单号,就存在一定的风险了。因为不管是自增、雪花算法(SnowFlake)或者自定义算法,生成的Id都是存在一定规律可循,容易被爬虫生成Id用于爬站,甚至泄露数据。要想避免这种风险,比较简单的方案是将Id加密成无意义的字符串,但是通过这些字符串又可以反向映射出真实的Id以供内部使用。比如B站的播放链接https://www.bilibili.com/vi原创 2021-10-09 08:13:33 · 348 阅读 · 0 评论 -
保护我方Id | ASP.NET Core Web API使用加密Id
前言上次,我们介绍了hashids.net,可以将数值型Id加密成无意义的字符串,但是通过这些字符串又可以反向映射出真实的Id以供内部使用。比如B站的播放链接https://www.bilibili.com/video/BV1xK4y1VXXX应该就是这种实现方式。但是,我们希望在ASP.NET Core Web API实现中使用的还是真实的数值型Id,方便操作;而在对外输入/输出时对Id进行自动加解密转换,保证安全。类似这样://请求http://xxx.com/user/WwYQ原创 2021-10-09 08:11:31 · 477 阅读 · 0 评论 -
Angular /Angular cli安装教程
1、安装node.js在node官网下载安装包,我下载安装的是node-v12.14.0-x64.msi,win10 x64系统,默认安装,一路Next,不用配置环境变量(msi格式的安装文件会自己配置,不要自定义安装,太麻烦PS:亲身经历会出错)。win+R键打开cmd窗口,输入node -v 查询node是否安装成功,npm -v查询npm是否安装成功。(如下显示则安装成功)2、安装angular cli若之前安装cli失败过,先执行A,B两句命令,否则跳过: A:np..原创 2021-08-17 08:40:08 · 3707 阅读 · 0 评论 -
在windows系统下配置安装angular开发环境最详细的配置教程
第一步、安装node.js1.需要下载的文件路径:https://nodejs.org/en/download/2.安装nodejs:3.验证node.js4.npm安装以及验证:npm的安装。由于新版的NodeJS已经集成了npm,所以之前npm也一并安装好了。同样可以使用cmd命令行输入"npm -v"来测试是否成功安装5.配置npm全局路径存放位置以及cache的路径:例如:我希望将以上两个文件夹放在NodeJS的主目录下,便在...原创 2021-08-13 21:31:11 · 1477 阅读 · 1 评论 -
Nginx超详细常用功能演示,够用啦~~~
前言Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx在部署网站时,可以说是小伙伴们的首选,当然不能说全部项目都使用,对于一些小项目,直接IIS(.Net)、Tomcat(Java)等就搞定了,但对于大项目或微服务架构,Nginx肯定是少不了啦,一张图看清Nginx有多火:Nginx之所以招人喜爱,那是它本身性能好,支持并发量大,内存消耗少,配置简单原创 2021-05-19 08:43:13 · 452 阅读 · 1 评论 -
.NetCore的网关Ocelot功能演示
前言网关(Gateway)在微服务架构中至关重要,可以将其理解为是外部客户端(前端、MVC后台等调用方)与后台服务的连接点,通过这层可以做统一的处理,比如路由、身份认证和授权、服务治理等;网关的好处: 统一入口,调用方(客户端)不在为调哪个服务而头大,统一入口即可,由网关路由到对应后台服务; 统一处理公共逻辑,比如认证和授权,避免相同逻辑多处实现,易于维护; 对后台服务可以做负载均衡,根据指定的负载算法找到合适的后台服务调用,而这些细节调用方都不用理会,只管调就行啦;原创 2021-04-05 08:13:10 · 1462 阅读 · 0 评论 -
如何在 ASP.NET Core 中使用 LazyCache
微软的 ASP.NET Core 已经是一个非常流行的用于构建高性能,模块化并能运行在 Windows, Linux, MacOS 上的 WEB 框架,通常能够让程序保持高性能的一个有效途径就是通过缓存热链上的数据来应对高频的请求。LazyCache 是一款基于内存的易于使用和线程安全的缓存组件,值得注意的是,这里的Lazy指的是 LazyCache 永远不会在缓存未命中时触发一次以上的缓存委托函数,因为内置了锁,换句话说,Lazy 减少了不必要的计算开销,这篇文章我们将会讨论如何在 ASP...原创 2021-03-18 09:41:27 · 685 阅读 · 0 评论 -
如何在 ASP.NET Core 5 中生成 PDF
大家用 ASP.NET Core 进行项目开发时,常会有生成 PDF 的需求,那如何生成呢?这篇文章我们就来讨论如何通过DinkToPdf来生成 PDF 文档,DinkToPdf 封装了 C++ 的wkhtmltopdf工具包,前者通过P/Invoke的方式来调用后者,而底层的 wkhtmltopdf 利用Qt WebKit渲染引擎将 html 转成 pdf。安装 DinkToPdf要想安装 DinkToPdf,可以通过 Nuget 可视化界面或者通过NuGet Package M...原创 2021-03-18 09:36:13 · 1467 阅读 · 1 评论 -
.Net Core WebAPI + Axios +Vue 实现下载与下载进度条
故事的开始老板说:系统很慢,下载半个小时无法下载,是否考虑先压缩再给用户下载? 本来是已经压缩过了,不过第一反应应该是用户下的数量多,导致压缩包很大,然后自己测试发现,只是等待的时间比较久而已,仍然是下载状态中,并不是系统慢,但是用户体验肯定是最直观的,确实是我们做得不够好,单纯弹出遮罩层显示冰冷的“拼命加载中……”,对用户来说确实不够友好。嗯,了解实际情况了,那就开撸,增加用户体验。解决它效果图:Vue+Eleme...原创 2020-12-09 14:50:58 · 1003 阅读 · 0 评论 -
在Windows的IIS上部署ASP.NET CORE的项目
概述与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,它是其中一原创 2020-12-03 09:35:16 · 1886 阅读 · 1 评论 -
ASP.Net CORE学习资源汇总
ASP.NET Core入门学习资源汇总篇幅比較長,分为七个部分。 (一)认识.NET Core (二)Vistual Studio安装、调试 (三)Asp.Net Core入门指南与学习路线 (四)入门级实战项目手册、官方教程 (五)Asp.Net Core视频学习资源 (六)博客教程 (七)部署与测试 (八)开源项目推荐 (一)认识.NET Core从2014年11月.NET Core 项目启动到2016年06月.N..原创 2020-08-18 08:43:02 · 2025 阅读 · 1 评论 -
Asp.Net.Core WebApi 版本控制
前言在后端Api的开发过程中,无法避免的会遇到接口迭代的过程,如何保证新老接口的共存和接口的向前的兼容呢,这时候就需要对Api进行版本的控制,那如何优雅的控制Api的版本呢?开始Microsoft.AspNetCore.Mvc.Versioning是一个微软官方推出的一个用于管理Api版本的包,配置简单,功能强大。github地址.新建一个WebApi项目并通过命令引用包。...原创 2020-04-30 08:40:07 · 378 阅读 · 0 评论 -
ASP.NET Core+Quartz.Net实现Web定时任务
作为一枚后端程序狗,项目实践常遇到定时任务的工作,最容易想到的的思路就是利用Windows计划任务/wndows service程序/Crontab程序等主机方法在主机上部署定时任务程序/脚本。但是很多时候,使用的是共享主机或者受控主机,这些主机不允许你私自安装exe程序、Windows服务程序。web程序中做定时任务,目前有两个方向:① ASP.NET Core自带的HostServ...原创 2020-04-16 08:29:26 · 2837 阅读 · 0 评论 -
ASP.NET CORE WEBAPI文件下载
最近要使用ASP.NET CORE WEBAPI用来下载文件,使用的.NET CORE 3.1。考虑如下场景: 文件是程序生成的。 文件应该能兼容各种格式。 浏览器可以感知进行下载。 准备经过简单的调研,得到以下结论。 ASP.NET CORE 提供FileResult这种类型的ActionResult,可以直接返回文件结果,不需要直接处理HttpRespo...原创 2020-04-13 09:48:39 · 3337 阅读 · 3 评论 -
Asp.Net Core Filter 深入浅出的那些事-AOP
一、前言在分享ASP.NET Core Filter 使用之前,先来谈谈AOP,什么是AOP 呢?AOP全称Aspect Oriented Programming意为面向切面编程,也叫做面向方法编程,是通过预编译方式和运行期动态代理的方式实现不修改源代码的情况下给程序动态统一添加功能的技术。AOP技术利用一种称为“横切”的技术,剖解开封装对象的内部,将影响多个类的公共行为封装到一个可重...原创 2020-03-09 11:02:41 · 362 阅读 · 0 评论