3小时搞定一个简单的MIS系统案例Northwind,有视频、有源代码下载、有真相

by 魏琼东 2014.4.14 14:09
一、瞎扯框架、架构      楼主自从1998年从C语言、MASM、Foxbase开始学计算机开始接触这个行当16年以来,2001年干第一份与程序、软件、然后是各种屌的东西开始,差不多干了13年了,这13年来,用过VF\VC\VB\C#搞过N多N多的项目,记得在2002年、2003年那个疯狂并且操蛋的年代,在整天VB代码与各种SQL、各种Bug、各种需求敲打、各种吐血的需求变更、各种大半夜还坐在医院的小板凳的加班与折磨之中,慢慢的学会去思考,他妈的这是为什么,写了程序那么的折磨人,从那时开始,就接触各种软件工程相关的东西,思考着是否可以发现能解决或者改变这种现关的东西,记得那个时间好像挺流行一本书,叫《银弹》,在那个年龄,也尝试对需求、变更进行控制和管理,但是在野蛮生长的中国软件业,用户这个上帝才是帮一位的,我们也尝试使用VB+COM/COM+进行加载和框架的提练,进行某些代码和架构级别的规范,试图使用那些技术去实现分布式架构的应用,以及通过插件机制去实现对需求的小范围控制,只是基于那些机制的先天不足和营养不良的环境,对项目与企业的现状改变不是多少。      在厌烦了VB开发之后,楼主也接触了Java,只是接触,没有做过多少开发,能大概看明白什么个意思,总体上来说,不是很喜欢基于Java开发,其中的原因第一是楼主在那个年代做的是CS类的MIS类应用,其实就是一直在做医疗行业的应用,Java做CS简直是弱爆了,再一个java IDE也直接太弱爆了,楼主是懒惰的一个人,不喜欢用记事本那种比较装的干法去写高深的代码。      2004年接触VS2003之后发现简直是找到了自己喜欢的东西了,VS2003配置.net1.1,也提供了简单的WebService和.NET Remoting技术,简直让以前在VB时候梦寐以求却难以搞定的机制就非常简单的实现了,.net所提供的反射机制可以实现很简单的插件开发,从那个时间起,楼主就写出了AgileEAS.NET SOA中间件平台的最初始版本,一个简单的winfrom插件平台。      从2004年到2014年,差不多快10年的时间,楼主也像所有的程序员一样,把AgileEAS.NET SOA当自己的宝贝一样的,升级、增加新的东西,早期关注各种IOC、各种AOP、各种ORM、各种通信等基础类的东西,2010年底专职从事咨询服务工具,为各种规模、各种业务的软件商提供框架定义、技术咨询服务、医疗行业业务咨询服务等服务。      也是自2011年之后对什么框架、什么架构、什么应用商店、各种云架构有了更简单的认识,整天没事扯架构、扯框架的人,或许压根就不知道什么是框架、什么是架构,架构、框架不是各种空泛的理论和各种看似华丽的词汇,架构或者框架、平台应该是一类能帮助开发人员、开发商提高效能的东西,好的框架一定是简单好用的,那怕是功能不是很强,也比较单一,但一定要好用,另外一个,框架或者架构一定要配合相应的工具,就比如.NET的种类库如果没有VS开发环境的配合,估计就是一堆废柴。      在很多人看来,能写框架、平台、架构的人都是牛人,实际上这是一个误导,写框架的人不一定是技术上的牛人,一个框架、平台、架构上没有什么多少高深的技术,比如做插件框架的,就一个简单的反射技术,相信一个C#程序员,用一周时间足够搞的很清楚了,再比如ORM框架,也没有什么高深的技术,动态拼接SQL加上动态反射创建实体,所以说从技术层面上来讲,写一个框架、类库不需要多少技术,因为这些东西都 是现成的并且可以你很容易找到。      但是一个好的框架或者平台,一定会有其配合很好的工具,比如对象建模工具、界面设计工具、文档生成工具、代码生成工具,以及相关的配置、管理、通信、监控工具,一个平台或者一个架构的生产力一方面体现在框架所提供的那引起基础类库所建立的规范,另一个很重要的原因是其配置工具所提供的快速开发能力是极其重要的,或者说一个框架是否能被应用的广泛,工具所带来的用处远远大于基础类库所提供的功能。      能写好一个优秀的框架并能提供大量、可用、好用的框架开发才不一定是技术上的牛人,但一定是对软件工程管理、企业软件生产组织模型或者某一业务领域的业务经验一定有其独到的理解,其框架之中所倾注的业务与软件工程管理经验才是框架作者最宝贵的财富,经验需要日积月累,可不是一天两天能练成的,不管在任何行业、经验都是非常值钱的东西。 二、3小时完成一个Northwind案例      在最近的一段时间之内,群里的好多朋友都希望我能给大家通过视频展示一下AgileEAS.NET SOA 中间件快速开发的相关技术,以便让更多的朋友学习和参考,但是一直忙于客户的各种项目、各种咨询服务以及家中的一些杂事,给大家拖了好久,拖的实在我都有点不好意思了,所以在上周做了一点准备,原本是想在原DrugShop的案例上进行,但是有朋友建议,在原项目基础上做,可以不一定让大家从头了解和从头开始学习、配置和如何从一个空白建立一个新的项目。      经过一些了解之后我们决定从SQLServer数据库所提供的案例Northwind基础上做一些简化和改动,为什么要使用Northwind案例呢,主要原因是其设计比较规范,了解和熟悉的人也非常的多,便于大于理解其业务需求。      楼主对Northwind做了一些简单的改进,主要是那方面的改进呢:        1)原来的Northwind主要重点再于客户和销售的管理,对采购入库业务处理的不是很好。        2)原来的Northwind对库存管理做的比较弱。        3)简化了原Northwind的客户、和销售管理,删除了对销售订单的区域等参数。        修改完成的Northwind主要提供了以下两大业务模型,采购入库业务:        销售订单业务:      Northwind的设计准备是前一天做好的,然后楼主通过YY为大家提供现场的快速开发培训,边讲角边做开发,从生成代码到第一个手工完成业务模块“商品分类”、“商品字典”、使用界面生成器生成了两个业务模块“员工管理”、“客户管理”,一直做到“采购入库”、“采购入库查询”、“库存查询”、“销售订单业务”一共8个模块,涉及数据查询、界面编辑、分层业务模型、输入字典、报表设计、检点控件挑战、输入焦点变色、文本输入验证等大量的工具、控件及相关技术,理论上已经完成了Northwind案例的所有业务,当然如果要完美的话可以增加“收支报表”、“销售订单查询”、以及界面的美化,界面验证的完善。      希望群里和各位朋友Northwind例没有完成的工具去做一做,把他做完,这一定是一个非常不错的项目模板,以下是几个做好的界面: 三、源代码、视频下载      在培训过程之中,楼主全程开启录相,录了大概。2.1G的高清视屏,目前已经全部上传在百度网盘和我们的服务器,源代码已经上传到我们的SVN服务器和下载服务器,请大家下载视频和源代码,视频时长4小时,请大家耐性观看。      视频下载地址,百度云:http://pan.baidu.com/s/1qW79ack      官网服务器:1.AgileEASNET SOA 5平台配置.avi                      2.AgileEAS.NET SOA 5元数据设计器.avi                      3.Northwind.WinForm案例.第1段.avi                      4.Northwind.WinForm案例.第2段.avi                      5.Northwind.WinForm案例.第3段.avi                      6.Northwind.WinForm案例.第4段.avi      源代码下载,源代码请通过AgileEAS.NET SOA 中间件平台官方网站下载,或者通过以下方式下载:      直接下载:AgileEAS.NET SOA  案例(Northwind)源码下载,http://112.74.66.105/downloads/eas/Northwind.rar。      SVN更新:https://112.74.66.105/svn/Northwind,登录用户:eas,密码eas. 四、问题反馈      麻烦大家在通过视频进行学习的时候能及时把问题反馈给楼主,或者有什么需要改进的一些建议都请向楼主直接反馈,以下是联系方式: AgileEAS.NET SOA 网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com 楼主QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 120661978(AgileEAS.NET 平台交流)/上限1000人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。      另外,楼主将会不定期的通过YY举办类似本次活动的培训,所以麻烦大家都关注一下YY频道:65011880,也可以加一下楼主YY号:537601972。

Tags:

SOA | ActiveX | AgileEAS.NET | 三层架构 | C# | AppServer | 角色 | 设计模式 | 通信框架 | 框架

AgileEAS.NET SOA中间件平台简易入门,除加小案例下载

by 魏琼东 2014.1.15 11:25
本入门例子由网友狗头军师提供,感谢他的努力,以下是转自CSDN的原地址:http://blog.csdn.net/xueshaoyu/article/details/18304647?reload 首先说明此平台来自魏琼东大神,可被商业使用,但是不开源的哈。 AgileEAS.NET SOA中间件平台 下载 闲话少说,直接步入正题。 一、数据库的配置打开\agileeas.net.5.0\bin\dotnet\目录下的EAS.DbInitializer.exe文件进行数据连接配置如图。 点击下一步 点击完成,弹出的框选择是(如果原来数据库中有重要数据,记得先备份一下,以免失策…)。,数据库配置完成。 二、插件开发:打开\agileeas.net.5.0\bin\dotnet\目录下的EAS.OrmDesigner文件: ,配置解决方案如图: 打开刚才生成的工程文件。 可能需要引用两个文件(EAS.DATA, EAS.MicroKernel,在bin目录下找到并引用它), 基本的增删改查已经被封装好,下面我们编写界面                    这三个控件应该都了解撒,里面的逻辑代码,随后的附件中有。 Main.cs里面有最关键的两个特性: 完成之后,点击生成,ok,插件搞定。 三、插件安装: 运行\agileeas.net.5.0\bin\dotnet目录下的EAS.WinClient.Start.exe 账号Administrator,密码sa,注意大小写 登陆进去后,系统管理-〉模块管理-〉安装,选择刚才项目生成的程序集 点击安装,安装完成。在列表中查看 找到刚才安装的模块,右键-〉打开 。 整个插件开发搞定(后附源码),第一次写教程,如有不足,敬请谅解,如有不明之处,欢迎留言。 Demo源码下载

Tags:

.NET | AgileEAS.NET | BI | C# | ESB | NLB | SOA | WCF | 三层架构 | 平台 | 消息中间件 | 框架

犀利的报表系统2,为项目实施人员、维护人员提供的强大自定义报表系统,AgileEAS.NET SOA中间件平台动态报表系统使用指南

