自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 解决iis自动回收导致第一次访问慢和定时任务暂停的问题

IIS会定时回收,类似于自动重新启动网站。我们都有知道网站启动后第一次访问往往会比较慢,网站启动后没有访问,过段时间iis会回收,请求再来的时候会和网站刚刚启动的时候一样,需要等待一段时间,很不舒服,这个就是因为iis回收导致的。定时回收除了会出现上面的情况外,还会将我们托管的后台任务回收掉,导致我们的后台任务终止执行,直到进来一个请求(网站内任意地址)任务启动,那么如果请求很久没来,这个任务将无法被启动,错过任务应该执行的档口。虽然我们可以通过调整自动回收的时间,甚至设置他不自动回收,但这样始终不是最

2020-09-23 09:32:50 2722 1

原创 给.net core安排后台定时任务,并且解决iis自动回收导致任务被终止的问题

1、在 ASP.NET Core 中使用托管服务实现后台任务很多时候我们需要给程序添加一些后台任务,帮我处理一些需要定时处理的任务,比如定时发送邮件,定时做一些统计之类的工作,这时候我们可以写一个windows服务来搞定,或者在现有的webapi项目中添加定时。写windows服务来处理后台任务固然是个比较好的选择,但是这样就会增加运维成本,原本只有一个项目,现在有两个,最主要的是windows服务很容易被遗忘掉,升级或者迁移的时候增加风险,对于一些比较简单的任务,我选择直接在 ASP.NET Co

2020-09-16 15:02:55 9561 8

原创 包你懂设计模式之:适配器模式(Adapter)

适配器模式是这个专栏的第一个结构型设计模式,之前六篇介绍了创建型设计模式,欢迎大家查看和交流。适配器模式:将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器这个模式在我们生活中可以找到很多原型,比如下图中的港版插头需要接在内地的插座上,需要一个适配器,通过这个适配器使得原本不兼容的插座和插头可以连接起来,而我们又没有去改造插头或插座:在我们实际开发中也常常存在这样的情况,比如我们现在有下面这样一个接口,抽象了对数..

2020-09-08 13:54:41 478 1

原创 包你懂设计模式之:原型模式(Prototype Pattern)

原型模式属于创建型的设计模式,也是我设计模式系列中最后一个创建型的设计模式,之前的创建型模式有:简单工厂、工厂方法、抽象工厂、建造者模式、单例模式,直接点击查看。原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的实例。我们原先实例化对象一般用new关键字,或者用我们前面的提到的设计模式来获取实例。而原型模式给我们一种前所未用的全新体验,它不用去创建实例,不管实例化的过程多么复杂,完全不关心,只要有一个现成的实例就行,复制粘贴搞定。对象的实例在内存中存储,通过copy对应的这块内存区域能

2020-09-04 16:21:26 479

原创 包你懂设计模式之:建造者模式(Builder Pattern)

建造者设计模式也是创建型设计模式,我们之前说过创建型设计模式关注对象的创建,当创建比较复杂的对象时我们可能会用到工厂模式,那啥时候用建造者模式呢?答案是创建比复杂还复杂的对象时。当我们需要创建的对象创建时还需要其他对象的实例时,而且还需要一定的顺序进行实例化,我们可以考虑使用创建者模式。这边我准备基于上一讲抽象工厂使用的例子来讲解,建议先去看抽象工厂,再来看建造者。我们以电脑的生产为例,假设我们生产电脑只需要处理器(CPU)、存储器和显示器这三个,所以要生产出一台电脑,就必须要先拿到这三个实例,然后

2020-09-02 10:39:14 374

原创 包你懂设计模式之:抽象工厂

今天我们来到三大工厂设计模式的最后一个抽象工厂模式,之前我们聊过简单工厂和工厂方法两种设计模式,感兴趣的同学可以点进去看看,可以更快的了解今天要讲的内容。抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。这一点有别于我们之前的两种工厂,首先三种工厂模式都属于创建型的设计模式,他关注对象的创建,而前面介绍的两种都是关注单个对象的创建,而这一种则是关注的多个相关的或相互依赖的对象的创建。...

2020-08-31 16:13:41 426

原创 包你懂设计模式之:工厂方法模式

