AgileEAS.NET SOA 中间件平台工作流系统介绍

by 魏琼东 2012.2.28 18:49
一、AgileEAS.NET SOA平台简介 AgileEAS.NET SOA平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库、资源管理平台、运行容器、开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供了设计、实现、测试等开发过程的并行。 AgileEAS.NET SOA平台基于软件过程改进以及构件化快速开发两方面达到这方面的目标,在软件过程改进实践方面,提出了独有的“敏捷并行开发方法”开发方法,其目的是在软件的管理之中提出符合国内中小软件企业实际情况并且可操作的软件工程实践、软件过程改进思想、及相配套的项目管理系统。 在快速开发方面,AgileEAS.NET SOA平台提供了企业应用开发所需的诸如ORM、IOC、分布式通信、插件与平台基础结构以及一系统的快速生成工具,涵盖开发过程中的设计、编码、集成、部署、运维等各个环节。 AgileEAS.NET SOA平台是一套基于微软dotNET技术体系的企业级快速开发平台/中间件/框架,我们一直一来努力为国内中心软件开发商、创业团队、独立开发者提供最好的企业应用快速开发工具帮助大家成长,在最新的AgileEAS.NET‘ 5 .0版本中对Winform/WPF/Silverlight/WebForm都提供运行支撑平台,我们努力提供一套Winform/WPF/Silverlight/WebForm不同展现与统一的后端支撑的多层分布式架构体系。 二、AgileEAS.NET SOA平台工作流系统 AgileEAS.NET SOA平台的早期版本不包含业务流程平台,2010年以来,很多客户提出了有必要让我们提供工作流系统的想法,也就有了今天的产品,AgileEAS.NET SOA平台的工作流系统自2010年5月份开始至今,经历过一次失败及一次构建思想重大的变更之后变成趋于成熟,并且目前已应用于客户的几个项目之中。 在早期的时候,我们的开发人员借鉴了微软WF3.5的工作流技术但并没有使用WF3.5的工作流引擎,并且自己写了一套工作流引擎,采用与顺序工作流相类似的业务风格,但这次尝试失败了,失败的原因第一是自己写工作流引擎需要考虑很多的技术和业务细节,并且所引发的未知问题不可控制,第二是开发人员在思维理解及对于练习技术与为客户做需要需要的产品之间的巨大的差异没有仔细考虑,这里也说到一个关于技术人员值得思考的问题,那就是“你倒底是需要做出客户需要的产品还是你为了某项技术而淬炼技术,做出一个客户并不需要的产品或者说一个无法产品化的产品”我想这将会是技术人员应该深思的问题,我们很多的开发人员都在为了淬炼自己的技术在那做客户并不需要的产品或者说做出的产品Bug满地,更像是一个学习做品,远远达不到产品化的目标。 因为诸多原因,我放弃了原来的版本,转换采用了微软 WF3.5做为其工作流引擎,并对其做了高层封装,用于满足绝大数工作流应用中的“审批业务流程”,也就是说AgileEAS.NET SOA平台所提供的工作流将主要是为了满足企业申请-审批业务流程的后期灵活而服务。 在经过长期的需求及技术调研之后,最终我们决定以微软的WF3.5为基础实现AgileEAS.NET SOA平台业务流程平台,引擎直接采用微软的WF3.5工作流引擎,工作流设计器参考微软给出的例子使用DesignSurface技术自行完成,自行实现了工作流的运行监控、持久化服务,并结合AgileEAS.NET SOA平台的权限模型实现了工作流发起及各个状态运行的权限控制,并结合AgileEAS.NET SOA平台构件开发的底子实现了工作流与业务构件的完美结合。 AgileEAS.NET SOA平台工作流系统主要涵盖工作流的设计与定义、流程实例的发起与运行、业务流程的监控与管理、工作流系统与业务系统的集成与协作等内容。 AgileEAS.NET SOA平台工作流: 工作流定义: 流程实例监控: 流程实例处理记录: 流程实例对应的业务表单: AgileEAS.NET SOA平台工作流的功能就简单介绍到这儿,接下来的文章我将会以一个具体的例子为大家演示一下AgileEAS.NET SOA平台工作流的使用。 三、关于AgileEAS.NET SOA 5.0 去年8月我就曾向大家预示过要发布AgileEAS.NET SOA平台5.0版本,但是截至到目前为止5.0版本还没有公开提供过,在此我向一直关注和支持AgileEAS.NET SOA平台发布的各位同行和朋友们说声抱歉,也向大家解释一下延迟发布的原因,这里面有两个原因,第一个是因为我对产品的成熟和发展过于乐观,第二个原因是我对于开发团队的引导和监控不力,因为去年现在不只是我一个人在完善这个平台,计划5.0发布中涉及的两个极其重要的部分工作流系统和界面设计器这两个工具在发布之间发现其根本没有达到我的计划目的,包含大量的Bug甚至在某个产品方向上有重大的错误,第三个原因呢主要是项目太多,我们一方面要完善AgileEAS.NET SOA平台,另一方面还需要为客户提供大量的技术咨询和项目指导服务,所以AgileEAS.NET SOA平台5.0版本的发布一直无限的延迟,一方面是继续完善产品,使其达到可用的程度,另一方面是AgileEAS.NET SOA平台5.0在我们向客户提供技术咨询与指导服务的同时,优先向客户提供,以便更早的被应用于生产环境,更早的发现产品中存在的问题,因为我们都在客户现场,产品中的bug或者说设计上的缺陷我们都可以及时的处理和修正,但是对于公开发布而言,当发现产品的缺陷的时候,其处理和修正的成本将会是极其巨大的,我们目前也没有太多的技术人员为大家提供此类服务,新产品的发布所以才会一直被延期,我们希望向客户提供的产品不是一个满地bug的产品,而是一个极其严谨可以的商业产品,虽然AgileEAS.NET SOA平台平台是免费向大家提供,但是我们还是希望提供商业化的品质。 目前想了解和学习AgileEAS.NET SOA平台的朋友请大家还是先下载4.0版本及其相关的例子,对4.0有充分的了解和认识,学习5.0将会更加的简单,5.0和4.0在技术上并没有太多的改变,只是增加了工作流平台、数据表单/界面设计工具、SAAS引擎和支持了Oracle、Mysql、SQLite三种新的数据库系统。 四、AgileEAS.NET 4.0 下载 有关于平台最新版本的最新发布版本的程序集、类库手册、相关资料,请大家从AgileEAS.NET平台的官网http://www.smarteas.net/进行下载,官网设有独立的下载页面,从这里下载:官网下载页面。 五、如何联系我们 如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。 1、官方网站: AgileEAS.NET平台:http://www.smarteas.net/ 敏捷软件工程实验室:http://www.agilelab.cn/

“医疗信息化行业之中的联发科”- 我们在医疗行业中的定位及目标

