自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 让DotnetCore.CAP和SignalR接力数据推送
原力计划

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

2020-04-28 22:15:35 77 0

原创 Docker(Windows版)安装zookeeper+kafka

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

2020-04-27 22:14:34 80 0

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

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

2020-04-05 11:04:41 198 0

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

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

2020-04-01 22:02:16 153 0

原创 微服务笔记(1)--初识
原力计划

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

2020-03-19 00:09:56 87 0

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

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

2020-03-01 22:43:04 110 0

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

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

2020-03-01 20:51:21 264 0

原创 EntityFramework Core连接国产达梦数据库
原力计划

近期意外发现了国产达梦数据库对.NET Core环境下EFCore的支持,把测试过程分享如下。 1.测试环境 .Net Core 2.1 EntityFramework Core 2.2.4 DM v8(达梦) Window 10 x64 2.踩坑记录 近些年数据库等基础设施国产化的呼声越来...

2020-02-25 18:02:44 653 0

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

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

2020-02-25 00:20:51 159 0

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

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

2020-02-23 12:33:43 129 0

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

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

2020-02-23 11:47:19 82 0

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

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

2020-02-22 22:04:45 137 0

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

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

2020-02-09 17:30:07 170 0

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

领域事件可以触发应用内领域对象变化的通知,结合实时消息(例如SignalR)可以将通知推送给外部应用。但是消息推送的可靠性如何保证?ABP框架能集成消息队列吗?当然可以,下面就是示例。 1.实时数据传输与消息队列 实时数据传输和消息队列是两类不同的技术方案,有着不同的应用场景,但又有一定的相似性...

2020-02-02 17:19:03 345 0

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

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

2020-02-02 11:45:30 191 0

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

事件是在软件开发过程中经常用到的一种思路和形式,事件常常是和观察者模式、订阅发布这样的词汇联系在一起。在ABP框架中同样也少不了事件,也就是领域事件。 1.领域事件的使用范围 在具体业务中常常会有这样的需求,以前面的货品管理功能为例,对于某种特定类型的货品,我们希望在货品库存数量低于某个特定值的...

2020-02-01 22:16:26 158 0

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

当业务逐渐变得复杂,涉及到的实体对象不再是一个时,通用的增删改查分页功能已经无法满足要求,就需要更高级的功能。ABP框架提供了领域服务、工作单元和其他相关功能来实现对复杂业务的处理。 1.领域服务的使用范围 ABP框架设计的主要思想之一就是领域驱动设计模式,虽然ABP使用有一段时间了,但我觉得自...

2020-02-01 18:47:15 92 0

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

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

2020-01-30 19:45:40 105 0

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

前面两篇文章只写了增删改功能,并不是把查询功能遗漏了,本篇就单独来讨论分页查询。分页查询很常用,实现并不难,但是想要用起来方便舒服还是要花些心思。虽然分页查询的实现跟ABP框架并没有什么关系,但是为了延续性暂且还是放在这里了。 对于分页查询来讲,需要注意的有两点:一是查询条件的处理,用户的输入是...

2020-01-30 15:34:36 190 0

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

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

2020-01-29 22:29:31 106 0

原创 ABP学习实践(二)--简单的增删改示例

学习一项知识,最好的方式还是实践。写一个简单示例,对ABP框架如何工作也能有一个更好的认知。

2020-01-29 21:54:37 162 0

原创 ABP学习实践(一)--概览

学习使用ABP框架已有近一年了,有了一点积累,最近刚好把使用过程中的心得记录下。ABP框架是近些年比较流行的开源框架之一,主要特点我就不再一一赘述,一是网上已经有不少资料了,很多大牛也都比我写的详细和深刻,二是能看到这篇文章的应该对ABP框架是有些许了解的。废话不说,直奔主题。 注意:示例中使用...

2020-01-28 17:38:51 166 0

原创 WPF随笔(十一)--日志输出到界面

项目开发过程写过几个WPF的小工具,在使用过程中就需要把软件运行的情况以日志的形式输出到界面上,这里就把用过的几种方式总结一下。 1.直接输出到RichTextBox 输出到RichTextBox很简单直接了,代码如下: /// <summary> /...

2019-11-13 23:38:52 464 0

原创 ELK学习实践(五)--Logstash实现不同数据库间同步

上篇文章中介绍了将SQLServer中的数据通过logstash同步到Elasticsearch,但logstash能做的不止这些,实际上logstash作为一个数据采集工具支持更多的输入和输出。如果将两个不同的数据库分别作为logstash的输入和输出,那么通过一定的配置就能实现不同数据库间的数...

2019-10-23 20:13:27 131 0

原创 温故知新(1)--计算机网络之概述

一、知识图谱 二、基本结构

2019-09-12 00:08:18 51 0

原创 ELK学习实践(四)--Logstash连接SQLServer并同步数据

安装环境 软件环境 版本 操作系统 Windows 10 prefessional 容器工具 Docker Desktop for Windows 容器可视化工具 Kitematic 命令行工具 PowerShell 承接上篇文章:ELK学习实践(二)–基于Doc...

2019-09-06 16:24:38 704 0

原创 全能程序员系列(八)--vi编辑器常用命令

Vi/Vim是Linux中常用的编辑器,适用于大多数的Linux/Unix操作系统。随着跨平台技术的发展,习惯于在Windows平台下进行开发的程序员越来越多的接触到Linux平台,尤其是在虚拟机或容器技术中对文件的操作经常会用到Vi编辑器。Vi/Vim编辑器与Windows环境下的编辑器在操作上...