在之前的博客中我介绍了简单工厂这个设计模式,今天我们需要里面的内容作为基础来讲解工厂方法模式,没有看到这边文章的小伙伴请戳:简单工厂模式通过上面的准备知识,我们了解了简单工厂是如何实现的,我们现在来分析一下。我们在客户端想要得到一个操作的实例时,需要调用 CalculateFactory 类中的GetCalculate() 方法,并且传递一个参数告诉工厂类我们需要实例化哪个具体操作,这样工厂类就会帮我们创建出来。这样做的好处在于客户端不在关注实例创建的具体细节,就能拿到对应实例。工厂类代码:pu.

2020-08-17 10:02:01 355

原创 包你懂设计模式之:单例模式(三种实现)

单例模式属于创建型的设计模式,它的产生是为了解决“一个类只能有一个实例”,它的定义为:“保证一个类只能有一个实例,并提供一个访问它的全局访问点”,从字面上的理解是很简单的,且看如何操作实现。一、常规实现1、私有化构造函数,不允许外部实例化创建对象的实例我们用New关键字,后面跟上类的构造方法,这样我们就完成了一次对象的创建,很显然我们按照这样的方法操作多次就会产生多个实例,所以我们为了防止类被多次实例化,首先要做的就是将构造函数私有化(public 改成 private)。2、提供一个外..

2020-08-13 12:21:28 1071

原创 二维码自动批量生成

前段时间公司有这样一个需求:由于疫情影响,单位食堂没有开放,过来参加招聘会的企业无法就餐,替代的解决方案是给他们提供附近一家餐饮店的抵用券。饭店给我提供若干个可以使用的编号,但是我们需要以二维码的形式发放下去,所以就有了这个课题。支持批量生成二维码的库其实还蛮多的,最终选择QRCoder来做,由于只有不到半天的时间,所以一切就都从简,对我们来说是一次性的东西。下面我简单分享一下我的思路和代码,...

2020-03-30 10:50:12 3570

原创 asp.net core的输入模型验证

楼主去做志愿者啦,最近才上班,荒废了将近一个月的时间,手和脑袋都退化了,今天跟大家一起学习下模型验证吧。

2020-03-02 16:09:36 3336

原创 System.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。

问题:System.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误。在 FETCH 语句中选项 NEXT 的用法无效。使用ef core做分页查询的时候遇到这个问题,后来发现问题是出在数据库上面,测试的时候用的数据库是2016的,没有出现上述问题,但是发布到正式环境(sql server 2008 )后问题就出现。解决方...

2020-01-21 10:57:52 9446 2

原创 asp.net core 配置第三方日志组件(serilog)

得益于.net core的模块化设计,我们可以很轻松的加入我们喜欢的功能和组件,今天我们就简单的说一下他的Logger组件。.net core 自带有日志组件,功能也比较完善,通过依赖注入的方式使用也很方便,应对一般的用途是足够的。但很多时候我们会选择使用第三方更加完善的日志组件,比较常用的有Nlog和Serilog,下面我们以Serilog为例简单的介绍一下如何在.net core中配置和使用第...

2020-01-14 12:35:18 4267

原创 .net core 修改Razor页面样式后刷新没用?

asp.net core 3.0+ 开发mvc项目的时候,我们修改了razor页面的样式或者修改了页面的元素,任我们如何刷新页面这些更改都不会生效,必须要停掉网站,再重新开启才能看到变化,调整前端样式的时候这个简直是噩梦。为啥会这样?因为:“Razor SDK 默认启用 Razor 文件的生成时和发布时编译” ,意思就是说.cshtml的页面是生成时或者发布的时候就生成好的,所以后面的更改不会...

2020-01-09 09:10:36 4114

原创 2020你来啦!

今天是19年得最后一天了,明天就是崭新得2020!2019年是我人生的一次重要转折。我把城南的房子卖掉,换到了中环内,从此走上了还贷的漫长道路。为了响应这次搬家,我做了一个不聪明的决定,辞掉了工作,进了国企继续码代码,虽然同样是搬砖,但是却大不一样。原先的公司有完整的开发团队,每一个环节都有像样的大牛顶着,同时保持着很好的学术氛围,大家经商一起探讨技术,这个很不容易,而且和同事们相处的十分融洽...