by 魏琼东 2011.11.5 14:20
我们为医疗软件企业提供一套包含基础中间件、应用整合平台、一套快速开发平台及一套包含基本功能(满足2甲及其之下级别医院)的HIS系统及电子病历系统的“AgileEAS.NET数据化医院基础支撑与整合平台”快速HIS研发、成长解决方案。

我们向开发商移交本基础解决方案相关的基础中间件、应用整合平台、快速开发平台,以及HIS系统及电子病历系统的源代码及相关的技术资料(方案、数据库设计、结构设计、流程整合等技术细节资料),并向开发商提供技术与业务培训,帮助开发商快速向市场推出自己的产品,开发商可以只修改一些与本地特色的东西,比如票据、报表、医保接口、农合接口即可满足市场需要,最快可以在一个月之内向客户提供HIS产品,开发商也可以在这个方案之上,加入更多的业务功能,以满足更多的业务需要,比如向移动医疗整合、与区域公共卫生整合、增加更多的功能以满足三级医院需求等待。

[更多...]

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 文章汇总及学习指南

by 魏琼东 2011.11.5 13:58
AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库、资源管理平台、运行容器、开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供了设计、实现、测试等开发过程的并行。

[更多...]

Tags: , , , , , , ,

WorkFlow入门Step.3—Adding Procedural Elements-For-WF4.0

by hot 2011.6.9 12:45
开篇 上篇,我们简单的说明了WF的入门,那么院子里面已经有很多的高手,写了不少的关于工作流的应用,最近在集成工作流平台的过程中也是发现了不少的问题和心得体会,工作流果真不只是审批那么简单,复杂度可见非常的不一般,学好了工作流无论对自身的对业务流程的理解和改进,都是非常有帮助的,由于不同的企业应用的具体的业务流程不同,因此也就造成了无法构建通用的业务流程模型,就和企业的管理一样,无法生搬硬套,要符合企业内部的情况才可以。 关于工作流的认识的相关文章,也是已经有了很多了,不少院子里面的大牛都已经提到过工作流的认识,小弟不敢说对工作流理解的很深。 摘要 WorkFlow是最近比较流行的一门技术,其实WF起源于20世纪70年代中期的办公化自动领域,自1993年8月,WFMC(工作流管理联盟)成立,1994年制定了一系列的关于工作流的标准。进入21世纪工作流被越来越多的学者关注,该项技术越发走向成熟。当然我也是必须跟上时代的步伐,所以也加入工作流的大军,希望能够跟上前人的脚步。当然也希望感兴趣的朋友,加入工作流的讨论群中来。具体群号:120661978。 目前,我们已经在AgileEAS.平台中陆续集成了,界面设计器+工作流的内容,当然工作流目前还不算太成熟,还不方便放出来,本文只是抛砖引玉,还希望大家多多重视工作流的内容。 大纲 一、开篇 二、摘要 三、WF4.0的控制流 WF4.0中的控制流         上一篇《WorkFlow入门Step.2—Building a Simple WorkFlow-For-WF4.0》我们讲述了基本的关于WF4.0构建简单的控制台程序。本节我们就来看看WF4.0中的控制流 中的基础用法及说明,当然有一些诚恳的朋友说,我写的系列与大多数的WF系列一样,都是没有实际的东西,可能我这里想解释下,我先写入门吧,然后在结合实例 写应用篇吧,希望大家继续支持。   1、使用变量                 a、先拖拽一个顺序活动控制流到设计视图中。                      b、定义变量:                     c、变量是支持继承的,该顺序控制流内部的活动,默认会可以访问到外部父活动定义的变量。                   d、输出结果,来测试下我们说明的内容吧:             2、IF控制流         a、拖拽一个IF控制流节点到顺序控制流之上。                b、拖拽then与else的活动。                c、下面我们来运行下上面的情况,来查看下具体的结果吧:                d、我们来修改下if中的表达式条件。                e、我们修改了上面的“Condition的匹配条件” condition=“test” 那么这时候执行的肯定是then。如果condition的值是test的话。                f、我们修改上面的Assign活动中的设置变量的值,修改为condition=“test”;                g、再次运行,查看结果:         3、While控制流      a、新建一个活动:           b、添加如下信息:          c、运行该节点,查看输出信息:          d、我们来修改下while条件中的condition的条件或者是在上方的为变量设置值的活动中设置condition的值为1:          e、再次运行,查看输出结果:          f、下面我们来修改下这个条件,当condition<10的时候,我们执行输出,否则跳出循环:         g、我们再来执行下,查看运行的结果。     下篇预告 本篇我们讲述了“WF4.0”的控制流中的IF与While,下篇我们将会继续讲解控制流的其他用法,如果您有更好的意见或建议,还请提出: 控制流中的很多内容,在我们具体的业务流程的应用中是最常用的内容,所以我们先把基础的内容进行梳理和说明。 源码下载     更多交流 官方博客:http://www.smarteas.net/ 官方网站:http://www.agilelab.cn/ 如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。 1、邮箱方式: 魏琼东: mail.james@qq.com 手机:18629261335 博客:http://eastjade.cnblogs.com/ 殷长波:549558408@qq.com 博客: http://www.cnblogs.com/onmyway/ 何戈洲:hegezhou_hot@163.com 博客:http://www.cnblogs.com/hegezhou_hot/ 2、QQ交流群: AgileEAS.NET平台交流群:120661978(超级群)[新建] AgileEAS.NET平台交流群:125643764(高级群)[已满] AgileEAS.NET平台交流群:147168308(高级群)[已满]

Tags: , , , ,

企业应用架构

WorkFlow入门Step.2—Building a Simple WorkFlow-For-WF4.0

