2019年11月21日

[置顶] 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库

摘要:在前面随笔《在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实?#32622;?#23433;装Oracle客户端,兼容32位64位Oracle驱动》中介绍了在代码生成工具中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,如果我们在框架应用中需要使用这个如何处理了?由于我们开发框架底层主要使用微软企业库(目前用的版本是4.1),如果是使用它官方的Oracle扩展,那么就是使用EntLibContrib.Data.OdpNet(这个企业库扩展类库使用了Oracle.DataAccess.dll),不过这种方式还是受限于32位和64位的问题;假如我们使用ODP.NET(Oracle.ManagedDataAccess.dll)方式,可以使用自己扩展企业库支持即可,类似于我们支持国产数据库--达?#38382;?#25454;库一样的原理,使用Oracle.ManagedDataAccess类库可以避免32位和64位冲突问题,实现统一兼容。 阅读全文

posted @ 2019-11-21 17:49 伍华聪 阅读 (88) 评论 (0) 编辑

[置顶] 在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实?#32622;?#23433;装Oracle客户端,兼容32位64位Oracle驱动

摘要:由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等数据库进行代码的快速生成。在此之前我一直要求用户使用代码生成工具的时候,如果使用Oracle开发,则需在开发环境中安装Oracle客户端,以便继续利用微软的System.Data.OracleClient方式访问Oracle,不过这样开发环境就会麻烦一些。另外还带来一个问题,使用这些驱动的时候,由于系统的限制,还会区分32位或者64位的问题,不能实现兼容性的访问。为了彻底解决这个问题,我们使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实?#32622;?#23433;装Oracle客户端,兼容32位64位Oracle驱动。 阅读全文

posted @ 2019-11-21 17:13 伍华聪 阅读 (12) 评论 (0) 编辑

2019年11月11日

[置顶] 基于华为物联网IOT的应用开发 ---界面管理开发

摘要:在前面随笔《基于华为物联网IOT的应用开发 --- 基于.net 的SDK封装》介绍过IOT中应用侧SDK的封装,主要就是基于华为IOT的应用侧封装,以便在应用系统中进行调用。应用侧SDK的封装是一切应用开发的基础,不过华为并没有提供对应.net的SDK封装,不过SDK都是基于Web API 的JSON数据进行交互,因此花了一点时间进行了华为.net 的SDK进行了全面封装,本篇随笔介绍如?#20301;?#20110;封装好的IOT 应用侧的SDK进行界面管理的开发,实现对IOT业务数据的管理等。 阅读全文

posted @ 2019-11-11 11:28 伍华聪 阅读 (1526) 评论 (8) 编辑

2019年10月30日

[置顶] 使用FastReport报表工具生成标签打印文档

摘要:在我们实际开发报表的时候,我们需要按一定的业务规则组织好报表的模板设计,让报表尽可能的贴近实际的需求,在之前的随笔中《使用FastReport报表工具生成报表PDF文档》介绍了FastReport生成常规报表的处理,本篇随笔回顾常规报表的处理效果,并介绍基于FastReport生成标签纸打印需要的报表格式。 阅读全文

posted @ 2019-10-30 11:18 伍华聪 阅读 (983) 评论 (6) 编辑

2019年10月26日

[置顶] 基于SignalR的服务端和客户端通讯处理

摘要:SignalR是一个.NET Core/.NET Framework的实时通讯的框架,一般应用在ASP.NET上,当然也可以应用在Winform上实现服务端和客户端的消息通讯,本篇随笔主要基于SignalR的构建一个基于Winform的服务端和客户端的通讯处理案例,介绍其中的处理过程。 阅读全文

posted @ 2019-10-26 18:26 伍华聪 阅读 (969) 评论 (1) 编辑

2019年10月23日

[置顶] 基于华为物联网IOT的应用开发 --- 基于.net 的SDK封装

