- 博客(236)
- 资源 (23)
- 收藏
- 关注
原创 浅析HttpClient
文章目录一、IHttpClientFactory来CreateClient1.构造IHttpClientFactory对象2.在ConfigureServices中注册服务3.在ClientController中调用二、命名HttpClient1.构造IHttpClientFactory对象2.在ConfigureServices中注册服务3.在ClientController中调用三、类型 HttpClient1.构造IHttpClientFactory对象2.在ConfigureServices中注册服
2021-01-28 10:48:15
264
原创 浅析Mediator
文章目录一、轻松实现命令查询职责分离模式(CQRS)1.自定义命令类2.自定义实现IRequestHandler的类3.通过Send来调用CustomCommand二、让领域事件处理更加优雅1.自定义CustomEvent类继承INotification2.自定义实现INotificationHandler的类3.通过Publish来调用实现了INotificationHandler的类三、源码下载总结一、轻松实现命令查询职责分离模式(CQRS)1.自定义命令类代码如下(示例):class Cust
2021-01-28 10:28:15
500
原创 浅析中间件
文章目录一、Use二、Map三、MapWhen四、Run终极者中间件五、自定义中间件1.定义自定义中间件类2.定义UseCustomMiddleware扩展方法3.在Configure配置自定义中间件的扩展方法六、源码下载一、Use代码如下(示例): app.Use(async (ctx, next) => { //await ctx.Response.WriteAsync("Hello");
2021-01-22 18:02:37
274
1
原创 浅析文件提供程序
文章目录一、PhysicalFileProvider二、EmbeddedFileProvider三、CompositeFileProvider四、源码下载一、PhysicalFileProvider物理文件代码如下(示例): IFileProvider fileProvider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); var contents = fileProvider1.Get
2021-01-22 14:33:26
286
原创 路由和终结点
文章目录一、路由注册方式1.路由模板的方式2.RouteAttribute 方式二、路由约束1.是否必选2.正则表达式3.范围约束4.自定义 IRouteConstraint三、URL 生成1.LinkGenerator来生成url2.LinkGenerator来生成path四、源码下载一、路由注册方式1.路由模板的方式代码如下(示例): [HttpGet("{name:required}")] [Obsolete] public bool Require(strin
2021-01-22 11:01:08
223
原创 浅析静态文件中间件
文章目录一、/就是wwwroot的根目录二、目录形式显示文件1.在ConfigureServices注入2.在Configure配置三、文件目录映射为url地址四、MapWhen形式五、源码下载一、/就是wwwroot的根目录app.UseDefaultFiles();//默认就是根目录的index,DefaultFileNames里面包含了indexapp.UseStaticFiles();// /就是wwwroot的根目录会导航到wwwroot下的index.html二、目录形式显示文件1
2021-01-21 17:49:26
254
原创 日志框架的基本使用
文章目录一、控制台形式1.依赖注入2.appsettings.json定义配置节点3.泛型方式二、作用域形式1.在appsettings.json文件中开启作用域2.使用BeginScope形式调用三、结构化形式1.Serilog.AspNetCore包2.上端调用四、源码下载一、控制台形式1.依赖注入代码如下(示例):using Microsoft.Extensions.Logging;using System;using System.Collections.Generic;using S
2021-01-20 15:28:08
286
1
原创 异常处理
文章目录一、异常处理页1.引入库二、使用步骤1.引入库2.读入数据总结一、异常处理页1.引入库代码如下(示例)二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_default
2021-01-19 11:01:21
228
原创 几种不同给的校验数据方式
文章目录一、直接注册Validate验证函数二、实现 IValidateOptions接口1.编写实现接口 IValidateOptions类2.添加拓展方法来注册校验服务三、使用 Microsoft.Extensions.Options.DataAnnotations1.编写校验特性2.注入ValidateDataAnnotationsDataAnnotations四、源码下载一、直接注册Validate验证函数代码如下(示例): public static IServiceColle
2021-01-15 10:41:43
266
原创 浅析选项框架
文章目录一、IOption1.构造函数注入IOptions2.添加扩展方法3.ConfigureServices注入服务二、IOptionsSnapshot1.构造函数注入IOptionsSnapshot2.添加扩展方法3.ConfigureServices注入服务三、IOptionsMonitor1.构造函数注入IOptionsMonitor2.添加扩展方法3.ConfigureServices注入服务四、源码下载一、IOption一般用于读取配置文件的值,每次请求都是读取的是相同的值。1.构造函数
2021-01-14 17:52:59
290
原创 配置框架研究
文章目录一、Key/Valve形式二、CommandLine形式1.调试Tab中配置2.命令格式支持总结一、Key/Valve形式代码如下(示例): static void Main(string[] args) { IConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(new Dictionary<str
2021-01-13 15:57:50
203
原创 Autofac的使用
文章目录一、注入方式1.一般普通方式注入2.基于Name注入3.基于属性注入4.基于动态代理的 AOP5.子容器二、使用步骤1.引入库2.注入接口IServiceProviderFactory3.ConfigureContainer实现4.测试获取实例二、源码下载总结一、注入方式1.一般普通方式注入代码如下(示例):builder.RegisterType<ClientService>().As<IService>();//默认是瞬时的2.基于Name注入代码如下(示例
2021-01-08 17:37:30
361
原创 作用域和对象释放行为
文章目录一、根容器和子容器1.根容器2.子容器二、实现 IDisposable 接口类型的释放1.DI 只负责释放由其创建的对象实例2.读入数据总结一、根容器和子容器1.根容器根容器是由通过ServiceCollection Build出的容器。2.子容器子容器是由容器创建出来的。RequestService是指ASP.NET Core框架为每个HTTP请求创建的子容器,就是当前请求的容器。代码如下(示例): using (IServiceScope serviceScope = HttpC
2021-01-08 11:18:41
441
原创 依赖注入
依赖注入一、为什么要实现依赖注入?二、生命周期1.单例 Singleton2.作用域 Scoped2.瞬时(暂时) Transient三、注册方式1.花式注册2.尝试注册3.注册泛型模板4.Remove&Replace四、实例获取方式1.通过标注FromServices2.通过构造函数五、源码下载总结一、为什么要实现依赖注入?第一:可以轻松管理类之间的依赖,帮助在构建应用时遵循设计原则,确保代码的可维护性和可扩展性。第二:ASP.NET Core 的整个架构中,依赖注入框架提供了对象创建和生命
2021-01-05 17:35:19
241
原创 .NetCore的启动过程
启动过程一、启动执行顺序1.ConfigureWebHostDefaults2.ConfigureHostConfiguration3.ConfigureAppConfiguration4.ConfigureServices5.ConfigureLogging6.Startup7.ConfigureServices8.Configure二、源码下载一、启动执行顺序1.ConfigureWebHostDefaults一般是配置组件和容器的组件2.ConfigureHostConfiguration配
2021-01-05 14:54:38
1293
原创 Rabbit基础概念
Rabbit基础概念一、分布式异步队列1.优点2.缺点二、Exchange1.Direct Exchange2.Fanout Exchange3.Topic Exchange4.Header Exchange三、消息不丢可靠性保证1.消息持久化2.生产端消息确认3.消费端的消息确认一、分布式异步队列1.优点异步处理,响应快,增加了数据库服务器的承载能力;削峰,把流量的高峰分解到不同的时间段来处理;解耦(扩展性就更强),让UI和业务独立演化;高可用,如果某一个处理器发生了故障,对其他
2021-01-05 10:53:53
1176
原创 EFCore实现读写分离
读写分离一、数据访问层接口1.接口定义2.接口实现3.读写操作枚举类设计4.连接字符串读取设计5.DBContext拓展6.获取DBContext接口设计7.获取DBContext接口实现8.DBContext动态替换连接二、上端数据库连接字符串配置三、源码下载一、数据访问层接口1.接口定义代码如下(示例):using EFCoreDemo.CodeFirst.Migrations.Extend;using System;namespace EFCoreDemo.CodeFirst.IServ
2020-12-30 14:25:54
1830
2
原创 Rabbit消息队列环境搭建
环境搭建一、安装包准备1.Erlang语言运行环境2.RabbitMQ安装包二、搭建步骤1.安装esl-erlang_22.1_windows_amd642.配置环境变量总结一、安装包准备1.Erlang语言运行环境在windows下就是esl-erlang_22.1_windows_amd64安装包下载2.RabbitMQ安装包比如windows版本就是rabbitmq_server-3.8.3下载二、搭建步骤1.安装esl-erlang_22.1_windows_amd64记住安装
2020-12-28 23:29:01
289
原创 EFCore初探
EFCore初探一、如何使用DBFirst1.引入包2.程序包控制台执行3.添加日志框架二、如何在CodeFirst中做数据迁移1.定义数据库实体模型2.定义DBContext3.引入包4.在程序包管理控制台执行如下命令三、如何延迟加载1.引入包2.测试样例四、表关系映射1.一对一关系映射2.一对多关系映射3.多对多关系映射五、源码下载总结一、如何使用DBFirst1.引入包代码如下(示例):Microsoft.EntityFrameworkCore Microsoft.EntityFramewo
2020-12-28 09:52:51
346
原创 EF 中的导航属性和事务
EF高级用法一、DBContext生命周期1.数据库连接2.实现了IDisposable接口3.SaveChanges方法4.建议用法二、延迟加载(懒加载)/贪婪加载1.原理解析2.延迟查询在Linq中的使用3.AsQueryable&AsEnumerable三、导航属性1.带有主外键关系2.Inculude方法来贪婪加载3.自增Id自动填充三、事务/分布式事务1.SaveChanges会开启事务2.BeginTransaction3.TransactionScope4.分布式事务四、源码下载一
2020-12-26 11:17:23
977
原创 EF状态跟踪和Cache
状态跟踪和Cache一、状态跟踪是什么?二、测试步骤1.实体各种状态变化2.Attach后实体状态变化3.Attach后,Find后实体状态变化4.AsNoTracking使用三、性能提升点1.Cache使用2.按需更新四、源码下载总结一、状态跟踪是什么?要提交到数据库中的对象和DBContext对象存在某种关系:对象是否给Context跟踪;一次SaveChanges 就把在DBContext中的所有操作都提交到数据库中去了,SaveChange就是以Context为维度的。官方对实体的各种状态变
2020-12-23 16:35:31
696
原创 EF中Linq的用法
Linq用法举例1.In操作2.分页3.Like4.Join5.LeftJoin6.UpdateInfoBySql7.QueryDataBySql8.Sub Query9.Group by10.Max11.Min12.Avg13.Count14.Group by 带有Where条件15.多列Group by16.Group by expression17.Any18.Any中带有where条件19.All20.Not Contain21.Group by后,求Min值总结用法举例1.In操作代码如下(
2020-12-23 09:25:13
2328
原创 EF映射之三:CodeFirst
CodeFirst一、CodeFirst是什么?二、使用步骤1.创建实体和DBContext对象2.在项目中添加EntityFramework包3.写测试来触发OnModelCreating三、映射策略1.CreateDatabaseIfNotExists2.DropCreateDatabaseAlways3.DropCreateDatabaseIfModelChanges四、源码下载一、CodeFirst是什么?先写数据库实体代码和DBContext对象,然后业务逻辑,通过代码来生成数据库。二、使
2020-12-20 18:32:28
724
原创 EF映射之二:CodeFirstFromDB
CodeFirstFromDB一、CodeFirstFromDB是什么?二、使用步骤1.创建数据库2.在项目中选择【数据】->[ADO.NET实体模型]3.选择模型内容和数据连接3.选择数据库对象三、映射方式1.特性映射2.OnModelCreating映射3.定义Mapping配置类四、源码下载总结一、CodeFirstFromDB是什么?先创建数据库,然后根据数据库中的对象(表、视图)来映射不同的实体,不支持存储过程、函数。二、使用步骤1.创建数据库样例如下:USE [EFDBFir
2020-12-20 14:05:52
387
原创 EF映射之一:DBFirst
DBFirst前言一、DBFirst是什么?二、使用步骤1.创建数据库2.在项目中选择【数据】->[ADO.NET实体模型]3.选择数据驱动程序,本实例是Sql Server4.生成edml文件5.测试数据库CRUD操作前言EF有四种映射方式,分别是DBFirst、CodeFirst、CodeFirstFromDB、ModuleFrist。本文就先介绍DBFirst。一、DBFirst是什么?先创建数据库,然后根据数据库中的对象(表、视图、存储过程、函数)来映射不同的实体。二、使用步骤
2020-12-20 00:25:25
2264
2
转载 coreplot 支持64位解决
http://blog.youkuaiyun.com/mangosnow/article/details/42060237
2016-09-02 16:08:02
385
原创 引用dll时已解析为false
一个project引用另外一个project时,当被引用项目的目标框架低于引用项目的目标框架时,会出现这种情况。并且可以new,也可以点出被引用class的方法和属性,但是无法build。
2016-09-02 16:04:04
728
转载 ASP.NET自定义错误页面
ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件、Application_Error 事件以及应用程序配置文件 (Web.config)。如果您不调用 Server.ClearError 或者捕获 Page_Error 或 Application_Error 事件中的错误,则将根据 Web.config 文件的 部分中的设置处理错误。在 部分,可
2011-06-28 08:32:00
542
原创 加法多线程
package Threads;public class AddThread implements Runnable{ private volatile static int sum = 0; public AddThread(){ } public void run(){ { for(int i = 0;i10;
2011-06-07 14:21:00
958
转载 sql常见面试题目
题目1:<br />======<br /> 为管理岗位业务培训信息,建立3个表:<br />S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄<br />C (C#,CN ) C#,CN 分别代表课程编号、课程名称<br />SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩<br /><br />1. 使用标准SQL嵌套语句查询选修课程名称为 税收基础 的学员学号和姓名<br />Select SN,
2011-03-27 17:36:00
735
原创 SQL经典面试题及答案
<br />1.一道SQL语句面试题,关于group by<br />表内容:<br />2005-05-09 胜<br />2005-05-09 胜<br />2005-05-09 负<br />2005-05-09 负<br />2005-05-10 胜<br />2005-05-10 负<br />2005-05-10 负<br /><br />如果要生成下列结果, 该如何写sql语句?<br /><br /> 胜 负<br />2005-05-09 2 2<br />2005-
2011-03-26 23:21:00
682
原创 IE6模拟min-width CSS expression IE6 死循环问题
<br />CSS Expression<br />——相信许多人在用这个方法实现容器最小宽度时都时常会被莫名其妙的死机所困扰,最后往往无果而终。<br />这里特别需要指出的是两点:<br />1. IE6-的标准模式下和quirk模式下代表视口的元素是不一样的,前者为<html>,后者则为<body>;<br />2. IE6-在以上两种不同的模式下,其对包含内容溢出时的不同表现形式,从而导致了赋值判断上的死循环。解释起来有些啰嗦,自己实践一下吧。<br />CSS Expression实现最小宽度源码
2010-08-28 21:34:00
2012
原创 未指定 INSTANCESHAREDWOWDIR 命令行值。如果指定INSTANCESHAREDDIR 值,则必须指定该值
<br />插入光盘后不要用autorun的安装,使用命令行安装!cd进安装光盘的根目录,输入命令:<br />setup.exe /INSTALLSHAREDDIR="D://Program Files//Microsoft SQL Server//" /INSTALLSHAREDWOWDIR="D://Program Files (x86)//Microsoft SQL Server//"<br />安装即可,其中INSTALLSHAREDDIR为x64部件安装的路径,INSTALLSHAREDWOWD
2010-07-14 18:28:00
24276
2
原创 产生流水号
<br />一个产生流水号(年月日+5位流水号)的存储过程<br />现在客户有一个需求,要产生一个流水号,如090611+000001(年月日+五位流水号),此流水号在数据库表中是主键,且为varchar类型。如果在当天之内插入此流水号,则此流水号递增,即:090611000001,090611000002,090611000003,如果不是在当天时间,必须从090612000001开始递增。我写了个存储过程实现它。<br />create procedure test_proc<br /> @id n
2010-06-16 16:53:00
1928
原创 项目经验的描述
最近收到一些同学的简历,感觉虎头蛇尾,前半段的自我介绍之类的写的不错,后面的项目经验和技能掌握情况就写的逊色很多。有可能是技术掌握的不好,怕人家深问,所以惜字如金;也有可能是烂熟于心,张口就来,就等着别人问了;又或者语文学得实在不怎么样,写不出来;应该不会是想让我们帮你写吧!!! 不管什么原因吧,项目经验描写的越详细对求职越有帮助!一般简历到公司后会有HR或者直接技术部的人来看,HR一般对技术不太了解,但是她在筛选简历的时候,会按照部门提交的要求来筛选,她会在简历里搜索相应的关键字,
2010-06-15 11:50:00
14497
转载 转载:关于社会保险和四金
<br />去年的今天我也是一名刚毕业的应届毕业生,说实话啥都不懂,总认为只要自己有本事走遍天下都不怕,但做了一年之后,我开始明白,很多企业有很多问题,比如说福利问题、加班问题、管理问题,可能你含辛茹苦进入了一家所谓的知名企业,最后却发觉被啃了,这种感受肯定不好受!为了让大家少吃亏,我决定写这篇文章,希望对大家有所帮助! <br /> 我们先来说说社会保险。我相信就社会保险而言,大家最熟悉的名词莫过于“四金”了,四金其实就是养老保险金、医疗保险金、失业保险金、住房公积金。但很多单位都说“我们交四金的!
2010-06-15 10:10:00
1879
转载 面试70问经典回答
<br />1、请你自我介绍一下你自己。<br />回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的<br />事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”。企业喜欢有礼<br />貌的求职者。<br />
2010-06-15 10:02:00
1617
转载 简单程序员求职记(杜拉拉翻版)
<br />变色人生主要讲述了几个不同青年从学校毕业奋斗的经历,他们有的依旧保持从前的那种淳朴和老实,有些却变得世故圆滑,他们的命运究竟如何?他们是否又会相遇?中间离奇的程序员的爱情又会变成什么样的呢?敬请期待《变色人生》,我是simcoder简单的程序员。<br /> <br />故事发生在现在,绝非从前;故事是真实的,也可能是虚假的;有用的东西或经验互相借鉴,无用的口水,大家当看肥皂剧。<br /> <br />!这篇不是小说内容,一些求职经验吧!<br /> <br />差不多我们快毕业了,有些担忧,
2010-06-14 17:13:00
726
原创 程序员应聘面试经验谈
<br />第一、 基础很重要,不要生疏了。<br />不管应聘什么开发岗位,基础永远是最重要的。IT业不停地在炒作新概念,昨天是SOA,今天是云计算。我们永远不知道明天流行什么,但是只要有踏实的基础,辅以较好的学习能力,要跟上步伐也不会太难。<br />所以绝大多数公司都会特别看重应聘人员的基础能力,比如编程语言本身的特性、基本的算法和数据结构、进程间通信等等,毕竟这些具体技术问题有客观的答案,而且在各具体行业都是相通的。<br />工作三年以上的人,往往都习惯了“拷贝+修改”式的工作,用不到的基础知
2010-06-14 16:56:00
621
转载 IT职场求生法则
<br />摘要:我在IT职场打滚超过10年了,从小小的程序员做到常务副总。相对于其它行业,IT职场应该算比较光明的了,但也陷阱重重,本文说说我的亲身体会,希望大家能在IT职场上战无不胜! 作者:张传波 软件知识大学 www.umlonline.cn/school/ 正文:我会先先说一些无论是你在什么职位都适用的通用法则,然后专门针对不同职位讲讲应该注意的求生法则。 通用法则法则1:忍耐是一种美德。为了生活,很多时候你必须要忍!忍受你的领导对你的无理责骂、同事的白眼、客户的无理取闹,承受工作的巨大压力,忍受
2010-06-14 16:37:00
561
EFEntityStateAndCache.zip
2020-12-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人