by hot 2011.6.9 12:43
开篇         上篇,我们简单的说明了WF的入门,那么院子里面已经有很多的高手,写了不少的关于工作流的应用,最近在集成工作流平台的过程中也是发现了不少的问题和心得体会,工作流果真不只是审批那么简单,复杂度可见非常的不一般,学好了工作流无论对自身的对业务流程的理解和改进,都是非常有帮助的,由于不同的企业应用的具体的业务流程不同,因此也就造成了无法构建通用的业务流程模型,就和企业的管理一样,无法生搬硬套,要符合企业内部的情况才可以。         关于工作流的认识的相关文章,也是已经有了很多了,不少院子里面的大牛都已经提到过工作流的认识,小弟不敢说对工作流理解的很深。 摘要         WorkFlow是最近比较流行的一门技术,其实WF起源于20世纪70年代中期的办公化自动领域,自1993年8月,WFMC(工作流管理联盟)成立,1994年制定了一系列的关于工作流的标准。进入21世纪工作流被越来越多的学者关注,该项技术越发走向成熟。当然我也是必须跟上时代的步伐,所以也加入工作流的大军,希望能够跟上前人的脚步。当然也希望感兴趣的朋友,加入工作流的讨论群中来。具体群号:120661978。         目前,我们已经在AgileEAS.平台中陆续集成了,界面设计器+工作流的内容,当然工作流目前还不算太成熟,还不方便放出来,本文只是抛砖引玉,还希望大家多多重视工作流的内容。 大纲         一、开篇         二、摘要         三、WF4.0的第一个实例 WF4.0构建简单实例         上一篇《WorkFlow入门Step.1—My Frist WorkFlow Trip!》我们讲述了基本的关于工作流的介绍和认识,这次我们直接进入WF4.0,关于3.5之前的版本,我们在后续的篇幅中就不介绍了,以4.0为主,4.0的具体的关于更新和说明,我这里也不特别的复述了,大家可以参考如下文章 Windows Workflow Foundation 中的新增功能          4.0相比之前的版本可以说是颠覆性的变化,无法从之前的版本无缝的迁移到4.0版本之上。          下面我们就来开始新建一个WF4.0的简单项目,我们先从Hello World!开始吧:           1、新建一个控制台应用程序                      2、新建完毕后,出现如下的界面,与原来的3.5之前的页面的方式是不同的:                      3、打开工具箱,我们看到系统提供的默认设计活动分组:                      4、我们选择“控制流”分组中的“Sequence ” 顺序控制流:                      5、上面我们就完成了工作流的拖放,下面我们在添加“基元”分组中的如下活动:                      6、我这里设置时间长度假设为“15”秒钟,那么将上面的duration设置为“00:00:15” 即可。我们再添加一个活动节点“WriteLine”来输出“Hello World!”;                      6、这样就好了,我们再来看看宿主“Program”中的写法吧,看看4.0相比3.5之前的版本的变化吧。                                 7、我们来运行下程序看看效果吧:                      8、你可能会认为,我怎么知道是否是等待了15秒钟呢,下面我们在执行该节点的前后,加入执行时间的输出信息吧:                      9、再次运行看看效果:                       看起来非常的简单吧,很容易上手,等你一旦找到了感觉,会发现其实本身并不难,而是难在如何解决实际的问题。 下篇预告            本篇我们讲述了“WF4.0”的第一个程序,下篇,我们也是参考C#语言的学习之路,开始讲述循环结构,先掌握WF4.0中的控制流:                        控制流中的很多内容,在我们具体的业务流程的应用中是最常用的内容,所以我们先把基础的内容进行梳理和说明。 更多交流 官方博客:http://www.smarteas.net/ 官方网站:http://www.agilelab.cn/ 如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。 1、邮箱方式: 魏琼东: mail.james@qq.com 手机:18629261335 博客:http://eastjade.cnblogs.com/ 殷长波:549558408@qq.com 博客: http://www.cnblogs.com/onmyway/ 何戈洲:hegezhou_hot@163.com 博客:http://www.cnblogs.com/hegezhou_hot/ 2、QQ交流群: AgileEAS.NET平台交流群:120661978(超级群)[新建] AgileEAS.NET平台交流群:125643764(高级群)[已满] AgileEAS.NET平台交流群:147168308(高级群)[已满]

Tags: , , , ,

企业应用架构

WorkFlow入门Step.1—My Frist WorkFlow Trip!

