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 | 角色 | 设计模式 | 通信框架 | 框架

犀利的报表系统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 | 中间件 | 云计算 | 分布式 | 框架 | 报表 | 消息中间件

如何使用DotNetBar制作漂亮的WinFrom界面,同步学习如何自定义AgileEAS.NET SOA中间件平台WinClient主界面

by 魏琼东 2013.12.17 18:11
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。      AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、关于WinClient的外挂资源体系介绍      最初版本的AgileEAS.NET SOA中间件平台的运行容器/外壳是没有界面替换体系,最初只是提供了替换关键部分的图片、文字的功能,随着AgileEAS.NET SOA中间件被众多的客户应用到各行各业之后,我们从客户的应用反馈之中进行了大量的重构,其中运行容器也越来越开放,从最初令开放替换部分图片到慢慢开放可以自由修改其他的导航栏、Banner、状态栏、菜单、登录界面、关于界面,发生了很大的变化,同步我们也提供了Desktop、MDI、Dockable等多种界面风格,可以说客户有更我的选择了。      随着更多软件企业或组织加入应用AgileEAS.NET SOA中间件行业,有许多的客户已经不能满足于在这几种风格之中进行选择,希望能给自己最大的自定义空间和范围,提供了更换主界面的需求,我们积极的响应这种需求,并且提出了相关的解决方案,并且在2012年AgileEAS.NET SOA 5.0版本的时间向大家提供。      主界面替换被某一些我们服务于的客户所使用,但是对于广大的关心AgileEAS.NET SOA中间件的朋友来说,并不能得到我们细致并且一对一的服务,因为我们还没有变此部分内容给大家做过介绍和在公开的案例之中提供,所以对于社区之中的很多朋友来说,还能灵活的应用本部分内容。      下图是一个典型的AgileEAS.NET SOA中间件平台WinClient容器的主界面:      其中包含以下组成部分:      主菜单:界面最上部的主菜单,系统、视图和帮助。      导航菜单:通过菜单之中的菜单项可以打开指点的功能模块。      导航栏:同系统导航菜单、以树形或者其他形式展示。      状态栏:显示系统的一些状态信息,如操作消息、当前登录信息等。      内容区:除以上项目外的界面空白区域为业务工作区,即模块插件的工作区域,新打开的模块在经区域显示和工作。      启始页:特指工作区之中第一个打开的模块,当系统登录完成之后会自动打开一个模块,此模块称为起始页模块。 三、IResource接口      AgileEAS.NET SOA 中间件平台为了应用对运行容器的各个部分进行自定义和扩展,提供了一个资源接口IResource: 1: using System; 2:  3: namespace EAS.Explorer 4: { 5: /// <summary> 6: /// 运行容器的外壳资源。 7: /// </summary> 8: public interface IResource 9: { 10: /// <summary> 11: /// 获取应用系统的图标,用于替换主界面的图标。 12: /// </summary> 13: System.Drawing.Icon GetMainIcon(); 14:  15: /// <summary> 16: /// 获取默认的模块图标,用于简约、经典风格的Tab页图标显示,也用于Desktop模式的桌面图标显示。 17: /// </summary> 18: System.Drawing.Image GetModuleIcon(); 19:  20: /// <summary> 21: /// 获取桌面背景图像,用于Desktop模式的桌面模块。 22: /// </summary> 23: System.Drawing.Image GetDesktopImage(); 24:  25: /// <summary> 26: /// 获取应用系统的导航控件,用于替换平台的导航控件。 27: /// </summary> 28: /// <returns>WinForm/WPF用户控件。</returns> 29: object GetNavigationControl(); 30:  31: /// <summary> 32: /// 获取应用系统的Banner控件,用于替换平台的Banner条。 33: /// </summary> 34: /// <returns>WinForm/WPF用户控件。</returns> 35: object GetBannerControl(); 36:  37: /// <summary> 38: /// 获取应用系统的Bottom控件,用于替换平台的状态栏。 39: /// </summary> 40: /// <returns>WinForm/WPF用户控件。</returns> 41: object GetBottomControl(); 42:  43: /// <summary> 44: /// 获取WinForm/WPF容器的关于对话框,用于替换平台的关于对话框。 45: /// </summary> 46: /// <returns>WinForm/WPF窗体。</returns> 47: object GetAboutForm(); 48:  49: /// <summary> 50: /// 获取WinForm/WPF容器的主界面,用于替换平台的主界面。 51: /// </summary> 52: /// <returns>WinForm/WPF窗体。</returns> 53: object GetMainShell(); 54:  55: /// <summary> 56: /// 获取WinForm/WPF/Silverlight容器的登录对话框,用于替换平台的登录对话框。 57: /// </summary> 58: /// <returns>WinForm/WPF/Silverlight窗体。</returns> 59: ILoginForm GetLoginForm(); 60:  61: /// <summary> 62: /// 获取WinForm/WPF容器的起始页/初始模块,用于替换平台的起始页。 63: /// </summary> 64: /// <returns>WinForm/WPF用户控件。</returns> 65: object GetStartModule(); 66:  67: /// <summary> 68: /// 获取系统的名称,显示在运行环境的导航栏。 69: /// </summary> 70: /// <returns>应用系统名称。</returns> 71: string GetApplicationName(); 72:  73: /// <summary> 74: /// 获取系统的标题,显示在运行环境的主窗口之上。 75: /// </summary> 76: /// <returns>应用系统名称。</returns> 77: string GetApplicationTitle(); 78:  79: /// <summary> 80: /// 是否显示主菜单。 81: /// </summary> 82: bool DisplayMainMenu 83: { 84: get; 85: } 86:  87: /// <summary> 88: /// 是否显示导航工具条。 89: /// </summary> 90: bool DisplayNavigationTool 91: { 92: get; 93: } 94: } 95: }      实现AgileEAS.NET SOA 平台的资源替换即是实现IResource接口的过程,在我们DrugShop、SmartERP案例之中都有对应的实现项目DrugShop.Res和SmartERP.Res。      当然,光实现IResource还不购,还需要修改系统的配置文件,以便让资源生效: 1: <;!--资源--> 2: <object name="EAS.Explorer.Resource" assembly="DrugShop.Res" type="DrugShop.Res.Resources" LifestyleType="Singleton"/>      需要注意的是在EAS.Explorer.dll程序集之中还定义了以下两个接口,INavigation接口: 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: using System.Text.RegularExpressions; 6: 7: namespace EAS.Explorer 8: { 9: /// <;summary> 10: /// 导航控件接口。 11: /// <;/summary> 12: public interface INavigation 13: { 14: /// <;summary> 15: /// 初始化导航。 16: /// <;/summary> 17: /// <;param name="m_GroupList">导航清单。</param> 18: /// <;param name="m_ModuleList">模块清单。</param> 19: void Initialize(IList<;INavigateGroup> m_GroupList, IList<INavigateModule> m_ModuleList); 20: } 21: }      ILoginForm接口: 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5:  6: namespace EAS.Explorer 7: { 8: /// <;summary> 9: /// 定义登记对话框接口,用于实现自定义登录。 10: /// <;/summary> 11: public interface ILoginForm 12: { 13: /// <;summary> 14: /// 是否已经通过登录验证。 15: /// <;/summary> 16: bool Passed { get; } 17: } 18: }      自定义的导航控件必须实现INavigation接口,以便于平台实现导航的初始化,方法Initialize由平台调用,传入当前系统登录人员所具有权限的模块清单及相关的导航清单。      自定我的登录界面必须实现ILoginForm,以便于系统判定登录界面是否完成了登录验证。 四、IMainShell接口和自定义主界面      第三节在介绍IResource接口的时候我们会发现其他有一个GetMainShell()方法,其用于获取资源实现之中的主界面定义,系统主界面必须是一个Form并且要实现IMainShell接口: 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5:  6: namespace EAS.Explorer 7: { 8: /// <;summary> 9: /// 定义主界面接口,用于实现自定义主界面。 10: /// <;/summary> 11: public interface IMainShell 12: { 13: /// <;summary> 14: /// 初始化主界面,根据平台传入的模块清单和相关的导航分组初始化主界面。 15: /// <;/summary> 16: /// <;param name="m_GroupList">导航清单。</param> 17: /// <;param name="m_ModuleList">模块清单。</param> 18: void InitializeShell(IList<;INavigateGroup> m_GroupList, IList<INavigateModule> m_ModuleList); 19:  20: /// <;summary> 21: /// 加载/打开指定模块,响应系统的模块打开操作。 22: /// <;/summary> 23: /// <;param name="module">模块实例。</param> 24: void OpenModule(object module); 25: 26: /// <summary> 27: /// 关闭当前模块(活动的模块)。 28: /// <;/summary> 29: void CloseModule(); 30: 31: /// <summary> 32: /// 关闭指定模块。 33: /// <;/summary> 34: /// <;param name="module">模块实例。</param> 35: void CloseModule(object module); 36: 37: /// <summary> 38: /// 切换导航,展开、隐藏导航,主界面没有导航的隐藏、展开需求可以不处理。 39: /// <;/summary> 40: void SwitchNavigation(); 41: 42: /// <summary> 43: /// 当前活动插件/模块。 44: /// <;/summary> 45: object ActiveAddIn 46: { 47: get; 48: } 49:  50: /// <;summary> 51: /// 已打开的插件/模块集合。 52: /// <;/summary> 53: List<;object> AddIns 54: { 55: get; 56: } 57: } 58: }      其中InitializeShell方法:用于平台传入当前系统登录人员所具有权限的模块清单及相关的导航清单,由自定义界面实现界面的初始化。      OpenModule方法:用于实现对模块的打开,平台传入要打开的模块,由主界面进行处理,实现主界面对模块的动态加载。      CloseModule方法:用于关闭已经打开的模块,并对界面进行清理。      SwitchNavigation方法:切换导航,展开、隐藏导航,主界面没有导航的隐藏、展开需求可以不处理。      ActiveAddIn属性:向平台返回当前的活动模块。      AddIns属性:向平台返回已加载的模块清单。 四、自定义界面实例      近期 有朋友建议使用devcomponents或者DotNetBar为大家演示一下如何自定义平台的主体界面,参考了网有对devcomponents和DotNetBar相关的资料之后我们选择了较为轻量级的DotNetBar为大家演示如何替换系统的主界面。      我们使用DotNetBar所提供的一些控件实现了以下三种风格的主体界面:      第一种是Win7/Ribbon风格的主界面RibbonShell,如下图所示:      其对应代码为DrugShop案例之中的DrugShop.Res项目之中的RibbonShell.cs程序文件。      第二种为类似Visual Studio界面风格的DockableShell,其效果如下:      其对应代码为DrugShop案例之中的DrugShop.Res项目之中的DockableShell.cs程序文件。      第三种为不包含导航栏的简单MDI界面风格的TabShell,其效果如下:      其对应代码为DrugShop案例之中的DrugShop.Res项目之中的TabShell.cs程序文件。 五、关于代码      以上介绍了三种风格的自定义主界面的例子,例子不多,也不复杂,或许也不能满足所有人的美观度需求和功能需求,其目的在于抛砖引用,希望借此文让更多的开发者加入到我们的行列之中来,做出更加美观大方的界面。      关于以上三种风格自定义界面代码,我们已经合并到DrugShop案例和SmartEPR案例之中,请大家在AgileEAS.NET SOA中间件官方网站的最新下载栏目进行下载。      在启动自定义界面的过程之中切记要修改资源项目之中IResource的实现代码之中的GetMainShell方法代码: 1: public object GetMainShell() 2: { 3: return new RibbonShell(); //Ribbon风格自定义界面。 4: //return new DockableShell(); //Dockable风格自定义界面。 5: //return new TabShell(); //TabMdi风格自定义界面。 6: //return null; //使用AgileEAS.NET SOA平台自带界面。 7: }      本文所使用的是DotNetBar115版本,有关于DotNetBar115请通过http://112.74.66.105/downloads/DotNetBar115.rar下载。 六、联系我们      为完善、改进和推广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 | ActiveX | ESB | ORM | SOA | SAAS | 中间件 | 框架 | 消息中间件 | 通信框架

基于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 | 分布式 | 框架 | 消息中间件 | 中间件

最新评论

声明

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

© Copyright 2011