摘要:最近,物联网的概念比较?#35753;牛?#19968;大批厂商抢着占领物联网的高低,包括有华为物联网、阿里云物联网、腾讯物联网、AWS物联网等等,无法一一列举,一般物联网包含设备侧开发、平台侧开发、应用侧开发,三个部分构成了线上线下的完整连接,和我们常规的微信应用、钉钉应用等不同,物联网的终端是由各种各样的设备组合而成,这些设备通过各种不同的协议(如CoAP,LWM2M、MQTT)连接到IOT的平台,而且这些设备是低能耗的设备,可以实时的发送数据上来,也可以接受来自IOT平台下发的各种操作指令。本篇随笔主要介绍基于华为物联网IOT的应用开发,实现对.net SDK的封装,方便后期进行应用集成使用。 阅读全文

posted @ 2019-10-23 16:19 伍华聪 阅读 (1293) 评论 (5) 编辑

2019年10月22日

[置顶] 基于微信开发框架进行业务开发的处理过程

摘要:在我们开发微信应用的时候,包括公众号、企业微信、小程序等,都需要基于一定的框架基础上开发,才能事半功倍,一般情况下,我们需要处理好微信菜单和微信事件的对接,以及后台数据管理系统和权限管理的?#34892;?#25972;合,或者是基于业务流程的相关流转等,本篇随笔介绍如?#20301;?#20110;微信开发框架进行业务开发的处理过程。 阅读全文

posted @ 2019-10-22 11:17 伍华聪 阅读 (881) 评论 (5) 编辑

2019年10月18日

[置顶] 微信开发中使用通用函数处理,以重定向的方式实现用户身份信息的获取并转回原来页面

摘要:在开发微信应用的时候,我们往往需要确认用户的身份,一般公众号唯一区别用户的身份是openid信息,但是这个信息并不是可以直接获取到,需要通过code进行获取,而code的获取则需要用户进行一个授权的处理才能获得,本篇随笔通过结合Session的方式,自动判断用户状态,如果用户?#29366;?#35775;问页面,则以重定向的方式实现用户身份信息的获取并转回原来页面。 这个函数给我们减轻了很多繁琐的问题,并且减少了重复复制代码来获取用户身份的弊端,是我们在H5页面里面处理用户身份信息的利器,希望对大家在开发微信公众号或者企业微信,获取用户身份的时候,提供好的参考思路和代码。 阅读全文

posted @ 2019-10-18 09:31 伍华聪 阅读 (448) 评论 (1) 编辑

2019年10月17日

[置顶] 微信开发中使用微信JSSDK和使用URL.createObjectURL上传预览?#35745;?#30340;不同处理对比

摘要:在做微信公众号或者企业微信开发业务应用的时候,我们常常会涉及到?#35745;?#39044;览、上传等的处理,往往业务需求不止一张?#35745;?#22240;此相对来说,需要考虑的全面一些,用户还需要对?#35745;?#36827;行预览和相应的处理,在开始的时候我使用JSSDK方式,使用微信的SDK接口进行?#35745;?#30340;上传、预览操作,后来发现通过URL.createObjectURL选定本地?#35745;?#39044;览、上传也是非常方便的,本篇随笔针对同一个多?#35745;?#30340;业务需求,使用JSSDK和URL.createObjectURL两种方式进行?#35745;?#39044;览、上传、?#22659;?#31561;常规的处理。 阅读全文

posted @ 2019-10-17 18:11 伍华聪 阅读 (414) 评论 (0) 编辑

[置顶] 使用FastReport报表工具生成报表PDF文档

摘要:在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同?#23567;?#26412;篇随笔介绍如?#20301;?#20110;FastReport报表工具,生成报表PDF文档展示医院处方笺的内容。之前在随笔《在Winform开发中使用FastReport创建报表》介绍过FastReport这个强大的报表工具,虽然介绍了各种报表的处理代码,不过主要的案例还是官方的案例,本篇随笔介绍基于某个医院的处方笺的格式报表的处理。 阅读全文

posted @ 2019-10-17 11:16 伍华聪 阅读 (1011) 评论 (1) 编辑

2019年10月2日

[置顶] 使用.net core3.0 正式版创建Winform程序