by 魏琼东 2013.12.18 20:23
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、关于动态报表系统      在之前的犀利的报表系统,AgileEAS.NET SOA中间件平台GReport使用指南一文之中我们为大家介绍和实例演示了如何使用AgleEAS.NET SOA中间件平台的GReport报表系统。      但是,在之前提供的报表系统之中,不管是fyireporting报表系统还是GReport报表系统,都是预定义报表系统,即需要在程序开发过程之中进行预定义,虽然留给项目实施人员和维护人员极大的自定义功能,但是必竟是有所限制的,比如不能修改报表的ReportID,不能变更报表依赖的ORM实体对象。      而在现实项目之中,特别是偏重于数据查询、统计分析的MIS类系统,项目后期需要大量的统计分析报表,而在项目开发过程之中,毕竟不可能把所有的报表都开发出来,因为其需求并不是在开发阶段所提供的,而是在系统运行过程之中,随着对系统应用的深入会有越来越多的报表需求,那么在这个时间,再由开发人员重新定义报表,显然有些不能接受,一是项目的成果会明细的提高,二是因为开发人员的流动和其他一些因素,比如开发企业的售后服务响应周期较长,不能及时的响应这种需求。      为解决此问题,AgileEAS.NET SOA中是件平台创新的提出了动态报表的思路,即我们系统的报表进行了大致的划分,开发前提能明确确定的业务票据和业务报表由开发人员在开发过程之中实现,而对于因为不同的企业、用户的不同管理需求而导致变化的那些可变化报表系统,则交由项目实施人员或者系统应用者的维护人员进行实现。      这样做,可以为开发企业和系统使用者都能提出更大的便利,对于开发企业来讲,把一部分报表后置交由实施人员根据客户的具体情况在项目实施周期之内完成,一是可以节省前提开发成本,减少返工带来的高成本,二是可以把产品做成稳定的基础部分+动态定义的报表系统,便于对软件系统的定型和维护,而对于系统使用者也是也极大的便利,比如一些急需的或者特别的报表系统,则可以直接由自己的实施人员搞定,并且随便可以增加和修改,减少需要的实现周期。      AgileEAS.NET SOA中间件平台的动态报表系统其本质是定义一个依赖于一个动态SQL查询的数据报表以及对这个报表的模块转换发布两个功能实现。        AgileEAS.NET SOA中间件平台没有为“动态报表”提供单独的定义和管理功能,其管理功能集成于“GR报表”和“报表管理”两个模块之中。      和犀利的报表系统,AgileEAS.NET SOA中间件平台GReport使用指南一文之中定义普通报表不一样的地方是,动态报表在定义过程之中必须要选中“报表模块、把报表做为独立模块发布”复选框,并且必须要填写报表的“查询语句”,如果“查询语句”是一个带参数的动态查询语言,则必须要定义“查询参数”。      以下对几个重要参数做一下说明:      “报表模块、把报表做为独立模块发布”:动态报表必须要中此项,选中本选项之后,系统会自动把这个报表发布为一个“报表模块”,即让报表充当系统之中的模块插件,一个报表即为一个模块插件,可以对于进行权限和导航部署,系统之中对此报表具体权限的账号登录系统之中就会以普通模块一样的方式打开报表并且使用。      “查询语句”:动态报表的查询语句是报表工作过程之中抓取报表数据的动态查询语句,报表的绑定数据来自于本查询语句与查询参数动态组合而成的目标查询结果:        查询语句之中以$符号起始的单词即为动态查询参数,此查询条件会根据最终用户的输入进行替换,如果查询语句之中定义了动态查动态查询参数,则必须定义报表的“查询参数”。      “查询参数”:查询参数用于详细定义解释报表动态查询语句之中的动态参数,比如参数的显示标题、参数数据类型、参数默认值,参数是否与某输入字典相关联等,下图的查询参数与上图你动态查询语句相匹配:      数据类型,目前支持“字符”、“日期”、“日期时间”、“整数”、“小数”。      查询参数被用于在打开报表自动生成的查询UI界面上输入预值的参数值,以便于动态生成报表数据。 三、动态报表实践      开发动态报表不需要进行C#或者VB.NET编程,但是需要掌握系统的数据库结构、会设计、制作报表和熟练的使用AgileEAS.NET SOA中间件平台的系统管理功能,符合这种条件的人员主要是系统实施人员和系统维护人员。      下面我们就是GReport动态报表一步一步的学习和演示一下处理过程。      首先,我们需要打开平台的“GR报表”模块,并且增加一个新的报表:        必须选中“报表模块、把报表做为独立模块发布”,然后切换到“查询语句”Tab页并且写入如下SQL语句:      这个SQL语句之中带了两个动态参数:$StartTime和$EndTime两个参数,我们的目标是统计LMTIME在这两个参数区间的模块,并且以程序集为分组汇总条件。      然后我们切换到“查询语句”Tab页,我们可以看到:        系统自动的从“查询语句”之中提取StartTime和EndTime,但是显示标题、数据类型、迷人值还需要我们手动修改和填写,填写完成如下图:      这样就完成了“查询参数”的定义,点“确定”按钮这后保存报表。      接下来双击刚添加的动态报表,系统会打开设计界面,自动加载初始样式:      请根据情况自己修改报表,最后保存,我们修改为以下样式:      这样报表的设计工作就完成了,接下来我们为动态报表进行使用者授权和导航分组部署,首先我们打开“角色管理”并且选中一个角色(我们选择“平台演示”角色),然后双击打开:      双击“添加”按钮,打开“模块选择界面”:      选择“搜索报表”复选框,输入检索条件,点“搜索”按钮之后选中刚才加载的模块,点击确定,返回“角色”属性设定界面。      点击“确定”完成对动态报表的访问授权。        接下来我们设置导航分组的部署,打开“导航分组”选择要部署动态报表的分组,如果没有分组请添加一个新的分组,有关于如何添加 一个新的导航分组的使用说明请参考《AgileEAS.NET SOA中间件系统管理使用教程 V5.0》。      选中一个分组,然后后右边空白区域右键打开快捷菜单,选择“添加”打开“模块选择窗口”:      选择动态报表然后单击“确定”按钮,完成对动态报表的导航分组部署。 四、执行验证      我们编译并且启动DrugShop.Main.exe,使用0001密码sa登录,我们就会在“统计报表”分组之中看到模块“模块程序集统计报表”:      打开这个模块:      设置开始时间和结束时间,点击“提取数据”按钮:      OK,动态报表演示完成。      DrugShop案例之中同步提供了本例子的报表定义和导航、权限配置,请大家通过AgileEAS.NET SOA中间件官方网站的最新下载栏目进行下载。 五、联系我们      为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

.NET | BI | AgileEAS.NET | ActiveX | C# | ORM | SAAS | SOA | 中间件 | 云计算 | 分布式 | 框架 | 报表 | 消息中间件

犀利的报表系统,AgileEAS.NET SOA中间件平台GReport使用指南

by 魏琼东 2013.12.18 17:43
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、关于GReport、Grid++报表系统      AgileEAS.NET SOA中间件平台目前集成两套优秀的报表系统,一套是开源的fyireporting报表系统3.96版本,其始于2007年AgileEAS.NET SOA中间件平台3.0版本之时就集成入平台的一套报表系统,其快速方便的条带式报表非常适合用于MIS系统的报表展示,我们在fyireporting基础上做了大是的汉化、改动并且与AgileEAS.NET SOA中间件平台进行紧密的集成。      但是对于市场在国内的大多数软件企业都会遇到客户的很多近似于变态的报表需求,fyireporting有也其不足的地方,其在处理中国式的票据、和一个特殊报表时无能无为,之后我们考虑集成一套更好的中国式报表系统,在和几家行业医疗供应商合作的两个年头之中,我们集成广州锐浪的Grid++报表系统并与AgileEAS.NET SOA中间件进行融合,称之为GReport。      AgileEAS.NET SOA中间件平台的报表管理体系并设计为集中式的报表管理、设计与报表浏览、打印相协调的可集中管理的报表体系,极大的简化和方便报表的开发、部署和管理。      在AgileEAS.NET中间件平台之中提供了一个用于管理、和设计GRport的功能模块“GR报表”:      系统之中的所有报表都是可管理的,当在系统的任何一个客户端修改了报表定义之后,不需要重新部署程序,即可让报表的修改通过所有的使用者。即时生效。      在GR报表模块之中,直接双击选中的报表即可进行报表设计界面,进行报表的设计:      GR报表的设计器界面是基于Grid++报表所提供的设计器控件实现的,其使用方法同Grid++原始的报表设计工作,具体的使用方法请参考Grid++官方帮助。      本设计器与官方的原生设计器之间的差别主要是新建报表与原生不同,原生的报表系统只能基于数据库连接和SQL语句创建报表,而本设计器提供了除通过书写SQL创建报表(不用提供连接信息,以当前连接为准)之外还提供了基于AgileEAS.NET SOA中间件平台的ORM实体创建报表:        数据报表即为基于SQL语句创建报表,对象报表基于ORM实体对象创建报表:      当基于实体创建报表时确定报表对应的实体对象之后,系统会自动的从ORM定义信息之中读出实体的属性定义信息并且自动的转换为报表的数据列。 三、GReport组件      AgileEAS.NET SOA中间件平台为开发人员提供了三个有关于GReport报表的控件,包括打印预览对话框、报表数据显示控件、报表打印控件,这三个控件都由EAS.GReport.Controls.dll程序集承载,使用这三个组件之前都需要先引用EAS.GReport.Controls.dll程序集或者把这三个组件加载到Visual Studio的工具箱之中。      打印预览对话框: EAS.GReport.Controls.PrintViewDialog,用于打开一个新的窗口并且预览打印报表。      报表查询显示控件: EAS.GReport.Controls.GDisplayViewer,以查询模式显示报表及报表数据的一个控件。      报表预览显示控件: EAS.GReport.Controls.GPrintViewer,以打印模式显示报表及报表数据的一个控件。      以上三个控件都提供相同的报表API: 1: // 2: // 摘要: 3: // 报表ID。 4: [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 5: [Browsable(false)] 6: public Guid ReportID { get; set; }      属性ReportID:其意思为报表ID,其取值为GR报表模块之中设计好的报表ID号,用于实现与系统报表管理的绑定。 1: // 2: // 摘要: 3: // 数据源对象。 4: [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 5: [Browsable(false)] 6: public object DataObject { get; set; }      属性DataObject:其意义为报表的数据对象,即控件要显示或者打印的数据源,DataObject的值必须为DataTable或者为ORM实体的List<T>集合。      程序之中调用报表的流程即为设计这两个属性即可,首先设计ReportID为要显示、打印的报表ID,然后向控件设置报表的显示数据源DataObject即可完成对报表系统的调用。 四、报表开发实例      我们下面以DrugShop案例之中的药品字典模块的字打印实例如何进行GReport报表开发:      首先我们需要在GR报表模块之中增加一个名称为“药品字典明细报表”的报表项目。      报表名称必须要填写并且不能重名,别名可以选择填写,缓存间隔默认为15分种,最小1分种,自由设定,原则上在系统开发测试阶段设小一些,在稳定运行阶段设大一些。      其他参数,如“报表模块,把报表做为独立模块发布”、查询语句、查询参数可以不去理会,这些参数为动态报表提供,关于动态报表我们会在后面的文章之中进行专门的介绍。      然后我们点“确定”按钮保存报表进行下一步的报表设计工作。      双击我们刚才添加的“药品字典明细报表”进入报表设计界面,我们可以看到这是一个空报表:      选择“文件”菜单之中的“新建”=》“对象报表”:        切换到数据定义Tab页,进行实体类型的选择:      我们浏览选择程序集DrugShop.Entitties.dll,然后在对象下拉列表框中选择DrugShop.Entitties.PIn,即药品入库ORM对象,我们基于DrugShop.Entitties.PIn创建报表,点击“确定”完成报表的新建。      系统会自动的更具新建导向生成一个初始报表,如果需要对报表的显示、格式进行调用,请参考Grid++设计手册进行学习。      修改完成之后,点击“保存”图标、或者“文件=》保存”菜单项保存报表的格式定义,这样就完成了报表的定义。      接下来我们需要把刚才定义、设计好的报表挂在程序之中,使用Visual Studio 打开DrugShop解决方案,打开DrugShop.WinUI项目之中的药品字典模块DrugDictList.cs:      双击“打印”按钮写以下打印代码: 1: private void tsbPrint_Click(object sender, EventArgs e) 2: { 3: if (this.dictList != null) 4: { 5: EAS.GReport.Controls.PrintViewDialog ViewDialog = new EAS.GReport.Controls.PrintViewDialog(); 6: ViewDialog.ReportID = new Guid("F29C4C91-0791-4116-BE26-3A2A88F30A2A"); 7: ViewDialog.DataObject = this.dictList; 8: ViewDialog.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 9: ViewDialog.WindowState = System.Windows.Forms.FormWindowState.Maximized; 10: ViewDialog.ShowDialog(); 11: } 12: }      这样我们就完成了对报表的调用,另外,在DrugShop案例之中,药品入库查询和药品销售查询两个模块之中分别使用了GReport报表,请大家在开发过程之中参考。 五、执行验证      我们编译并且启动DrugShop.Main.exe,使用0001密码sa登录,打开药品字典功能,来试一下是报表是否正常:      OK,使用正常,没有任何问题。      DrugShop案例之中同步提供了本例子的字典定义和使用代码,请大家通过AgileEAS.NET SOA中间件官方网站的最新下载栏目进行下载。 六、联系我们      为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

.NET | AgileEAS.NET | C# | ORM | SOA | Socket | 分布式 | 企业服务总线 | 企业应用架构 | 框架 | 消息中间件 | 通信框架 | 报表 | BI

MIS系统开发利器,快速的字典录入解决方案,另类的、可管理的.NET DataWindow