2019-12-31 14:02:40 1129 1

原创 The LINQ expression '****' could not be translated and will be evaluated locally.

The LINQ expression 'Contains([x].ExamId)' could not be translated and will be evaluated locally.今天看日志的时候,看到一条这样的警告,翻译过来是Linq 表达式无法翻译成sql,将在本地计算,就是因为这个Contains方法,没办法解析成sql语句,将会跳过这个条件,将数据拉到内存,然后再执行这个...

2019-12-08 16:09:28 4445

原创 .net core中的Tag Helper

TagHelper(标签助手),它替代了自之前MVC版本的HtmlHelper,大多数HtmlHelper方法都有对应的taghelper,专注于在cshmlt中辅助生成html标记,使得razor页面看上去不会像原先到处混着后端代码,他提内置了很多预定义的标签和属性,同时也支持自定义,让我们像写html标签一样,代码更和谐了,而且它还支持智能提示。下面我们来了解一些:Js Tag helpe...

2019-12-08 11:00:06 1934

原创 今日收获(3)

博客脱更好久了,最近比较忙,上班忙工作,下班忙生活,典型的被绑架的人生!好在项目收尾了,年底获取能轻松点。最近也没怎么学习,只凑空看了点视频。随便记录一点吧:1、跨站脚本攻击(XSS),是目前最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。页面中的输入框,...

2019-12-05 21:09:03 672

原创 包你懂设计模式之:简单工厂模式

简单工厂模式属于创建型的设计模式,主要用它来创建需要特定的实例。从它的命名联想到我们现实生活中的工厂,我让他给我造手机,好了手机造好了;我让他造一个笔记本,也没问题;我让他造航母,“对不起我们是 apple ,不产这个!”。简单工厂模式就是对这种场景的抽象,我们要啥不需要我们自己造,工厂来!简单工厂模式的实现基于面向对象的继承和多态,首先定义一个父类(抽象类),然后下面我们定义一系类的类来...

2019-10-17 12:13:23 739

原创 今日收获(2)

今天的收获其实蛮大的,突破了项目中的一个技术难点,以后有时间我单独写一篇。晚上回家又看了一遍泛型,虽然我看了很多遍,还是小有收获,懒惰了,直接贴笔记吧。...

2019-09-26 20:14:11 695

原创 今日收获(1)

今天的收获:1、对于常用的字符串判断,我比较习惯使用string.IsNullOrEmpty(),顾名思义如果字符串为null或者是""时,会被捕捉到,但是这个方法对字符串只有空格或者制表符的(空白字符串)没反应。我也知道有这么一个方法:string.IsNullOrWhiteSpace(),我之前对它一直存在误解,认为他只会捕捉null和空白字符串(字符串只有空格或者制表符的),而对stri...

2019-09-25 21:12:34 747

原创 在 sys.servers 中找不到服务器 '******'。请验证指定的服务器名称是否正确。

配置了一台测试数据库,但是在运行的时候出现了异常:在 sys.servers 中找不到服务器 'srv_lnk_kshrbase'。请验证指定的服务器名称是否正确。如果需要,请执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers。仔细研究定位到出错的sql语句:select * checkinfo from srv_lnk_kshrbase.KshrBa...

2019-07-24 09:55:39 10127

原创 无关技术,但是关乎技术高度的两项技能

其中第一项技能一定是英文无疑了,作为一个程序猿如果英文特别溜,读官方文档如行云流水一般,github ,stackoverflow等网站毫无障碍,那么他的程序人生一定时开了挂的存在,相比较其他人,他可以更加快速且精准的get到新的技术,更加容易找到问题的核心,同样也更加容易接受高深的技术。我很遗憾自己是一个英文菜菜,从一开始接触英文的时候开始,成绩就凉凉,以至于参加了两次高考英文的平均分才60...

2019-07-11 10:20:03 827

原创 C#第六讲:面向对象之封装