摘要:前阵子一直期待.net core3.0正式版本的出来,以为这个版本出来,Winform程序又迎来一次新生了,不过9.23日出来的马上下载更新VS,创建新的.net core Winform项目,发现并没有Winform窗体设计器。而微软目前则是通过插件的方式,让我们单独下载Winform设计器,这个设计器还是预览版本,很多功能还是没有实现的,只能算是一个简单的雏形,本博客案例介绍基于.net core3.0创建一个普通的WInform程序,?#20040;?#23478;了解下基于.net core3.0创建的程序的大概模样。 阅读全文

posted @ 2019-10-02 12:03 伍华聪 阅读 (3824) 评论 (9) 编辑

2019年9月29日

[置顶] .Net Reactor混淆导致匿名类处理出现的问题处理分析

摘要:.Net Reactor 是一款比较不错的混淆工具,比VS自带的那个好用很多,一直以来也陪伴着我们的成长,虽然没有完美的混淆工具,不过也算还是不错的,至少能在一定程度上对DLL进行一定的保护处理。 不过最近客户反映我们在混合框架?#22659;?#25805;作的时候,没有如期的实现?#22659;?#25805;作,由于混合框架是基于Web API / WCF这样的分布式开发方式,因此和普通跟踪的方式有所不同,针对Web API的使用是比较广泛的在云端实现数据集中管理的一种方式,相对普通的调试来说,?#35759;?#22686;加了一些,需要在服务端(本篇主要是Web API操作)进行调试,以及在客户端界面进行联?#31995;?#35797;处理。 本篇随笔主要介绍如何在碰到基于分布式处理数据的接口的时候,对错误问题的分析和逐步缩小范围的方式进行排查,最终解决问题的分析处理过程。 阅读全文

posted @ 2019-09-29 15:44 伍华聪 阅读 (582) 评论 (0) 编辑

2019年7月30日

[置顶] 录制的开发框架视频

摘要:录制视频也是一个很有意思的过程,一般需要提前准备好相关的提纲,以及整个思路的过程,在开始尝试的时候,可能还会因为?#34892;?#29305;殊问题,而不得不重来一遍,录制视频开始用的是Snagit的软件,这个软件对视频的录制效果还是不错的,后来进一步了解并使用了OBS Studio的视频录制软件,这个软件是更专业的视频录制软件,而且它是免费的,而且提供很多控制功能,另外还可?#22253;?#25668;像头的视?#20302;?#23556;在右下角(或者自己定义位置),对视频录制处理,本?#32874;?#36890;过使用Adobe Premiere Pro 来进行一定的视?#23548;?#24037;处理的,例如可以制作视频片头,特效等,不过这个软件是一个很强大的软件,暂时没有功夫细细研究吧。 阅读全文

posted @ 2019-07-30 15:02 伍华聪 阅读 (1588) 评论 (1) 编辑

2019年7月12日

[置顶] ABP开发框架前后端开发系列---(15)ABP框架的服务端和客户端缓存的使用

摘要:缓存在一个大型一点的系统里面是必然会涉及到的,合理的使用缓存能够给我们的系统带来更高的响应速?#21462;?#30001;于数据提供服务涉及到数据库的相关操作,如果客户端的并发数量超过一定的数量,那么数据库的请求处理则以爆发式增长,如果数据库服务器无法快速处理这些并发请求,那么将会增加客户端的请求时间,?#29616;?#32773;可能导致数据库服务或者应用服务直接瘫?#23613;?#32531;存方案就是为这个而诞生,随着缓存的引入,可?#22253;?#25968;据库的IO耗时操作,转换为内存数据的快速响应操作,或者把整个页面缓存?#20132;?#23384;系统里面。 阅读全文

posted @ 2019-07-12 12:12 伍华聪 阅读 (1328) 评论 (1) 编辑

2019年7月11日

[置顶] 在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件

摘要:DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一般在Winform开发中根据情况混合使用这些控件,不过整体来看,基于DevExpress的TreeList和TreeListLookupEdit表现相对比较好看一些,本篇随笔主要介绍这两个控件在实际Winform项目中的使用处理。 阅读全文

posted @ 2019-07-11 10:27 伍华聪 阅读 (2211) 评论 (5) 编辑

2019年7月3日