by 魏琼东 2013.12.18 13:37
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、管理信息系统开发之中的字典选择录入问题      AgileEAS.NET SOA中间件平台被广泛的应用于MIS类系统之中,可以说基于AgileEAS.NET SOA中间件开发MIS类真是得天读后,能大大的降低系统的开发难度和开发工作量。      有管理信息系统开发之中有很大一部分工作是实现界面的数据选择录入,比如商品进销存之中的根据输入码、拼音码、检索码查出某部分字典数据并且选择录入,如下图:      这是一个典型的字典选择输入应用,此类应用大量应用于比如像采购入库、采购申请之中的选择要采购的商品信息,商品信息存储在商品字典,本案例是选择药品字典信息,选择录入药品字典信息以便于进行药品入库业务处理。      在传统的此类应用开发过程之中我们需要自己处理当输入焦点在检索文本框之中进行输入的输入事件以及大量的界面、数据检索处理工具,费时费力,如果一个界面之中多出这样几个此类的应用场景,那么这个插件的代码的70%或者以上都用于应对此类场景,就形成了一种代码超长、界面控件、输入控件的事件处理麻烦的境界,如以下这个界面:      这个界面之中有五处此类场景的应用,当然,在一些应用之中可能有十个或者更多的这种场景,整个模块在应对此类情况的代码极其之中,也会慢慢的导致代码的可读性,可维护性越来越差。 三、TextBoxAutoComplete组件      AgileEAS.NET SOA中间件平台在经过多年痛苦的开发应用之中,从各种客户的反馈和开发应用的经验之中积累了一套解决此问题的方案,并创造性的实现了一个基于输入文本框的扩展解决方案,TextBoxAutoComplete组件及其之后的InputDict(输入字典)管理体系。      TextBoxAutoComplete组件:根据其名称我们可以简单的理解为TextBox的自动完成组件,那么其功能就是类似于baidu、google的搜索文本框功能:      TextBox控件配合TextBoxAutoComplete完成类似上图你的自动完成检索功能,只不过baidu、google的搜索文本框展示的是搜搜索关键字,而AgileEAS.NET SOA中间件平台之中的TextBoxAutoComplete展现的是各种字典的录入选择表格,如下图:      TextBox控件配合TextBoxAutoComplete可以完成对任意类型的字典信息的检索录入和自动完成功能。 四、输入字典管理      如果说要实现对任意类型的字典信息的检索录入和自动完成功能,仅TextBoxAutoComplete组件是不够的,为什么呢, 这会涉及到各类输入字典的录入数据规则、检索规则、数据窗口(DataWindow)的数据显示、排序规则、以及对数据源的过滤规则等等。      那么如何解决此问题呢,AgileEAS.NET SOA中间件平台提供了一个字典管理功能“输入字典”:      系统中维护着一组用于控制TextBoxAutoComplete组件的数据检索、显示的各项参数,其中包括如下重要信息:      字典编码:字典编码是一个Guid类型的值,其值必须是唯一的,也早用于控制TextBoxAutoComplete进行重要的重要依据,也是维系TextBox控件与TextBoxAutoComplete的唯一纽带。      数据类型:TextBoxAutoComplete组件工作是所依赖的AgileEAS.NET SOA中间件ORM实体对象类型,即输入字典的数据检索、显示必须依赖于ORM实体对象。      显示参数:数据窗口(DataWindow)的宽度、高度和每次可显示的记录行数。      是否启用缓存:即输入字典的检索行为是基于数据缓存进行的还是基于数据库检索进行的,因为我们的处理很多不常见化的字典信息,比如民族、省份这样的信息不会经常发生变化,AgileEAS.NET SOA中间件平台设计一套基于时间戳的实体缓存体系,如果选择启去缓存,只自动完成的检索不会请求数据库操作,以减少通信和数据库原因,如果选择启用了缓存,则必须要设定缓存属性。      缓存属性:用于控件缓存的增量更新的一个日期时间型字段/实体数据,并且必须在ORM实体的这个属性上面加上CacheUpdated标记: 1: /// <;summary> 2: /// 最后更新时间 。 3: /// <;/summary> 4: [Column("LMTime", "最后更新时间"),CacheUpdated] 5: [DisplayName("最后更新时间")] 6: public DateTime LMTime 7: { 8: get; 9: set; 10: }      并且需要在对就的字典管理/维护程序这中,当增加、修改某一行字典记录之后需要把对应的字段时间更新为最新的修改时间,那么缓存系统就会在一定的延迟规则之后获得这一更新记录。      显示属性:当TextBoxAutoComplete组件完成选择录入之后,显示在关联文本框内的值对应的ORM属性。      缓存间隔:输入字典记录本身的缓存间隔,即TextBoxAutoComplete引擎从数据库中更新对应的字典定义的周期,最小为0分钟,即TextBoxAutoComplete直接读取数据库中的字典记录。      码值属性:当TextBoxAutoComplete组件完成选择录入之后,用于执行其他业务的字典编码属性,一般情况下为字典的主键属性。      显示设置:用于设置DataWindow(数据窗口)之中显示的列信息记录,包括显示那些列、列标题、显示顺序等:      数据源筛选:在数据根据输入的条件检索之前的数据筛选功能:      上图的筛选条件表示仅选择Icd10bksn值为“B”的记录。      搜索条件:用于定制TextBoxAutoComplete组件在经过筛选之后的数据源上的检索行为,例如本文第二张图上的输入的“ys”之后的数据源检索行为:      目前倒提供基于字符串字段的三种检索条件:StartsWith(like ‘ys%’)、EndsWith(like ‘%ys’)和Contains(like ‘%ys%’),基本上能满足99的应用。 五、开发过程      首先我们要有规划,定将好数据实体、在必须的实体上定将好缓存更新标记,最新版本的ORM设计器提供了支持,我们就以DrugShop案例之中的药品字典实体以及在药品入库的录入检索为例进行说明。      药品字典我们考虑使用缓存,即把药品字典缓存在本地,以减少对服务器的请求和通信压力,以下是药品字典人的定义:      其中LMTime为最后更新时间,用于控制缓存的增量更新。      当然需要注意的是,并不是所有的输入字典信息都需要从缓存之中读取,对于实时可变的录入信息,如高品库存信息必须要进行实时读取,就没有必要使用缓存,因为对于这些实时数据,实体缓存的准确率非常之低。      设计好ORM实体模型并且生成代码、编译实体程序集之后,我们使用AgileEAS.NET平台的输入字典创建一个新的输入字典:        打上启用缓存复选框、选择设置缓存属性、码值属性、显示属性如下:      选择显示属性如下:        设置搜索条件如下:      复制下字典的编码,并且保存这个字典设置,接下来我们使用VS打开程序,在药品入库功能之中使用刚才定义好的字典,首页我们概引用平台的EAS.Data.Controls.dll程序集,并且在工具栏之中添加选择项=》选择EAS.Data.Controls.dll程序集,确保把TextBoxAutoComplete组件加载到工具箱之中:      然后我们像界面拖入TextBoxAutoComplete组件,完成后如下:      然后我们设计检索文本框txtSeach的属性如下:      这地方最重要的就是设计TextBox基于TextBoxAutoComplete1组件扩展出来的属性MetadateID,即扩展录入元数据ID,关联自我们定义好的输入字典。      是不是很简单,定义一个输入字典,程序代码之中只需要拖入一个组件,设计一个ID,即完成了需要大量编码才能完成的工具,名至实归的快速开发利器。 六、执行验证      我们编译并且启动DrugShop.Main.exe,使用0001密码sa登录,打开药品入库功能,来试一下是否能够执行自动完成:      OK,使用正常,没有任何问题。      DrugShop案例之中同步提供了本例子的字典定义和使用代码,请大家通过AgileEAS.NET SOA中间件官方网站的最新下载栏目进行下载。 七、联系我们      为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

.NET | AgileEAS.NET | C# | ESB | ORM | SAAS | SOA | Socket | 中间件 | 云计算 | 分布式 | 消息中间件 | 框架

基于AgileEAS.NET SOA 平台SAAS架构技术的开源分销ERP系统-SmartERP.NET下载配置说明

by 魏琼东 2013.11.11 13:38
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、关于SmartERP.NET        SmartERP.NET 是一套简单的电脑耗材分销ERP系统,其实说是ERP系统还有点夸张,但是最初的开发者都已经这么叫了,那么我们也就也就这么理解吧,SmartERP.NET 原本是我们的一个客户在2011年为其一个客户/朋友开发的一套软件,当时客户人员的开发都是以VB6.0进行开发,客户打算把开发语言换到C#上,基于我们平台进行技术预研,并且打算基于AgileEAS.NET SOA中间件平台进行应用开发,正好当然有一个朋友是做某品牌电脑大区经销的,双方双有所需,正好就基于我们AgileEAS.NET SOA中间件开发了这套简单的ERP系统,其目的有两个,一个是解决客户的需求、另一个是锻炼一下自己的开发人员。         以下是系统主界面: 什么是ERP: ERP是Enterprise Resource Planning(企业资源计划)的简称,是一种主要面向制造行业进行物质资源、资金资源和信息资源集成一体化管理的企业信息管理系统。 ERP是一个以管理会计 为核心可以提供跨地区、跨部门、甚至跨公司整合实时信息的企业管理软件。 参见百度百科: http://baike.baidu.com/subview/109408/7177679.htm SmartERP.NET货物采购入库流程   SmartERP.NET 货物销售流程   三、系统客户端及服务端配置       有关程序如何配置请参见 魏琼东的文章       AgileEAS.NET SOA 中间件平台 5.2 发布说明-包含Silverlight及报表系统的开源代码下载       AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(一):下载平台并基于直连环境运行       AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境       AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境       AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置 四、完整的应用-实现完整的ERP       本文我们将实现一个类似电脑城的货物ERP系统,主界面如下:(登录账户:erp-admin  密码为空) 五、下载源代码编译配置运行      本案例源代码请通AgileEAS.NET SOA中间件官方网站的最新下载中的栏目进行下载或者从SVN中获取最新版本的源代码: 下载或者SVN-OUT得到代码之后我们来看一下代码文建构: 一级目录 二级目录 说明 Code   程序源代码   SmartERP.Entities 实体(ORM)代码   SmartERP.BLL.Contracts 业务契约定义代码   SmartERP.BLL.Host 数据实现代码   SmartERP.Common 公用类库   SmartERP.WinUI 界面层代码 db   用户数据库文件,SQL Server数据库 Documents   文档,用户模型文档 Bin   引用程序集及编译输出   用VS2010或者VS2012打开Code目录之中的SmartERP.sln解决方案进行编译,编译成功之后我们开始进行配置。 打开Bin目录之中的SmartERP.Main.exe.config进行客户端配置:     修改红色部分连接字符串 六、统计报表    SmartERP示例中使用的是Gird++ 报表程序 开发管理 -- GR报表管理        数据报表就是写SQL语句查询数据库 获取结果    对象报表就是通过查询内存对象   获取结果    报表的制作:为了降低入门的难度,本编介绍的是用数据报表也就是写SQL语句查询数据库的方式,对象报表将在以后的文章中介绍。 1.新建-数据报表-查询语句中 写入要查询的报表sql语句   2.报表设计界面 3.设置要显示的是哪张报表,根据GUID 4.编写查询语句 并设置过滤条件 5. 报表预览效果      由于时间仓促,程序难免会有Bug,望大家谅解。      截止这里 我们的教程就已经写完了,表结构及相关说明请参阅SmartErp.NET下载包里面的相关文档。      最后感谢SmartErp.NET的原始作者陶虎刚同学,也感谢对原始代码、文档进行整理升级,以及本文的作者计文析同学。 七、联系我们      为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 120661978(AgileEAS.NET 平台交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

.NET | ActiveX | AgileEAS.NET | ESB | C# | ORM | SOA | SAAS | 中间件 | 分布式 | 企业应用架构 | 企业服务总线 | 框架 | 消息中间件

AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境