2019-09-05 17:50:06 75 0

原创 Caliburn.Micro手册(一)--基本配置Basic Configuration

Caliburn.Micro是一套基于XAML的开发框架,采用MVVM模式,适用于WPF、SliverLight等项目开发,是开源项目Caliburn的精简版,体积小巧功能强大。 正文内容是针对的官方文档的翻译和和部分注释。原文地址: Basic Configuration 打开Visual...

2019-09-05 16:10:00 159 0

原创 ELK学习实践(三)--基于Docker安装Kibana

安装环境 软件环境 版本 操作系统 Windows 10 prefessional 容器工具 Docker Desktop for Windows 容器可视化工具 Kitematic 命令行工具 PowerShell 1.Kibana安装 搜索镜像 docker ...

2019-09-05 16:03:08 104 0

原创 ELK学习实践(二)--基于Docker安装配置Logstash

安装环境 软件环境 版本 操作系统 Windows 10 prefessional 容器工具 Docker Desktop for Windows 容器可视化工具 Kitematic 命令行工具 PowerShell 1.安装Logstash 搜索Logstash...

2019-09-05 15:59:59 371 0

原创 ELK学习实践(一)--基于Docker安装配置Elasticsearch

安装环境 软件环境 版本 操作系统 Windows 10 prefessional 容器工具 Docker Desktop for Windows 容器可视化工具 Kitematic 命令行工具 PowerShell 1.安装Elasticsearch 查询Ela...

2019-09-05 15:56:46 66 0

原创 Superset学习实践(一)--基于Docker的安装配置

近期由于工作上的需要,接触到了开源的数据分析工具Superset,从无到有,一点点按照文档将Superset运行了起来,将每一步的经验教训都记录如下。 1.安装环境 Superset既可以在Windows环境下安装运行,也可以在Linux环境下安装运行,但从实际操作过程来看,都遇到了不少坑。先是...

2019-06-22 14:17:21 1631 0

原创 如何理解.NET开发中的MVVM模式

虽然网上有很多文章讲解MVVM模式原理及实现,但是毕竟拾人牙慧,学习消化后用自己的语言表达出来才会更深刻的理解。 1.MVVM模式的由来 1.1.关联知识 在谈起MVVM模式时,总会有相关的话题被提起,那就是MVC模式和MVP模式。 正如图中和字面意思表示的,MVC、MVP、MVVM这三种设计...

2019-02-11 11:48:20 955 0

原创 如何设计更好的WebAPI

随着移动互联网和Web开发技术的发展,在项目中需要为越来越多的跨平台应用提供统一化的API接口。那么作为一个后端开发者,如何设计并开发出更规范、更清晰、更好用的WebAPI呢? 1.如何理解API? 宽泛的讲,API(Application Programming Interface)指的是应用...

2019-02-06 19:30:45 348 0

原创 .NET平台常见技术框架整理汇总

使用.NET平台开发有段时间了,在网上资料的基础上做了进一步整理,汇集了.NET平台常见的技术框架。 参考资料: 基于.NET平台常用的框架整理 1.知识网络 2.分类清单 2.1.分布式缓存框架 名称 说明 地址 Microsoft Velocity 微软自家分布式缓存服务...

2019-02-06 08:51:48 6226 3

原创 全能程序员系列(七)--创建自定义NuGet包并搭建NuGet服务器

NuGut是用于VisualStudio提供的一种有效的管理类库引用的工具,为编程开发带来的好处自然不用多说。NuGet上有众多优秀的类库,能否将自己的编写的类库也上传到NuGet上或者拥有一个自己的NuGet服务器呢?答案是可以的,下面进入正文。 1.创建自定义NuGet包 作为示例和前提,我...

2019-02-03 13:08:30 707 7

原创 MQTT学习(七)--使用MQTTNet+ASP.NET Core创建MQTT服务器(broker)

经过漫长的等待,MQTT专题终于等到了第七篇,本次将在ASP.NET Core框架下利用MQTTnet创建自有服务器。 本示例将融合ASP.NET Core WebAPI,以便在API接口调用中实现消息推送。

2019-01-30 22:31:54 5186 8

原创 c#使用HttpListener监听HTTP请求

最近在项目上需要与第三方系统对接,对方会通过HTTP请求定时推送数据,因此需要在项目中添加监听HTTP请求的功能,查阅了相关资料,使用System.Net下的HttpListener实现此功能

2019-01-24 16:17:22 6000 1

原创 WPF随笔(十)--使用AvalonDock实现可停靠式布局

许多软件都使用了可停靠式布局,可以方便的打开、关闭、收起、展开、移动选项卡。今天就来说明如何使用AvalonDock实现这种可停靠式布局。 ...

2019-01-22 22:37:18 2977 2

翻译 MQTT学习(六)--各类MQTT代理服务器特性对比(译文)

除了Apache Apollo之外还有多款软件可作为MQTT代理服务器使用,同时这些代理服务器所支持的协议往往也并不是只有MQTT一种。本文就来看看各类MQTT代理服务器都有哪些特性。原文地址如下: https://github.com/mqtt/mqtt.github.io/wiki/serv...

2018-12-18 12:52:20 9434 0

提示
确定要删除当前文章?
取消 删除