随笔分类 - .Net Core

摘要: 本文的概念性内容来自深入浅出设计模式一书 项目需求 这是一个糖果机的需求图. 它有四种状态, 分别是图中的四个圆圈: No Quarter: 无硬币 Has Quater 有硬币 Gumball Sold 糖果卖出 Out of Gumball 没有糖果了 这个图很像一个状态图. 每个圆圈就是一个状阅读全文
posted @ 2018-04-23 15:24 solenovex 阅读(525) | 评论 (4) 编辑
摘要: 本文的概念性内容来自深入浅出设计模式一书. 本文需结合上一篇文章(使用C# (.NET Core) 实现迭代器设计模式)一起看. 上一篇文章我们研究了多个菜单一起使用的问题. 需求变更 就当我们感觉我们的设计已经足够好的时候, 新的需求来了, 我们不仅要支持多种菜单, 还要支持菜单下可以拥有子菜单.阅读全文
posted @ 2018-04-22 16:01 solenovex 阅读(261) | 评论 (0) 编辑
摘要: 本文的概念来自深入浅出设计模式一书 项目需求 有两个饭店合并了, 它们各自有自己的菜单. 饭店合并之后要保留这两份菜单. 这两个菜单是这样的: 菜单项MenuItem的代码是这样的: 最初我们是这样设计的, 这是第一份菜单: 这是第2份菜单: 同时有两个菜单存在的问题 问题就是多个菜单把事情变复杂了阅读全文
posted @ 2018-04-20 15:25 solenovex 阅读(408) | 评论 (3) 编辑
摘要: 本文的概念内容来自深入浅出设计模式一书. 项目需求 有一家咖啡店, 供应咖啡和茶, 它们的工序如下: 咖啡: 茶: 可以看到咖啡和茶的制作工序是差不多的, 都是有4步, 其中有两步它们两个是一样的, 另外两步虽然具体内容不一样, 但是都做做的同一类工作. 现在问题也有了, 当前的设计两个类里面有很多阅读全文
posted @ 2018-04-17 14:36 solenovex 阅读(584) | 评论 (4) 编辑
摘要: 本文的概念内容来自深入浅出设计模式一书 现实世界中的适配器(模式) 我带着一个国标插头的笔记本电脑, 来到欧洲, 想插入到欧洲标准的墙壁插座里面, 就需要用中间这个电源适配器. 面向对象的适配器 你有个老系统, 现在来了个新供应商的类, 但是它们的接口不同, 如何使用这个新供应商的类呢? 首先, 我阅读全文
posted @ 2018-04-16 16:57 solenovex 阅读(480) | 评论 (1) 编辑
摘要: 本文的概念内容来自深入浅出设计模式一书. 项目需求 有这样一个可编程的新型遥控器, 它有7个可编程插槽, 每个插槽可连接不同的家用电器设备. 每个插槽对应两个按钮: 开, 关(ON, OFF). 此外还有一个全局的取消按钮(UNDO). 现在客户想使用这个遥控器来控制不同厂家的家用电器, 例如电灯,阅读全文
posted @ 2018-04-14 11:54 solenovex 阅读(547) | 评论 (2) 编辑
摘要: 使用 C#/.NET Core 实现单体设计模式阅读全文
posted @ 2018-04-11 12:20 solenovex 阅读(1342) | 评论 (12) 编辑
摘要: 本文的概念性内容来自深入浅出设计模式一书. 上一篇文章讲了简单工厂和工厂方法设计模式 http://www.cnblogs.com/cgzl/p/8760250.html, 使用的是披萨店的例子. 文将继续使用这个例子, 这里要用到抽象工厂. 披萨店的需求变更 现在披萨店在各地授权了很多连锁分店, 阅读全文
posted @ 2018-04-10 13:08 solenovex 阅读(233) | 评论 (1) 编辑
摘要: 用C#(.NET Core) 实现简单工厂(简单工厂不是设计模式)和工厂方法模式阅读全文
posted @ 2018-04-09 18:22 solenovex 阅读(267) | 评论 (1) 编辑
摘要: 上一篇写的是使用静态基类方法的实现步骤: http://www.cnblogs.com/cgzl/p/8726805.html 使用dynamic (ExpandoObject)的好处就是可以动态组建返回类型, 之前使用的是ViewModel, 如果想返回结果的话, 肯定需要把ViewModel所有阅读全文
posted @ 2018-04-08 16:17 solenovex 阅读(515) | 评论 (1) 编辑
摘要: 使用静态基类方案让 ASP.NET Core 实现遵循 HATEOAS Restful Web API. 还有一个动态的方案, 以后再写.阅读全文
posted @ 2018-04-06 10:57 solenovex 阅读(368) | 评论 (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 阅读(746) | 评论 (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 阅读(210) | 评论 (0) 编辑
摘要: 该文章综合了几本书的内容. 某咖啡店项目的解决方案 某咖啡店供应咖啡, 客户买咖啡的时候可以添加若干调味料, 最后要求算出总价钱. Beverage是所有咖啡饮料的抽象类, 里面的cost方法是抽象的. description变量在每个子类里面都需要设置(表示对咖啡的描述). 每个子类实现cost方阅读全文
posted @ 2018-04-03 14:45 solenovex 阅读(744) | 评论 (5) 编辑
摘要: 观察者模式 这里面综合了几本书的资料. 需求 有这么个项目: 需求是这样的: 一个气象站, 有三个传感器(温度, 湿度, 气压), 有一个WeatherData对象, 它能从气象站获得这三个数据. 还有三种设备, 可以按要求展示气象站的最新数据. WeatherData的结构如下: 有3个get方法阅读全文
posted @ 2018-04-01 21:55 solenovex 阅读(1000) | 评论 (6) 编辑
摘要: 把EFCore使用的数据库连接字符串放在环境变量里, 在Mac系统会遇到问题, 因为bash里的export不支持环境变量名有冒号:阅读全文
posted @ 2018-03-26 19:37 solenovex 阅读(71) | 评论 (0) 编辑
摘要: 从头编写asp.net core 2.0 web api 基础框架 (5) + 使用Identity Server 4建立Authorization Server (7) 可运行前后台源码阅读全文
posted @ 2018-03-17 21:15 solenovex 阅读(1387) | 评论 (9) 编辑
摘要: DIP 依赖反转原则 Dependency Inversion Principle 的定义如下: 高级别的模块不应该依赖于低级别的模块, 他们都应该依赖于抽象. 假设Controller依赖于Repository的实例/实现, 而不是interface: 这个例子里面Controller是高级别模块阅读全文
posted @ 2018-03-16 14:45 solenovex 阅读(343) | 评论 (0) 编辑
摘要: 比较入门级别的介绍... 使用的是dotnet cli 和 VSCode, 我使用Mac和Windows10三台电脑写的文章, 所以里面的命令行截图不太一样.阅读全文
posted @ 2018-03-12 10:32 solenovex 阅读(1227) | 评论 (5) 编辑
摘要: 使用angular 5 和 asp.net core web api 上传文件, 添加验证, 显示进度等. 还有一点Chrome等技巧.阅读全文
posted @ 2018-03-10 16:20 solenovex 阅读(717) | 评论 (4) 编辑
摘要: 这部分主要介绍了 angular到全局异常处理, 以及会遇到到问题(ErrorHandler里面注入Toastr服务), 涉及到Zone的概念. 后边还介绍了sentry.io这个Logging云服务.阅读全文
posted @ 2018-03-09 21:38 solenovex 阅读(590) | 评论 (0) 编辑
摘要: 这部分主要写了 asp.net core 下使用 entity framework core 进行集合的增删改操作.阅读全文
posted @ 2018-03-09 14:30 solenovex 阅读(565) | 评论 (5) 编辑
摘要: 使用VS Code, 在mac(linux也可以)/win10上面开发一个基于asp.net core 2.0/sql server linux版/angular 5/bootstrap 4的小项目. 这里还用到了docker. 第2篇文章主要介绍了Entity Framework core的集成, 数据库迁移, 建立web api, 使用rest client做测试, 使用viewmodel和automapper, 还有配置angular前台项目, 添angular cli命令, zencoding, 路由, httpclient等. 还有vscode一些快捷操作. 我用的是mac.阅读全文
posted @ 2018-03-01 21:15 solenovex 阅读(699) | 评论 (1) 编辑
摘要: 使用VS Code, 在mac(linux也可以)/win10上面开发一个基于asp.net core 2.0/sql server linux版/angular 5/bootstrap 4的小项目. 这里还用到了docker. 第一篇文章主要介绍了开发环境的搭建, 以及建立和配置asp.net core 2.0 web api项目. 当然只使用vs code. 我用的是mac.阅读全文
posted @ 2018-02-27 22:04 solenovex 阅读(1066) | 评论 (10) 编辑
摘要: 第一部分: https://www.cnblogs.com/cgzl/p/8450179.html 本文是基于Windows10的. Debugging javascript 打开wwwroot/js/site.js, 写一段简单的js代码: 可以设置断点, 但是由于整个项目是用于服务器端的. 而j阅读全文
posted @ 2018-02-17 07:45 solenovex 阅读(786) | 评论 (4) 编辑
摘要: 使用Visual Studio Code来开发asp.net core项目. 对vscode的使用进行了介绍, 并且包含一些技巧, 例如: 代码段 snippet, zen coding, debugging等等.阅读全文
posted @ 2018-02-16 17:08 solenovex 阅读(1171) | 评论 (3) 编辑
摘要: 数据驱动的测试, xUnit.net的 Data-driven Tests. 使用Data-driven test来减少重复的测试代码, 使用Theory: InlineData, MemberData, 外部数据, 自定义属性标签.阅读全文
posted @ 2018-02-12 14:23 solenovex 阅读(288) | 评论 (1) 编辑
摘要: 第1部分: http://www.cnblogs.com/cgzl/p/8283610.html 第2部分: http://www.cnblogs.com/cgzl/p/8287588.html 请使用这个项目作为练习的开始: https://pan.baidu.com/s/1ggcGkGb 测试的阅读全文
posted @ 2018-02-10 11:24 solenovex 阅读(293) | 评论 (0) 编辑
摘要: 第一部分: http://www.cnblogs.com/cgzl/p/8283610.html 下面有一点点内容是重叠的.... String Assert 测试string是否相等: 然后你需要Build一下,这样VS Test Explorer才能发现新的test。 运行测试,结果Pass: 阅读全文
posted @ 2018-01-16 12:55 solenovex 阅读(385) | 评论 (6) 编辑
摘要: 一. 导读 为什么要编写自动化测试程序(Automated Tests)? 可以频繁的进行测试 可以在任何时间进行测试,也可以按计划定时进行,例如:可以在半夜进行自动测试。 肯定比人工测试要快。 可以更快速的发现错误。 基本上是非常可靠的。 测试代码与生产代码紧密结合。 使得开发团队更具有幸福感! 阅读全文
posted @ 2018-01-14 16:31 solenovex 阅读(473) | 评论 (1) 编辑
摘要: [新添加] 本文对应的源码 (多个flow, clients, 调用python api): https://github.com/solenovex/Identity-Server-4-Python-Hug-Api-Jwks 目前正在使用asp.net core 2.0 (主要是web api)做阅读全文
posted @ 2018-01-11 21:44 solenovex 阅读(473) | 评论 (0) 编辑
摘要: asp.net core 2.0 一些有用有趣的设置. 面向(targeting)不同的.net版本: 打开asp.net core 2.0的项目文件: xxx.csproj, 这部分: TargetFramework就是指向的版本. 也可以指向多个.net版本, 那就使用TargetFramewo阅读全文
posted @ 2018-01-09 20:37 solenovex 阅读(218) | 评论 (0) 编辑
摘要: 预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二部分: http://www.cnblogs.com/cgzl/p/7788636.html 第三部阅读全文
posted @ 2017-11-25 10:41 solenovex 阅读(1344) | 评论 (8) 编辑
摘要: 预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二部分: http://www.cnblogs.com/cgzl/p/7788636.html 第三部阅读全文
posted @ 2017-11-08 10:58 solenovex 阅读(1664) | 评论 (9) 编辑
摘要: 预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二部分: http://www.cnblogs.com/cgzl/p/7788636.html 第三部阅读全文
posted @ 2017-11-07 15:09 solenovex 阅读(1759) | 评论 (24) 编辑
摘要: 预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二部分: http://www.cnblogs.com/cgzl/p/7788636.html 上一部阅读全文
posted @ 2017-11-06 16:12 solenovex 阅读(1581) | 评论 (6) 编辑
摘要: 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第一部分主要是建立了一个简单的Identity Server. 接下来继续: 建立Web Api项目 如图可以在同一个解决方案下建立一个web api项目: (可选)然后修改webapi的launchS阅读全文
posted @ 2017-11-05 21:24 solenovex 阅读(1822) | 评论 (7) 编辑
摘要: 预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 本文内容基本完全来自于Identity Server 4官方文档: https://identityserver4.readthedocs.io/ 官方文档很详细的. 使用OAuth可以更安全, 这里我阅读全文
posted @ 2017-11-03 22:01 solenovex 阅读(3147) | 评论 (16) 编辑
摘要: 第一部分: http://www.cnblogs.com/cgzl/p/7755801.html 第二部分: http://www.cnblogs.com/cgzl/p/7763397.html 第三部分: http://www.cnblogs.com/cgzl/p/7768147.html 后台代阅读全文
posted @ 2017-11-03 07:19 solenovex 阅读(1226) | 评论 (10) 编辑
摘要: 第一部分: http://www.cnblogs.com/cgzl/p/7755801.html 第二部分: http://www.cnblogs.com/cgzl/p/7763397.html 后台代码: https://github.com/solenovex/asp.net-core-2.0-阅读全文
posted @ 2017-11-02 19:45 solenovex 阅读(861) | 评论 (3) 编辑
摘要: 上一篇: http://www.cnblogs.com/cgzl/p/7755801.html 完成client.service.ts: 我个人比较喜欢 observable的方式而不是promise. 然后再Client.Component里面, 注入ClientService, 在NgOnIni阅读全文
posted @ 2017-11-01 10:53 solenovex 阅读(857) | 评论 (0) 编辑
摘要: 这是一篇学习笔记. angular 5 正式版都快出了, 不过主要是性能升级. 我认为angular 4还是很适合企业的, 就像.net一样. 我用的是windows 10 安装工具: git for windows: 官网很慢, 所以找一个镜像站下载: https://github.com/way阅读全文
posted @ 2017-10-31 15:14 solenovex 阅读(1735) | 评论 (11) 编辑
摘要: 我要使用asp.net core 2.0 web api 搭建一个基础框架并立即应用于一个实际的项目中去. 这里需要使用identity server 4 做单点登陆. 下面就简单学习一下相关的预备知识. 基于Token的安全验证体系 这个比较简单, 简单来说就是为了证明我们有访问权限, 我们首先需阅读全文
posted @ 2017-10-28 15:02 solenovex 阅读(2344) | 评论 (7) 编辑
摘要: New 这是一个典型的情况, 我们需要在运行时来实例化一些具体的类. 在需要修改或者扩展的时候我们就需要改这段代码. 一个程序中可能会多次出现类似的代码, 这使得维护和更新非常困难而且容易出错. 通过面向接口的编程, 我们可以把自己从各种变化中隔离出来, 因为如果代码是面向接口的话, 那么通过多态机阅读全文
posted @ 2017-10-18 15:43 solenovex 阅读(345) | 评论 (0) 编辑
摘要: 第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html 第4部分:h阅读全文
posted @ 2017-10-16 16:32 solenovex 阅读(2386) | 评论 (10) 编辑
摘要: 第1部分: http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html Githu阅读全文
posted @ 2017-10-13 21:54 solenovex 阅读(2354) | 评论 (9) 编辑
摘要: 第一部分: http://www.cnblogs.com/cgzl/p/7637250.html 第二部分:http://www.cnblogs.com/cgzl/p/7640077.html Github源码地址:https://github.com/solenovex/Building-asp.阅读全文
posted @ 2017-10-12 07:16 solenovex 阅读(5373) | 评论 (16) 编辑
摘要: 上一篇是: http://www.cnblogs.com/cgzl/p/7637250.html Github源码地址是: https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scrat阅读全文
posted @ 2017-10-09 18:23 solenovex 阅读(3244) | 评论 (6) 编辑
摘要: 工具: 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 阅读(6252) | 评论 (31) 编辑
摘要: 需求 做一个咖啡店的订单系统。 买咖啡时,可以要求加入各种调料,如奶,豆浆,摩卡等。咖啡店会根据调料的不同收取不同的费用。订单系统要考虑这些。 初版设计 然后下面就是所有的咖啡....: cost方法将计算出咖啡加上各种调料后的价格。 这种方法太笨了。。。必须换一种。 再版设计 使用实例变量和继承!阅读全文
posted @ 2017-10-04 18:27 solenovex 阅读(108) | 评论 (0) 编辑
摘要: 《深入浅出设计模式》学习笔记第二章 需求: 开发一套气象监测应用,如图: 气象站,目前有三种装置,温度、湿度和气压感应装置。 WeatherData对象追踪气象站的数据,并更新到布告板,布告板(目前是三个:目前状况、气象统计、天气预报)用来显示目前的天气状况给用户。 初步设计 目前的要求: 1.其中阅读全文
posted @ 2017-10-03 20:48 solenovex 阅读(141) | 评论 (0) 编辑