C#高级开发
文章平均质量分 84
最近新学一个课程"朝夕教育",每学一节,用以总结一次。
Better_Roy
我小的时候一直以为我是一个人,当我会说话的时候我才发现我是一只海星,有的时候干劲真的很重要!...
展开
-
JMeter压测|JMeter调用接口Post
JMeter压测|JMeter调用接口Post原创 2022-08-05 20:57:39 · 762 阅读 · 0 评论 -
44:Ngnix反向代理安装及使用
目录Nginx环境单一反向代理-配置文件监听与转发端口启动一个你写的程序单一反向代理集群&负载均衡每次访问都可以,对集群进行轮询。Nginx篇1 基本操作命令2 负载均衡3 各种负载均衡策略:1、轮询2、weight3、ip_hash4、least_conn5、第三方策略①fair②url_hash4 反向代理缓存Nginx环境下载Nginx安装包:http://nginx.org/en/download.html启动Nginx服务器; 建议下载稳定版;解压后看到此目录,点击exe是原创 2021-07-29 20:32:19 · 573 阅读 · 0 评论 -
43:RabbitMQ四大类型的交换机持久化
目录环境配置同步架构分布式异步队列队列(异步队列/异步架构)解读常见异步队列组件C#驱动RabbitMQ单生产者单消费者多生产者多消费者互为生产消费者RabbitMQ Exchange(交换机)Direct Exchange应用Fanout ExchangeTopic ExchangeHeader Exchange消息持久化发布订阅RabbitMQ生产端消息确认RabbitMQ消费端消息确认系统架构环境配置环境配置地址:访问:https://blog.csdn.net/hello_mr_anan/原创 2021-07-18 18:00:44 · 977 阅读 · 1 评论 -
42:RabbitMQ下载与安装Windows
目录环境配置1、Erlang安装RabbitMQ下载卸载RabbitMQ和Erlang环境环境配置RabbitMQ是Erlang语言开发;需要搭建Erlang环境;–Windows(安装成WindowService)安装RabbitMQ1、Erlang安装下载地址:http://www.erlang.org/downloadswindows版,选择一下下载位数即可。下载好后进行安装,就按默认配置,安装到C盘就可以。然后添加系统环境变量ERLANG_HOME:C:\Pro原创 2021-07-17 14:50:17 · 447 阅读 · 0 评论 -
41:redis用处与详例
目录RedisRedis特点单线程PK多线程数据类型Windows--RedisStringHashTableSetZSetList分布式异步队列发布订阅模式RedisREmote Ditionary Server远程字典服务器:基于内存存储—速度快; 对外提供接口,供使用方调用;数据的缓存; 一般不会用来做数据的长久保存;Redis也可以做持久化----固化到硬盘了;提供了丰富的数据类型来让适用方使用:在使用的时候,就可以更好的满足我们的业务需求;Redis-----CS 模式-原创 2021-07-13 21:01:41 · 207 阅读 · 0 评论 -
40:Net-缓存,及缓存应用场景,MemCache
缓存目标—提高系统性能—系统性能优化的第一步就是使用缓存;成本不高立竿见影对于不常修改的数据,都可以考虑缓存;二八原则:20%的操作是增删改80%的操作是查询。常见缓存场景配置文件的读取;----单例模式(缓存)查询数据中的数据;查询得到结果—在内存中保存一份;第二次来查询的时候,直接使用缓存;缓存的生效一定是第二次请求或者是第二次请求之后的请求;缓存全景图浏览器首次请求ServerHttp协议开始:Http请求其实是组装一段字符串,请求的信息+响应的信息;浏览器是原创 2021-07-04 14:43:41 · 216 阅读 · 2 评论 -
39:Net——大数据高并发之Mongodb
Mongodb是什么MongoDBMongoDB 是一个Nosql的非关系型、分布式文件存储的数据库。由 C++ 语言编写。为海量数据提供高性能支持。No SQLNot Only Sql,非关系型数据库。我们所用的SQL server,My SQL, Oracal都是关系型数据库提供强大的查询条件,但是当面对少量数据就显得力不从心了。像谷歌百度等每天收集的大量数据,无固定性可言。还需要对数据有很高效的挖掘性。使用NoSQL就非常合适了。分布式它是属于分布式集群的数据库系统。由软件通原创 2021-07-03 15:37:19 · 669 阅读 · 0 评论 -
38:WebSocket与SuperSocket。
目录Socket的理解套接字:长链接;引用百度百科:区别Http请求原生Net Socket服务端客户端SuperSocket的实操应用SuperSocket应用Demo开发心跳包,断线重连SuperSocket 支持AOP扩展Socket的理解套接字:长链接;TCP的应用层协议来支持;在.Net中有成型的包来支持,不过一般情况下很少直接使用原生的Socket;引用百度百科:套接字Socket=(IP地址:端口号)套接字有其类型和一个与之相连进程。通信时其中一个网络应用程序将要传输的一段信息原创 2021-07-02 20:52:45 · 965 阅读 · 2 评论 -
37:单元测试。
目录前言单元测试目的单元测试使用前言不了解一个东西前,总觉得高深莫测!当了解后,发现原来就这?单元测试目的举例:项目在正常生产环境下运行,对某一个接口或程序进行修改了。直接部署上去怕崩怎么办?这种情况就可以进行单元测试。程序测通了,再往生产环境下放。单元测试就是调用某一方法,看返回的值,是否符合预期设定情况。如果不符合,那么就是不通过。单元测试使用首先新建一个单元测试项目。项目结构就如此简单。一个类库,加一个cs文件。在当前cs文件右击,运行测试,直接可以看到结果。自己原创 2021-06-30 20:31:26 · 109 阅读 · 3 评论 -
36:NetCore gRPC服务
目录什么是RPC?什么是Grpcproto文件gRPC流gRPC流取消gRPC理解Http/2头部压缩Server PushHttp2-流多路复用Http/2性能多方式对比WebApi&Core WebApigRPC服务端:创建grpc项目proto文件重写类使用方法客户端:Copy greet文件测试什么是RPC?RPC是远程过程调用(Remote Procedure Call)的缩写形式。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调原创 2021-06-27 21:07:31 · 435 阅读 · 1 评论 -
35:NETCore hangfire调试任务,定时执行作业
目录官网配置文档Hangfire的特点实操后台执行行为定时循环执行行为延迟执行行为Hangfire.HttpJobHangfire.HttpJob官网官网https://www.hangfire.io/配置文档配置文档https://docs.hangfire.io/en/latest/configuration/index.html官方的操作文档特别详细,也可以直接查看文档。Hangfire的特点NET Framework 4.5以上、ASP.NET Core永久存储(Hangfir原创 2021-06-27 16:24:46 · 1004 阅读 · 0 评论 -
34:NET IdentityServer4 Code模式
目录介绍Code模式1>MVC正常跳转2>获取token3>获取用户信息4>退出登录5>获取第三方被保护的资源6>刷新Token持久化介绍此种方式实现安全类似为登陆博客(自己的web程序),使用微信扫码(IdentityServer4 模板),登陆完后返回token,到web页。IdentityServer4 指定授权模式为Code方式。web项目运行虽然启动地址为:https://localhost:5002但是运行的时候,会自动跳转5001授权页面原创 2021-06-26 20:39:18 · 720 阅读 · 1 评论 -
34:NET IdentityServer4客户端模式与密码模式
目录介绍作用官网准备工作安装模板创建项目项目结构使用WebApi受保护的资源客户端模式1>特点描述:2>流程实操:3>请求规则:密码模式1>特点描述2>流程实操介绍作用http://www.identityserver.com.cn/IdentityServer4 是为ASP.NET Core 系列量身打造的一款基于 OpenID Connect 和 OAuth 2.0 认证框架。官网https://www.identityserver.io/准备工作安装原创 2021-06-26 17:09:32 · 1083 阅读 · 0 评论 -
33:NETCore读写分离
目录前情提要首先需要对数据库进行主从备份。配置文件其次建立EFCore例查找前情提要内容不全,提示一个思路哈。如果不知道如何实现,可以找我。首先需要对数据库进行主从备份。详操地址https://blog.csdn.net/hello_mr_anan/article/details/118093045这样你就有了,往里写数据的主数据库与查询的子数据库配置文件首先配置文件需要把这些库的链接地址都配置上。其次建立EFCore也可以通过程序包管理控制台来生成。再改改多余的内容。 //原创 2021-06-21 20:58:19 · 764 阅读 · 3 评论 -
32:NET5 WebApi-跨域、压缩、JWT鉴权授权
目录WebApi后台调用详析WebApi跨域请求浏览器同源策略解决跨域CoreWebApi如何让Api支持跨域AOP-FilterMiddleWare跨域JSONPWebApi后台调用详析后台模拟Http请求//HttpRequest //HttpWebRequest public string HttpGet() { ///模拟Http请求 using (HttpClient httpClient =原创 2021-06-14 14:22:13 · 819 阅读 · 1 评论 -
31:NET5 WebApi
WebApi和MVC的区别MVC:完整的Web开发框架,网站开发框架,包含了业务处理+用户UI;WebApi:其实就是一个服务接口,主要作用是用来服务的;一种对外的接口;用它来无法独立完成一套web开发,需要和前端配合完成;WebApi主要负责处理业务,不管用户的UI界面;Webapi性能更加优于MVC;更加轻巧;WCF,WebService;网络服务; 更多适合移动端配置; 数据传输—JSON如果团队中前端人才相对较少;可以选择MVC;如果只是对外提供服务—前后端分离—支持移动端服务原创 2021-06-13 12:24:19 · 624 阅读 · 1 评论 -
30:NET5源码解读
目录.NET5源码程序启动的时候;看源码的建议:.NET5源码程序启动的时候;得到一个最小的IHostBuilder,包含的是最基本的配置,专门用来生成最基础的Host;通过不同的扩展,扩展IHostBuilder,每一层扩展都是在之前的基础上,进一步封装相关配置;就可以通过扩展把我们自己的写的配置给替换到默认配置上去;包括指定请求来了以后的处理过程;Build方法执行后,所部分配置都给执行,得到一个WebHost;把WebHost所需要的 包含基础的服务,IOC容器;WebHost.原创 2021-06-10 21:12:26 · 721 阅读 · 0 评论 -
29:NET5中间件Middleware原理与Kestral服务器解析
中间件Middleware中间件实现方式就是一层包一层的注册到一个集合中。管道:处理http请求的不同的环节浏览器发送请求DNS服务器解析域名,确定IP地址+Port(端口号)IP地址+Port就可以确定是哪一台服务—哪个一个程序来响应;服务器上运行的程序肯定是监听这某一个端口的;确定到具体要响应请求的程序;程序如何响应?响应的过程就是请求处理的管道;//这个方法就是用来配置如何处理Http请求;public void Configure(IApplicationBuilder a原创 2021-06-09 21:02:40 · 463 阅读 · 0 评论 -
28:NET5;ResourceFilter、ExceptionFilter、ResultFilter、策略Policy
目录ResourceFilterExceptionFilterResultFilterFilter执行链Exception在那些环节可以捕捉到异常多种方式基于策略PolicyToken校验ResourceFilter为缓存而生的;ExceptionFilterResultFilterFilter执行链Exception在那些环节可以捕捉到异常控制器实例化异常 T异常发生在Try-cache中 F在视图中发生异常 FService层发生异常 T在actio原创 2021-06-06 17:57:47 · 465 阅读 · 0 评论 -
27:NET5 AOP-Filter扩展定制
目录权限背景传统的授权方式鉴权-授权Filter多种注册Filter支持依赖注入扩展Filter支持依赖注入Filter执行特点权限背景开发的很多功能页面;如果没有任何拦截,没有任何门槛;来一个权限认证;有权限就可以访问,否则就拒绝掉;一般就是登陆用户名+密码登陆一下(在服务器或者浏览器做点标记,针对当前做记录)在访问页面的时候;就验证是否登陆过,还可以通过当前用户信息做一些数据验证传统的授权方式鉴权-授权app.UseAuthenticationapp. UseAuthori原创 2021-06-06 14:14:01 · 333 阅读 · 3 评论 -
26:NetFramework5-IActionResult扩展定制、登陆鉴权授权、ActionFilter、ResourceFilter、Filter
管道处理模型IActionResult服务器+浏览器为什么返回不同的类型,浏览器都能够对应来处理识别呢ContentTypehtml—text/htmljson—application/jsonxml—application/xmljs----application/javascriptico----image/x-iconimage/gif image/jpeg image/pngAOP–Filter面向切面编程.NET5 五大FilterAuthorizationF原创 2021-06-05 11:03:43 · 481 阅读 · 1 评论 -
26:DDD领域驱动设计(微服务-2)
目录DDD各种方法论和工具ABP.vNextABP.vNext-getStartDDD项目结构领域拆分--微服务拆分粒度领域表达值对象--实体--领域领域事件事件总线Event Bus领域服务Domain Service仓储Repository & 工作单元Entity/DTO/ViewModel其他工具设计领域模型的步骤eShopOnContainerDDD各种方法论和工具分层架构、领域、值对象/实体/聚合根领域服务、 Factory、仓储模式/工作单元、Entity/DTO/ViewM原创 2021-05-30 17:40:18 · 918 阅读 · 0 评论 -
25:DDD领域驱动设计(微服务)
目录DDD领域驱动设计DDD是为了解决什么问题而诞生的?降低沟通成本DDD-共同语言DDD-复杂性POP面向过程编程OOP面向对象编程DDD领域驱动设计DDD与微服务理解DDDDomainDrivenDesignDDD意义如何落地DDD理解领域拆分领域细化子域DDD 4WDDD领域驱动设计2004年领域驱动设计之父Eric Evans发表Domain-Driven Design –Tackling Complexity in the Heart of Software(领域驱动设计)—这个是为了应对原创 2021-05-30 17:13:54 · 606 阅读 · 1 评论 -
24:NetFramework5
目录前言如何升级C#6C#7C#8C#9Cshtml文件Razor语法Razor表达式Razor语法分支结构Razor注释Razor组件前言在历史中,.Net分为派系,所以给开发者抬高了门槛儿;往后:.Net6.Net7.NET5对于我们开发者来说,其实没啥,因为他换的是底层基础架构;如何升级足够平滑,安装好.Net5的环境,直接修改框架版本即可;C#6只读自动属性using staticNull 条件运算符字符串内插异常筛选器nameof 表达式使用索引器初始化关联集原创 2021-05-27 20:23:55 · 667 阅读 · 0 评论 -
23:NetCore3.1学习-创建web项目
目录NET5介绍Net CORE与Net Framework区别NET.Core项目如何建立NET.Core自带DI依赖注入NET.Core添加session中间件NET.Core添加log4net使用log4与后台传值到前台前台NET.Core添加AutofacNET.Core增加Autofac---AOPNET.Core发布部署IIS发布命令行执行KestrelHttp请求是怎么被处理的NET5介绍.NetCore、Framework都属于框架。并列:大家是不同的框架,都有自己的CLRNET5把原创 2021-05-24 20:45:54 · 831 阅读 · 0 评论 -
22:lucene.net全文检索
目录痛点解决办法lucene.net是什么lucene.net七大对象介绍和多种query方式lucene存储结构DocumentsAnalysisIndexQueryParsersSearchStoreSearchSearch TermQuerySearch BoolenQuerySearch WildcardQuerySearch PrefixQuerySearch PhraseQuerySearch FuzzyQuerySearch RangeQuerylucene使用流程Nuget引入文件插入数据建原创 2021-05-22 12:38:29 · 358 阅读 · 2 评论 -
21:IOC整合EF增加AOP
目录项目分层架构依赖倒置原则DIPIOC控制反转DI依赖注入三种注入方式:声明周期Unity容器解耦Unity-AOPPOPOOPAOPAOP面向对象OOP类AOP项目分层架构可以划分边界独立演化;也方便分工;代码复用;依赖倒置原则DIP--------系统架构时,高层模块不应该依赖于低层模块,二者通过抽象来依赖, 依赖抽象,而不是细节。面向抽象编程!面向抽象:一个方法能满足多种类型支持下层的扩展IUnityContainer container = new UnityCont原创 2021-05-16 12:26:49 · 272 阅读 · 2 评论 -
20:NET CLR浅析(by-朝夕)
目录什么是clr?CLR功能标准GC什么是堆栈栈堆堆栈存放特点什么样的对象需要垃圾回收回收流程Mark-Compact 标记压缩算法 1Mark-Compact 标记压缩算法 2三个假设什么时候GC怎么用GC. CollectGC 两种形式什么是clr?Common Language Runtime公共语言运行时(CLR)是一套完整的、高级的虚拟机,它被设计为用来支持不同的编程语言,并支持它们之间的互操作。运行时环境—写的高级语言—要在硬件运行—操作系统OS—x86 x64 windows li原创 2021-05-11 20:49:53 · 297 阅读 · 0 评论 -
19:c# async await(by-朝夕)
目录前言番外-语法糖await/async语法不带参数的异步方法代码!执行效果带参数的异步方法代码结果等待结果IL探究适合地方ReadFile对比webDMA适合场景不适合场景前言C#5 (.NET4.5) 引入的语法糖C#7.1,Main入口也可以C#8.0,可以使用异步流await foreach和可释放对象 await using番外-语法糖由编译器提供的便捷功能,就是语法糖也就是说IL是不变 没有升级的,但是在写代码时可以省略下,其中就靠编辑器干活儿Lambda—匿名委托—n原创 2021-04-27 20:57:07 · 349 阅读 · 2 评论 -
18.NET高级开发之ORM-EF6
EF6ORM对象关系映射1.原生EF6的三种映射方式EF实现数据的CRUD复杂查询&执行SqlEF状态跟踪EF上下文生命周期/事务EF延迟,导航属性ORM对象关系映射1.原生进程交互靠的是网络协议ado.net 操作数据库(sqlcommand 、sqlconnection 、adapter 、datareader )操作数据库—数据库只认识Sql语句但是原生操作不方便的地方:写起来比较麻烦开发者得知道sql不同的表写不同的sql就会有重复代码吗开发效率就低一些-性能最好原创 2021-04-26 20:43:02 · 4466 阅读 · 0 评论 -
18.sql server表分区\执行计划\语句中的优化建议(by-朝夕)
DatabaseSqlServer表分区1.表分区:分区:分区函数:文件组:分区文件:表分区实操如何去分区:执行计划:Sql语句中的优化建议:SqlServer表分区1.表分区:跟我们之前讲解的分库分表,比较类似;表分区是SqlServer支持的功能,功能跟之前讲过的分库分表比较类似;如果我们使用表分,我们开发者相对来说会比较省事儿;分区:是把数据表切分----可以保存到磁盘的不同区块中去;可以分为多个文件存储;在查询的时候可以直接基于当前这个文件进行查询----相当于缩小了扫描范围—提高性能原创 2021-03-16 12:38:59 · 473 阅读 · 0 评论 -
18.sql server横向切分、纵向拆分表、相对平均分配数据、复杂sql语句、数据库存储原理(by-朝夕)
Database数据库分库分表1.横向切分分库分表案例需要定义规则来选择表查询:规则:2.纵向拆分表3.相对平均分配数据复杂Sql语句一条Sql语句执行的全过程;你们觉得数据库是什么?数据页管理数据页聚集索引:非聚集索引索引的创建建议:数据库分库分表1.横向切分分库分表案例按照时间横向切分订单表,历史表;订单表:按照年份来拆分表,每一年(月),每一年对应一个订单表;成本:保存:1.选择保存到哪个表中去需要定义规则来选择表查询:确定到哪个表中去查询还是按照规则来呗规则:Orde原创 2021-03-05 12:45:29 · 1912 阅读 · 1 评论 -
17.sql server数据库使用规则、二八原则、数据库查询集群--数据库读写分离多种实现、数据库配置读写分离(by-朝夕)
Database课程目标环境准备:一.二八原则二.数据库读写分离好处:绝大部分的企业内部应用,可能不需要上图那么庞大的架构,一台主数据库服务器和一台查询服务器通常能满足读写分离的要求。而且应用程序调整起来非常方便:适用场景:三.SqlServer多种读写分离快照发布:事务发布:对等发布:合并发布:四.分库五.分表六.分库分表注意事项课程目标1 数据库使用规则2 二八原则3 数据库查询集群–数据库读写分离多种实现4.数据库配置读写分离环境准备:Microsoft SQL Server Manag原创 2021-03-04 12:27:44 · 468 阅读 · 2 评论 -
16.sql server触发器、游标、视图、函数、字段、逻辑删除、主从数据库同步(by-朝夕)
Database目标环境准备:一.触发器二.游标三.视图四.函数五.字段类型六.字段可空七.统计字段设计:如果表太多,需要确定权限------必然会影响性能;如何解决呢?目标1.触发器2.游标&&视图&&函数3.字段类型&&字段可空4.统计字段&&逻辑删除5.数据库设计落地实操环境准备:Microsoft SQL Server Management Studio 18 2012以上;一.触发器是一个特殊的存储过程,是由数据库原创 2021-03-02 12:42:32 · 267 阅读 · 0 评论 -
15.sql server数据库事务和数据库锁、触发器、游标、视图、自定义函数、字段(by-朝夕)
Database前言 数据库设计工具为什么要用建模工具?1.数据库设计的重要性2.开发工具3.数据库三大范式4.设计工具5.设计习惯前言 数据库设计工具PowerDesigner是Sybase的企业建模和设计解决方案。它可以用来话ER图。ER图是什么呢?E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。为什么要用建模工具?用它原创 2021-02-22 12:34:20 · 276 阅读 · 1 评论 -
14.sql server数据库设计的重要性(by-朝夕)
Database前言1. Database?前言1. Database?原创 2020-12-10 17:40:16 · 362 阅读 · 0 评论 -
13.DesignPattern设计模式(by-朝夕)
DesignPattern前言1. DesignPattern?前言DesignPattern1. DesignPattern?原创 2020-12-19 15:08:11 · 371 阅读 · 1 评论 -
12.Devops(by-朝夕)
Devops前言1. 什么是Devops?2.Devops可以做什么?3.同事之间高效工作法。前言这三节课概念性东西比较多,没有实践!我听的也确实有点困。但是感觉收获还是不少。1. 什么是Devops?Devops是一种思想,而不是一个具体的工具。只有落实到各个工作块后,才会需要用到具体的东西。放张老师图片。2.Devops可以做什么?Devops需要根据自己公司目前的瓶颈在哪,需要增加开发速度还是快速部署。Devops可以帮助项目经理统筹整体规划,明确自己应该做什么,怎么做。解决问题原创 2020-11-12 22:10:56 · 175 阅读 · 1 评论 -
11:c# oop思想面向对象编程(by-朝夕)
目录前言oop思想面向过程面向对象面向对象特点:设计模式/原则设计模式六大原则:单一职责原则(Single Responsibility Principle)里氏替换原则(Liskov Substitution Principle)依赖倒置原则(Dependence Inversion Principle)接口隔离原则(Interface Segregation Principle)迪米特法则 (Law Of Demeter)开闭原则 (Open Closed Principle)前言类与接口的原创 2020-11-09 22:57:43 · 534 阅读 · 0 评论 -
10:c# mds5与des与rsa加密(by-朝夕)
目录前言1.MD5 不可逆加密特点:应用Des对称可逆加密RSA非对称可逆加密数字证书 SSL单边认证双边认证前言本节所学内容如下;MD5 不可逆加密Des对称可逆加密RSA非对称可逆加密数字证书 SSL1.MD5 不可逆加密特点:不可逆加密:原文–加密–密文,密文无法解密出原文相同原文加密的结果是一样的不同长度的内容加密后加过都是32位原文差别很小,结果差别很大不管文件多大,都能产生32位长度摘要文件内容有一点改动,结果变化非常大文件内容不变,名字边了,结果是不变。原创 2020-11-01 16:13:38 · 564 阅读 · 1 评论