by hot 2011.6.9 12:41
    开篇         自从上次书写的关于《AgileEAS.NET平台开发Step By Step系列-药店系统-索引》使用AgileEAS.NET 敏捷软件开发平台之后,封笔了一段时间,一是最近比较忙,给客户指导培训,通过近20多天的时间,也是开发了一个建议的ERP系统,对我来说已经是比较满意的成绩了,我们会再接再厉,继续前行。         首先、我不是WF的老手,只是将我学习的过程记录下来,当然由于小弟不才,可能存在理解错误或者印象中有问题的地方,还望大家批评指正才是。         本文也是先写个简单的示例来说明WF的使用。 摘要           WorkFlow是最近比较流行的一门技术,其实WF起源于20世纪70年代中期的办公化自动领域,自1993年8月,WFMC(工作流管理联盟)成立,1994年制定了一系列的关于工作流的标准。进入21世纪工作流被越来越多的学者关注,该项技术越发走向成熟。当然我也是必须跟上时代的步伐,所以也加入工作流的大军,希望能够跟上前人的脚步。当然也希望感兴趣的朋友,加入工作流的讨论群中来。具体群号:120661978。 大纲            一、工作流简介            二、工作流的参考模型            三、工作流管理系统            四、工作流管理系统架构            五、工作流目前的现状            六、第一个工作流实例 工作流简介          工作流的英文单词是workflow,犹如大多数计算机领域的术语一样,也是个合成词,是英文单词work和英文单词flow的组合。Work翻译为任务、工作等,flow则 翻译为流程、流动等。Flow反映的是一种事物的动态属性或变化过程,例如水的流动被称为水流,空气的流动被称为气流,还有物料流、资金流等,在抽象领域还有信息流、控制流等,因此,使用任务、活动以及活动之间的变化过程表示业务流程就被称为工作流。 工作流尚没有一个统一的、明确的定义,不同的组织和研究人员对工作流给出了各自的定义: 定义1:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行。 定义2:工作流是将一组任务组织起来完成某个经营过程。在工作流中定义了任务的触发顺序和触发条件。每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以是由一个或多个人与软件系统协作完成。任务的触发顺序和触发条件用来定义并实现任务的触发、任务的同步和信息流(数据流)的传递。 定义3:工作流是一个用来实施经营过程实践的机制。 定义4:工作流是经营过程的一种计算机化的表示模型,定义了完成整个过程所需要的各种参数。这些参数包括对过程中每一个步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个活动所需要的应用程序。         以上这些工作流的定义,虽然在表述方式上有所不同,但是基本上说明了这样一个问题,即工作流是经营过程的一个计算机实现。使用工作流作为经营过程的实现技术首先要求工作流系统能够反映经营过程的如下几个方面问题: 1. 经营过程是什么,即由哪些活动、任务组成,也就是结构上的定义; 2. 怎么做,即活动间的执行条件、规则以及所交互的信息,也就是控制流与信息流的定义; 3. 由谁来做,即人或者计算机应用程序,也就是组织角色的定义; 4. 做得怎样,即通过工作流管理系统对执行过程进行监控。 工作流参考模型          WFMC在工作流的相关规范和标准方面做出的主要贡献之一就是提出了一个工作流参考模型(Workflow Reference Model)。工作流参考模型来源于对普通工作流程序结构的分析,确定结构中的接口,这些接口可以使不同产品在不同的结构层次上协同工作。所有工作流系统都包含一系列的公共组件,组件间采用一套被定义好的方法进行协作;不同的产品在这些公共的组件中,会表现出不同的处理能力。为了实现不同工作流产品间的协同工作,需要在这些组件间制定一套标准的接口和数据交换格式。通过实现这些标准接口,可以达到产品间的协同工作。         我们先来看看下图,看看WFMC的参考模型:                     下面我们来挨个解释下每个接口的具体作用吧:           1、接口1:           在建模或定义工具与运行时期工作流管理软件间的接口。          2、接口2:           该接口,提供客户端应用程序与工作流引擎之间的通信API 。           3、接口3:           该接口是工作流引擎与其他应用程序之间通信的API。           4、接口4:           通过工作流与工作流之间的通信API,是实现分布式工作流管理系统的核心API。           5、接口5:           该工具提供了对工作流引擎的当前状态及运行在该引擎下的实例的监管和管理的接口。           我们再来看看上面相关工具的作用吧:          流程定义工具 :           就是提供一种方便的使用的,并且能够被计算机识别的过程定义,目前我们使用较广泛的是通过图形化的工具来完成WF的过程定义。最后输出一个XPDL文件。XPDL(XML Process Definition Language)是由Workflow Management Coalition所提出的一个标准化规格,使用XML文件让不同的工作流程软件能够交换商业流程定义。           管理监控工具:           对工作流在整个组织内的流程情况进行监控,并提供一系列管理功能,实现安全性、过程控制、授权等操作。典型的功能范围包括用户管理、角色管理、监控管理、资源管理、过程监控管理。具体如:过程模型的实例化,启动、挂起、恢复、终止过程实例;管理正在执行的过程实例等。           工作流执行服务:           由一个或多个工作流引擎组成,提供过程实例的执行,为活动进行导航,与外界资源交互完成各项活动,维护控制数据和相关数据等功能。                     下图是工作流服务的整个流程:                      工作流管理系统          工作流管理系统——Workflow Management System(简称WFMS),在工作流定义基础上,具有如下定义。             定义1:工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。             定义2:工作流管理系统是支持企业经营过程高效执行并监控其执行过程的计算机软件系统。         根据工作流管理系统的定义,一个工作流管理系统应该提供如下的功能:             1. 定义、实现和管理工作流的运行;             2. 与工作流执行者,即人或应用系统,进行交互;             3. 推进工作流实例的执行;             4.监控工作流的运行状态。         需要指出的是,工作流管理系统不是企业的业务系统。在很大程度上,工作流管理系统为企业的业务系统运行提供了一个软件支撑环境,非常类似于在单个计算机上的操作系统。只不过工作流管理系统支撑的范围比较大、环境比较复杂而以,所以也有人称工作流管理系统是业务操作系统。 工作流管理系统架构          WFMC提出的工作流管理系统产品架构。这个架构给出了抽象的工作流管理系统的功能组成部件和接口,它能够满足工作流管理系统和产品应该具有的主要功能,可为实现工作流产品之间的互操作提供公共的基础。从图中可以看出,工作流管理系统主要由三部分组成:                      上图也是WFMC提出的工作流管理系统的架构设计图。我们这里来解释下几个重要组件的作用吧:          软件构件:完成工作流管理系统不同组成部分功能的实现,包括过程建模工具,工作流引擎,任务表管理器和用户界面;          系统控制数据:工作流管理系统中的一个或多个软件构件使用的数据,包括过程定义,组织/角色模型数据,工作流控制数据,工作流相关数据,任务表;          应用与应用数据:对于工作流管理系统来说,它们不是工作流管理系统的组成部分,而是属于外部系统和数据,它们被工作流管理系统调用来完成整个或部分工作流管理的功能,如被工作流管理系统调用的外部应用以及这些应用操作的数据。   工作流的目前现状           我们先来看看目前很多的自动化办公的流程:                     通过上面的图片,可能看不太清楚,我也没有从新画一张清晰的,所以大家先凑合着看下,然后后面我再补上,上面可以看到不同角色的人,负责在工作流中的状态及行为是不同的。上面中强调说明了工作职责的分配性问题。         工作流的概念起源于生产组织和办公自动化领域,提出的目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高工作效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。         众多的企业应用系统按照功能从大的范围来划分,无非两种,一种是以公文流转、日常办公为主体的办公自动化系统,另一种则是以企业经营过程的业务流程为主要辅助对象的具体业务系统。无论是办公自动化系统还是具体业务系统,都是为企业提供软件服务的,都是本着服务于企业需求为目标的,然而,现实世界中的各个企业的经营过程是无时无刻不在变化和调整中的,以便适应瞬息万变的市场。这种变更带给信息化系统软件的最大的问题在于企业经营过程的调整往往使得原有的信息化系统软件要推倒重新设计开发,使开发成本非常的高,寻找到一种能够相对灵活的架构和管理方式以使得信息化系统能够快速的适应企业经营过程的变更成为了为企业构造信息化系统的软件设计人员的头等课题。工作流及工作流管理系统之所以能为企业信息化系统所使用究其原因也在于此。虽然工作流技术已经开始在企业应用中拥有了一片天空,然而,同已经应用于企业的其他技术相比,工作流技术仍然处于其技术发展的初期。          下图显示了,工作流与RDBMS系统之间的发展曲线对比图:                      当然从上图中,我们看到WF处于提出并初始发展阶段,而数据库管理系统已经非常的成熟并产品化。 My WorkFlow Trip         下面我们开始进入WF的开发之旅吧,好像废话的篇幅比较多,希望大家不要不喜欢看呵呵,下面我们就来开始开发吧来完成我们的WF开发之旅的第一个程序demo。          1、新建一个状态机工作流或者顺序工作流控制台应用程序:                     2、输入项目名称后:                    3、设计WorkFlow中的相关状态节点。主设计页面如下:                    4、新建State节点,在左侧的工具栏中找到如下节点,然后拖拽到设计器中:          选择State节点,拖拽到设计器中,出现如下效果图:                       5、设计状态流程中的起始状态节点以及完成状态节点,毕竟工作流的状态必须有开始和结束的,对于状态机来说是必须的。                          6、当我们添加了State之后,我们现在来设置状态的跳转及路程。拖拽一个新的节点到设计器中:             选中该节点后,打开属性编辑对话框。                            7、设置该状态节点的跳转及其他行为等:                             8、依照上图中的顺序,给第一个初始化开始状态也添加同样的事件,来完成跳转。后台的代码如下:                            9、运行后的效果如下:                更多交流 官方博客:http://www.smarteas.net/ 官方网站:http://www.agilelab.cn/ 如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。 1、邮箱方式: 魏琼东: mail.james@qq.com 手机:18629261335 博客:http://eastjade.cnblogs.com/ 殷长波:549558408@qq.com 博客: http://www.cnblogs.com/onmyway/ 何戈洲:hegezhou_hot@163.com 博客:http://www.cnblogs.com/hegezhou_hot/ 2、QQ交流群: AgileEAS.NET平台交流群:120661978(超级群)[新建] AgileEAS.NET平台交流群:125643764(高级群)[已满] AgileEAS.NET平台交流群:147168308(高级群)[已满]  

Tags: , , ,

企业应用架构

AgileEAS.NET平台开发实例-药店系统-快速的SAAS开发体验