[置顶] ABP开发框架前后端开发系列---(14)基于Winform的ABP快速开发框架

摘要:前面介绍了很多ABP系列的文章,一步一步的把我们日常开发中涉及到的Web API服务构建、登录日志和操作审计日?#23613;?#23383;典管理模块、省份城市的信息维护、权限管理模块中的组织机构、用户、角色、权限、菜单等内容,以及配置管理模块,界面的高级查询处理等内容,同时我?#21069;?#25972;个开发理念结合我们的代码生成工具Database2Sharp进行快速的开发,快速开发分为两个部分:一个是Web API部分的ABP框架代码生成,包括领域实体层、应用服务层、公用DTO和接口层、API调用Caller层等内容的生成,并且整合了我们封装的基类,以便生成的代码更加简洁,但却具有更加强大、易用的功能函数;另一个快速生成的部分是界面生成,我们根据我们在Winform领域多年的开发,整合了分页、公用类库和Winform基础界面类的基础上实现了快速的Winform界面生成,并且Winform界面生成可以根据需要配置列表查询条件、列表显示内容,编辑界面的字段显示等等内容,并且生成的Winform界面自动具有和ABP快速框架整体调用通用规则。 阅读全文

posted @ 2019-07-03 14:56 伍华聪 阅读 (1123) 评论 (1) 编辑

[置顶] ABP开发框架前后端开发系列---(13)高级查询功能及界面的处理

摘要:在一般的检索界面中,基于界面易用和美观方便的考虑,我们往往只提供一些常用的条件查询进行列表数据的查询,但是有时候一些业务表字段很多,一些不常见的条件可能在某些场景下也需要用到。因此我们在通用的查询条件之外,一般可以考虑增加 一个高级查询的模块来管理这些不常见条件的查询处理。本篇随笔基于这个需求,综合ABP框架的特点,整合了高级查询模块功能的处理。 阅读全文

posted @ 2019-07-03 10:38 伍华聪 阅读 (1993) 评论 (3) 编辑

2019年7月1日

[置顶] ABP开发框架前后端开发系列---(12)配置模块的管理

摘要:一般来说,一个系统或多或少都会涉及到一些系统?#38382;?#25110;者用户信息的配置,而ABP框架也提供了一?#30528;?#32622;信息的管理模块,ABP框架的配置信息,必须提前定义好配置的各项内容,然后才能在系统中初始化或者通过接口查询来使用,本篇随笔引入了另外一种配置信息的定义,实现更加简化的处理,本篇随笔着重介绍两者之间的差异和不同的地方。 阅读全文

posted @ 2019-07-01 12:24 伍华聪 阅读 (1187) 评论 (1) 编辑

2019年6月28日

[置顶] ABP开发框架前后端开发系列---(11)菜单的动态管理

摘要:在前面随笔《ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理》中介绍了基于ABP框架服务构建的Winform客户端,客户端通过Web API调用的方式进行获取数据,从而实现了对组织机构、角色、用户、权限等管理,其中没有涉?#23433;?#21333;部分,本篇随笔介绍在ABP框架中实现菜单的管理,菜单是作为Winform或者Web动态构建界面的一个重要元素,同时也是作为角色权限控制的部分?#35797;础? 阅读全文

posted @ 2019-06-28 21:56 伍华聪 阅读 (924) 评论 (1) 编辑

[置顶] ABP开发框架前后端开发系列---(10)Web API调用类的简化处理

摘要:在较早期的随笔《ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目中的使用》已经介绍了Web API调用类的封装处理,虽然这些调用类我们可以使用代码生成工具快速生成,不过自定义接口,还是需要我们对这些接口进行实现,以便发起对Web API的调用,并获得相应的数据返回。本篇随笔介绍使用API调用类的封装类,进行函数的抽象,根据方法名称的推断,构建URL或者WebClient的请求类型,从而实现所有API调用函数的简化处理。 阅读全文

posted @ 2019-06-28 15:50 伍华聪 阅读 (916) 评论 (2) 编辑

2019年11月21日

在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库