封装、继承和多态是面向对象的三大特性,这一讲我们封装的特性。封装性是个比较概念化的东西,从我们实际的生活中我们可以找到很多的列子来类比这一特性。比如我们常用的手机,所有的零部件都被安装在手机的外壳之中,我们正常情况下,不能把cpu扣下来,也不能把里面的主板掰断,较大程度上保证了内部的硬件安全,我们只能通过暴露在外面的按钮,触摸屏等外设来操控手机实现我们操作。回到我们软件中,我们可以把支撑某...

2019-06-13 10:52:31 2316 10

转载 编程世界的脚手架(Scaffolding)是啥意思

相信我们经常会看到脚手架这个名词,但是不知道他具体说的什么东西,今天特地去了解了一下:Scaffolding is a meta-programming method of building database-backed software applications. It is a technique supported by some model-view-controller frame...

2019-06-05 14:20:49 3361

原创 c#中关于list去重的问题

List在我们日常的开发中可谓是常客,我个人也非常喜欢,从数据库查询出来的数据或者excel导入的数据,我都喜欢先转换为对应的类型list,在搭配System.Linq下的拓展方法,基本可以应付绝大多数的数据操作了。今天在做导入的时候,需要对数据先进行去重处理,发现有几个容易忽略的点,发出来大家一起探讨一下。System.Linq下为IEnumerable(List是它的子类)拓展了Disti...

2019-04-30 10:27:16 6764 3

原创 设计模式速记口诀

一、创建型速记口诀“单抽工建原”Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。 ...

2019-03-25 16:01:13 2421

原创 C#第五讲:类和成员的访问修饰符

面试中最最容易考察到的基础知识点非访问修饰符莫属,几乎笔试中必考,当然咯BAT大厂或者面试架构师什么的,肯定不会玩这么基础的。今天我们就来了解一下c#中的访问修饰符。C#语言中中涉及访问修饰的关键字一共有四个,组成了6种()不同的访问级别,分别是:public、private、internal、protected和组合修饰符protectedinternal 以及privateprot...

2019-03-25 14:15:02 4007

原创 开源工作流框架 workflow-core 的学习和使用

首先感谢作者能写出如此优雅的作品,作品地址:Workflow-Core由于工作需要,需要在项目中添加工作流引擎,经过产品经理的选型,决定用这个,并且将这个任务分配给我。经过几天的研究,我在这边做一点简单的介绍,给将要使用的同仁做一点参考。详细的可以参考项目的wiki文档,不过都是英文的。在我理解工作流是对某一个具体任务和任务之间业务规则的抽象,他将任务拆分为若干步骤,然后将这些步骤串起...

2019-03-14 16:55:01 17322 3

原创 设计模式之分类和介绍