by 魏琼东 2011.5.18 17:09
一、AgileEAS.NET应用开发简介 在4月份,callhot写过一系列的有关于AgileEAS.NET平台的开发应用的系列AgileEAS.NET平台开发Step By Step系列-药店系统-索引,他通过一个接近于实际应用的案例,从头到尾的向大家展示了AgileEAS.NET平台在企业信息系统开发中的应用及其应用开发的过程。 AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库、资源管理平台、运行容器、开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供了设计、实现、测试等开发过程的并行。 AgileEAS.NET平台基于软件过程改进以及构件化快速开发两方面达到这方面的目标,在软件过程改进实践方面,提出了独有的“敏捷并行开发方法”开发方法,其目的是在软件的管理之中提出符合国内中小软件企业实际情况并且可操作的软件工程实践、软件过程改进思想、及相配套的项目管理系统。 在快速开发方面,AgileEAS.NET平台平台提供了企业应用开发所需的诸如ORM、IOC、分布式通信、插件与平台基础结构以及一系统的快速生成工具,涵盖开发过程中的设计、编码、集成、部署、运维等各个环节。 在callhot的AgileEAS.NET平台开发Step By Step系列-药店系统的系统之中,他详细的向大家展示了AgileEAS.NET平台在企业信息系统中提供的强大支持,在短短的一个月时间之向,向大家贡献了一个完整的案例及配套的几十篇渐进式教程,我相信大家通过他的教程,都能应用AgileEAS.NET平台中小型企业应用。 二、药店系统的SAAS部署 Callhot接手了新的工作,我在他留下的代码的基础之上,采用了最新的AgileEAS.NET平台进行了一个重构和裁剪,并且通过互联网以SAAS结构向大家发布了这个应用,其总体结构如下。 数据库和分布式应用层我部署在我的互联网服务器上,客户端我将提供一个msi包给大家下载,客户端和应用服务器可以通过webservice、WCF(http/TCP)进行数据通信,最终运行界面如下: 三、客户端下载及使用说明 客户软编译版本我打开了rar压缩包,请大家通过这里下载,下载解压缩后运行EAS.WinClient.exe文件。 大家可以使用0001(采购员),0002(销售员),0003(店长)三个账号登录药店系统,所有密码均为空,三个账户操作权限不同,请大家不要修改密码。 在下载包中的EAS.Winclient.exe.config文件之中记录应用程序服务器的通信设置。 <services> <service name="RMIService" service-type="WebService" singleton="true" url="http://www.agilelab.cn/xservice/rmiservice.asmx" /> <!--<service name="RMIService" service-type="WcfService" singleton="true" url="net.tcp://202.100.84.179:6688/EAS.RMIService" />--> </services>   系统默认使用WebService通信,连接至http://www.agilelab.cn/xservice/rmiservice.asmx,我在http://www.agileleab.cn/网站以iis宿住部署了webservice方式部署了通信服务,业务层寄宿在iis之中运行。 使用者也可以替换为wcf/tcp通信,连接至net.tcp://202.100.84.179:6688/EAS.RMIService,我在202.100.84.179部署了一套独立的基于wcf/tcp通信的应用服务程序。 友情提示一下,webservice通信较慢,特别是在登录界面之上,点了登录可能要等一会,因为使用的是SericeLocator动态调用技术,涉及编译webservice的代理类,请大家理解。 四、关于自动升级 在AgileEAS.NET平台本次重构过程之中,废弃了原有的基于插件的静默升级形式,替换了比较通过的独立升级程序,升级参数通过客户端目录中的update.ini文件升级。 # AgileEAS.Net 平台升级控制文件   [config]   allow = 1 url = http://www.agilelab.cn/xservice/smartupdateservice.asmx #url = net.tcp://202.100.84.179:6688/EAS.SmartUpdateService   升级技术同样也可以采用ws技术也可采用wcf技术,目前,为了避免多点升级维护的麻烦,只提供于ws的升级,升级服务地址http://www.agilelab.cn/xservice/smartupdateservice.asmx。 五、案例源代码 本案例源代码结构重构之后更加合理,代码结构如下: DrugShop.DAL为系统的数据访问层(充血模型),DrugShop.BLL为系统的业务层/服务层,DrugShop.WinUI为系统以WinForm为表现模式的UI层,DrugShop.Res为系统的可替换资源,包括自定义的登录、关于窗口、banner条和起始页模块,DrugShop.AssStart为开发过程中的平台插件容器调试环境的启动程序。 药店系统-案例的源代码、文档、数据库备份、最后发布都打进一个独立的Rar包中,其结构如下: 请大家从这里下载。 六、平台其他下载      有关于平台最新版本的最新发布版本的程序集、类库手册、相关资料,请大家从AgileEAS.NET平台的官网http://www.smarteas.net/进行下载,官网设有独立的下载页面,从这里下载:官网下载。 CallHot 写过一个系列的基于AgileEAS.NET平台的开发案例,请大家通过AgileEAS.NET平台开发Step By Step系列-药店系统-索引及AgileEAS.NET敏捷开发平台及案例下载(持续更新)-索引、AgileEAS.NET平台开发实例-药店系统-视频教程系列-索引一系列文章进行下载。 七、如何联系      如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。 1、官方网站:      AgileEAS.NET平台:http://www.smarteas.net/      敏捷软件工程实验室:http://www.agilelab.cn/ 2、AgileEAS.NET平台交流群:      AgileEAS.NET平台交流群:120661978(超级群)[新建]      AgileEAS.NET平台交流群:125643764(高级群)[新建]      AgileEAS.NET平台交流群:147168308(高级群)[新建]   3、系统架构交流群:      系统架构交流群:9105332(高级群)(已满)      系统架构交流群1:124825459(高级群)(已满)      系统架构交流群2:49124441(高级群)(已满)      系统架构交流群3:47025564(高级群)(已满) 链接 AgileEAS.NET平台开发指南-文章索引 AgileEAS.NET应用开发平台介绍-文章索引 AgileEAS.NET平台应用开发教程-案例计划 AgileEAS.NET平台开发Step By Step系列-药店系统-索引

Tags: , , , , , , , ,

AgileEAS.NET开发教程 | AgileEAS.NET平台介绍

DotNET企业架构应用实践-企业管理软件架构(计算)的历史与发展(上)