摘要:在前面随笔《在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实?#32622;?#23433;装Oracle客户端,兼容32位64位Oracle驱动》中介绍了在代码生成工具中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,如果我们在框架应用中需要使用这个如何处理了?由于我们开发框架底层主要使用微软企业库(目前用的版本是4.1),如果是使用它官方的Oracle扩展,那么就是使用EntLibContrib.Data.OdpNet(这个企业库扩展类库使用了Oracle.DataAccess.dll),不过这种方式还是受限于32位和64位的问题;假如我们使用ODP.NET(Oracle.ManagedDataAccess.dll)方式,可以使用自己扩展企业库支持即可,类似于我们支持国产数据库--达?#38382;?#25454;库一样的原理,使用Oracle.ManagedDataAccess类库可以避免32位和64位冲突问题,实现统一兼容。 阅读全文

posted @ 2019-11-21 17:49 伍华聪 阅读 (85) 评论 (0) 编辑

在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实?#32622;?#23433;装Oracle客户端,兼容32位64位Oracle驱动

摘要:由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等数据库进行代码的快速生成。在此之前我一直要求用户使用代码生成工具的时候,如果使用Oracle开发,则需在开发环境中安装Oracle客户端,以便继续利用微软的System.Data.OracleClient方式访问Oracle,不过这样开发环境就会麻烦一些。另外还带来一个问题,使用这些驱动的时候,由于系统的限制,还会区分32位或者64位的问题,不能实现兼容性的访问。为了彻底解决这个问题,我们使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实?#32622;?#23433;装Oracle客户端,兼容32位64位Oracle驱动。 阅读全文

posted @ 2019-11-21 17:13 伍华聪 阅读 (12) 评论 (0) 编辑

2019年11月11日

基于华为物联网IOT的应用开发 ---界面管理开发

摘要:在前面随笔《基于华为物联网IOT的应用开发 --- 基于.net 的SDK封装》介绍过IOT中应用侧SDK的封装,主要就是基于华为IOT的应用侧封装,以便在应用系统中进行调用。应用侧SDK的封装是一切应用开发的基础,不过华为并没有提供对应.net的SDK封装,不过SDK都是基于Web API 的JSON数据进行交互,因此花了一点时间进行了华为.net 的SDK进行了全面封装,本篇随笔介绍如?#20301;?#20110;封装好的IOT 应用侧的SDK进行界面管理的开发,实现对IOT业务数据的管理等。 阅读全文

posted @ 2019-11-11 11:28 伍华聪 阅读 (1526) 评论 (8) 编辑

2019年10月30日

使用FastReport报表工具生成标签打印文档

摘要:在我们实际开发报表的时候,我们需要按一定的业务规则组织好报表的模板设计,让报表尽可能的贴近实际的需求,在之前的随笔中《使用FastReport报表工具生成报表PDF文档》介绍了FastReport生成常规报表的处理,本篇随笔回顾常规报表的处理效果,并介绍基于FastReport生成标签纸打印需要的报表格式。 阅读全文

posted @ 2019-10-30 11:18 伍华聪 阅读 (983) 评论 (6) 编辑

2019年10月26日

基于SignalR的服务端和客户端通讯处理

摘要:SignalR是一个.NET Core/.NET Framework的实时通讯的框架,一般应用在ASP.NET上,当然也可以应用在Winform上实现服务端和客户端的消息通讯,本篇随笔主要基于SignalR的构建一个基于Winform的服务端和客户端的通讯处理案例,介绍其中的处理过程。 阅读全文

posted @ 2019-10-26 18:26 伍华聪 阅读 (969) 评论 (1) 编辑

2019年10月23日

基于华为物联网IOT的应用开发 --- 基于.net 的SDK封装

摘要:最近,物联网的概念比较?#35753;牛?#19968;大批厂商抢着占领物联网的高低,包括有华为物联网、阿里云物联网、腾讯物联网、AWS物联网等等,无法一一列举,一般物联网包含设备侧开发、平台侧开发、应用侧开发,三个部分构成了线上线下的完整连接,和我们常规的微信应用、钉钉应用等不同,物联网的终端是由各种各样的设备组合而成,这些设备通过各种不同的协议(如CoAP,LWM2M、MQTT)连接到IOT的平台,而且这些设备是低能耗的设备,可以实时的发送数据上来,也可以接受来自IOT平台下发的各种操作指令。本篇随笔主要介绍基于华为物联网IOT的应用开发,实现对.net SDK的封装,方便后期进行应用集成使用。 阅读全文

