摘要: 预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 本文内容基本完全来自于Identity Server 4官方文档: https://identityserver4.readthedocs.io/ 官方文档很详细的. 使用OAuth可以更安全, 这里我阅读全文
posted @ 2017-11-03 22:01 solenovex 阅读(3089) 评论(16) 编辑
摘要: 工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相关知识就不介绍了, 这里主要是从头编写一个asp.net core 2.0 web api的基础框架阅读全文
posted @ 2017-10-08 16:56 solenovex 阅读(6058) 评论(31) 编辑
摘要: 本文的概念来自深入浅出设计模式一书 项目需求 有两个饭店合并了, 它们各自有自己的菜单. 饭店合并之后要保留这两份菜单. 这两个菜单是这样的: 菜单项MenuItem的代码是这样的: 最初我们是这样设计的, 这是第一份菜单: 这是第2份菜单: 同时有两个菜单存在的问题 问题就是多个菜单把事情变复杂了阅读全文
posted @ 2018-04-20 15:25 solenovex 阅读(342) 评论(3) 编辑
摘要: 本文的概念内容来自深入浅出设计模式一书. 项目需求 有一家咖啡店, 供应咖啡和茶, 它们的工序如下: 咖啡: 茶: 可以看到咖啡和茶的制作工序是差不多的, 都是有4步, 其中有两步它们两个是一样的, 另外两步虽然具体内容不一样, 但是都做做的同一类工作. 现在问题也有了, 当前的设计两个类里面有很多阅读全文
posted @ 2018-04-17 14:36 solenovex 阅读(539) 评论(4) 编辑
摘要: 本文的概念内容来自深入浅出设计模式一书 现实世界中的适配器(模式) 我带着一个国标插头的笔记本电脑, 来到欧洲, 想插入到欧洲标准的墙壁插座里面, 就需要用中间这个电源适配器. 面向对象的适配器 你有个老系统, 现在来了个新供应商的类, 但是它们的接口不同, 如何使用这个新供应商的类呢? 首先, 我阅读全文
posted @ 2018-04-16 16:57 solenovex 阅读(457) 评论(1) 编辑
摘要: 本文的概念内容来自深入浅出设计模式一书. 项目需求 有这样一个可编程的新型遥控器, 它有7个可编程插槽, 每个插槽可连接不同的家用电器设备. 每个插槽对应两个按钮: 开, 关(ON, OFF). 此外还有一个全局的取消按钮(UNDO). 现在客户想使用这个遥控器来控制不同厂家的家用电器, 例如电灯,阅读全文
posted @ 2018-04-14 11:54 solenovex 阅读(531) 评论(2) 编辑
摘要: 使用 C#/.NET Core 实现单体设计模式阅读全文
posted @ 2018-04-11 12:20 solenovex 阅读(1305) 评论(12) 编辑
摘要: 本文的概念性内容来自深入浅出设计模式一书. 上一篇文章讲了简单工厂和工厂方法设计模式 http://www.cnblogs.com/cgzl/p/8760250.html, 使用的是披萨店的例子. 文将继续使用这个例子, 这里要用到抽象工厂. 披萨店的需求变更 现在披萨店在各地授权了很多连锁分店, 阅读全文
posted @ 2018-04-10 13:08 solenovex 阅读(223) 评论(1) 编辑
摘要: 用C#(.NET Core) 实现简单工厂(简单工厂不是设计模式)和工厂方法模式阅读全文
posted @ 2018-04-09 18:22 solenovex 阅读(244) 评论(1) 编辑
摘要: 上一篇写的是使用静态基类方法的实现步骤: http://www.cnblogs.com/cgzl/p/8726805.html 使用dynamic (ExpandoObject)的好处就是可以动态组建返回类型, 之前使用的是ViewModel, 如果想返回结果的话, 肯定需要把ViewModel所有阅读全文
posted @ 2018-04-08 16:17 solenovex 阅读(500) 评论(1) 编辑
摘要: 使用静态基类方案让 ASP.NET Core 实现遵循 HATEOAS Restful Web API. 还有一个动态的方案, 以后再写.阅读全文
posted @ 2018-04-06 10:57 solenovex 阅读(353) 评论(2) 编辑
摘要: 之前写了一篇C#装饰模式的文章提到了.NET Core的Stream, 所以这里尽量把Stream介绍全点. (都是书上的内容) .NET Core/.NET的Streams 首先需要知道, System.IO命名空间是低级I/O功能的大本营. Stream的结构 .NET Core里面的Strea阅读全文
posted @ 2018-04-05 16:45 solenovex 阅读(714) 评论(2) 编辑
摘要: 官网: http://reactivex.io/ 它支持基本所有的主流语言. 这里我简单介绍一下Rx.NET. 之前我写了几篇关于RxJS的文章, 概念性的东西推荐看这些: http://www.cnblogs.com/cgzl/p/8641738.html http://www.cnblogs.c阅读全文
posted @ 2018-04-04 09:36 solenovex 阅读(194) 评论(0) 编辑
摘要: 该文章综合了几本书的内容. 某咖啡店项目的解决方案 某咖啡店供应咖啡, 客户买咖啡的时候可以添加若干调味料, 最后要求算出总价钱. Beverage是所有咖啡饮料的抽象类, 里面的cost方法是抽象的. description变量在每个子类里面都需要设置(表示对咖啡的描述). 每个子类实现cost方阅读全文
posted @ 2018-04-03 14:45 solenovex 阅读(737) 评论(5) 编辑
摘要: 观察者模式 这里面综合了几本书的资料. 需求 有这么个项目: 需求是这样的: 一个气象站, 有三个传感器(温度, 湿度, 气压), 有一个WeatherData对象, 它能从气象站获得这三个数据. 还有三种设备, 可以按要求展示气象站的最新数据. WeatherData的结构如下: 有3个get方法阅读全文
posted @ 2018-04-01 21:55 solenovex 阅读(991) 评论(6) 编辑
摘要: RxJS -- Subscription 简介: 取消订阅, 毁灭函数, 批量取消, retry/retryWhen原理.阅读全文
posted @ 2018-03-28 11:05 solenovex 阅读(86) 评论(0) 编辑
摘要: 把EFCore使用的数据库连接字符串放在环境变量里, 在Mac系统会遇到问题, 因为bash里的export不支持环境变量名有冒号:阅读全文
posted @ 2018-03-26 19:37 solenovex 阅读(70) 评论(0) 编辑