一、前言
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分布式運行環境一文。
那么我們首先啟動運行“AppServer\Bin”目錄之中的“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。