posted @ 2019-10-23 16:19 伍华聪 阅读 (1293) 评论 (5) 编辑

2019年10月22日

基于微信开发框架进行业务开发的处理过程

摘要:在我们开发微信应用的时候,包括公众号、企业微信、小程序等,都需要基于一定的框架基础上开发,才能事半功倍,一般情况下,我们需要处理好微信菜单和微信事件的对接,以及后台数据管理系统和权限管理的?#34892;?#25972;合,或者是基于业务流程的相关流转等,本篇随笔介绍如?#20301;?#20110;微信开发框架进行业务开发的处理过程。 阅读全文

posted @ 2019-10-22 11:17 伍华聪 阅读 (881) 评论 (5) 编辑

2019年10月18日

微信开发中使用通用函数处理,以重定向的方式实现用户身份信息的获取并转回原来页面

摘要:在开发微信应用的时候,我们往往需要确认用户的身份,一般公众号唯一区别用户的身份是openid信息,但是这个信息并不是可以直接获取到,需要通过code进行获取,而code的获取则需要用户进行一个授权的处理才能获得,本篇随笔通过结合Session的方式,自动判断用户状态,如果用户?#29366;?#35775;问页面,则以重定向的方式实现用户身份信息的获取并转回原来页面。 这个函数给我们减轻了很多繁琐的问题,并且减少了重复复制代码来获取用户身份的弊端,是我们在H5页面里面处理用户身份信息的利器,希望对大家在开发微信公众号或者企业微信,获取用户身份的时候,提供好的参考思路和代码。 阅读全文

posted @ 2019-10-18 09:31 伍华聪 阅读 (448) 评论 (1) 编辑

2019年10月17日

微信开发中使用微信JSSDK和使用URL.createObjectURL上传预览?#35745;?#30340;不同处理对比

摘要:在做微信公众号或者企业微信开发业务应用的时候,我们常常会涉及到?#35745;?#39044;览、上传等的处理,往往业务需求不止一张?#35745;?#22240;此相对来说,需要考虑的全面一些,用户还需要对?#35745;?#36827;行预览和相应的处理,在开始的时候我使用JSSDK方式,使用微信的SDK接口进行?#35745;?#30340;上传、预览操作,后来发现通过URL.createObjectURL选定本地?#35745;?#39044;览、上传也是非常方便的,本篇随笔针对同一个多?#35745;?#30340;业务需求,使用JSSDK和URL.createObjectURL两种方式进行?#35745;?#39044;览、上传、?#22659;?#31561;常规的处理。 阅读全文

posted @ 2019-10-17 18:11 伍华聪 阅读 (414) 评论 (0) 编辑

使用FastReport报表工具生成报表PDF文档

摘要:在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同?#23567;?#26412;篇随笔介绍如?#20301;?#20110;FastReport报表工具,生成报表PDF文档展示医院处方笺的内容。之前在随笔《在Winform开发中使用FastReport创建报表》介绍过FastReport这个强大的报表工具,虽然介绍了各种报表的处理代码,不过主要的案例还是官方的案例,本篇随笔介绍基于某个医院的处方笺的格式报表的处理。 阅读全文

posted @ 2019-10-17 11:16 伍华聪 阅读 (1011) 评论 (1) 编辑

2019年10月2日

使用.net core3.0 正式版创建Winform程序

摘要:前阵子一直期待.net core3.0正式版本的出来,以为这个版本出来,Winform程序又迎来一次新生了,不过9.23日出来的马上下载更新VS,创建新的.net core Winform项目,发现并没有Winform窗体设计器。而微软目前则是通过插件的方式,让我们单独下载Winform设计器,这个设计器还是预览版本,很多功能还是没有实现的,只能算是一个简单的雏形,本博客案例介绍基于.net core3.0创建一个普通的WInform程序,?#20040;?#23478;了解下基于.net core3.0创建的程序的大概模样。 阅读全文

