摘要: 今天看到了 AngularJs 2.0 版本将基于 TypeScript 构建 的消息。与同事们对 TypeScript 展开了讨论。本文记录一些个人的想法。理想的 JavaScript 开发模式其实早在 TypeScript 发布早期的时候,我就已经开始关注这个语言。因为在2012年初时,我需要为... 阅读全文
posted @ 2015-03-08 14:03 BloodyAngel 阅读(3924) 评论(2) 推荐(1) 编辑
摘要: 为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了。但是只支持了一些简单的、常用的条件查询,支持的力度很有限。特别是遇到对聚合对象的查询时,就不能再使用 Linq,而只能通过构造底层查询树的接口来完成了。由于开发者的聚合查询的需求越来越多,所以本周我们将这部分进行了增强。 接下来,本文将说明 Rafy 框架原来支持的 Linq 语法,以及最新加... 阅读全文
posted @ 2015-02-03 16:28 BloodyAngel 阅读(1442) 评论(9) 推荐(1) 编辑
摘要: 最近项目组开始使用 Git 来作为源码管理。我今天就顺便把 Rafy 的源码也迁移到了 github 上,方便大家使用。这是项目的地址:https://github.com/zgynhqf/rafy,Git Clone 地址为:https://github.com/zgynhqf/Rafy.git。 由于我个人也是第一次使用 Git 来做源码管理。本文主要是记录一下过程,及遇到的问题。... 阅读全文
posted @ 2015-01-29 12:06 BloodyAngel 阅读(1280) 评论(0) 推荐(1) 编辑
摘要: 为了让开发者更方便地使用 Rafy 领域实体框架,本月,我们已经把最新版本的 Rafy 框架程序集发布到了 nuget.org 上,同时,还把 RafySDK 的最新版本发布到了 VisualStudio 插件仓库中。 以下说明如何下载、更新最新的 SDK 及程序集。 下载、更新最新的 RafySD 阅读全文
posted @ 2014-12-30 20:52 BloodyAngel 阅读(2408) 评论(0) 推荐(3) 编辑
摘要: 在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解。 场景 在开发数据库应用程序时,往往会遇到自关联表的场景。例如,分类信息、组织架构中的部门、文件夹信息等,都是不限制层级的。如下图中操作系统的文件夹: 在开发这类程序时,往往是设计一张表,表中的一个可空的外键直接 阅读全文
posted @ 2014-11-30 19:02 BloodyAngel 阅读(1553) 评论(7) 推荐(1) 编辑
摘要: 回想起进入理财这道大门,是一个很偶然的机会,但是,这也成为了我人生的转折点! 去年6月以前,我们家的财务,都是由老婆来管理。但是老婆对财务不是很敏感,我偶尔问她,我们现在存了多少钱了?她总说,大概……可能……是……。后来,因为大多数家庭都是老婆理财,所以我让她去学习理财。钱虽然不多,但是也要好好管理 阅读全文
posted @ 2014-10-27 16:15 BloodyAngel 阅读(1687) 评论(1) 推荐(1) 编辑
摘要: 一整月都在编写某国企的技术平台建设方案。该企业是一个某500强大型国有企业,他们希望能建设统一的一个软件平台(技术平台+业务平台):各专业部门基于该平台开发相应的专业级插件,并发布到统一的插件平台中,并最终都可集成到一个统一的客户端软件平台中,以达到业务组件能在全公司范围内进行重用。另外,数据方面,... 阅读全文
posted @ 2014-09-30 22:19 BloodyAngel 阅读(1626) 评论(3) 推荐(2) 编辑
摘要: 这几个月一直在为买房的事情奔波,看了好多楼盘,期望能找到合适自己的房子。特写本文,记录整个过程,以供未来回顾。买?还是不买?今年以来,银行收紧房贷,使得整个房地产进入下行的通道。北京,虽不如其它二三线城市一样价格大跌,但是房子的价格一直也没有上升。从上半年传言说二三线会跌、北京的房价不会跌,到现在一... 阅读全文
posted @ 2014-08-25 21:43 BloodyAngel 阅读(1473) 评论(4) 推荐(2) 编辑
摘要: 上一篇《企业 SOA 设计(1)–ESB 设计》中,写到我们的 SOA 设计分为两个层面来进行:一个是系统间的 SOA 设计,主要通过 ESB 来完成;另一方面则是单个应用系统内部的 SOA 设计,本篇将会就后者进行详细说明。平台整体结构在产品开发过程中,为了达到业务级别的较大粒度重用,我们需要把纵... 阅读全文
posted @ 2014-07-29 16:54 BloodyAngel 阅读(5025) 评论(3) 推荐(6) 编辑
摘要: 最近为公司完成了一个 ESB 的设计。下面简要说明一下具体的设计方案。 企业 SOA 整体方案 在前一篇《SOA、ESB、NServiceBus、云计算 总结》中说到,SOA 是面向服务的架构,其核心思想是把业务进行组件化,而业务组件的能力服务化。 我们的整个 SOA 的设计分为两个层面:一个是系统间的 SOA 设计,另一个则是单个系统内的 SOA 设计。系统间的 SOA 设计,主要是... 阅读全文
posted @ 2014-06-28 23:31 BloodyAngel 阅读(7836) 评论(5) 推荐(8) 编辑
摘要: SOA SOA 是通过功能组件化、服务化,来实现系统集成、解决信息孤岛,这是其主要目标。而更进一步则是实现更快响应业务的变化、更快推出新的应用系统。与此同时,SOA 还实现了整合资源,资源复用。 SOA 服务的设计标准是粗粒度、高重用、灵活、标准。性能则并非首要考虑因素。 SOA 的两大功能是集成、服务编排(BPEL、BPM)。WF 在 SOA 架构中,实现服务编排的功能。 参考架构: ... 阅读全文
posted @ 2014-05-25 15:53 BloodyAngel 阅读(16507) 评论(11) 推荐(18) 编辑
摘要: 去年4月,我们为 Rafy 框架添加了领域模型设计器组件。时隔一年,谨以本文,简要说明该领域模型设计器的设计思想。设计目标Rafy 实体框架中以领域驱动设计作为指导思想。所以在开发时,以领域建模为首要任务。为此,我们为它开发了领域模型设计器。开发人员可以在设计器中,设计相应的领域模型,查看现有代码对... 阅读全文
posted @ 2014-04-27 22:32 BloodyAngel 阅读(7683) 评论(4) 推荐(8) 编辑
摘要: 这篇文章是去年 Rafy 框架发布后,许胜平先生为我提出的一些建议。他从用户群体分析、社区、商业模式、技术支持等方面对框架发展提出了建议,我觉得写得非常不错。此文不仅适用于 Rafy 框架,所以不敢私藏,转载出来和大家分享。 在此,再次感谢所有关注、支持 Rafy 框架的人。 WORD 文档下载地址 阅读全文
posted @ 2014-03-24 15:39 BloodyAngel 阅读(1894) 评论(6) 推荐(4) 编辑
摘要: 前言Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能。由于在 09 年最初设计时,ORM 部分的设计并不是最重要的部分,那里 Rafy 的核心是产品线工程、模型驱动开发、界面生成等。所以当时,我们简单地采用了一个开源的小型 ORM 框架:《Lite ORM Library》。这个 ORM 框架可以生成比较简单的 Sql 语句,以处理一般性的情况。随着不断使用,我们也不断对 ORM 的源码做了不少改动,让它在支持简单语句生成的同时,也支持让开发人员直接使用手动编写的 Sql 语句来查询领域实体。但是过程中,一直 阅读全文
posted @ 2013-12-19 10:06 BloodyAngel 阅读(2728) 评论(3) 推荐(3) 编辑
摘要: 本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。 《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》 《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》 《Rafy 领域实体框架演示(2) - 新功能展示》 《Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署》 ... 阅读全文
posted @ 2013-11-29 15:07 BloodyAngel 阅读(1788) 评论(3) 推荐(3) 编辑
摘要: 本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》《Rafy 领域实体框架演示(2) - 新功能展示》以 Rafy 开发的应用程序,其实体、仓库、服务代码不需要做任何修改,即可同时支持单机部署、C/S 分布式部署。本文将说明如果快速使用 C/S 分布式部署。前言截止到上一篇,我们开发的应用程序都是采用直接连接数据库的模式:接下来,将通过一些简单的调整,使得这个应用程序支持以 C/S 架构部署。整个 阅读全文
posted @ 2013-11-13 15:35 BloodyAngel 阅读(2288) 评论(12) 推荐(6) 编辑
摘要: 本文的演示需要先完成上一篇文章中的演示:《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》。在完成改造传统的三层系统之后,本文将讲解使用 Rafy 实体框架后带来的一些常用功能。 数据库自动生成 在程序转换转换完毕后。由于已经配置好数据库的连接字符串,所以直接运行整个程序,Rafy 会同时生成对应的数据库、表、字段,以及相应的外键关系等。 该库满足数据库的第三范式要... 阅读全文
posted @ 2013-10-31 11:20 BloodyAngel 阅读(1780) 评论(10) 推荐(8) 编辑
摘要: Rafy 领域实体框架发布后,虽然有帮助文档,许多朋友还是反映学习起来比较复杂,希望能开发一个示例程序,展示如何使用 Rafy 领域实体框架所以,本文通过使用 Rafy 领域实体框架来改造一个传统的三层架构应用程序——“服装进销存”系统,来讲解如何使用 Rafy 领域实体框架进行数据库应用程序的快速 阅读全文
posted @ 2013-10-22 12:18 BloodyAngel 阅读(3510) 评论(7) 推荐(8) 编辑
摘要: 距离“上次框架完整发布”已经过去了一年半了,应群中的朋友要求,决定在国庆放假之际,把最新的框架发布出来,并把帮助文档整理出来,这样可以方便大家快速上手。 发布内容 注意,本次发布,只包含 Rafy 框架中的领域实体框架及相关文档。不包含“界面自动生成”等其它组件。 安装新的发布包:《使用 NuGet 阅读全文
posted @ 2013-10-08 10:39 BloodyAngel 阅读(10948) 评论(37) 推荐(19) 编辑
摘要: 今年过年开始看的 《孙子兵法与三十六计》,陆陆续续的看,这个月总算是看完了。 软件开发中,设计模式背后的是设计原则;而三十六计也是心计模式,背后的是? 第一计:瞒天过海。光天化日之下不让天知道就过了大海。其技巧和方法的基本思想是用“欺骗”的手段暗中行动,将你企图隐藏在明显的事物中,以达到自己的目的。 第二计:围魏救赵。避开强大的敌人,攻其弱点,使敌人退兵或分兵时,寻找机会破... 阅读全文
posted @ 2013-09-30 11:09 BloodyAngel 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 这是一本改变金钱观念的书。它主要观点是,让人们不要再重复“工作-赚钱-花钱-努力工作”的老鼠赛跑,进入投资理财的“高速轨道”。 其实,从小,周围的亲戚,很多都是商人。耳濡目染,也知道了一些以钱生钱的观念。但是到我们这个年龄时,结婚、买房、生子一切不可避免,使得我们 80 后不得不早早地背上一背的负债 阅读全文
posted @ 2013-08-27 15:27 BloodyAngel 阅读(1134) 评论(0) 推荐(0) 编辑
摘要: 周末感冒了,窝在家看了好几部电影…… 看了 2007 年上映的《这个男人来自地球》。主角 John 教授在即将离开居住了 10 年的城市的时候,他的各位朋友来送他。在朋友不断追问他为什么离开的情况下,John 给他们讲述了他自己的故事:一个来自 14000 年前地球的男人、自己的生活、成长、为免发现不老之身,每十年必须移居、梵高送他的画、与佛祖的见面、被认定为耶稣、基督教的产生、各种神话产生的原由。说得另外一个老妇信仰崩溃、泪奔。在最年长的老教授的威胁下“你已经把大家都愚弄够了吧,再不结束这荒唐的笑话,我就把你送到精神病院去!”。主角最终解释这只是一个故事,众人释然了。不愿意相信的人,就不要. 阅读全文
posted @ 2013-08-26 10:57 BloodyAngel 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: 最近在整理框架的一些 API,觉得很有必要总结一下 API 兼容性的设计。下图是我自己当下的一些总结,慢慢维护:网上搜索了一下,一个多月前,“标点符”已经发布了下面这篇文章,觉得写得非常不错,转载于此:--------------------------------------------原文如下:--------------------------------------------到目前为止,已经负责API接近两年了,这两年中发现现有的API存在的问题越来越多,但很多API一旦发布后就不再能修改了,即时升级和维护是必须的。一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查 阅读全文
posted @ 2013-08-20 09:57 BloodyAngel 阅读(11665) 评论(0) 推荐(3) 编辑
摘要: 锻炼销售技能:尽可能快地尝试失败。那是一个只有少数人才能看到的世界,而我希望能再次看到它。我很激动,为了我曾经看到它的那一刻。如果一个想创业的人跑来向我展示他的新产品,我的第一个问题就会是:"你有财务算测吗?"如果生意已经建立起来了,我就会问:"你的财务报表呢?"我会问这些问题仍然不是因为我精通它们,而是测试这个人是否做好了起步创业的准备。因为建立一家公司与'你'无关,而是与其他人有关。是与你的团队、你的顾客、你的老师、以及你能如何为这些人服务有关。多数人工作只是为了赚钱。只有很少的人是为了服务别人。不同的人,不同的使命。按照吉姆 阅读全文
posted @ 2013-08-06 10:59 BloodyAngel 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 本文画出了 WCF 框架运行时的重点类之间的类关系图。 Binding 一个 Binding 由多个 BindingElement 组成。BindingElement 作为主要的扩展点。每一个 BindingElement 描述某个独立的行为。最终 Binding 使用一连串的 BindingEle 阅读全文
posted @ 2013-07-23 11:20 BloodyAngel 阅读(2114) 评论(8) 推荐(3) 编辑
摘要: 在本月换机之际,决定写篇博客纪念一下我在 WP7 手机上开发的一个稍后读软件。这个工具开发完成后,两年间,我的 WP7 手机 80% 的用途,都发挥在了它身上。 这个软件其实是一个离线阅读工具,非常类似于 ReadItLater,做了一些个人的定制功能。当时只是因为 WP7 系统上没有好用的此类软件,所以只得自己开发。 软件包含手机端和 Web 端,Web 端使用了 ExtJs 来搭建(那会儿... 阅读全文
posted @ 2013-07-16 17:00 BloodyAngel 阅读(667) 评论(2) 推荐(1) 编辑
摘要: Web API 框架是一个面向 Http 协议的通信框架。相对于 WCF 而言,Web API 只面向于 Http 协议设计,而且没有 WCF 那么繁琐的配置。Web API 的开发类似于 ASP.NET MVC 中控制器的开发,但是相对于直接使用 ASP.NET MVC 来返回 Json 对象的方式而言,Web API 封装了数据的序列化、反序列化,接口、实现都更加简单。 简单地说,如果要向浏览器、移动端提供 Json 数据格式的 API,则应该首选 Web API 作为通信框架。以下,我列出了在当前使用 Web API 开发系统时,遇到的几个知识点或问题。数据序列化 Web API 框架目 阅读全文
posted @ 2013-07-09 17:22 BloodyAngel 阅读(40562) 评论(23) 推荐(14) 编辑
摘要: 在使用 WCF 时,为了更好地进行调试,我都选择了 HTTP 协议进行数据传输。最近项目对性能要求比较高,所以就换成了使用 TCP 协议。并对二者的性能进行了一个简单的测试。以下是测试结果: 环境: CPU: E5800 3.20GHz+3.19GHz RAM: 7.97GB 64 bit OS, 阅读全文
posted @ 2013-06-28 15:58 BloodyAngel 阅读(9005) 评论(0) 推荐(1) 编辑
摘要: 本文将定义一个 WCF 终结点行为扩展,以在 WCF 中使用更高效的 BinaryFormatter 进行二进制序列化,并实现对是否使用传统二进制序列化功能的可配置。 介绍 实现步骤 使用方法 效果 介绍 在 OEA 框架中,是使用 WCF 作为数据传输框架。但是使用 WCF 内部的二进制序列化,序 阅读全文
posted @ 2013-06-24 18:19 BloodyAngel 阅读(4352) 评论(1) 推荐(2) 编辑
摘要: 从来没写过影评,今天连续看了三个电影后,觉得有必要留下点什么。否则看了一个电影接一个电影,回过头来,只不过是浪费了两个小时、又浪费两个小时,没有任何的东西留下,不失为一种遗憾……《肖申克的救赎》,之前就听说过这部电影了,今天将它看完,小有所感。 它讲述了一个年轻人 Andy,在被冤枉杀害自己的妻子、并被判入狱之后。花了20年时间,从监狱中挖出了一条逃生的道路。一把小小的锤子,20年的时间,坚持不懈的努力,终于逃出生天。“希望,是这个世界是最美好的东西。” 这20年间,主角 Andy 在监狱里,帮助狱警理财,重新建立了图书馆,还帮助一个19岁的小青年成功考取了高中毕业证。可惜小青年死于狱长的陷害 阅读全文
posted @ 2013-05-12 23:41 BloodyAngel 阅读(425) 评论(0) 推荐(1) 编辑
摘要: 给大伙分享一个最近出炉的 MSDN 到 Word/PDF 转换器。我已经用它转换了 WPF、VSPackage、WWF 等 MSDN 章节为 PDF。介绍下载使用要求使用方法结语介绍现在的 MSDN 已经做得非常好了,章节非常清晰,从入门到精通各个层次都有。我常常会把 MSDN 当作一个系统的学习书籍来看。有时候,特别想把 MSDN 下载下来,转换为 PDF,放到平板电脑上看。最近急于研究 VS-Package 的使用,所以花了一整个晚上写了这个转换器。软件功能描述:用于从 MSDN 网站上下载指定章节下的所有文章,读取内容中的文本及图片等。读取完成后,转换为 Word 文件,并生成相应的目录 阅读全文
posted @ 2013-05-07 13:36 BloodyAngel 阅读(5638) 评论(32) 推荐(12) 编辑
摘要: 上个月看了一本《Running.Lean.2nd.Edition.Feb.2012》,是“周哥”给推荐的。主要是讲如何使用精易的思想,在尽量省时间、少浪费的前提上,验证你的其商业模式,并最终完成可行的产品。具体的书评,有兴趣的朋友可以看这里:《豆瓣书评》。 个人感觉非常好,看了两三遍,并且按照书中的 阅读全文
posted @ 2013-04-19 10:01 BloodyAngel 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 对于业务逻辑的组织,个人认为,最好是使用 DDD(《Domain Driven Design》) 的方式。DDD 使用领域模型来表达实体间的关系,同时在应用层使用 Service 来组织各实体间的过程式代码。二者构成了整个应用程序的核心业务逻辑(《Pattern of Enterprise Application Architecture》)。OEA 是一个基于 DDD 思想的框架。在 OEA 中,使用了 Service、Controller 来组织过程式逻辑。结构如下图: 对于大型系统来说,OEA 中的 Service 主要作为分布式调用、本地调用的 Facade 接口,主要的业务过程则使用 阅读全文
posted @ 2013-03-08 11:46 BloodyAngel 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 本篇博客主要描述分页的常见技术方案,以及在 OEA 框架中的分页的应用及实现原理。分页的几种方案 分页是解决大数据量显示的有效方法。根据分页技术应用的位置不同,大致可以把分页分为以下几种:界面层分页 界面层的分页,类似于界面的虚拟化技术,是只显示需要的数据的一种技术。OEA 的 WPF 界面中目前已经实现了 UI 虚拟化,所以不再实现界面层分页。优点:* 简单。许多控件都支持在界面层直接进行分页。* 换页时,响应快。(在 C/S 结构下使用这种方案,数据都已经到达客户端,所以在分页时不需要额外的数据查询,响应速度较快。)缺点:* 不用于太大的数据分页。由于没有减少网络传输,首次加载时较慢,需. 阅读全文
posted @ 2013-01-23 17:50 BloodyAngel 阅读(2029) 评论(11) 推荐(3) 编辑
摘要: 本篇博客主要描述在 OEA 框架中的多国语言框架的原理及应用。多国语言常见实现及原理分析 管理软件平台,一般来说,都应该支持多国语言,以支持应用程序走向国际化。OEA 最近也提供了多国语言框架,它可以在修改少量甚至不修改代码的情况下,快速、灵活地,使得整个应用软件支持各个国家的语言。在 .NET 平台上,要实现多国语言切换,一般可以使用资源文件实现;在WPF中,也可以使用动态引用实现。这些可以参考以下几篇文章中讲到的方法:《WP7多国语言支持》、《一种灵活的WPF程序多国语言支持》、《.NET多国语言支持》。 而这些方法背后的本质,其实都是在开发期,通过开发人员定义的“键(Key)”,找到在. 阅读全文
posted @ 2012-12-30 22:13 BloodyAngel 阅读(1355) 评论(2) 推荐(2) 编辑
摘要: 为什么要重构 上两个月主要做了一件事情,那就是把 OEA 框架中的 TreeGrid 控件,从结构上重新设计,并大量重构现有代码。而花较大精力做这件事的原因,主要是因为: 业务中需要支持一系列新功能:整行编辑、上下箭头键进行导航、合计行、锁定列 等。 控件显示性能较差,需要支持列虚拟化。 和 OEA 元数据系统耦合,希望独立为单独的控件程序集,提高复用性。 不支持 xaml 声明的格式。原控件直接在后台用 OEA 代码生成,本质上作为一个 WinForm 控件来用。 整个 TreeGrid 控件混合了三个控件代码而成,包括:GridView... 阅读全文
posted @ 2012-11-14 16:20 BloodyAngel 阅读(2330) 评论(7) 推荐(2) 编辑
摘要: 2011 年已经发布过一套《个人管理工具集》,其中有计划模板和一些常用小工具组。时隔一年半,一直在用的月度计划模板感觉对个人管理非常有效,所以基于 “OEA框架”把模板做了一个易用的计划软件,方便使用。以下是软件的截图,有兴趣的朋友可以下载来试试下载地址:V 0.3.14.0(最新版本)V 0.2.5.0(注意,本工具需要支持在 .net 4.0 框架上,可使用 360 软件管家安装。)PS:个人管理中,个人计划管理是非常重要的一部分。依我个人的经验,做计划与不做计划,有很大的差别。做了计划后,工作、生活,更有目标,更有方向;而有时犯懒,没做计划时,基本上一个月都是在混日子,想到哪做哪。做计划 阅读全文
posted @ 2012-11-05 10:41 BloodyAngel 阅读(2754) 评论(20) 推荐(3) 编辑
摘要: 最近用 OEA 做的仓库管理系统中,许多界面的都需要使用表格控件来显示数据。一是这些表格的列非常多,有的甚至达到了 200 列,而且一个模块的界面中可能同时显示好几个表格。这导致界面的速度比较慢,特别是较多数据需要展现时。经检测,表现虽然表格的行已经做了虚拟化,但是由于列非常多,最终还是造成可视树中的元素过多,而导致界面布局代码运行过慢。假设只有 30 行,一个单元格仅生成 5 个可视元素,200 列的单元格都会产生 3W 个可视元素,而布局系统的 Measure 方法需要对可视树中的每一个元素都调用其对应的 Measure 方法,可以想象,这当然会很慢。 那么,要解决上述的问题,只有... 阅读全文
posted @ 2012-10-24 15:53 BloodyAngel 阅读(4848) 评论(2) 推荐(2) 编辑
摘要: 之前 OEA 一直用着一个 Delphi 开发的报表,所以两年来我一直就想在 OEA 中构建一个纯 .NET 的报表模块,但是一想到要开发复杂的报表引擎和设计器就觉得麻烦。所以这事一直拖着。最近开始研究一些成熟的报表引擎,经过对比,还是发现微软的 RLDC 报表已经能满足我大多数需求。其中包括表格、矩阵、图表 等复杂控件,同时同样的报表格式在 B/S 模式下也可以直接使用,最新的 Tablix 控件非常灵活,能实现大多数表格样式。所以我决定不再费时费力去造一个轮子,而是直接把微软的 RDLC 报表集成进来。最终集成到 OEA 中,只花了不到一周的时间。虽然现在还处在第一版,没有给客户使用的设计 阅读全文
posted @ 2012-09-07 16:15 BloodyAngel 阅读(2679) 评论(9) 推荐(2) 编辑
摘要: WPF 中 Graphics 相关的类有时候看起来比较晕,有些类的命名也比较相近,所以画出下面几个图,帮助记忆: 1. Geometry 几何图形 2. PathGeometry 路径几何图形 3. Shape 4. Drawing & Visual 阅读全文
posted @ 2012-09-07 14:35 BloodyAngel 阅读(2544) 评论(0) 推荐(1) 编辑