一、前言
AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。
AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。
AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。
二、关于Silverlight运行容器
在2011年秋天的的时候,曾经在Silverlight企业应用开发实践-AgileEAS.NET平台5.0 Silverlight支撑预览一文之中向大家介绍过AgileEAS.NET SOA中间件平台的Silverlight运行容器,其主要目的是当时有很多朋友希望我们能支撑Silverlight的应用开发,我们就基于我们AgileEAS.NET SOA中间件平台的“敏捷并行开发思想事件”、结合“插件开发&整合”思路、AgileEAS.NET SOA中间件平台的数据访问并结合AgleEAS.NET SOA中件的SOA分布式通信技术。
目前AgileEAS.NET SOA中间件Silverlight运行容器主要应用于医疗、物联网、ERP、CRM之类人企业内部应用之中。
AgileEAS.NET SOA 中间件平台Silverlight运行容器为开发人员带来如下好处:
1.)开发Silverlight应用同开发WinForm/WPF/WebForm/WebMVC应用一样可以使用AgileEAS.NET SOA提供的ORM和Linq技术。
2.)Silverlight应用同其他WinForm/WPF/WebForm/WebMVC应用使用同样的分布式服务端平台。
3.)Silverlight应用同其他WinForm/WPF/WebForm/WebMVC应用使用同样的服务端业务代码。
4.)为应用开发人员提供了类似在Silverlight客户段直接访问远程数据库的功能,提供了类似DataTable的数据结构Matrix。
5.)AgileEAS.NET SOA中间件平台已经实现了与WinForm/WPF运行环境同样的资源管理平台的系列功能(模块管理、权限、用户、角色)以及工作流系统绝大多数功能。
6.)AgileEAS.NET SOA中间件平台Silverlight运行容器源代码是以开源形式向大家提供的,大家可以在此基础上做一些在学大的调整。
三、学习Silverlight运行容器代码结构并进行编译
ActiveXForm运行容器的运行网站由在”Silverlight.src”目录之中以源代码形式向大家提供,我们用VS2010或者VS2012打开”Silverlight.src”目录之中的”AgileEAS.NET.Silverlight”解决方案:
”AgileEAS.NET.Silverlight”解决方案之中共有九个项目:
EAS.BPM.SilverlightUI:为BPM工作流系统的界面元素文件,AgileEAS.NET SOA中间件的Silverlight运行环境的工作流支持管理功能功能都由这个项目提供。
EAS.Demo.Res:AgileEAS.NET SOA中间件的Silverlight运行环境的客户端演示资源插件,即用于替换AgileEAS.NET SOA中间件的Silverlight运行环境主界面,登录界面的界面定义代码的一个示例。
EAS.Explorer:AgileEAS.NET SOA中间件的Silverlight运行环境的一些接口定义,主要是资源替换接口的定义。
EAS.Explorer.Entities:AgileEAS.NET SOA中间件的Silverlight运行环境管理功能的数据实体定义,比如账号、角色、模块、报表等对象的定义。
EAS.Explorer.BLL.Contracts:AgileEAS.NET SOA中间件的Silverlight运行环境管理功能的服务契约定义,因为Silverlight是分布式运行的,即业务的实现在SOA服务之中运行,所以客户端只有业务契约,没有实现实体。
EAS.SilverlightClient:AgileEAS.NET SOA中间件的Silverlight运行环境主要程序,在这里面实现了一个可替换的插件应用环境。
EAS.SilverlightClient.AddIn:AgileEAS.NET SOA中间件的Silverlight运行环境管理功能的实现程序,主要实现了模块管理、角色账号、权限、组织机构等等。
EAS.SilverlightClient.AdminKit:辅助程序,本身没有多大意思,其功能是把EAS.SilverlightClient.AddIn和EAS.BPM.SilverlightUI打成一个EAS.SilverlightClient.AdminKit.xap包。
EAS.SilverlightClient.Web:AgileEAS.NET SOA中间件平台Silverlight运行容器的入口网站,即功能承载网站,包括一个首页及Silverlight XAP包的部署目录及客户端运行时所需要的配置文件和XAP包的自动升级配置。
了解了这九个项目的功能之后我们开始编译整个解决方案,保证所有项目编译通过:
了解了这八个项目的功能之后我们开始编译整个解决方案,保证所有项目编译通过:
四、配置并运行Silverlight运行容器
Silverlight应用是不直接连接数据库进行处理的,所以配置ActiveXForm运行容器/环境必须有一个先决条件,那就是Silverlight必须运行的AgileEAS.NET SOA 中间件的分布式环境下,即我们的SOA服务端必须运行,关于如何做这此工作,请参考前面的AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境一文。
那么我们首先启动运行“AppServerBin”目录之中的“soaserver.start.bat”脚本,运行SOA服务:
接下来我们开始配置Silverlight运行容器的一些参数、以及Silverlight客户端XAP文件的升级配置,这些配置信息记录在项目”EAS.SilverlightClient.Web”的“ClientBin”目录之中,文件名称为“slconfig.xml”和“slUpdate.xml”。
其中“slconfig.xml”为Silverlight应用的系统配置文件,其内容如下:
1: <?xml version="1.0" encoding="utf-8"?>
2: <eas>
3: <configurations>
4: <item name="Key" value="Value" />
5: <!--是否调试状态。-->
6: <item name="Debug" value="false" />
7: <!--调试程序集。-->
8: <item name="Assembly" value="EAS.SilverlightClient.AddIn" />
9: <!--外挂资源包。-->
10: <!--<item name="EAS.Explorer.Resource" value="EAS.Explorer.Res.xap,EAS.Explorer.Res.dll,EAS.Explorer.Res.Resources" />-->
11: </configurations>
12: <objects>
13: <!--分布式通信组件。-->
14: <object name="ServiceBridger" assembly="EAS.MicroKernel" type="EAS.Distributed.ServiceBridger" LifestyleType="Thread" >
15: <property name="ServiceUrl" type="string" value="http://localhost:6608/eas/services/EAS.RIAService" />
16: </object>
17: <object name="DataAccessor" assembly="EAS.Data" type="EAS.Data.Access.DataAccessor" LifestyleType="Thread">
18: <property name="ServiceBridger" type="object" value="ServiceBridger"/>
19: </object>
20: <object name="OrmAccessor" assembly="EAS.Data" type="EAS.Data.ORM.OrmAccessor" LifestyleType="Thread">
21: <property name="ServiceBridger" type="object" value="ServiceBridger"/>
22: </object>
23: </objects>
24: </eas>
其中参数Debug表示系统是否为调试模式,即加载某一个Silverlight程序集并自动加载其中的插件进行调试运行,如果这个值为True,则系统会自动加载参数Assembly所指向的程序集,并加载其中的插件到系统导航之中,并跳过系统对登录账号的对所加载模块的权限检查,直接运行,如果这个参数为False,则Assembly参数无效,系统按照当前登录账号的权限加载导航,运行时也运行模块权限检测,一版情况下在开发过程之中我们都采用调试模式,这样可以省去安装配置插件的过程,而在生产过程,我们则使用非调试模式。
参数EAS.Explorer.Resource为外挂界面资源的配置,类似于WinClient的配置,我们不要修改他。
对像ServiceBridger的属性ServiceUrl配置了远程RIA服务的地址,即SOA服务实现之中的RIA服务的地址:
1: <object name="ServiceBridger" assembly="EAS.MicroKernel" type="EAS.Distributed.ServiceBridger" LifestyleType="Thread" >
2: <property name="ServiceUrl" type="string" value="http://localhost:6608/eas/services/EAS.RIAService" />
3: </object>
一搬情况下,我们只需要修改IP地址或者域名即可,后面的不要做修改。
接下来我们打开升级配置“slUpdate.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升级配置文件</Name>
5: <Description>用于AgileEAS.NET平台SmartClient/ActiveX运行容器模块升级之用</Description>
6: <StartEx />
7: <Time>2013-10-16T16:13:19.7125705+08:00</Time>
8: <Files>
9: <SmartFile>
10: <FileName>EAS.SilverlightClient.AdminKit.xap</FileName>
11: <Version>1.1.0.0</Version>
12: <Time>2013-10-16T09:54:19.7125705+08:00</Time>
13: </SmartFile>
14: <SmartFile>
15: <FileName>WF.Demo.SilverlightUI.xap</FileName>
16: <Version>1.1.0.0</Version>
17: <Time>2013-10-16T09:54:19.7125705+08:00</Time>
18: </SmartFile>
19: </Files>
20: </SmartConfig>
这个配置文件结构等同于前面的AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境一文之中“EAS.SmartUpdateConfig.exe”工作所生成的文件,只不过,此处手工配置,而不是工具生成,我们需要把下载到客户端Silverlight环境之中的文件(主要是一些XAP包)以SmartFile配置信息形式记录在这个配置文件之中,需要多次注意的是,客户端会依据这个文件的最后时间进行更新。
OK,Silverlight环境的配置到这就可以了,接下来我们运行AgileEAS.NET SOA 中间件Silverlight运行容器看看。
按F5运行”EAS.SilverlightClient.Web”项目,打开浏览器:
输入用户名:Administrator,密码:sa然后点击登录,系统会有如下有“是否增加可用存储”的提示:
因为AgileEAS.NET SOA 中间件设置为支持Silverlight的本地存储文件,以缓存XAP包和某些业务数据,我们选择点击“是”,然后重新输入密码进行登录,将会打开系统主界面:
我们选择某个功能进行操作:
OK,Silverlight运行容器搞定。
五、联系我们
为了完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台了开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。
AgileEAS.NET平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。
技术团队成员都是合作多年的老朋友,因为这个平台是免费的,我们的营运开支主要靠为客户提供咨询服务所得,我们都是因为程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友和一直支持我们工作的客户、朋友。
AgileEAS.NET网站:http://www.agileeas.net
官方博客:http://eastjade.cnblogs.com
github:https://github.com/agilelab/eas
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。