上一页 1 2 3 4 5 6 7 8 ··· 16 下一页
摘要: 在《ASP.NET Core中Ocelot的使用:API网关的应用》一文中,我介绍了如何在ASP.NET Core中使用Ocelot实现API网关。在介绍的过程中,引出了一个问题,就是服务之间相互调用的代码能不能别写死(hard code)在代码里,至少也得通过配置文件来指定吧?说的没错,很好的建议... 阅读全文
posted @ 2018-11-03 19:21 dax.net 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 在向微服务体系架构转型的过程中,我们都会毫不意外地遇到越来越多的现实问题,而这些问题却并不是因为功能性需求而引入的。比如,服务的注册与发现,是应用程序在云中部署、提供可伸缩支持的主要实现方案,在特定的微服务架构中,实践这样的云设计模式是利远远大于弊的。今我们需要讨论的API网关也是这样的一种微服务实... 阅读全文
posted @ 2018-10-29 22:34 dax.net 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 在上文中,我介绍了如何使用Azure DevOps为ASP.NET Core应用程序案例:tasklist搭建持续集成环境。在持续集成的过程中,Azure DevOps的Build Pipeline会下载tasklist的源代码,使用Docker容器环境进行项目构建,将构建的容器镜像推送到Docke... 阅读全文
posted @ 2018-10-26 20:56 dax.net 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 在上文中我介绍了ASP.NET Core应用程序容器化时需要注意的几个问题,并给出了一个案例应用程序:tasklist。今天接着上文的内容,继续了解一下如何使用Azure DevOps进行ASP.NET Core应用程序的持续集成。为了便于讨论,本文会将持续集成(Continuous Integra... 阅读全文
posted @ 2018-10-09 22:06 dax.net 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 上个月15日,上海MVP做了一次线下的技术分享活动,我分享的主题是《快速构建容器化的ASP.NET Core应用程序》,有关这次活动的简报,可以参考这里。另外,我的主题分享的PPT也可以点击这里下载。由于线下活动时间紧迫,没有办法把所有的内容完全仔细地讲解一遍,最后使用一个小时左右的时间做了一个ta... 阅读全文
posted @ 2018-10-07 22:27 dax.net 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 2018年9月15日下午,几位来自上海的MVP自发组织了一次线下技术交流会,仍然是MVP胡浩牵头,由朱兴亮组织,由我、卿毅和胡浩给参会的朋友们做了相关技术话题的分享,并在茶歇时间与大家进行了讨论交流。在这次活动中,我们分享的具体主题是:陈晴阳:《快速构建容器化的ASP.NET Core应用程序》。在... 阅读全文
posted @ 2018-10-02 20:54 dax.net 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 在工作中遇到一个问题,就是如何判断化学分子式的数据格式。在介绍“如何”这个问题之前,先简单介绍一下化学分子式的数据格式。通常情况下,计算机处理化学分子式,也都是将分子式序列化成一种数据模型,然后对这个数据模型进行处理。比如:水分子H2O,就由两个氢原子和一个氧原子组成,氢和氧之间有化学键相连,于是,... 阅读全文
posted @ 2018-09-15 21:47 dax.net 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 最近在项目中实现了一套基于Windows Forms的开发框架,个人对于本身的设计还是比较满意的,因此,打算将这部分设计整理成文档,通过一些UML图形比如类图(Class Diagram)来描述整个框架的设计。然而,并没有找到一款合适的UML设计工具,商用版的功能强大,但即便是个人许可,一个Lice... 阅读全文
posted @ 2018-09-09 21:34 dax.net 阅读(2221) 评论(2) 推荐(2) 编辑
摘要: 应用程序的开发不仅仅是写代码这点事情。假设你正在开发一个能够支持多次部署的微服务,此时你就需要有一个合理的应用程序配置方案,以便在开发和生产环境中能够方便地选用不同的配置参数,并且能够在部署到容器服务(比如ACS或者Kubernetes)时,这些参数能够被动态地、合理地设置。本文通过最简单的形式,对... 阅读全文
posted @ 2018-08-25 22:21 dax.net 阅读(1286) 评论(0) 推荐(1) 编辑
摘要: 今年7月份,再一次成功连任微软全球最有价值专家(Microsoft Most Valuable Professional)。说心里话,今年连任成功,让我感觉有些意外,因为从去年开始,MVP项目进入了全球性的改革阶段,不仅续任周期发生了变化,技术方向和考核标准也都发生了一定程度的变更,变得更为完善。在... 阅读全文
posted @ 2018-08-13 21:12 dax.net 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 最近微服务架构特别火爆,就跟人工智能、区块链一样,软件架构设计如果不提微服务,感觉就像是与世界先进的架构风格和开发技术脱了节似的,各方各面都无法彰显高大上的气质。本来再打算使用一套系列文章来讨论微服务的方方面面,但仔细考量之后发现,事情并没那么简单:首先抛开系列文章烂尾现象不说,单是微服务架构本身,... 阅读全文
posted @ 2018-07-28 21:23 dax.net 阅读(658) 评论(0) 推荐(1) 编辑
摘要: 在上一讲中,我介绍了CQRS架构中聚合与聚合根的实现,并通过单元测试验证了设计的正确性。这部分内容比较难,在实际应用过程中存在一定的门槛,所以感觉关注的读者并不是特别多。然而,CQRS本身作为一种事件驱动型架构,解决了现在流行的微服务中的一些细节问题,我认为还是非常有必要探究讨论的。这部分内容我会在... 阅读全文
posted @ 2018-07-14 19:50 dax.net 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 最近工作上遇到一个问题,就是有将近200万个CSV文件,每个CSV文件包含了成千上万条实验数据,CSV以一个不连续的整数值作为文件名,比如:1.CSV、2.CSV、3.CSV、5.CSV等等。另外又有200万个XML文件,每个XML文件的文件名与CSV的文件名一一对应,在这些XML文件中,定义了所对... 阅读全文
posted @ 2018-07-04 21:30 dax.net 阅读(638) 评论(0) 推荐(1) 编辑
摘要: 这是件非常有趣的事情,最近在工作中,使用了C#中的部分方法(partial methods)。其实,C#的部分方法并不是什么新鲜事情,早在2007年左右,随着C# 3.0的发布,引入了部分方法的概念,它与部分类(partial class)的应用场景是类似的:解决代码生成器产生的代码与用户代码之间的... 阅读全文
posted @ 2018-06-26 21:43 dax.net 阅读(2639) 评论(0) 推荐(1) 编辑
摘要: 1月20日正值大寒节气,在微软MVP朱兴亮的组织牵头下,上海MVP自发举办了题为《跟社区专家一起聊聊混合云、领域驱动、区块链和数字营销》的技术交流会。四名来自上海的MVP分别在自己擅长的技术领域做了主题演讲,并现场回答了与会者提出的问题。虽然天气阴冷细雨绵绵,但这并没有阻挡大家利用周末休息时间远道而来,对我们的活动支持捧场的热情,现场基本座无虚席。在MVP进行相关的技术分享和介绍之后,大家仍然觉得... 阅读全文
posted @ 2018-03-25 20:47 dax.net 阅读(993) 评论(0) 推荐(1) 编辑
摘要: 2018年3月24日下午,几位上海MVP自发组织了一次线下的技术交流会,主要由MVP胡浩牵头,我(陈晴阳)、刘鑫、朱兴亮和胡浩各自做了一次主题演讲,具体主题是: 陈晴阳:《这还是我认识的Visual C#吗?》:主要介绍了C# 7.0、7.1和7.2的新特性,以及如何在开发环境与持续集成环境中使用这 阅读全文
posted @ 2018-03-25 15:24 dax.net 阅读(801) 评论(5) 推荐(0) 编辑
摘要: 去年12月份,随着Visual Studio 2017 Update 15.5的发布,Visual C#迎来了它的最新版本:7.2. 在这个版本中,有个让人难以理解的新特性,就是private protected访问修饰符(Access Modifier)。至此,C#语言的访问修饰符有以下几种: p 阅读全文
posted @ 2018-03-19 21:07 dax.net 阅读(2341) 评论(2) 推荐(10) 编辑
摘要: 在前面两篇文章中,我详细介绍了基本事件系统的实现,包括事件派发和订阅、通过事件处理器执行上下文来解决对象生命周期问题,以及一个基于RabbitMQ的事件总线的实现。接下来对于事件驱动型架构的讨论,就需要结合一个实际的架构案例来进行分析。在领域驱动设计的讨论范畴,CQRS架构本身就是事件驱动的,因此,我打算首先介绍一下CQRS架构下相关部分的实现,然后再继续讨论事件驱动型架构实现的具体问题。当然,C... 阅读全文
posted @ 2018-03-18 09:45 dax.net 阅读(2847) 评论(7) 推荐(10) 编辑
摘要: 最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程。虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现,并没能解决我的问题,有些点写的不是特别详细,让人看完之后感觉还是云里雾里。最后,我决定重新复习一下这个经典而古老的问题,并将所得总结于此,然后会有一个实例对这个问题进行演示,希望能够帮助到大家。.NET下Assembly的加载过程.NET下... 阅读全文
posted @ 2018-03-07 20:50 dax.net 阅读(6059) 评论(18) 推荐(60) 编辑
摘要: 在上文中,我们讨论了事件处理器中对象生命周期的问题,在进入新的讨论之前,首先让我们总结一下,我们已经实现了哪些内容。下面的类图描述了我们已经实现的组件及其之间的关系,貌似系统已经变得越来越复杂了。其中绿色的部分就是上文中新实现的部分,包括一个简单的Event Store,一个事件处理器执行上下文的接口,以及一个基于ASP.NET Core依赖注入框架的执行上下文的实现。接下来,我们打算淘汰Pass... 阅读全文
posted @ 2018-02-04 09:46 dax.net 阅读(10419) 评论(24) 推荐(41) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 16 下一页