Fred的博客

Fred's Blog

.Net Core 引用自定义类库

.Net Core中引用自定义类库

问题   .Net Core多项目开发类库引用问题。 准备   假设现在有如下2个项目。一个Host,一个Core,其中Host依赖Core。 引用Crawler.Core 打开Host项目下的project.json文件,在dependencies节点下添加Crawler.Core,其中需要注意的是 “target”: “project” 这个属性,它表示引用的是项目而不是nu...

适配器模式

每一个模式描述了一个在外面周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。

意图   将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 分类 类适配器 对象适配器 适用性 下列情况可以考虑使用适配器模式: 你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容懂类)一起工作。 ...

自定义可序列化对象

自定义可序列化对象

定义   有些时候我们序列化一个自定义的类时并不想将它的所有成员都序列化,比如下面例子中A类中的count字段,它的值是由另外2个字段的值相加操作得出,既然是这样就没有必要序列化这个对象,只要在反序列化之后再加一次就行,这样就减少了序列化后对象的尺寸(同时降低在将序列化后的对象写如磁盘上时的存储需求和在网络上进行传送时对带宽的需求) 原理 要做到这个效果只需对在类成员count使用[No...

SQL Server实现行列转换

场景 早上一个朋友问我这样一个问题,如下图: 一看其实就是sql中的列转行问题。东西也不是很复杂,就不废话了直接上脚本,一看就明白了。 重点 Sql Server 2000通过聚合函数+ SELECT…CASE 语句实现行列转换。 Sql Server2005之后加了PIVOT和 UNPIVOT函数来实现行转列、列转行。这里就不多说,可以看微软的文档。 创建测试表及测试数据...

简单工厂模式

每一个模式描述了一个在外面周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。

场景假设   有这样一个应用场景,月底到了,公司需要给所有的员工按照他们的职位结算当月的薪资,现在公司里面分别有部门主管、部门经理、部门员工,这3大类职位,那财务部需要按照他们的职位分别通过公式去计算他们应得的工资。有一天,老板来视察发现大家都好辛苦,决定招聘几个鼓励师给大家打打气,于是部门又多了一个新职位叫做鼓励师,这时候财务部月度算薪资的时候该怎么办? 场景分析   按照上面的假设,...

DotNet Core安装篇

在'跨平台'、'开源',这些关键字大行其道的今天,我们的大微软不甘落后终于也推出了.Net Core,它是参考.Net Framework开发的一套跨平台.Net基础。既然他说跨平台那今天咱是不是就直接在Mac环境下敲一个Hellow World出来。下面就是在Mac环境下搭建的 .Net Core环境。

.Net Core是什么 在维基百科上它是这样介绍的: .NET Core 是.NET Framework的新一代版本,是微软开发的第一个官方版本,具有跨平台 (Windows、Mac OSX、Linux) 能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台,它经常也会拿来和现...

WebPack初体验

最近公司新项目在前端使用了一套新的View框架(React),所以原来那套Knockout+requiseJS技术组合有点不适合用在这里,Google了一下发现一个用于React开发和模块管理的最佳工具是一个叫Webpack的货。所以下面就是对它的一个最基本了解。

webpack是什么 Webpack是当下热门的前端资源模块化管理和打包工具,它可以将松散的模块按照依赖规则打包成符合生产环节部署的前段资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候在异步加载,通过loader的转换,任何形式的资源都可以视作模块,比如CommonJs模块、AMD模块、CMD模块、ES6模块、CSS、image、JSON、LESS等。 安装 1.安装No...

断点续传

这篇博客主要介绍单线程和多线程分别如何实现HTTP协议下的资源分段下载,底部附代码链接。

意图 模拟迅雷等下载工具,将一个大文件拆分成多次请求。 条件 服务端资源地址必须支持范围请求。 判断是否支持的方法只需要看Responses Header中是否带有Accept-Ranges响应头。 Accept-Ranges 表明服务器是否支持指定范围请求及哪种类型的分段请求 Accept-Ranges: bytes 原理 涉及到的主要Request Header   R...

单例模式

每一个模式描述了一个在外面周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。

作用   绕过常规实例的构造器,提供一种机制保证一个类只有一个实例。 意图   保证一个类仅有一个实例,并提供一个该实例的全局访问点 缺点 一般不要支持ICloneable结果,因为这可能会导致多个对象实例 一般不要支持序列化,这样可能会导致多个实例的创建 只考虑类对象创建的管理,没有考虑对象销毁的管理 实现方式 //No....