不知道你是不是也像我一样,从事开发三两年甚至更久,却没有系统的了解过设计模式,甚至一度认为这是个没用的东西?设计模式是个好东西,每一位程序员不管你是那个门派的,学习设计模式都对你大有裨益!在往后的一段时间内我会逐个实现(使用c#)这二十三种设计模式,希望通过这二十三个疗程下来,我的体质能上一个台阶,哈哈。。。以下是菜鸟教程中对设计模式的介绍:设计模式(Design pattern)代表了最...

2019-02-22 16:46:17 781

原创 C#第4讲:轻松应对C#的几种参数类型

c#语言中有几种参数类型,这边做个简单的总结,供大家参考和学习。1、具名参数具名参数顾名思义就是出具参数的名字,在调用有参数的方法时,我们需要根据参数的顺序和类型给参数赋值,否则程序就会报错的。而具名参数就可以打破这种约束,使用起来也是非常的简单: public int Reduce(int fir , int sec){ return fir ...

2018-12-21 16:43:47 3707 14

原创 2019年,小白程序员的提升之路

2018年又见底了!!!时间总是在不经意间流逝的,从学习出来参加工作,已经整整三年了。有了三年的工作经验应该达到一个什么样的高度,无论是知识技能还是工资待遇,感觉我都矮人半截。哪里毕业生起薪多少多少,程序员平均工资又多少多少,每每看到这些报道,都有说不出的滋味,感觉中年危机已经来了一样呢,生怕自己被这个行业所抛弃。这个行业的技能迭代的很快,当我爱上Jquery的时候,有人告诉我Jquery已经...

2018-12-21 14:12:56 1802

转载 sql server中事务和锁(详细)

存储过程中为了保持一致性,往往会用到事务,但是如果使用不当会造成意想不到的情况,看到一票文章,写的非常好,看完受益匪浅,在此记录一下。原文链接:https://www.cnblogs.com/knowledgesea/p/3714417.html. ...

2018-12-17 13:53:56 981

原创 sql server update多个字段(可以通过一个子查询更新多字段)

1、update语句使用别名我们通常的update语句是这样写的:update table set coumn1 = value1 where column2 = "test";如果我们想用别名的话,我们会这样去写:update table t set t.coumn1 = value1 where t.column2 = "test";但是这样是会报错的,正确的写法是这样的...

2018-12-10 16:12:22 61638

原创 邮件发送公网IP并通过openpop.dll读取邮件中的IP

一直想买一台服务器,挂挂网站数据库。周末看到自己淘汰下来的笔记本,想想不如自己折腾一台。于是开搞。。。安装系统、配置环境轻车熟路,统统搞定。网站可以发布到公网上,可以访问,远程也可以连接了,但是突然发现我路由器重启一次,公网IP 就变一次,蛋疼了。于是想弄个服务检测IP,当我的公网IP发生变化的时候通过邮件通知到我。以下是获取公网IP 的代码:private static string ...

2018-11-19 16:15:15 1313 2

原创 JavaScript简单计算器

用来js写了一个简单的计算器,得益于jquery的便捷性,很少的代码就可以实现。演示地址:https://maaici.github.io/JS_Calculator/以下是js源码//计算结果变量var resault = 0;//前一个按下的运算符var op = "";//输入的数字是否从头开始var isNew = false;$(functio...

2018-09-10 13:39:37 1067

转载 select查询语句的30条优化建议

工作中往往要对十分庞大的数据库进行查询,如果语句写的不到位,那速度可是会慢的吓人,甚至系统压根就没办法正常使用了,因此优化语句是每一个程序员必备的技能。以下是网上流传比较广泛的30种SQL查询语句优化方法:1、应尽量避免在 where 子句中使用!=或<>操作符,否则将放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order ...

2018-08-14 09:22:55 6867 1

原创 C#第3讲:类、对象和类的主要成员

上一讲中我们大概了解了类这个概念,这一讲我们来进一步的学习一下这个概念。c#是一个面向对象的语言,类就是对现实世界某个事物的抽象,比如“人”他在程序中就可以用一个类来表示,人有年龄(Age),有姓名(Name),人还可以吃饭(Eat)和睡觉(Sleep),根据这几点我们就可以创建一个类来表示人。如下(先大概看一下,不懂没关系,看完这一讲就懂了): class People { ...

2018-08-13 15:27:59 6839 9

原创 C#第2讲:初识类和命名空间

一、说明类(class):他是构成程序的主体,是最基础的C#类型,将状态(字段)和操作(方法和其他函数成员)组合在一个单元中。命名空间(nameSpace) : 简单来说就是放类的地方。假如图书馆中的书是一个类,那命名空间就是图书架。一般他将类按照功能或者某种特性分类组织,方便我们使用和维护。二、代码说明using System;namespace HelloWorld...

2018-08-11 19:27:22 10123 4

原创 C#第1讲:C#快速入门

我觉得自己的基础知识不是很牢靠,基础决定了上层建筑,所以想系统的巩固和学习一下,在此记录自己的学习笔记,来和大家共同学习,同时也希望能够帮助一些想入门的同学,因此我会从最基础的hello world开始。给自己定个小目标,出个30讲先。一、C#语言简介首先我告诉你c#很简单,它甚至不需要你有编程功底就可以学习,如果你愿意去努力,几个月就可以入门的,但是往后要想拿更多的钱,这几个月的积累是远...

2018-08-09 13:08:16 15226 3

转载 Schema是什么鬼?

        在学习SQL的过程中,会遇到一个让你迷糊的Schema的概念。实际上,schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。        如果把database看作是...

2018-07-13 16:00:40 12849 4

二维码批量生成工具(QRCodeFactory)

该工具用于批量生成二维码,可以将多个字符串一次性生成二维码,支持直接录入和excel导入两种方式,可选择目标输出路径

2020-03-30

空空如也

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

TA关注的人

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