8 ludewig

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1w+

让DotnetCore.CAP和SignalR接力数据推送

DotnetCore.CAP是一款用于实现数据最终一致性的开源类库,而SignalR是微软ASP.NET/ASP.NET Core体系下的实时数据传输解决方案,两者看起来没有任何交集,但我们的业务需求可以让它们携手同行。...

2020-04-28 22:15:35

Docker(Windows版)安装zookeeper+kafka

近期在对已有项目进行升级维护时时需要还原生产环境中关于kafka数据订阅的问题,但是又不想在自己电脑上装一堆东西,所以想到了用Docker安装kafka用来还原生产环境进行测试。1.安装zookeeper启动Docker服务,打开CMD窗口或powershell窗口。搜索zookeeper镜像docker search zookeeper拉取zookeeper镜像docker pul...

2020-04-27 22:14:34

温故知新(2)--程序员不得不知的HTTP Status Code

在网络应用开发蓬勃发展的今天,TCP/IP协议族已经成了网络应用开发不可或缺的一部分,而应用层的HTTP协议更是无法绕开,如果一个程序员连HTTP状态码都不知道是什么的话,十有八九是要遭人白眼的。在工作中遇到有些同学对HTTP协议概念理解不清或者不知道该怎么使用HTTP状态码,甚至有人误以为“我向Server发送一个HTTP Request,只要能收到一个HTTP Response就说明我代码写...

2020-04-05 11:04:41

ABP学习实践(十三)--数据传输对象、实体、数据库表的映射

ABP框架中使用了数据传输对象和实体的概念,而实体一般又是与数据库的表结构相对应的。在ABP框架中可以分别为数据传输对象DTO与实体Entity、实体Entity与数据库表Table建立映射关系,既可以减少一定的编码工作量,也能降低数据传输对象、实体与数据库表之间的耦合性。一.对象映射–数据传输对象与实体之间的映射在ABP框架中,数据传输对象(Data Transfer Objects)也就是...

2020-04-01 22:02:16

微服务笔记(1)--初识

微服务概念的提出和实践已经有多年,网上也有很多微服务的文章和教程。经过这段时间的学习,将自己对于微服务的理解和实践过程整理出来。1.微服务从哪里来?1.1微服务是一种软件架构风格微服务并不是凭空产生的,它是随着软件架构不断发展进化而出现的产物。软件架构的发展大体上分为三个阶段:单体应用架构、分布式组件化应用架构、面向服务SOA应用架构。网上也有文章将微服务定义为SOA架构之后的第四代架构,...

2020-03-19 00:09:56

ABP学习实践(十二)--模块系统

模块Module是ABP框架体系很重要的概念,不同的功能组件包括项目之间都是以模块的形式进行关联的。在ABP框架的启动过程中,模块的遍历、初始化、启动也是很重要的一环。...

2020-03-01 22:43:04

ABP学习实践(十一)--框架启动流程

在经过前面的实践后,利用ABP框架解决简单的业务需求(增删改查)基本是没问题了。然而ABP框架的能力可不止这些,想要更好的使用那些高级特性,就需要了解下ABP框架的结构和工作原理了。1.框架结构1.1项目依赖关系再次回顾下系列文章第一篇中所描述的项目依赖关系。应用层Application和基础设施层EntityFrameworkCore都依赖于领域层Core,而呈现和分布式应用层Web又...

2020-03-01 20:51:21

EntityFramework Core连接国产达梦数据库

近期意外发现了国产达梦数据库对.NET Core环境下EFCore的支持,把测试过程分享如下。1.测试环境.Net Core 2.1EntityFramework Core 2.2.4DM v8(达梦)Window 10 x642.踩坑记录近些年数据库等基础设施国产化的呼声越来越高,达梦也算国产数据库中知名度较高的了,不过开发生态环境还不够完善,使用过程中也是各种坑。2.1达...

2020-02-25 18:02:44

Aspose.Words for Net之在Word中创建表格

Aspose.Words是一款优秀的工具,能在不依赖Microsoft.Office环境的条件下实现对Word文档的处理和生成。通过Aspose.Words提供的相关API,能在Word中根据需要创建各种各样的表格。表格的展现形式往往是由所要展现的数据结构形式所展现的,不同的数据结构就需要不同的表格来呈现,所以首先要清楚自己有什么样的数据结构或什么样的展现形式,这样就能理清思路通过Aspose...

2020-02-25 00:20:51

WPF随笔(十三)--MVVM模式下的窗口管理