by 魏琼东 2011.5.12 13:44
         企业管理软件是计算机软件应用的一个重要领域,在今天计算机软件除面向科学计算之外应用最广阔的也是企业管理应用,可以说计算机技术的发展推动着企业应用发展,企业管理需要也一方面影响着计算机技术的发展,今天,在我们的周末,企业管理应用软件开发人员占了总开发人员中的极大的比例。          今天我们就来通过回顾计算技术在企业应用中的发展历程来看看软件架构的发展。 主机-字符终端          在PC机没现世之前,极小数的企业使用大型业务处理主机处理企业计算机任务,在那个时候,计算机计算机价格非常昂贵,体积庞大,都是采用多个终端机连接上服务器的形式进行软件操作。          上图即所谓的主机--->终端结构,而一个终端,其实仅仅只是一台显示器和键盘而已,没有CPU和内存,只能接受操作输入和输出结果,没有任务的处理能力,我们可以理解终端为主机的延伸,那么他的逻辑结构呢,就是一个多用户多任务的处理程序。 客户机-服务器结构          PC机的问世,加速了企业应用软件的发展,一方面个人PC机的成本较低,功能也比较强大,企业有能力为员工配备更多的计算机提高工作效率。同时由于企业应用软件的功能逐渐丰富,应用范围越来越宽广和深入,所以对计算机性能的要求也越来越高。在高速的发展的企业应用需求下,传统的大型机的性能已经显现其不足,而与此同时,企业内部却有着大量空闲计算能力的PC电脑。因此,在经济利益的驱动下,企业应用软件开始向分布式的结构发展,将一部分的计算任务放到客户端PC来执行,而服务器仅仅只用来运行一些数据库软件,最大的程度的利用到所有计算机的计算能力,以提高性价比。这种企业软件的应用架构模式被称之为客户端(Client)/服务器(Server)模式,也就是通常所说的C/S模式。          随便PC机性能的飞速发展,大量的服务器采用PC技术生产,即大家常见的PC服务器【(X86-X64)服务器】,其价格相对大型主机、小型机非常的低廉,而其计算机能力也越来越接近小型机。         在这种分布式结构之中,可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销,服务器存储业务数据并势力有限的业务计算机,PC客户处理人机交互及绝大部分业务计算职能。目前大多数应用系统都是Client/Server形式的两层结构, 由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。         严格的来说,客户机-服务器结构(C/S)是分布式的一种经典结构,也是所有分布式结构衍生体系的基础,如果没有CS结构,就不可能存在BS结构、CAS结构、以及SAAS、云结构等。 浏览器-服务器结构          因为C/S模式所带来的一些固有的缺陷,比如直接连接数据库服务器引发潜在的安全性问题以及客户端程序的大规模部署和更新比较麻烦,C/S应用程序比较复杂等等问题都导致了C/S模式的企业应用软件开发和维护成本一直居高不下。          基于以上C/S结构的这些问题,出现了一种新的结构,即将企业应用的绝大总分业务计算机能力都放到服务器之上,客户端PC仅仅只运行一个WEB浏览器用于接受用户的输入和呈现。降低了软件的维护成本。这就是浏览器(Browser)/服务器(Server)架构模式,也就是我们很熟悉的B/S模式。          在这种结构之中,数据库服务器同C/S结构之中的服务器职能一样,存储数据并处理一部分业务,同C/S不同的是,承载绝大数据业务处理能力由PC客户端转移到Web服务器,而PC客户端弱化到类似于一个终端,只是这个终端不是字符终端,而是一个图像终端。          如果去追究这处结构的本质,我们可以理解为B/S结构为以C/S结构为基础的新型网络终端结构,即如下解释:          1.数据库服务和Web服务器组成了一个简单的C/S结构。          2.Pc机上的浏览器即一个图形终端,相对于服务端(Web服务器及其外端数据库)来说,其几乎没有任务的计算能力,仅为一个输入和输出设备。          B/S结构最大的好处是使用方便和部署简单,使用者可以在装有浏览器并能能联网手PC机上访问应用程序,而不需要同C/S程序一样运行前必须安装与配置,这极大的方便了使用者,也极大的降低了应用的部署和维护成本,但其缺点也是显著的,用户感觉不好。 C/S与B/S结构有对比          B/S结构同C/S结构一样,也是一种非常经典的分布式计算结构,在目前企业应用结构之中,都采用这种结构或者这两种结构的衍生结构,这两种结构各有优缺点,CS结构优点是客户操作体验好,而B/S结构部署和维护成本更低。 B/S结构的优点 (1)、具有分布性特点,可以随时随地进行查询、浏览等业务处理。 (2)、业务扩展简单方便,通过增加网页即可增加服务器功能。 (3)、维护简单方便,只需要改变网页,即可实现所有用户的同步更新。 (4)、开发简单,共享性强 B/S 模式的缺点 (1)、个性化特点明显降低,无法实现具有个性化的功能要求。 (2)、操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。 (3)、页面动态刷新,响应速度明显降低。 (4)、功能弱化,难以实现传统模式下的特殊功能要求。 C/S 模式的优点 1.由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。 2.操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。 3.C/S结构的系统具有较强的事务处理能力,能实现复杂的业务流程。 C/S 模式的缺点 1.需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。 2.兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。 胖客户端与瘦客户端          不管是C/S还是B/S,其都需要客户端技术,对于C/S模式和B/S模式这两种结构,也有两种不同的客户端技术对应,瘦客户端(B/S模式)技术和胖客户端(C/S模式)技术。          对于瘦客户端技术,典型的应用就是使用浏览器,通过输入URL远程访问服务端,并向服务端发送命令,获取服务端的资源,然后在客户端的浏览器上显示出来。由于这种技术数据库存放在服务端,客户端应用界面的也是由服务端的文件生成,因此在客户端上占用资源少,对客户端的设备要求不高,只需一个浏览器软件和可用的网络便能开始工作,另外,如果系统需要升级修改,只需要在服务端更新文件,当客户再次访问时,就可以使用新的应用系统了,因而部署和升级重点都放在了服务端,实现起来比较简单。但是,这种B/S模式依赖网络,当网络不可用时或出现性能不稳定的情况时就会导致客户端变成“死界面”——既不能将数据发送回服务端进行保存,又不能从服务端获取数据拿到客户端操作,一切的工作将要在网络恢复后才能得以继续。          对于胖客户端技术,用户在使用这种软件时获得的最大的感官体验就是——它首先有自己独特的应用程序界面,而非通过浏览器,用户甚至还可以根据自己的喜好调整软件的布局,进行丰富的界面元素的设置,这些都是B/S模式的瘦客户端技术所不能媲美的。另外,用户还能获得较快的反应速度,程序可以充分利用本地机器的资源,在不使用网络访问远程资源时,本地资源的访问在正常情况下都能得到很快的处理。同样的,胖客户端技术也有着不尽人意的地方——在客户端进行部署时,由于客户端可能出现各种各样的情况,所以需要进行必要的设置,部署起来比较困难,如果对软件的版本进行升级,使用传统的DLL技术的那将更是一个大的挑战,因为在.NET之前,标准Windows DLL或COM组件可能出现“DLL Hell”——注册和更新软件中的DLL时,发现共享的DLL被最新版本改写了,并使该机器上的其他软件也因此不能运行。胖客户端有可能需要在客户端实现数据库支持,数据库放在本地有可能导致一些安全问题,因为相对于更重视安全的服务端,客户端相对而言还是比较脆弱的。 C/A/S结构          C/S结构及B/S结构都有其优秀的一面,但也有其不足的一方,那有没有办法吸引这两者的优点呢,比如我们即需要C/S程序优秀用户体验但降低维护和部署成本呢,那么就出现了C/S结构的一种衍生结构,客户端/应用服务器/数据库服务器结构。          在C/A/S结构之中,数据库服务器同C/S结构之中的服务器职能一样,存储数据并处理一部分业务,应用服务器承载绝大多数业务处理,PC客户端需要安装应用程序客户端,但其只处理用户UI及UI逻辑,同简单的C/S结构相比,因为其业务运行于应用服务器之上,那么业务运行相对于来说比较集成,针对业务的运维成本就会降低,C/A/S结构通常结合客户端自动升级技术,也大大的减少了部署和维护成本,相对于单纯的B/S结构相比,因为有独立客户端的存在,带给用户更好的用户体验。         通常在这种C/A/S的分布式计算结构之中,在PC客户端和应用服务器之间,大量采用WebService、Remoting、Corba、DCOM、WCF等分布式通信技术或者融合SOA架构。 .NET智能客户端         .Net智能客户端是微软提出来的C/A/S结构的一种技术,其结合了瘦客户端(B/S模式)和胖客户端(C/S模式)的长处,能够充分的利用胖客户端模型带来的好处,提供给用户出色的操作体验,同时,也能够让我们享受集中部署和更新带来的好处。简而言之,这种新一代的客户端应用程序,就是被称之为“智能”客户端,它能很好的提供原本两种客户端的特性,并且增加了数据和连接的管理,产生了一种更好的用户体验。         有关于.NET知道客户端更多的介绍请参考:http://www.microsoft.com/china/MSDN/library/architecture/Smart.mspx?mfr=true。         不管是普通的C/A/S结构的应用还是.NET知道客户端的应用,其道理都是一样的,即采用C/S结构为其基础结构融合B/S结构中的某些优秀的特性,在目前,应用这种技术的商业应用很广。 富互联网应用        在基于C/S为基础架构的商业应该之中,采用了C/A/S、智能客户端技术来弥补简单的C/S应用的某些不足,在流行的B/S开发领域,也出现了一种以B/S技术为承载的改善客户使用体验的技术,即 富互联网应用技术。        富互联网应用(Rich Internet Applications),即RIA,具有高度互动性、丰富用户体验以及功能强大的互联网客户端应用程序,传统网络程序的开发是基于页面的、服务器端数据传递的模式,把网络程序的表示层建立于HTML页面之上,而HTML是适合于文本的,传统的基于页面的系统已经渐渐不能满足网络浏览者的更高的、全方位的体验要求了,这就是被Macromedia公司称之为的“体验问题”("Experience Matters"),而富因特网应用程序(Rich Internet Applications,缩写为RIA)的出现也就是为了解决这个问题。        RIA技术的好处是很显而易见的,其秉承了B/S的的优秀基因,所以其部署和维护相比C/A/S和智能客户端结构更加的方面,只是在应用主中需要优秀的客户体验的使用RIA技术开发,其和传统的B/S应用能很好的融合在一起。        下面简单介绍几种RIA应用技术: Adobe Flash/Flex Flash 从6.0开始Flash就逐步具备建立窗体风格的应用程序的功能。据Adobe称已经有98%以上的桌面系统的浏览器都安装了 Adobe Flash Player。这使得以Adobe Flash Player为客户端的RIA可以支持种类广泛的平台和设备。 Flex是为满足希望开发 RIA的企业级程序员的需求而推出的表示服务器和应用程序框架,它可以运行于J2EE和.NET平台。Flex表示服务器提供基于标准的、声明性的编程方法和流程,并提供运行时服务,用于开发和部署丰富客户端应用程序的表示层。Flex开发者使用直观的基于XML的MXML来定义丰富的用户界面。该语言由 Flex服务器翻译成SWF格式的客户端应用程序,在Flash Player中运行。 SilverLight 微软在Mix07上发布一些重大通告,其中最值得关注的就是SilverLight的发布,SilverLight的前身就是WPF/E技术。 这是一种新的Web 呈现技术的名称,创建该技术的目的是使其能够在各种平台上运行。该技术支持创建丰富的、具有绚丽视觉效果的交互式体验,并且可以随处实现:无论是在浏览器内、在多个设备上还是在桌面操作系统(如 Apple Macintosh)中。 Java SWT Java 已经出现几年了,并且完全支持创建基于窗体的用户界面。除了Java基础类(JFC/Swing)中的用户界面组件之外,开发人员还可以使用来自于 Eclipse Project的SWT工具箱和许多第三方工具箱进行开发。对于图形来说,可以采用Java 2D API:一个非常完整且非常复杂的图形API。你可以通过一个Web浏览器使用Java插件软件,或使用Java运行时环境中较新的Java Web Start技术来部署应用程序。使用Java建立Rich Client的主要缺陷是它的复杂性(即使对简单的窗体和图形也要求编写非常烦琐的代码)和Java浏览器插件的低市场占有率。       作为微软技术的铁杆粉丝,我在这里当然是力挺SilverLight,其直接可以使用C#、VB等开发语言,也和WPF共用其界面呈现技术,学习和开发成本较低,也更快构建RIA应用。       本文就到此为止,接下来将和大家共同学习SAAS、SOA、网络计算、云计算相关。   相关链接 DotNET企业架构应用实践-系列目录 AgileEAS.NET平台开发Step By Step系列-药店系统-索引 AgileEAS.NET应用开发平台介绍-文章索引 QQ群:125643764,120661978