posted @ 2019-10-02 12:03 伍华聪 阅读 (3824) 评论 (9) 编辑

2019年9月29日

.Net Reactor混淆导致匿名类处理出现的问题处理分析

摘要:.Net Reactor 是一款比较不错的混淆工具,比VS自带的那个好用很多,一直以来也陪伴着我们的成长,虽然没有完美的混淆工具,不过也算还是不错的,至少能在一定程度上对DLL进行一定的保护处理。 不过最近客户反映我们在混合框架?#22659;?#25805;作的时候,没有如期的实现?#22659;?#25805;作,由于混合框架是基于Web API / WCF这样的分布式开发方式,因此和普通跟踪的方式有所不同,针对Web API的使用是比较广泛的在云端实现数据集中管理的一种方式,相对普通的调试来说,?#35759;?#22686;加了一些,需要在服务端(本篇主要是Web API操作)进行调试,以及在客户端界面进行联?#31995;?#35797;处理。 本篇随笔主要介绍如何在碰到基于分布式处理数据的接口的时候,对错误问题的分析和逐步缩小范围的方式进行排查,最终解决问题的分析处理过程。 阅读全文

posted @ 2019-09-29 15:44 伍华聪 阅读 (582) 评论 (0) 编辑

2019年7月30日

录制的开发框架视频

摘要:录制视频也是一个很有意思的过程,一般需要提前准备好相关的提纲,以及整个思路的过程,在开始尝试的时候,可能还会因为?#34892;?#29305;殊问题,而不得不重来一遍,录制视频开始用的是Snagit的软件,这个软件对视频的录制效果还是不错的,后来进一步了解并使用了OBS Studio的视频录制软件,这个软件是更专业的视频录制软件,而且它是免费的,而且提供很多控制功能,另外还可?#22253;?#25668;像头的视?#20302;?#23556;在右下角(或者自己定义位置),对视频录制处理,本?#32874;?#36890;过使用Adobe Premiere Pro 来进行一定的视?#23548;?#24037;处理的,例如可以制作视频片头,特效等,不过这个软件是一个很强大的软件,暂时没有功夫细细研究吧。 阅读全文

posted @ 2019-07-30 15:02 伍华聪 阅读 (1588) 评论 (1) 编辑

2019年7月12日

ABP开发框架前后端开发系列---(15)ABP框架的服务端和客户端缓存的使用

摘要:缓存在一个大型一点的系统里面是必然会涉及到的,合理的使用缓存能够给我们的系统带来更高的响应速?#21462;?#30001;于数据提供服务涉及到数据库的相关操作,如果客户端的并发数量超过一定的数量,那么数据库的请求处理则以爆发式增长,如果数据库服务器无法快速处理这些并发请求,那么将会增加客户端的请求时间,?#29616;?#32773;可能导致数据库服务或者应用服务直接瘫?#23613;?#32531;存方案就是为这个而诞生,随着缓存的引入,可?#22253;?#25968;据库的IO耗时操作,转换为内存数据的快速响应操作,或者把整个页面缓存?#20132;?#23384;系统里面。 阅读全文

posted @ 2019-07-12 12:12 伍华聪 阅读 (1328) 评论 (1) 编辑

2019年7月11日

在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件

摘要:DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一般在Winform开发中根据情况混合使用这些控件,不过整体来看,基于DevExpress的TreeList和TreeListLookupEdit表现相对比较好看一些,本篇随笔主要介绍这两个控件在实际Winform项目中的使用处理。 阅读全文

posted @ 2019-07-11 10:27 伍华聪 阅读 (2211) 评论 (5) 编辑

2019年7月3日

ABP开发框架前后端开发系列---(14)基于Winform的ABP快速开发框架