使用MVVM模式的WPF项目和传统的使用事件驱动模式的WPF在处理逻辑有所不同,即使最简单的打开窗口也有很大差异。1.创建窗口管理类 public static class WindowManager { private static Hashtable _RegisterWindow = new Hashtable(); //注册窗口 p...

2020-02-23 12:33:43

WPF随笔(十二)--使用MVVM模式

规模稍大的WPF项目一般会采用MVVM模式,常见的框架有Prism、MvvmLight、Caliburn等。今天就从头开始创建一个使用MVVM模式的WPF项目,对MVVM也能有一个更好的了解。...

2020-02-23 11:47:19

ABP学习实践(十)--集成至WPF项目

这是一篇“不务正业”的文章,没错,将ABP框架集成到WPF项目。作为一个主打web开发的框架,ABP框架使用多次后就愈发爱不释手,一直想着能不能将其集成到WPF项目中,过程就在下面了。1.创建WPF项目并安装ABP程序包在解决方案中创建一个WPF项目,名为AbpDemo.Client。为了符合整个解决方案的.NET Core环境,创建的也是.NET Core环境下的WPF项目。打开NuGe...

2020-02-22 22:04:45

全能程序员系列(九)--PowerDesigner对数据库反向工程并输出文档

PowerDesigner是一款功能全面的数据库设计工具,当遇到没有参考资料的数据库时,可以利用反向工程生成数据库结构模型并使用模板生成数据库文档。示例使用PowerDesigner16.5,数据库为MySQL81.对数据库执行反向工程2.创建数据库文档模板...

2020-02-09 17:30:07

ABP学习实践(九)--使用CAP集成消息队列

领域事件可以触发应用内领域对象变化的通知,结合实时消息(例如SignalR)可以将通知推送给外部应用。但是消息推送的可靠性如何保证?ABP框架能集成消息队列吗?当然可以,下面就是示例。1.实时数据传输与消息队列实时数据传输和消息队列是两类不同的技术方案,有着不同的应用场景,但又有一定的相似性。实时数据传输更偏重于“实时”两个字,要求保证数据的及时有效交换,多用于多媒体相关的业务场景,常见的技...

2020-02-02 17:19:03

ABP学习实践(八)--集成SignalR推送实时消息

应用内部的领域对象发生变化时可以通过领域事件通知,那么应用之间该如何处理?选择SignalR实时数据传输方案能够解决这一问题,在ABP框架中,可以使用简化的已封装的SignalR相关依赖库。ABP框架提供的SignalR依赖库有两个,一个是.NET Framework环境下的Abp.Web.SignalR,另一个是.NET Core环境下的Abp.AspNetCore.SignalR。文中示例...

2020-02-02 11:45:30

ABP学习实践(七)--领域事件

事件是在软件开发过程中经常用到的一种思路和形式,事件常常是和观察者模式、订阅发布这样的词汇联系在一起。在ABP框架中同样也少不了事件,也就是领域事件。1.领域事件的使用范围在具体业务中常常会有这样的需求,以前面的货品管理功能为例,对于某种特定类型的货品,我们希望在货品库存数量低于某个特定值的时候得到提醒,以便于进行采购补货或其他操作,就是常说的库存预警功能。解决这个问题最简单的思路就是写一个...

2020-02-01 22:16:26

ABP学习实践(六)--领域服务与工作单元

当业务逐渐变得复杂,涉及到的实体对象不再是一个时,通用的增删改查分页功能已经无法满足要求,就需要更高级的功能。ABP框架提供了领域服务、工作单元和其他相关功能来实现对复杂业务的处理。1.领域服务的使用范围ABP框架设计的主要思想之一就是领域驱动设计模式,虽然ABP使用有一段时间了,但我觉得自己学习到的也只是皮毛而已,真正核心的东西还没有触及到。以我个人粗陋的理解,当你的业务处理过程涉及到多个...

2020-02-01 18:47:15

ABP学习实践(五)--引入Swagger对API接口进行管理

以目前流行的前后端分离模式来看,ABP框架更适用于后端开发,而对API接口的管理就成了一项必不可少的功能。1.安装Swashbuckle.AspNetCore使用Nuget管理器在分布式服务层和展现层AbpDemo.Web安装Swashbuckle.AspNetCore程序包,包含Swashbuckle.AspNetCore.Swagger、Swashbuckle.AspNetCore.Sw...

2020-01-30 19:45:40

ABP学习实践(四)--分页查询

前面两篇文章只写了增删改功能,并不是把查询功能遗漏了,本篇就单独来讨论分页查询。分页查询很常用,实现并不难,但是想要用起来方便舒服还是要花些心思。虽然分页查询的实现跟ABP框架并没有什么关系,但是为了延续性暂且还是放在这里了。对于分页查询来讲,需要注意的有两点:一是查询条件的处理,用户的输入是多样化的、无法预知的,查询规则要足够灵活和简单;二是查询结果的分页处理,一般是根据当前页码和每页记录数...

2020-01-30 15:34:36

ABP学习实践(三)--使用自定义基类的增删改示例

上篇文章中已经使用ABP框架使用了简单的增删改功能,但若在实际项目中这样使用,效率实在是低,所以有必要对代码进行优化,提高开发效率。1.定义应用服务基类接口本次优化代码的基本思路就是利用泛型类和接口对常用的功能进行定义和实现,最常用的几个方法就是新增、修改、详情和删除了,先从这几个方法下手了。在应用层AbpDemo.Application创建泛型接口IAbpDemoAppServiceBa...

2020-01-29 22:29:31

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。