Tags: , , , , , , ,

AgileEAS.NET 之 Linq 2 EAS.NET,Orm支持Linq,写程序更加的方便

by 魏琼东 2011.5.11 15:09
     前面的文章AgileEAS.NET 4.0重构裁剪,新的ORM、支持Linq,正式支持WPF,开放更多的接口简单的介绍了一下AgileEAS.NET平台在2011年初的一些重大改进措施,其他涉及到有关于Orm体系的改进以及对linq的支持,AgileEAS.NET 快速平台之ORM体系的改进与ORM的新成员一文中对Orm的改进做了介绍,本文将详细的给大家介绍这AgileEAS.NET平台中Orm对Linq技术的支持。   Linq介绍:      LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。      LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源,并且它还允许适合于目标域或技术的第三方特定域操作符来扩大标准查询操作符集,更重要的是,第三方操作符可以用它们自己的提供附加服务的实现来自由地替换标准查询操作符,根据LINQ模式的习俗,这些查询喜欢采用与标准查询操作符相同的语言集成和工具支持。      我们来总体看看LINQ结构:      需要说明一点的是,Linq是从.NET3.5开始支持的,.NET3.5  Framework 中提供了 LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML等默认支持。      以上内容是摘抄自互联网的相关内容,简单的说明了一下Linq及Linq的应用,如果说单纯的那么Linq是一种语言中的特性的话LINQ to Objects、Linq to SQL就是这种语言特性在对象查询、SQL查询中的具体应用。 Linq to EAS.NET:      Linq to EAS.NET 同LINQ to Objects、Linq to SQL 一样,是应用了Linq这种语言特殊在AgileEAS.NET平台的Orm体系的应用,类似于Linq to SQL、Linq to Entities,应用Linq语言特殊实现AgileEAS.NET平台Orm对象的查询,让使用AgileEAS.NET平台进行开发变得更加简单和方便。      下面我们来进行一个简单的Linq to EAS.NET 应用吧:      第一步:打开对象设计器,建设一个实体对象(Product),并生成代码:      第二步:打开AgileEAS.NET平台对象设计器生成的代码,增加一个Asp.NET Web应用程序LinqDemo.WebUI,并且在Default.aspx页面中拖放一个GridView并且设定绑定信息如下:      第三步:使用linq编写数据查询代码并绑定到GridView:      第四步:修改Web.Config文件,增加以下配置信息: <EAS.Objects> <!--访问器。--> <object name="DataConnection" assembly="EAS.Data" type="EAS.Data.Access.SqlClientConnection" LifestyleType="Singleton"> <property name="ConnectionString" type="string" value="Data Source=.;Initial Catalog=demo;User ID=sa;Password=sa1234;"/> </object> <object name="DataAccessor" assembly="EAS.Data" type="EAS.Data.Access.SqlClientAccessor" LifestyleType="Singleton"> <property name="Connection" type="object" value="DataConnection"/> </object> <object name="OrmAccessor" assembly="EAS.Data" type="EAS.Data.ORM.OrmAccessor" LifestyleType="Singleton"> <property name="DataAccessor" type="object" value="DataAccessor"/> <property name="PageProvider" type="object" value="PageProvider"/> </object> <object name="PageProvider" assembly="EAS.Data" type="EAS.Data.ORM.OraclePageProvider" LifestyleType="Thread"/> <object name="ServiceBridger" assembly="EAS.MicroKernel" type=" EAS.Services.LocalServiceBridger" LifestyleType="Singleton"/> <object name="Logger" assembly="EAS.MicroKernel" type="EAS.Services.TextLogger" LifestyleType="Singleton"/> </EAS.Objects>        最后:编译运行,看看结果:      OK,通过以上简单的过程,基于Linq to EAS.NET实现了一个简单的like查询,相信大家已经看到了这个编程的便宜性,接下来我将会在把有关于Linq to EAS.NET所实现的表达式做一些简单的说明。 支持那些表达式:      Linq所支持的表达式非常的多,AgileEAS.NET平台只是实现了使用最频繁的那些表达式,对表没有实现的表达式在开发中或者要采用其他进行处理,下面我详细的向大家介绍AgileEAS.NET所实现的那些表达式: 条件表达式       Linq to EAS.NET中实现了“=”、“>”、“<”、“>=”、“<=”、“!=”、“like ”匹配、In 查询、Between 、以及And、Or组合。 排序表达式       Linq to EAS.NET中实现了Order by ,Order by  Desc排序。 统计及分页       Linq to EAS.NET也实现了First、Last、FirstOrDefault、LastOrDefault表达式。 Select New {}       Linq to EAS.NET也实现了select new {}表达式,这将能大大提高编程的方便性和更高的查询性能,如下写法: 其他表达式       Linq to EAS.NET实现了 Count统计以及基于统计的分页支持Top、Take及Skip表达式。 下一步的计划:       在接下来的Linq to EAS.NET版本中我们将陆续支持更表的表达式,在近期将会支持Sum、Average、Max、Min表达式,在下一步Orm支持关系之后将进一步支持join 、left join、right join表达式。       对于Group by 、Having表达式暂时还没有考虑到支持。 如何实现Linq的:      Linq to EAS.NET的实现思想非常的简单,即解析Linq表达式并转换为AgileEAS.NET的查询表达式树并由AgileEAS.NET平台的Orm执行并返回结果。      在AgileEAS.NET平台的Orm技术中,我们实现了一个LINQ Provider,即EAS.Data.Linq.DataEntityQuery<T>,在执行任务linq任务之前,并且显式的定义EAS.Data.Linq.DataEntityQuery<T>实例,由他在解析并势力Linq语法,在此要感谢李会军的两篇文章:打造自己的LINQ Provider(上):Expression Tree揭秘和打造自己的LINQ Provider(中):IQueryable和IQueryProvider,遗憾的是,他并没有写出下篇,感兴趣的朋友去看看吧。      AgileEAS.NET平台ActiveXForm运行容器的客户端工作插件。      本文中的小例子及其相关的对象定义文件、建表及数据创建脚本、源代码文件,请大家从这里下载。 下载说明      有关于平台最新版本的最新发布版本的程序集、类库手册、相关资料,请大家从AgileEAS.NET平台的官网http://www.smarteas.net/进行下载,官网设有独立的下载页面,从这里下载:官网下载。 CallHot 写过一个系列的基于AgileEAS.NET平台的开发案例,请大家通过AgileEAS.NET平台开发Step By Step系列-药店系统-索引及AgileEAS.NET敏捷开发平台及案例下载(持续更新)-索引、AgileEAS.NET平台开发实例-药店系统-视频教程系列-索引一系列文章进行下载。 如何联系      如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。 1、官方网站:      AgileEAS.NET平台:http://www.smarteas.net/      敏捷软件工程实验室:http://www.agilelab.cn/ 2、AgileEAS.NET平台交流群:      AgileEAS.NET平台交流群:120661978(超级群)[新建]      AgileEAS.NET平台交流群:125643764(高级群)[新建]      AgileEAS.NET平台交流群:147168308(高级群)[新建]   3、系统架构交流群:      系统架构交流群:9105332(高级群)(已满)      系统架构交流群1:124825459(高级群)(已满)      系统架构交流群2:49124441(高级群)(已满)      系统架构交流群3:47025564(高级群)(已满) 链接 AgileEAS.NET平台开发指南-文章索引 AgileEAS.NET应用开发平台介绍-文章索引 AgileEAS.NET平台应用开发教程-案例计划

AgileEAS.NET 4.0 重构裁剪后的程序集说明

by 魏琼东 2011.5.11 15:07
AgileEAS.NET应用开发平台,简称EAS.NET,是基于敏捷并行开发思想以及.NET构件技术而开发的一个应用系统快速开发平台,用于帮助中小型软件企业建立一条适合快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库、资源管理平台、运行容器、开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供了设计、实现、测试等开发过程的并行,基于AgileEAS.NET平台的应用系统的各个业务功能子系统,在系统体系结构设计的过程中被设计成各个原子功能模块,各个子功能模块按照业务功能组织成单独的程序集文件,各子系统开发完成后,由AgileEAS.NET资源管理平台进行统一的集成部署。 [更多...]

最新评论

声明

本博所有网友评论不代表本博立场,版权归其作者所有。

© Copyright 2011