by 魏琼东 2013.10.16 20:56
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、关于ActiveXForm运行容器      在我早期的博客园文章基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - ActiveXForm运行容器曾经向大家介绍过AgileEAS.NET SOA中间件平台的ActiveXForm运行容器,其主要用于把早期用WinForm开发的程序跑在IE浏览器之中,给用户造成一个BS项目的错觉,本来打算在4.0版本之中就给大家公开下载和发布的,但是鉴于之前直接在网上部署引用的一下配置问题的反馈我们并没有公开发布给大家。      如果是做互联网项目,使用ActiveXForm技术来做BS应用,那么我们很直接的告诉你,这事你是找抽,不靠谱,也不可取,但是在做内部管理信息系统的时候,比如财务、EPR、HIS、电子病历等这些项目,这东西又是一种可以去尝试的做法,我们虽然没有公开发布ActiveXForm但是我们一真在为使用ActiveXForm的软件企业提供技术帮助和升级。      AgileEAS.NET SOA 中间件平台所提供的功能都是比较实现的企业应用开发功能,在5.0发布之后就有很多企业希望能得到有关于ActiveXForm的发布包和技术支持资料,所以我们决定在AgileEAS.NET SOA中间件5.2版本之中提供ActiveXForm的内容,也在配置和使用上面提供一些文档资料。 三、配置ActiveXForm运行容器      配置ActiveXForm运行容器/环境必须有一个先决条件,那就是系统必须具有自动升级功能,即我们的SOA服务端必须运行并且配置好自动升级,关于如何做这此工作,请参考前面的AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境一文。      那么我们首先启动运行“AppServer\Bin”目录之中的“soaserver.start.bat”脚本,运行SOA服务:      接下来我们开始配置ActiveXForm运行容器。      ActiveXForm运行容器的运行网站由在”ActiveXForm.Web”目录之中以源代码形式向大家提供,我们用VS2010或者VS2012打开”ActiveXForm.Web”目录之中的”EAS.ActiveXForm.Web”解决方案:      在”EAS.ActiveXForm.Web”项目之中,我们会看到如下结构:      首先我们修改”xClient\config”目录之中的文件”clientclasp.xml”和”activexForm.xml”两个配置文件,其中”clientclasp.xml”定义了ActiveXForm引擎/客户端钩子的定义,主要包括程序的升级定义,内容如下: 1: <?xml version="1.0" encoding="utf-8"?> 2: <ClientClasp> 3: <!--客户端钩子启动模块。--> 4: <item name="ClaspStart" value="EAS.ActiveXForm.ClaspStart,EAS.ActiveXForm.ClientClasp.AddIn" /> 5: <!--应用系统名称。--> 6: <item name="ApplicationName" value="AgileEAS.Net SOA中间件" /> 7: <!--是否开启升级。--> 8: <item name="AllowUpdate" value="true" /> 9: <!--升级服务地址。--> 10: <item name="UpdateUrl" value="net.tcp://localhost:6607/eas/services/eas.updateservice" /> 11: </ClientClasp>     其中配置项目”claspstart”为客户端初始化参数,这个不需要改变,”ApplicationName”为升级程序的标题显示,”AllowUpdate”是否开启升级,”UpdateUrl”为升级地址,关于具体的配置参数得参考AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境一文中服务端的配置参数。     ”activexForm.xml”配置文件为ActiveXForm应用程序的运行配置,其内容和AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境一文这是分布式环境情况下“EAS.WinClient.Start.exe.config”配置文件内容一模一样,我们可以把配置复制过来: 1: <?xml version="1.0" encoding="utf-8"?> 2: <configuration> 3: <configSections> 4: <section name="eas" type="EAS.ConfigHandler,EAS.MicroKernel" /> 5: </configSections> 6: <!--SQLite运行必需--> 7: <startup useLegacyV2RuntimeActivationPolicy="true"> 8: <supportedRuntime version="v4.0"/> 9: </startup> 10: <eas> 11: <configurations> 12: <item name="Key" value="Value" /> 13: </configurations> 14: <objects> 15: <!--分布式通信组件。--> 16: <object name="ServiceBridger" assembly="EAS.Distributed" type="EAS.Distributed.ServiceBridger" LifestyleType="Thread" > 17: <property name="ServiceName" type="string" value="EAS.RMI.Service" /> 18: </object> 19: <object name="DataAccessor" assembly="EAS.Distributed" type="EAS.Distributed.DataAccessor" LifestyleType="Thread" > 20: <property name="ServiceBridger" type="object" value="ServiceBridger" /> 21: </object> 22: <object name="OrmAccessor" assembly="EAS.Distributed" type="EAS.Distributed.OrmAccessor" LifestyleType="Thread" > 23: <property name="ServiceBridger" type="object" value="ServiceBridger" /> 24: <property name="DataAccessor" type="object" value="DataAccessor" /> 25: </object> 26: <!--日志管理--> 27: <object name="Logger" assembly="EAS.MicroKernel" type="EAS.Loggers.TextLogger" LifestyleType="Singleton" /> 28: <!--资源--> 29: <!--<object name="EAS.Explorer.Resource" assembly="EAS.Explorer.Res" type="EAS.Explorer.Res.Resources" LifestyleType="Singleton" />--> 30: </objects> 31: <services> 32: <service name="EAS.RMI.Service" service-type="WcfService" singleton="true" url="net.tcp://127.0.0.1:6607/eas/services/EAS.RMIService" /> 33: <service name="EAS.Storage.Service" service-type="WcfService" singleton="true" url="net.tcp://127.0.0.1:6607/eas/services/EAS.StorageService" /> 34: </services> 35: </eas> 36: </configuration>      接下来我们配置“Web.config”文件,因为ActiveXForm运行的登录验证需要访问验证服务,所以我们必须配置“Web.config”,其内容如下: 1: <?xml version="1.0" encoding="utf-8"?> 2: <configuration> 3:  4: <configSections> 5: <section name="eas" type="EAS.ConfigHandler,EAS.MicroKernel" /> 6: </configSections> 7: 8: <!--支持混合程序集--> 9: <startup useLegacyV2RuntimeActivationPolicy="true"> 10: <supportedRuntime version="v4.0"/> 11: </startup> 12: <eas> 13: <configurations> 14: <item name="Key" value="Value" /> 15: </configurations> 16: <objects> 17: <!--分布式通信组件。--> 18: <object name="ServiceBridger" assembly="EAS.Distributed" type="EAS.Distributed.ServiceBridger" LifestyleType="Thread" > 19: <property name="ServiceName" type="string" value="EAS.RMI.Service" /> 20: </object> 21: <object name="DataAccessor" assembly="EAS.Distributed" type="EAS.Distributed.DataAccessor" LifestyleType="Thread" > 22: <property name="ServiceBridger" type="object" value="ServiceBridger" /> 23: </object> 24: <object name="OrmAccessor" assembly="EAS.Distributed" type="EAS.Distributed.OrmAccessor" LifestyleType="Thread" > 25: <property name="ServiceBridger" type="object" value="ServiceBridger" /> 26: <property name="DataAccessor" type="object" value="DataAccessor" /> 27: </object> 28: <!--日志管理--> 29: <object name="Logger" assembly="EAS.MicroKernel" type="EAS.Loggers.TextLogger" LifestyleType="Singleton" /> 30: </objects> 31: <services> 32: <service name="EAS.RMI.Service" service-type="WcfService" url="net.tcp://localhost:6607/eas/services/EAS.RMIService" /> 33: </services> 34: </eas> 35: 36: <system.web> 37: <compilation debug="true" targetFramework="4.0" /> 38: <httpModules> 39: <add name="SecurityDemandModule" type="EAS.Explorer.Web.SecurityDemandModule, EAS.Explorer.Web"/> 40: </httpModules> 41: </system.web> 42:  43: </configuration>      在配置文件的“configuration/eas/objects”之中的内容同ActiveXForm.xml文件内容一致,但是没有“EAS.Explorer.Resource”,在ActieXForm.xml和Web.Config文件之中,重点是远程服务地址的配置: 1: <services> 2: <service name="EAS.RMI.Service" service-type="WcfService" singleton="true" url="net.tcp://127.0.0.1:6607/eas/services/EAS.RMIService" /> 3: </services>      ActiveXForm运行之前的配置到这就可以了,接下来看运行时的IE设置。 四、ActiveXForm运行时的IE设置      把“Default.aspx”设为起始页,然后按F5运行”EAS.ActiveXForm.Web”项目,打开IE浏览器,有如下界面:     很显然,IE的安全性阻止ActiveXForm的运行,我们按下面的提示点击“安装根证书”,会有如下提示:     选择打开,弹出如下窗口:     点击“安装证书”继续:     选择“下一步”:     选中“将所有的证书放入下列存储”,点击“浏览”:      选择“受信任的根证书颁发机构”,点击“确定”:      点击“下一步”:      点击“完成”进行证书安装,将会弹出证书安装确定:      点击“是”完成证书安装,然后我们重新打开“Default.aspx”页面:      在IE安全提示“?”处点鼠标邮:      选中“为计算机上的所有用户安装此加载项(A)”,将会弹出“ActiveXForm插件”安装对话框:      点击“安装”,IE会自动安装AgileEAS.NET SOA中间件ActiveXForm插件,安装完成后系统会有如下升级提示:      点击“确定”,打开自动升级程序进行升级:      升级完成之后点击“关闭”然后重新打开打开“Default.aspx”页面,发布不再提示脚本错误:      输入用户名:Administrator,密码:sa之后点击“登录”,系统将会为我们呈现出AgileEAS.NET SOA 中间件ActiveXForm运行容器的主界面:      我们随便打开个功能看看是否好用,比如打开模块管理,并查看某个模块的属性:       是否发现这界面似曾相似^_^ 五、如果配置不成功      如果按照第四节的配置还是不能运行成功运行,那么首先打开首页之后,把当前网站localhost加入到可信息站点:      然后再进行第四节的配置,如果还不行,那么打开首页之设置IE“可信站点”区域的安全性,选择自定义级别,启用“对未标记为可安全执行脚本的ActiveX控件初始化并且执行脚本:       然后再进行第四节的操作,如果还是不行,那么请打开首页之后:       即手机下载msi安装包文件”xClient/downloads/EAS.ActiveXForm.msi”安装项目,进行手工安装,安装完成之后重新打开“Default.aspx”页面。 六、ActiveXForm的特点与局限      AgileEAS.NET SOA中间件ActiveXForm运行容器的本质是通过一个浏览器插件,把原来基于AgileEAS.NET SOA中间件平台所开发的WinForm/WPF应用运行与IE浏览器之中,以达到通过Winform/WPF开发BS应用(此处需要说明一下应该是伪BS应用),非常适合没有BS开发能力的一些中小管理软件企业,基于某些原因,ActiveXForm这种方式的伪BS应用非常的广,比如企业内部的财务系统、医院的电子病历、区域公共卫生平台之中的医疗机构信息系统,企业内部使用的其他一些系统之中。      AgileEAS.NET SOA中间件ActiveXForm运行容器并不只能运行基于AgileEAS.NET SOA中间件开发的应用系统,理论上可以扩展为可以把任何用WinFrom/WPF开发的系统都能转换为这种ActiveXForm加载的BS应用。      当然了,AgileEAS.NET SOA中间件ActiveXForm这种模式的应用也是有很大的局限的,比如,非常不适合在互联网上运行,因为其所有客户端都需要安装.NET Framework ,也需要安装ActiveXForm插件、导入证书甚至设置安全性。 七、联系我们      为了完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台了开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      技术团队成员都是合作多年的老朋友,因为这个平台是免费的,我们的营运开支主要靠为客户提供咨询服务所得,我们都是因为程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友和一直支持我们工作的客户、朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381 AgileEAS.NET QQ群: 113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 120661978(AgileEAS.NET 平台交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

.NET | ActiveX | ActiveXForm | AgileEAS.NET | C# | SOA | Socket | 分布式 | 框架 | 消息中间件 | 中间件

AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境

by 魏琼东 2013.10.16 09:25
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、配置分布式方式运行WinClient运行容器      在前面的AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(一):下载平台并基于直连环境运行一文之中,为大家介绍了如何下载AgileEAS.NET SOA中间件平台,以及如何初始化数据库运行环境、配置以直连方式运行AgileEAS.NET SOA 中间件WinCleint以直接数据库方式运行。      本文我们将为大家讲解如何以配置以”SOA服务-分布式客户端”方向运行AgileEAS.ENT SOA中间件平台WinClient容器。 三、配置SOA分布式服务端      在配置服务端之湔我们抚运动一下下载包根目录之中的”EAS.Publisher.exe”应用程序:      ”EAS.Publisher.exe”控件台应用程序是一个用于帮助开发人员进行分布式部署时的分发程序,其本质是将发布包“bin\dotnet”之中的程序集复制到“SOA服务”运行的环境目录“AppServer”下面的各级目录,运行程序如下: 运行时自动调用“eas.publish.cmd”脚本,将文件分发到“AppServer”下面的各级目录,其脚本内容如下: 1: @rem 复制到下载目录 2: copy @RootDirectory\bin\dotnet\AgileIM.Client.exe @RootDirectory\appserver\xclient\files\AgileIM.Client.exe /y 3: copy @RootDirectory\bin\dotnet\AgileIM.Client.exe.config @RootDirectory\appserver\xclient\files\AgileIM.Client.exe.config /y 4: copy @RootDirectory\bin\dotnet\AgileIM.Contracts.dll @RootDirectory\appserver\xclient\files\AgileIM.Contracts.dll /y 5: copy @RootDirectory\bin\dotnet\AgileIM.Service.dll @RootDirectory\appserver\xclient\files\AgileIM.Service.dll /y 6: copy @RootDirectory\bin\dotnet\AxInterop.grdesLib.dll @RootDirectory\appserver\xclient\files\AxInterop.grdesLib.dll /y 7: copy @RootDirectory\bin\dotnet\AxInterop.grproLib.dll @RootDirectory\appserver\xclient\files\AxInterop.grproLib.dll /y 8: copy @RootDirectory\bin\dotnet\EAS.ActiveXForm.ClientClasp.AddIn.dll @RootDirectory\appserver\xclient\files\EAS.ActiveXForm.ClientClasp.AddIn.dll /y 9: copy @RootDirectory\bin\dotnet\EAS.BPM.Activities.dll @RootDirectory\appserver\xclient\files\EAS.BPM.Activities.dll /y 10: copy @RootDirectory\bin\dotnet\EAS.BPM.BLL.Host.dll @RootDirectory\appserver\xclient\files\EAS.BPM.BLL.Host.dll /y 11: copy @RootDirectory\bin\dotnet\EAS.BPM.WinUI.dll @RootDirectory\appserver\xclient\files\EAS.BPM.WinUI.dll /y 12: copy @RootDirectory\bin\dotnet\eas.client.ini @RootDirectory\appserver\xclient\files\eas.client.ini /y 13: copy @RootDirectory\bin\dotnet\EAS.Configure.exe @RootDirectory\appserver\xclient\files\EAS.Configure.exe /y 14: copy @RootDirectory\bin\dotnet\EAS.Configure.exe.config @RootDirectory\appserver\xclient\files\EAS.Configure.exe.config /y 15: copy @RootDirectory\bin\dotnet\EAS.Data.Controls.dll @RootDirectory\appserver\xclient\files\EAS.Data.Controls.dll /y 16: copy @RootDirectory\bin\dotnet\EAS.Data.dll @RootDirectory\appserver\xclient\files\EAS.Data.dll /y 17: copy @RootDirectory\bin\dotnet\EAS.Data.Provider.dll @RootDirectory\appserver\xclient\files\EAS.Data.Provider.dll /y 18: copy @RootDirectory\bin\dotnet\EAS.Distributed.dll @RootDirectory\appserver\xclient\files\EAS.Distributed.dll /y 19: copy @RootDirectory\bin\dotnet\EAS.Explorer.BLL.Contracts.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.BLL.Contracts.dll /y 20: copy @RootDirectory\bin\dotnet\EAS.Explorer.BLL.Host.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.BLL.Host.dll /y 21: copy @RootDirectory\bin\dotnet\EAS.Explorer.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.dll /y 22: copy @RootDirectory\bin\dotnet\EAS.Explorer.Entities.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.Entities.dll /y 23: copy @RootDirectory\bin\dotnet\EAS.Explorer.Res.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.Res.dll /y 24: copy @RootDirectory\bin\dotnet\EAS.Explorer.WinUI.dll @RootDirectory\appserver\xclient\files\EAS.Explorer.WinUI.dll /y 25: copy @RootDirectory\bin\dotnet\EAS.FormDesigner.exe @RootDirectory\appserver\xclient\files\EAS.FormDesigner.exe /y 26: copy @RootDirectory\bin\dotnet\EAS.GReport.Controls.dll @RootDirectory\appserver\xclient\files\EAS.GReport.Controls.dll /y 27: copy @RootDirectory\bin\dotnet\EAS.MicroKernel.dll @RootDirectory\appserver\xclient\files\EAS.MicroKernel.dll /y 28: copy @RootDirectory\bin\dotnet\EAS.Monitor.dll @RootDirectory\appserver\xclient\files\EAS.Monitor.dll /y 29: copy @RootDirectory\bin\dotnet\EAS.NLB.Monitor.exe @RootDirectory\appserver\xclient\files\EAS.NLB.Monitor.exe /y 30: copy @RootDirectory\bin\dotnet\EAS.NLB.Server.exe @RootDirectory\appserver\xclient\files\EAS.NLB.Server.exe /y 31: copy @RootDirectory\bin\dotnet\EAS.OrmDesigner.exe @RootDirectory\appserver\xclient\files\EAS.OrmDesigner.exe /y 32: copy @RootDirectory\bin\dotnet\EAS.OrmDesigner.exe.config @RootDirectory\appserver\xclient\files\EAS.OrmDesigner.exe.config /y 33: copy @RootDirectory\bin\dotnet\EAS.Report.Controls.dll @RootDirectory\appserver\xclient\files\EAS.Report.Controls.dll /y 34: copy @RootDirectory\bin\dotnet\EAS.SmartUpdater.exe @RootDirectory\appserver\xclient\files\EAS.SmartUpdater.exe /y 35: copy @RootDirectory\bin\dotnet\EAS.SOA.Monitor.exe @RootDirectory\appserver\xclient\files\EAS.SOA.Monitor.exe /y 36: copy @RootDirectory\bin\dotnet\EAS.ThirdParty.Controls.dll @RootDirectory\appserver\xclient\files\EAS.ThirdParty.Controls.dll /y 37: copy @RootDirectory\bin\dotnet\EAS.WinClient.dll @RootDirectory\appserver\xclient\files\EAS.WinClient.dll /y 38: copy @RootDirectory\bin\dotnet\EAS.WinClient.Start.exe @RootDirectory\appserver\xclient\files\EAS.WinClient.Start.exe /y 39: copy @RootDirectory\bin\dotnet\EAS.WinClient.Start.exe.config @RootDirectory\appserver\xclient\files\EAS.WinClient.Start.exe.config /y 40: copy @RootDirectory\bin\dotnet\EAS.Windows.dll @RootDirectory\appserver\xclient\files\EAS.Windows.dll /y 41: copy @RootDirectory\bin\dotnet\EAS.Wpf.Controls.dll @RootDirectory\appserver\xclient\files\EAS.Wpf.Controls.dll /y 42: copy @RootDirectory\bin\dotnet\grdes50.dll @RootDirectory\appserver\xclient\files\grdes50.dll /y 43: copy @RootDirectory\bin\dotnet\gregn50.dll @RootDirectory\appserver\xclient\files\gregn50.dll /y 44: copy @RootDirectory\bin\dotnet\ICSharpCode.AvalonEdit.dll @RootDirectory\appserver\xclient\files\ICSharpCode.AvalonEdit.dll /y 45: copy @RootDirectory\bin\dotnet\Interop.grdesLib.dll @RootDirectory\appserver\xclient\files\Interop.grdesLib.dll /y 46: copy @RootDirectory\bin\dotnet\Interop.grproLib.dll @RootDirectory\appserver\xclient\files\Interop.grproLib.dll /y 47: copy @RootDirectory\bin\dotnet\itextsharp.dll @RootDirectory\appserver\xclient\files\itextsharp.dll /y 48: copy @RootDirectory\bin\dotnet\lua51.x64.dll @RootDirectory\appserver\xclient\files\lua51.x64.dll /y 49: copy @RootDirectory\bin\dotnet\lua51.x86.dll @RootDirectory\appserver\xclient\files\lua51.x86.dll /y 50: copy @RootDirectory\bin\dotnet\LuaInterface.x64.dll @RootDirectory\appserver\xclient\files\LuaInterface.x64.dll /y 51: copy @RootDirectory\bin\dotnet\LuaInterface.x86.dll @RootDirectory\appserver\xclient\files\LuaInterface.x86.dll /y 52: copy @RootDirectory\bin\dotnet\Microsoft.Data.ConnectionUI.Dialog.dll @RootDirectory\appserver\xclient\files\Microsoft.Data.ConnectionUI.Dialog.dll /y 53: copy @RootDirectory\bin\dotnet\Microsoft.Data.ConnectionUI.dll @RootDirectory\appserver\xclient\files\Microsoft.Data.ConnectionUI.dll /y 54: copy @RootDirectory\bin\dotnet\Microsoft.XmlNotepad.dll @RootDirectory\appserver\xclient\files\Microsoft.XmlNotepad.dll /y 55: copy @RootDirectory\bin\dotnet\MongoDB.dll @RootDirectory\appserver\xclient\files\MongoDB.dll /y 56: copy @RootDirectory\bin\dotnet\MySql.Data.dll @RootDirectory\appserver\xclient\files\MySql.Data.dll /y 57: copy @RootDirectory\bin\dotnet\NetronGraphLib.dll @RootDirectory\appserver\xclient\files\NetronGraphLib.dll /y 58: copy @RootDirectory\bin\dotnet\protobuf-net.xml @RootDirectory\appserver\xclient\files\protobuf-net.xml /y 59: copy @RootDirectory\bin\dotnet\RdlDesigner.dll @RootDirectory\appserver\xclient\files\RdlDesigner.dll /y 60: copy @RootDirectory\bin\dotnet\RdlEngine.dll @RootDirectory\appserver\xclient\files\RdlEngine.dll /y 61: copy @RootDirectory\bin\dotnet\RdlViewer.dll @RootDirectory\appserver\xclient\files\RdlViewer.dll /y 62: copy @RootDirectory\bin\dotnet\System.Data.SQLite.DLL @RootDirectory\appserver\xclient\files\System.Data.SQLite.DLL /y 63: copy @RootDirectory\bin\dotnet\System.Workflow.Activities.dll @RootDirectory\appserver\xclient\files\System.Workflow.Activities.dll /y 64: copy @RootDirectory\bin\dotnet\System.Workflow.ComponentModel.dll @RootDirectory\appserver\xclient\files\System.Workflow.ComponentModel.dll /y 65: copy @RootDirectory\bin\dotnet\System.Workflow.Runtime.dll @RootDirectory\appserver\xclient\files\System.Workflow.Runtime.dll /y 66: copy @RootDirectory\bin\dotnet\update.ini @RootDirectory\appserver\xclient\files\update.ini /y 67: copy @RootDirectory\bin\dotnet\WF.Demo.DAL.dll @RootDirectory\appserver\xclient\files\WF.Demo.DAL.dll /y 68: copy @RootDirectory\bin\dotnet\WF.Demo.UI.dll @RootDirectory\appserver\xclient\files\WF.Demo.UI.dll /y 69: @rem 复制到下载配置目录 70: copy @RootDirectory\bin\dotnet\EAS.SmartUpdateConfig.exe @RootDirectory\appserver\xclient\EAS.SmartUpdateConfig.exe /y 71: copy @RootDirectory\bin\dotnet\EAS.SmartUpdateConfig.exe.config @RootDirectory\appserver\xclient\EAS.SmartUpdateConfig.exe.config /y 72: @rem 复制到SOA服务Bin目录 73: copy @RootDirectory\bin\dotnet\AgileIM.Contracts.dll @RootDirectory\appserver\bin\AgileIM.Contracts.dll /y 74: copy @RootDirectory\bin\dotnet\AgileIM.Service.dll @RootDirectory\appserver\bin\AgileIM.Service.dll /y 75: copy @RootDirectory\bin\dotnet\EAS.BPM.Activities.dll @RootDirectory\appserver\bin\EAS.BPM.Activities.dll /y 76: copy @RootDirectory\bin\dotnet\EAS.BPM.BLL.Host.dll @RootDirectory\appserver\bin\EAS.BPM.BLL.Host.dll /y 77: copy @RootDirectory\bin\dotnet\EAS.Configure.exe @RootDirectory\appserver\bin\EAS.Configure.exe /y 78: copy @RootDirectory\bin\dotnet\EAS.Configure.exe.config @RootDirectory\appserver\bin\EAS.Configure.exe.config /y 79: copy @RootDirectory\bin\dotnet\EAS.Data.dll @RootDirectory\appserver\bin\EAS.Data.dll /y 80: copy @RootDirectory\bin\dotnet\EAS.Data.Provider.dll @RootDirectory\appserver\bin\EAS.Data.Provider.dll /y 81: copy @RootDirectory\bin\dotnet\EAS.Data.xml @RootDirectory\appserver\bin\EAS.Data.xml /y 82: copy @RootDirectory\bin\dotnet\EAS.DbInitializer.exe @RootDirectory\appserver\bin\EAS.DbInitializer.exe /y 83: copy @RootDirectory\bin\dotnet\EAS.DbInitializer.exe.config @RootDirectory\appserver\bin\EAS.DbInitializer.exe.config /y 84: copy @RootDirectory\bin\dotnet\EAS.Distributed.dll @RootDirectory\appserver\bin\EAS.Distributed.dll /y 85: copy @RootDirectory\bin\dotnet\EAS.Explorer.BLL.Contracts.dll @RootDirectory\appserver\bin\EAS.Explorer.BLL.Contracts.dll /y 86: copy @RootDirectory\bin\dotnet\EAS.Explorer.BLL.Host.dll @RootDirectory\appserver\bin\EAS.Explorer.BLL.Host.dll /y 87: copy @RootDirectory\bin\dotnet\EAS.Explorer.dll @RootDirectory\appserver\bin\EAS.Explorer.dll /y 88: copy @RootDirectory\bin\dotnet\EAS.Explorer.Entities.dll @RootDirectory\appserver\bin\EAS.Explorer.Entities.dll /y 89: copy @RootDirectory\bin\dotnet\EAS.MicroKernel.dll @RootDirectory\appserver\bin\EAS.MicroKernel.dll /y 90: copy @RootDirectory\bin\dotnet\EAS.Monitor.dll @RootDirectory\appserver\bin\EAS.Monitor.dll /y 91: copy @RootDirectory\bin\dotnet\EAS.NLB.Monitor.exe @RootDirectory\appserver\bin\EAS.NLB.Monitor.exe /y 92: copy @RootDirectory\bin\dotnet\EAS.NLB.Server.exe @RootDirectory\appserver\bin\EAS.NLB.Server.exe /y 93: copy @RootDirectory\bin\dotnet\EAS.NLB.Server.exe.config @RootDirectory\appserver\bin\EAS.NLB.Server.exe.config /y 94: copy @RootDirectory\bin\dotnet\EAS.NLB.Server.x64.exe @RootDirectory\appserver\bin\EAS.NLB.Server.x64.exe /y 95: copy @RootDirectory\bin\dotnet\EAS.SOA.Server.exe @RootDirectory\appserver\bin\EAS.SOA.Server.exe /y 96: copy @RootDirectory\bin\dotnet\EAS.SOA.Server.exe.config @RootDirectory\appserver\bin\EAS.SOA.Server.exe.config /y 97: copy @RootDirectory\bin\dotnet\EAS.SOA.Server.x64.exe @RootDirectory\appserver\bin\EAS.SOA.Server.x64.exe /y 98: copy @RootDirectory\bin\dotnet\EAS.SOA.Server.x64.exe.config @RootDirectory\appserver\bin\EAS.SOA.Server.x64.exe.config /y 99: copy @RootDirectory\bin\dotnet\lua51.x64.dll @RootDirectory\appserver\bin\lua51.x64.dll /y 100: copy @RootDirectory\bin\dotnet\lua51.x86.dll @RootDirectory\appserver\bin\lua51.x86.dll /y 101: copy @RootDirectory\bin\dotnet\LuaInterface.x64.dll @RootDirectory\appserver\bin\LuaInterface.x64.dll /y 102: copy @RootDirectory\bin\dotnet\LuaInterface.x86.dll @RootDirectory\appserver\bin\LuaInterface.x86.dll /y 103: copy @RootDirectory\bin\dotnet\MongoDB.dll @RootDirectory\appserver\bin\MongoDB.dll /y 104: copy @RootDirectory\bin\dotnet\MySql.Data.dll @RootDirectory\appserver\bin\MySql.Data.dll /y 105: copy @RootDirectory\bin\dotnet\RdlEngine.dll @RootDirectory\appserver\bin\RdlEngine.dll /y 106: copy @RootDirectory\bin\dotnet\RdlViewer.dll @RootDirectory\appserver\bin\RdlViewer.dll /y 107: copy @RootDirectory\bin\dotnet\soaserver.start.bat @RootDirectory\appserver\bin\soaserver.start.bat /y 108: copy @RootDirectory\bin\dotnet\soaserver.start.bat @RootDirectory\appserver\bin\install.bat /y 109: copy @RootDirectory\bin\dotnet\soaserver.start.bat @RootDirectory\appserver\bin\uinstall.bat /y 110: copy @RootDirectory\bin\dotnet\System.Data.SQLite.DLL @RootDirectory\appserver\bin\System.Data.SQLite.DLL /y 111: copy @RootDirectory\bin\dotnet\System.Workflow.Activities.dll @RootDirectory\appserver\bin\System.Workflow.Activities.dll /y 112: copy @RootDirectory\bin\dotnet\System.Workflow.ComponentModel.dll @RootDirectory\appserver\bin\System.Workflow.ComponentModel.dll /y 113: copy @RootDirectory\bin\dotnet\System.Workflow.Runtime.dll @RootDirectory\appserver\bin\System.Workflow.Runtime.dll /y 114: copy @RootDirectory\bin\dotnet\WF.Demo.DAL.dll @RootDirectory\appserver\bin\WF.Demo.DAL.dll /y 115:       其中@RootDirectory程序会根据运行时工作目录进行替换,注意:下载的AgileEAS.NET SOA中间件平台的解压目录路径之中最好不要带空格和中文。      接下来我们配置服务端,数据库我们将使用“AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(一):下载平台并基于直连环境运行一文所建立和初始化的”eas_demo”数据库。      我们运行“AppServer\Bin”目录之中的“EAS.Configure.exe”AgileEAS.NET SOA中间件配置文件生成工具生成服务端配置:      一定要选中“生成SOA分布式服务器配置”和“保存配置到AgileEAS.NET SOA 平台相关配置文件”然后点“下一步”:      填写WCF服务所需要的通信端口号(http和tcp各一个)、以及Socket通信服务的tcp的端口”以及数据库连接信息,然后点“下一步”:      界面上方是根据所设参数生成的配置信息,此处,可以改变配置信息的输出路径,默认为当前目录之中的“EAS.SOA.Server.exe.config”,点击“完成”输出配置:      至此,服务端的配置已经完成,接焉为我们以控件台方式运行一下SOA服务端,运行“AppServer\Bin”目录之中的“soaserver.start.bat”指处理文件:      “soaserver.start.bat”批处理文件是SOA服务的控制台运行脚本,即以控制台模式运行SOA服务端,我们运行如下:      “appServer\Binsoaserver.start.bat”批处理文件其内容如下: 1: EAS.soa.Server.exe -run 2: pause      其本质是“EAS.soa.Server.exe -run”这一旬,EAS.SOA.Server.exe带了一个启动参考 -run,即告诉EAS.SOA.Server.exe以控制台方式运行承载服务,除-run参数之外,EAS.SOA.Server.exe还支持以下参数:      -i 或者/i:向Windows服务控制器安装AgileEAS.NET SOA中间件平台SOA服务。      -u 或者/u:卸载已存在的AgileEAS.NET SOA中间件平台SOA服务。      /name=实例名:在安装、卸载AgileEAS.NET SOA中间件平台SOA服务的时候,告诉服务控制器,要安装什么实例的名称是什么,AgileEAS.NET SOA中间件的服务设计为可以多服务实例运行,即一台电脑上可以运行实例名称为”EAS”、“Demo”、“HIS”、“EMR”、“PACS”等不同的服务实例,类似于SQL的命名实现,当然这个参数是一个可选参考,如果不使用本参数,则安装和卸载默认实例,一台电脑只能安装一个默认实例,比如以下脚本:      “AppServer\Bin\install.bat”脚本 EAS.SOA.Server.exe /i /name=demo pause      表现安装一个实例名称为“demo”的AgileEAS.NET SOA中间件平台SOA服务实例,我们可以执行这个脚本:      我们打开系统管理工具之中的服务管理:      那以在生产环境之中我们就可以通过这种方式部署AgileEAS.NET SOA 中间件平台的SOA服务,服务安装之后会随计算机启动而自动启动,我们可以很方便的通过系统服务管理工具进行启动、停止服务,如果我们不使用这个服务了,我们可以使用以下脚本卸载这个服务:      “AppServer\Bin\uinstall.bat”脚本 1: EAS.SOA.Server.exe /u /name=demo 2: pause      执行脚本如下:      我们运行“appServer\Bin\soaserver.start.bat”启动服务进行下一步配置。 四、配置分布式WinClient客户段      在第三节中我们使用”EAS.Publisher.exe”分发程序分发文件,会自动把客户段运行文件复制到”appServer\xclient\files”之中,那么我们运行”appServer\xclient\files\EAS.Configure.exe”配置程序配置客户端:     选中“生成客户端配置(分布式访问结果)”和“保存配置到AgileEAS.NET SOA 平台相关配置文件”然后点击“下一步”:     这里需要注意的是端口号要根据选择的通信模式和第三节所设置的服务器参数进行决定,tcp对应第三节服务器设置之中的WCF服务之中的Tcp端口号,http对应WCF服务之中的http端口号,socket对应socket服务模式之中的tcp端口号。     点击“下一步”继续:     点击“完成”输出客户端配置到“EAS.WinClient.Start.exe.config”配置文件之中,内容如下: 1: <?xml version="1.0" encoding="utf-8"?> 2: <configuration> 3: <configSections> 4: <section name="eas" type="EAS.ConfigHandler,EAS.MicroKernel" /> 5: </configSections> 6: <!--SQLite运行必需--> 7: <startup useLegacyV2RuntimeActivationPolicy="true"> 8: <supportedRuntime version="v4.0"/> 9: </startup> 10: <eas> 11: <configurations> 12: <item name="Key" value="Value" /> 13: </configurations> 14: <objects> 15: <!--分布式通信组件。--> 16: <object name="ServiceBridger" assembly="EAS.Distributed" type="EAS.Distributed.ServiceBridger" LifestyleType="Thread" > 17: <property name="ServiceName" type="string" value="EAS.RMI.Service" /> 18: </object> 19: <object name="DataAccessor" assembly="EAS.Distributed" type="EAS.Distributed.DataAccessor" LifestyleType="Thread" > 20: <property name="ServiceBridger" type="object" value="ServiceBridger" /> 21: </object> 22: <object name="OrmAccessor" assembly="EAS.Distributed" type="EAS.Distributed.OrmAccessor" LifestyleType="Thread" > 23: <property name="ServiceBridger" type="object" value="ServiceBridger" /> 24: <property name="DataAccessor" type="object" value="DataAccessor" /> 25: </object> 26: <!--日志管理--> 27: <object name="Logger" assembly="EAS.MicroKernel" type="EAS.Loggers.TextLogger" LifestyleType="Singleton" /> 28: <!--资源--> 29: <!--<object name="EAS.Explorer.Resource" assembly="EAS.Explorer.Res" type="EAS.Explorer.Res.Resources" LifestyleType="Singleton" />--> 30: </objects> 31: <services> 32: <service name="EAS.RMI.Service" service-type="WcfService" singleton="true" url="net.tcp://127.0.0.1:6607/eas/services/EAS.RMIService" /> 33: <service name="EAS.Storage.Service" service-type="WcfService" singleton="true" url="net.tcp://127.0.0.1:6607/eas/services/EAS.StorageService" /> 34: </services> 35: </eas> 36: </configuration>     至此为止,我们完成了不带自动升级功能的分布式客户端配置,我们启动客户程序“EAS.WinClient.Start.exe”,并使用账号:Adminstrator,密码:sa登录,看到如下界面:      那么如何分辨程序是以分布式方式运行的呢,我们打开以控件台运行的SOA服务程序CMD窗口,就会看到其中一些消息通信记录: 五、配置自动升级      第四节我们在”appServer\xclient\files”目录之中成功配置了分布式客户端并且成功运行,那么我们”appServer\xclient\files”为基础配置一个自升级服务。      打开”appServer\xclient\files\update.ini”文件进行修改: 1: # AgileEAS.Net 平台升级控件文件。 2:  3: [config] 4:  5: allow = 0 6: application = EAS.WinClient.Start.exe 7: url = net.tcp://localhost:6607/eas/services/EAS.UpdateService     其中allow表示是否升级,url为升级服务地址,地址组成为wcf协议net.tcp://或http://+主机名称为IP+端口号+/eas/services/eas.updateservice,application表示升级完成之后启动运行的程序,我们根据第三节的配置修改如下: 1: # AgileEAS.Net 平台升级控件文件。 2:  3: [config] 4:  5: allow = 1 6: application = EAS.WinClient.Start.exe 7: url = net.tcp://localhost:6607/eas/services/EAS.UpdateService     然后我们删除目录里面的临时文件夹“Data”和“logs”,进行”appServer\xclient”,运行目录之中的”EAS.SmartUpdateConfig.exe“程序:      ”EAS.SmartUpdateConfig.exe“程序是AgileEAS.NET  SOA 中间件平台的升级配置程序,即当我们的应用的程序文件发生了新级和变更,需要把文件复制”appServer\xclient\files”目录之中,并且运行”EAS.SmartUpdateConfig.exe“程序以生成升级配置文件,升级配置文件存储在”appServer\xclient\conig”目录之中的”SmartUpdate.xml“文件之中,其内容如下: 1: <?xml version="1.0" encoding="utf-8"?> 2: <SmartConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 3: <URI>http://www.smarteas.net/</URI> 4: <Name>AgileEAS.NET SOA平台升级配置文件</Name> 5: <Description>用于AgileEAS.NET SOA平台SmartClient/ActiveX运行容器模块升级之用</Description> 6: <StartEx /> 7: <Time>2013-10-16T08:56:44.67765+08:00</Time> 8: <Files> 9: <SmartFile> 10: <FileName>AgileIM.Client.exe</FileName> 11: <Version>1.0.0.0</Version> 12: <Time>2013-10-15T16:59:23.5252+08:00</Time> 13: </SmartFile> 14: <SmartFile> 15: <FileName>AgileIM.Client.exe.config</FileName> 16: <Time>2013-08-27T12:10:12.0756571+08:00</Time> 17: </SmartFile> 18: <SmartFile> 19: <FileName>AgileIM.Contracts.dll</FileName> 20: <Version>1.0.0.0</Version> 21: <Time>2013-10-12T19:50:18.155+08:00</Time> 22: </SmartFile> 23: <SmartFile> 24: <FileName>AgileIM.Service.dll</FileName> 25: <Version>1.0.0.0</Version> 26: <Time>2013-10-15T16:59:24.5722599+08:00</Time> 27: </SmartFile> 28: <SmartFile> 29: <FileName>AxInterop.grdesLib.dll</FileName> 30: <Version>5.0.0.0</Version> 31: <Time>2013-10-12T19:50:02.442+08:00</Time> 32: </SmartFile> 33: <SmartFile> 34: <FileName>AxInterop.grproLib.dll</FileName> 35: <Version>5.0.0.0</Version> 36: <Time>2013-10-12T19:50:02.975+08:00</Time> 37: </SmartFile> 38: <SmartFile> 39: <FileName>EAS.ActiveXForm.ClientClasp.AddIn.dll</FileName> 40: <Version>1.0.0.0</Version> 41: <Time>2013-10-15T17:00:44.6468399+08:00</Time> 42: </SmartFile> 43: <SmartFile> 44: <FileName>EAS.BPM.Activities.dll</FileName> 45: <Version>1.1.0.0</Version> 46: <Time>2013-10-15T16:59:38.4650545+08:00</Time> 47: </SmartFile> 48: <SmartFile> 49: <FileName>EAS.BPM.BLL.Host.dll</FileName> 50: <Version>1.0.0.0</Version> 51: <Time>2013-10-15T17:00:41.6456682+08:00</Time> 52: </SmartFile> 53: <SmartFile> 54: <FileName>EAS.BPM.WinUI.dll</FileName> 55: <Version>2.0.0.0</Version> 56: <Time>2013-10-15T16:59:45.0194294+08:00</Time> 57: </SmartFile> 58: <SmartFile> 59: <FileName>eas.client.ini</FileName> 60: <Time>2013-10-15T21:22:56.5866492+08:00</Time> 61: </SmartFile> 62: <SmartFile> 63: <FileName>EAS.Configure.exe</FileName> 64: <Version>2.0.0.0</Version> 65: <Time>2013-10-15T16:59:27.6444356+08:00</Time> 66: </SmartFile> 67: <SmartFile> 68: <FileName>EAS.Configure.exe.config</FileName> 69: <Time>2013-04-15T19:59:09.4420283+08:00</Time> 70: </SmartFile> 71: <SmartFile> 72: <FileName>EAS.Data.Controls.dll</FileName> 73: <Version>1.0.0.0</Version> 74: <Time>2013-10-15T17:36:07.4252559+08:00</Time> 75: </SmartFile> 76: <SmartFile> 77: <FileName>EAS.Data.dll</FileName> 78: <Version>5.0.0.0</Version> 79: <Time>2013-10-15T16:59:34.241813+08:00</Time> 80: </SmartFile> 81: <SmartFile> 82: <FileName>EAS.Data.Provider.dll</FileName> 83: <Version>5.0.0.0</Version> 84: <Time>2013-10-15T16:59:59.6222646+08:00</Time> 85: </SmartFile> 86: <SmartFile> 87: <FileName>EAS.Distributed.dll</FileName> 88: <Version>5.0.0.0</Version> 89: <Time>2013-10-15T17:00:39.8145635+08:00</Time> 90: </SmartFile> 91: <SmartFile> 92: <FileName>EAS.Explorer.BLL.Contracts.dll</FileName> 93: <Version>5.0.0.0</Version> 94: <Time>2013-10-12T19:50:17.932+08:00</Time> 95: </SmartFile> 96: <SmartFile> 97: <FileName>EAS.Explorer.BLL.Host.dll</FileName> 98: <Version>5.0.0.0</Version> 99: <Time>2013-10-15T17:00:14.297104+08:00</Time> 100: </SmartFile> 101: <SmartFile> 102: <FileName>EAS.Explorer.dll</FileName> 103: <Version>5.0.0.0</Version> 104: <Time>2013-10-12T19:50:16.931+08:00</Time> 105: </SmartFile> 106: <SmartFile> 107: <FileName>EAS.Explorer.Entities.dll</FileName> 108: <Version>5.0.0.0</Version> 109: <Time>2013-10-15T17:00:16.9642565+08:00</Time> 110: </SmartFile> 111: <SmartFile> 112: <FileName>EAS.Explorer.Res.dll</FileName> 113: <Version>1.1.0.0</Version> 114: <Time>2013-10-12T19:50:50.7467432+08:00</Time> 115: </SmartFile> 116: <SmartFile> 117: <FileName>EAS.Explorer.WinUI.dll</FileName> 118: <Version>5.0.0.0</Version> 119: <Time>2013-10-15T16:59:56.5250875+08:00</Time> 120: </SmartFile> 121: <SmartFile> 122: <FileName>EAS.FormDesigner.exe</FileName> 123: <Version>5.0.0.0</Version> 124: <Time>2013-10-15T16:59:46.1954967+08:00</Time> 125: </SmartFile> 126: <SmartFile> 127: <FileName>EAS.GReport.Controls.dll</FileName> 128: <Version>1.0.0.0</Version> 129: <Time>2013-10-15T17:00:07.2997038+08:00</Time> 130: </SmartFile> 131: <SmartFile> 132: <FileName>EAS.MicroKernel.dll</FileName> 133: <Version>5.0.0.0</Version> 134: <Time>2013-10-15T16:59:29.7545563+08:00</Time> 135: </SmartFile> 136: <SmartFile> 137: <FileName>EAS.Monitor.dll</FileName> 138: <Version>1.0.0.0</Version> 139: <Time>2013-10-12T19:50:10.901+08:00</Time> 140: </SmartFile> 141: <SmartFile> 142: <FileName>EAS.NLB.Monitor.exe</FileName> 143: <Version>1.0.0.0</Version> 144: <Time>2013-10-15T17:00:08.143752+08:00</Time> 145: </SmartFile> 146: <SmartFile> 147: <FileName>EAS.NLB.Server.exe</FileName> 148: <Version>1.0.0.0</Version> 149: <Time>2013-10-15T17:00:16.3272201+08:00</Time> 150: </SmartFile> 151: <SmartFile> 152: <FileName>EAS.OrmDesigner.exe</FileName> 153: <Version>5.0.0.0</Version> 154: <Time>2013-10-15T16:58:10.8720445+08:00</Time> 155: </SmartFile> 156: <SmartFile> 157: <FileName>EAS.OrmDesigner.exe.config</FileName> 158: <Time>2012-01-07T11:28:39.2362631+08:00</Time> 159: </SmartFile> 160: <SmartFile> 161: <FileName>EAS.Report.Controls.dll</FileName> 162: <Version>3.0.0.0</Version> 163: <Time>2013-10-15T17:00:11.6179508+08:00</Time> 164: </SmartFile> 165: <SmartFile> 166: <FileName>EAS.SmartUpdater.exe</FileName> 167: <Version>1.0.0.0</Version> 168: <Time>2013-10-15T16:59:54.662981+08:00</Time> 169: </SmartFile> 170: <SmartFile> 171: <FileName>EAS.SOA.Monitor.exe</FileName> 172: <Version>1.0.0.0</Version> 173: <Time>2013-10-15T17:00:20.4044533+08:00</Time> 174: </SmartFile> 175: <SmartFile> 176: <FileName>EAS.ThirdParty.Controls.dll</FileName> 177: <Version>1.0.0.0</Version> 178: <Time>2013-10-12T19:49:55.311+08:00</Time> 179: </SmartFile> 180: <SmartFile> 181: <FileName>EAS.WinClient.dll</FileName> 182: <Version>5.1.0.0</Version> 183: <Time>2013-10-15T17:00:24.8407071+08:00</Time> 184: </SmartFile> 185: <SmartFile> 186: <FileName>EAS.WinClient.Start.exe</FileName> 187: <Version>5.0.0.0</Version> 188: <Time>2013-10-15T16:59:14.0236565+08:00</Time> 189: </SmartFile> 190: <SmartFile> 191: <FileName>EAS.WinClient.Start.exe.config</FileName> 192: <Time>2013-10-15T21:20:03.86277+08:00</Time> 193: </SmartFile> 194: <SmartFile> 195: <FileName>EAS.Windows.dll</FileName> 196: <Version>5.0.0.0</Version> 197: <Time>2013-10-15T17:00:30.9600571+08:00</Time> 198: </SmartFile> 199: <SmartFile> 200: <FileName>EAS.Wpf.Controls.dll</FileName> 201: <Version>1.0.0.0</Version> 202: <Time>2013-10-15T17:00:38.075464+08:00</Time> 203: </SmartFile> 204: <SmartFile> 205: <FileName>grdes50.dll</FileName> 206: <Version>5, 8, 13, 620</Version> 207: <Time>2013-06-24T23:11:32+08:00</Time> 208: </SmartFile> 209: <SmartFile> 210: <FileName>gregn50.dll</FileName> 211: <Version>5, 8, 13, 620</Version> 212: <Time>2013-06-24T23:10:26+08:00</Time> 213: </SmartFile> 214: <SmartFile> 215: <FileName>ICSharpCode.AvalonEdit.dll</FileName> 216: <Version>4.3.1.9429</Version> 217: <Time>2013-10-12T19:50:15.045+08:00</Time> 218: </SmartFile> 219: <SmartFile> 220: <FileName>Interop.grdesLib.dll</FileName> 221: <Version>5.0.0.0</Version> 222: <Time>2013-10-12T19:50:01.56+08:00</Time> 223: </SmartFile> 224: <SmartFile> 225: <FileName>Interop.grproLib.dll</FileName> 226: <Version>5.0.0.0</Version> 227: <Time>2013-10-12T19:50:02.088+08:00</Time> 228: </SmartFile> 229: <SmartFile> 230: <FileName>itextsharp.dll</FileName> 231: <Version>4.1.2.0</Version> 232: <Time>2011-04-19T10:03:14+08:00</Time> 233: </SmartFile> 234: <SmartFile> 235: <FileName>lua51.x64.dll</FileName> 236: <Time>2013-09-30T13:25:51.209+08:00</Time> 237: </SmartFile> 238: <SmartFile> 239: <FileName>lua51.x86.dll</FileName> 240: <Time>2013-09-30T13:27:36.369897+08:00</Time> 241: </SmartFile> 242: <SmartFile> 243: <FileName>LuaInterface.x64.dll</FileName> 244: <Version>2.0.4.24313</Version> 245: <Time>2013-09-30T13:30:27.8847071+08:00</Time> 246: </SmartFile> 247: <SmartFile> 248: <FileName>LuaInterface.x86.dll</FileName> 249: <Version>2.0.4.24313</Version> 250: <Time>2013-09-30T13:30:27.8937076+08:00</Time> 251: </SmartFile> 252: <SmartFile> 253: <FileName>Microsoft.Data.ConnectionUI.Dialog.dll</FileName> 254: <Version>8.0.50727.42 (RTM.050727-4200)</Version> 255: <Time>2011-04-19T14:03:22+08:00</Time> 256: </SmartFile> 257: <SmartFile> 258: <FileName>Microsoft.Data.ConnectionUI.dll</FileName> 259: <Version>8.0.50727.42 (RTM.050727-4200)</Version> 260: <Time>2011-04-19T14:03:22+08:00</Time> 261: </SmartFile> 262: <SmartFile> 263: <FileName>Microsoft.XmlNotepad.dll</FileName> 264: <Version>2.5.3145.19740</Version> 265: <Time>2008-08-11T11:58:04+08:00</Time> 266: </SmartFile> 267: <SmartFile> 268: <FileName>MongoDB.dll</FileName> 269: <Version>0.90.0.1</Version> 270: <Time>2012-03-16T19:11:12.6696083+08:00</Time> 271: </SmartFile> 272: <SmartFile> 273: <FileName>MySql.Data.dll</FileName> 274: <Version>5.0.9.0</Version> 275: <Time>2008-04-14T12:04:28+08:00</Time> 276: </SmartFile> 277: <SmartFile> 278: <FileName>NetronGraphLib.dll</FileName> 279: <Version>2.2.3328.30433</Version> 280: <Time>2009-02-10T16:54:28+08:00</Time> 281: </SmartFile> 282: <SmartFile> 283: <FileName>RdlDesigner.dll</FileName> 284: <Version>3.9.7.0</Version> 285: <Time>2013-10-12T19:50:00.225+08:00</Time> 286: </SmartFile> 287: <SmartFile> 288: <FileName>RdlEngine.dll</FileName> 289: <Version>3.9.7.0</Version> 290: <Time>2013-10-12T19:49:53.522+08:00</Time> 291: </SmartFile> 292: <SmartFile> 293: <FileName>RdlViewer.dll</FileName> 294: <Version>3.9.6.0</Version> 295: <Time>2013-10-12T19:49:56.182+08:00</Time> 296: </SmartFile> 297: <SmartFile> 298: <FileName>System.Data.SQLite.DLL</FileName> 299: <Version>1.0.66.0</Version> 300: <Time>2010-04-18T13:34:12+08:00</Time> 301: </SmartFile> 302: <SmartFile> 303: <FileName>System.Workflow.Activities.dll</FileName> 304: <Version>4.0.30319.1 (RTMRel.030319-0100)</Version> 305: <Time>2010-03-18T19:31:26+08:00</Time> 306: </SmartFile> 307: <SmartFile> 308: <FileName>System.Workflow.ComponentModel.dll</FileName> 309: <Version>4.0.30319.1 (RTMRel.030319-0100)</Version> 310: <Time>2010-03-18T19:31:26+08:00</Time> 311: </SmartFile> 312: <SmartFile> 313: <FileName>System.Workflow.Runtime.dll</FileName> 314: <Version>4.0.30319.1 (RTMRel.030319-0100)</Version> 315: <Time>2010-03-18T19:31:26+08:00</Time> 316: </SmartFile> 317: <SmartFile> 318: <FileName>update.ini</FileName> 319: <Time>2013-10-15T21:32:33.0976238+08:00</Time> 320: </SmartFile> 321: <SmartFile> 322: <FileName>WF.Demo.DAL.dll</FileName> 323: <Version>1.0.0.0</Version> 324: <Time>2013-10-12T19:49:57.9107211+08:00</Time> 325: </SmartFile> 326: <SmartFile> 327: <FileName>WF.Demo.UI.dll</FileName> 328: <Version>1.0.0.0</Version> 329: <Time>2013-10-12T19:50:49.1896541+08:00</Time> 330: </SmartFile> 331: </Files> 332: </SmartConfig>      ”SmartUpdate.xml“文件为平台的升级配置文件,其本质是存储一个文件及其最后修改时间的一个清单,客户端也持有这么一份清单,客户端会依据自己持有的清单与服务器上的清单比对以判定需要升级更新那些文件。       ”appServer\xclient”为AgileEAS.NET SOA 中间件的服务端升级目录,这个路径是不能更改的,在AgileEAS.NET SOA 中间件有服务设计之中更新了硬性的规定,其中”appServer\xclient\files”目录其本质就是客户端的最新复制。      当我们完成以上配置之后,我们来验证一个自动升级是否可以使用,我们把”appServer\xclient\files”复制到其他地方,比如我们复制到“D:\”并重命名为”d:\eas.client”,如下图:      然后我们运行“d:\eas.client\eas.winclient.start.exe”,系统有如下提示:      我们点击“确定”将会启动升级程序进行升级:      升级完成之后点击“关闭”,系统将会自己启动“d:\eas.client\eas.winclient.start.exe”,打开登录窗口:      输入用户:Administrator密码:sa,点击登录,打开主界面: 六、联系我们      为了完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台了开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      技术团队成员都是合作多年的老朋友,因为这个平台是免费的,我们的营运开支主要靠为客户提供咨询服务所得,我们都是因为程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友和一直支持我们工作的客户、朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381 AgileEAS.NET QQ群: 113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 120661978(AgileEAS.NET 平台交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

.NET | AgileEAS.NET | C# | ORM | SOA | Socket | 中间件 | 企业应用架构 | 分布式 | 框架 | 消息中间件 | 设计模式 | 下载

AgileEAS.NET SOA 中间件平台 5.2 发布说明

by 魏琼东 2013.10.14 21:15
一、AgileEAS.NET SOA 中间件简介      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、下载 AgileEAS.NET SOA 中间件平台5.2 版本      打开AgileEAS.NET SOA 中间件平台官方网站最新下载栏目:      通过半年时间的客户反馈,我们对AgileEAS.NET SOA中间件进行了部分修改, 形成了5.2版本,相对于之前的5.1版本,我们做了以下的改动:      1).重新设计了ORM的缓存体系,增加了一套ORM对象的增量缓存体系。      2).为ORM体系提供了懒加载机制,懒加载可以从数据库也可以从缓存进行懒加载。      3).修改了一些Linq语言实现上的Bug。      4).对SOA服务、分布式体系进行了精简和整合,合并和裁减了几个有关于分布式通信的程序集。      5).增加了对SOA服务进行负载均衡的支持。      6).重构和简化了Sockt/Tcp通信框架。      7).SOA、分布式通信系统支持Socket通信模式。      8).SOA服务及NLB服务增加了对X64架构的支持。      9).集成对lua脚本语言引擎及配套的编码调试工具。      10).从资源管理平台BLL.Host之中分离了对BPM的支持到独立的程序集,以隔离工作流不能工作对管理功能的影响。      11).调整了Grid++报表系统的部分功能、增加对子报表的功能支持。      12).强化了数据初始化工具、系统配置工具。      13).增加了SOA服务、NLB服务的监控工具。      14).增加了WinForm开发中辅助扩展组件:字典快速录入、自动焦点跳转。      15).增加了DataGridView控件CRUD自动持久化组件,即只需要向DataGridView绑定一个数据源,只可以自动实现当DataGridView增加、删除、修改后数据自动写回功能。      16).调整了工作流部分的API设计。      17).调整了日志系统的部分设计。      18).调整了ActiveXForm运行容器、改变了ActiveXForm的组件升级方式、把原先独立一套的升级改变为使用平台统一的升级工具进行升级,运行服务器容器由原来的IIS环境该由AgileEAS.NET 平台SOA服务容器运行。      19).调整了Silverlight运行容器的设计、服务端运行容器由原来的IIS环境该由AgileEAS.NET 平台SOA服务容器运行。      总结一下就是,5.2与5.1之间没有对平台做过涉及结构上的重大调整,而是把重点放在了对系统稳定性、高性能、应用开发的简单性这些方面,即希望本平台能达到上手执容易、开发方便的目标。 三、AgileEAS.NET SOA 中间件平台5.2 版本发布内容      在AgileEAS.NET SOA 中间件2013第四季度发布计划一文之中曾经简单的向大家介绍了AgileEAS.NET SOA 5.2版本发布的大概时间及大概介绍,AgileEAS.NET SOA 中间件平台5.2版本最大的亮点是在发布平台的同时将会向大家发布部分平台的开源代码及三套平台的案例。      包括以下开发源代码:      1).AgileEAS.NET SOA 中间件平台Silverlight运行容器的源代码、Silverlight版本的工作流系统源代码。      2).AgileEAS.NET SOA 中间件平台采用的RDL 报表系统源代码,包括报表引擎、报表控件、报表设计器,已经过我们的汉化和改进,大量应用于医疗、物流、铁路、电力等行业。      同时,案例源代码由原来的一个增加为3个:      1).AgileEAS.NET SOA 中间件平台-药品商店管理信息系统(DrugShop)源代码,做了大量修改和优化,同步更新到AgileEAS.NET SOA 中间件最新平台。      2).新增加了一个-小型ERP系统(电脑分销)系统(SmartERP),本案例原为某客户为某电脑经销商所开发,后来贡献给我们做为例子之用。      3).AgileEAS.NET SOA 中间件平台Socket通信框架-在线聊天室系统(ChatRoom)源代码,为快速掌握AgileEAS.NET 中间件平台Socket消息通信框架所必备。 四、AgileEAS.NET SOA 中间件平台5.2 开发包介绍 4.1 目录结构      开发人员从AgileEAS.NET官方http://www.smarteas.net网站或者敏捷软件工程实验室网站http://www.agilelab.cn下载到的AgileEAS.NET开发包名称为AgileEAS.NET 5.0.rar。      解压后包含以下文件目录结构:      下面我把各目录做个简单的说明: Bin目录      Bin目录中包含着AgileEAS.NET平台中的所有程序集文件,插件定义、WinForm、SmartClient运行容器、基础类库、开发辅助、配置工具都在这里面。 AppServer目录      发布是其中只有Bin和xClient两个空目录,用于做为SOA服务的运行目录、自动升级的服务端目录。 documents目录      Document目录中包含着AgileEAS.NET SOA中间件平台的介绍、开发指南、使用说明书、类库参考手册等一系列的文档。 example目录     AgileEAS.NET SOA中间件平台提供的一组开发例子,我会用专门的文档对里面的例子介绍。 ActiveXForm.Web目录      ActiveXForm运行容器的部署站点,包含EAS.ActiveXForm的运行站点,以及ActiveXForm运行所必须的客户端IE扫描件、IE插件客户段运行所必须的X509根证书、AcriveXForm客户端运行所必须的配置文件。 Silverlight.src目录      AgileEAS.NET SOA中间件平台Silverlight运行容器的所有源代码,本部分已开源。 RDL Project 3.96目录      AgileEAS.NET SOA中间件平台所集成的RDL报表系统的所有源代码、本部分已开源。 4.2 程序集介绍      在AgileEAS.NET SOA中间件平台开发包的bin目录中提供了70个左右程序集,其涵盖了AgileEAS.NET SOA中间件平台的方方面面,下面我对程序集做一个简单的分类。 基础程序集:      EAS.MicroKernel.dll 微内核程序集,包含接口契约、IOC、SL、及服务容器的定义。      EAS.Data.dll 提供统一的数据访问和ORM。      EAS.Web.dll Web开发扩展(针对应用程序和模块接口)。      EAS.Windows.dll WinForm/WFP开发扩展、及一些预定义控件。 资源管理平台:      EAS.Explorer.dll 资源管理平台基础组件。      EAS.Explorer.Entities.dll 资源管理平台实体定义。      EAS.Explorer.BLL.Contracts.dll 资源管理平台业务/服务接口契约      EAS.Explorer.BLL.Host.dll 资源管理平台业务/服务实现      EAS.Explorer.Res.dll 外壳资源(可替换)。      EAS.Explorer.Web.dll 运行容器之Web基础。      EAS.Explorer.WinUI.dll 基于WinForm的平台管理功能实现。      EAS.WinClient.dll WinForm/WPF运行容器。      EAS.WinClient.Start.exe WinForm/WPF运行容器引导程序。 ActiveXForm:      EAS.ActiveXForm.ClientClasp.dll 客户端钩子(包含IE中运行的三个ActiveX控件)。      EAS.ActiveXForm.ClientClasp.AddIn.dll 客户端插件。 智能升级:      EAS.SmartUpdater.exe 智能升级引导程序。      EAS.SmartUpdate.Config.exe 智能升级配置程序。 分布式服务:      EAS.Distributed.dll 分布式访问客户端。      EAS.Monitor.dll SOA服务、负载均衡服务监控定义。      EAS.SOA.Server.exe SOA服务主程序。      EAS.SOA.Server.X64.exe SOA服务64位主程序。      EAS.NLB.Server.exe 负载均衡服务主程序。      EAS.SOA.Monitor.exe SOA服务监控程序。      EAS.NLB.Monitor.exe 负载均衡服务监控程序。 报表系统:      RdlEngine.dll    RDL引擎(开源项目)。      RdlViewer.dll    RDL展示组件(开源项目)。      RdlDesigner.dll RDL设计组件。      EAS.Report.Controls.dll 报表打印组件。      EAS.GReport.Controls.dll Grid++打印组件。 开发辅助:      EAS.OrmDesigner.exe 数据对象(ORM)设计器。      EAS.FormDesigner.exe 快速界面设计器。 初始化、配置工具:      EAS.DbInitializer.exe 平台数据库初始化工具。      EAS.Configure.exe 快速配置文件定义工具。 工作流平台:      EAS.BPM.Activities.dll 工作流活动定义。      EAS.BPM.Host.dll 工作流服务实现。      EAS.BPM.WinUI.dll 工作流平台管理UI。 Silverlight平台:      EAS.MicroKernel.dll 微内核。      EAS.Data.dll 数据访问、Linq。      EAS.Controls.dll 基础控件。      EAS.ReportViewer.dll 报表浏览控件。 其他:      EAS.Data.Provider.dll 数据访问提供者扩展,通过扩展实现ORACLE、MySql、Sqlite数据库的支持。 第三方组件:      System.Workflow.Activities.dll WF3.5基础组件。      System.Workflow.ComponentModel.dll WF3.5基础组件。      System.Workflow.Runtime.dll WF3.5基础组件。      EAS.ThirdParty.Controls.dll 第三方开源控件源代码      NetronGraphLib.dll 图像组件。      ICSharpCode.AvalonEdit.dll.dll      Microsoft.Data.ConnectionUI.Dialog.dll      Microsoft.Data.ConnectionUI.dll      Microsoft.XmlNotepad.dll 4.3 文档部分      AgileEAS.NET SOA中间件平台是一个快速开发平台,是一组中间件,业主要目录的是提供开发人员的开发效率,要充分了解并且学习AgileEAS.NET平台的快速开发实践和充分的利用AgileEAS.NET平台所提供的快速开发工具。      如何快速去学习和理解AgileEAS.NET SOA中间件平台呢,我们提供了大量的文档和例程,文档是AgileEAS.NET SOA中间件平台的组成部分,更是程序员熟悉AgileEAS.NET SOA中间件平台的窗户。AgileEAS.NET平台开发包中提供了《AgileEAS.NET SOA中间件平台技术说明书 》、《AgileEAS.NET SOA中间件平台开发指南》、《AgileEAS.NET SOA中间件平台系统管理使用教程》、《AgileEAS.NET SOA中间件平台开发辅助工具使用教程》、《AgileEAS.NET SOA中间件平台安装说明书》、《AgileEAS.NET SOA中间件平台数据库设计说明书(SQLServer)》、《AgileEAS.NET SOA中间件平台数据库设计说明书(Oracle)》等文档以及AgileEAS.NET SOA中间件平台基础类库参考手册。 4.4 示例部分      AgileEAS.NET SOA中间件平台5.2版本将会发布三个应用案例,但是这三个案例都不会和AgileEAS.NET 5.2发布包打包在一进行下载,而是在AgileEAS.NET SOA 中间件平台官方网站最新下载栏目设有专门的下载链接进行下载。 五、学习和配置文档 AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(一):下载平台并基于直连环境运行 AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境 AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境 AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置 六、联系我们      为了完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台了开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      技术团队成员都是合作多年的老朋友,因为这个平台是免费的,我们的营运开支主要靠为客户提供咨询服务所得,我们都是因为程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友和一直支持我们工作的客户、朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381 AgileEAS.NET QQ群: 113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 120661978(AgileEAS.NET 平台交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