摘要:前面介绍了很多ABP系列的文章,一步一步的把我们日常开发中涉及到的Web API服务构建、登录日志和操作审计日?#23613;?#23383;典管理模块、省份城市的信息维护、权限管理模块中的组织机构、用户、角色、权限、菜单等内容,以及配置管理模块,界面的高级查询处理等内容,同时我?#21069;?#25972;个开发理念结合我们的代码生成工具Database2Sharp进行快速的开发,快速开发分为两个部分:一个是Web API部分的ABP框架代码生成,包括领域实体层、应用服务层、公用DTO和接口层、API调用Caller层等内容的生成,并且整合了我们封装的基类,以便生成的代码更加简洁,但却具有更加强大、易用的功能函数;另一个快速生成的部分是界面生成,我们根据我们在Winform领域多年的开发,整合了分页、公用类库和Winform基础界面类的基础上实现了快速的Winform界面生成,并且Winform界面生成可以根据需要配置列表查询条件、列表显示内容,编辑界面的字段显示等等内容,并且生成的Winform界面自动具有和ABP快速框架整体调用通用规则。 阅读全文

posted @ 2019-07-03 14:56 伍华聪 阅读 (1123) 评论 (1) 编辑

ABP开发框架前后端开发系列---(13)高级查询功能及界面的处理

摘要:在一般的检索界面中,基于界面易用和美观方便的考虑,我们往往只提供一些常用的条件查询进行列表数据的查询,但是有时候一些业务表字段很多,一些不常见的条件可能在某些场景下也需要用到。因此我们在通用的查询条件之外,一般可以考虑增加 一个高级查询的模块来管理这些不常见条件的查询处理。本篇随笔基于这个需求,综合ABP框架的特点,整合了高级查询模块功能的处理。 阅读全文

posted @ 2019-07-03 10:38 伍华聪 阅读 (1993) 评论 (3) 编辑

2019年7月1日

ABP开发框架前后端开发系列---(12)配置模块的管理

摘要:一般来说,一个系统或多或少都会涉及到一些系统?#38382;?#25110;者用户信息的配置,而ABP框架也提供了一?#30528;?#32622;信息的管理模块,ABP框架的配置信息,必须提前定义好配置的各项内容,然后才能在系统中初始化或者通过接口查询来使用,本篇随笔引入了另外一种配置信息的定义,实现更加简化的处理,本篇随笔着重介绍两者之间的差异和不同的地方。 阅读全文

posted @ 2019-07-01 12:24 伍华聪 阅读 (1187) 评论 (1) 编辑

2019年6月28日

ABP开发框架前后端开发系列---(11)菜单的动态管理

摘要:在前面随笔《ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理》中介绍了基于ABP框架服务构建的Winform客户端,客户端通过Web API调用的方式进行获取数据,从而实现了对组织机构、角色、用户、权限等管理,其中没有涉?#23433;?#21333;部分,本篇随笔介绍在ABP框架中实现菜单的管理,菜单是作为Winform或者Web动态构建界面的一个重要元素,同时也是作为角色权限控制的部分?#35797;础? 阅读全文

posted @ 2019-06-28 21:56 伍华聪 阅读 (924) 评论 (1) 编辑

ABP开发框架前后端开发系列---(10)Web API调用类的简化处理

摘要:在较早期的随笔《ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目中的使用》已经介绍了Web API调用类的封装处理,虽然这些调用类我们可以使用代码生成工具快速生成,不过自定义接口,还是需要我们对这些接口进行实现,以便发起对Web API的调用,并获得相应的数据返回。本篇随笔介绍使用API调用类的封装类,进行函数的抽象,根据方法名称的推断,构建URL或者WebClient的请求类型,从而实现所有API调用函数的简化处理。 阅读全文

posted @ 2019-06-28 15:50 伍华聪 阅读 (916) 评论 (2) 编辑

?#24049;?/h3>

三剑客和女王APP
双色球2016杀红公式 群名关于赚钱 体彩青海十一选五 内蒙古十一选五走势图表 新疆十一选五开奖直播 山西11选5遗漏数据 易发棋牌游戏大厅下载 股票行情大盘 dnf用那个传说合赚钱吗 安徽体育彩票 足球竞彩网 吉林十一选五出奖号 安徽11选5一期多久 斗地主游戏 加盟淘宝店铺能赚钱不 pk10牛牛计划群