.NET | AgileEAS.NET | C# | ORM | SAAS | SOA | Socket | 中间件 | 企业应用架构 | 分布式 | 消息中间件 | 设计模式

AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-下载配置

by 魏琼东 2013.10.12 11:58
一、AgileEAS.NET SOA中间件Socket/Tcp框架介绍      在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA中间Socket/Tcp框架进行了总体的介绍,我们知道 AgileEAS.NET SOA中间件Socket/Tcp框架是一套Socket通信的消息中间件: 二、简单的服务器客户段消息应答      在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架-简单例子-实现简单的服务端客户端消息应答中我们实现了一个简单的客户端消息请求==>服务端应答的简单的Socket应用。 三、完整的应用-实现完整的聊天室      本文我们将实现一个多人聊天室的应用,类似于早年的网络聊天室或者当年的QQ网络聊天室或者游戏里面的聊天功能,聊到室主界面如下:      聊天室支持公聊和私聊频道,理论上可以支持几百甚至几千人,具体上限没有经过测试,在这个案例之中,大家将会掌握基于AgileEAS.NET SOA中间件Socket/Tcp框架的比较复杂的消息定义及消息处理及消息协调,同时还会掌握如何管理服务端的链接、聊天室用户在线状态、消息的多目标转发等功能。      本案例的可执行客户端程序和服务端已经在我们的服务器上为大家部署了一套,大家可以下载客户段http://112.74.66.105/downloads/eas/examples/chat.client.rar体验,下载客户端压缩包之后解压缩,注册一个账号就可以使用这个账号登录我们为大家搭建的聊天室服务端。 三、下载源代码编译配置运行      本案例源代码请通AgileEAS.NET SOA中间件官方网站的最新下载中的栏目进行下载或者从SVN中获取最新版本的源代码: 下载或者SVN-OUT得到代码之后我们来看一下代码文建构: 一级目录 二级目录 说明 Code   程序源代码   Entities 实体(ORM)代码   BLL.Contracts 业务契约定义代码   BLL.Host 数据实现代码   Messages Socket通信消息定义   Services Socket服务定义   ChatRoom 客户段程序代码   UserManage 注册用户管理代码 db   用户数据库文件,Sqlite数据库 Documents   文档,用户模型文档 Publish   引用程序集及编译输出            然后用VS2010或者VS2012打开Code目录之中的ChatRoom解决方案进行编译,编译写成之后我们开始进行配置。      打开Publish目录之中的EAS.SOA.Server.exe.config进行服务端配置:      其中最重要的配置就是配置服务端sqlite数据库文件的路径,以及端口号,当然端口号是可以不用修改的,配置完成之后我们启动Publish目录之中的soaserver.start.bat指指理文件来启动聊天室服务端:      启动聊天室服务端的本质是启动AgileEAS.NET SOA 中间件SOA服务,在SOA服务之中我们集成了Socket插件服务系统,我们的聊天室做为一个SOA的Socket插件服务被进行加载和处理,需要说明的是如果你的运行环境是Win7或者Win2008操作系统,需要以管理员权限运行启动脚本: 接下来我们配置客户段,打开ChatingRoom.MainClient.exe.config文件,修改以下地方:     这样我们变完成了聊天室客户端的配置,运行ChatingRoom.MainClient.exe程序启动客户端的登录窗口:     点用户注册注册一个新用户:     注册成功之后使用这个用户登录聊天室:      到时为止,聊天室案例的配置过程到此完成! 四、源代码学习      要学习和研究本案例的源代码,请参考:      1.AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍      2.AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架-简单例子-实现简单的服务端客户端消息应答      在之后的文章之中我们将会对本案例源代码进行分析。 五、特别感谢      感谢团队成员计文忻同学为大家编写了本案例的第一版本,之后我在通信和界面上做了一些小的调整,也感谢王涛同学为本应用案例提供了Banner图片和一些界面美工建议,也感谢在此案例进行测试和提出建议的客户和小伙伴们。 六、联系我们      为了完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台了开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。      AgileEAS.NET平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。      我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 120661978(AgileEAS.NET 平台交流)/上限1000人 212867943(AgileEAS.NET研究)/上限500人 147168308(AgileEAS.NET应用)/上限500人 172060626(深度AgileEAS.NET平台)/上限500人 116773358(AgileEAS.NET 平台)/上限500人 125643764(AgileEAS.NET探讨)/上限500人 193486983(AgileEAS.NET 平台)/上限500人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。

Tags:

.NET | AgileEAS.NET | C# | SOA | Socket | 中间件 | 应答 | 框架 | 消息中间件 | 通信框架 | 聊天室

最新评论

声明

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

© Copyright 2011