基於DotNet構件技術的企業級敏捷式軟體開發 (Agile Software Development)平台 – AgileEAS.NET平台開發指南 – 設定檔

來源:互聯網
上載者:User

         AgileEAS.NET平台提供了獨立的設定檔,主要涉及一般配置資訊、IOC對象配置資訊、SL服務配置資訊、WinService外掛程式配置資訊:

系統設定檔重有如下配置項定義:

  <configSections>

             <section name="EAS.Configurations" type="EAS.Configuration.ConfigHandler,EAS.Kernel" />

             <section name="EAS.WinServices" type="EAS.WinService.ConfigHandler,EAS.WinService.Kernel" />

             <section name="EAS.Objects" type="EAS.Objects.ConfigHandler,EAS.IOCContainer"/>

             <section name="EAS.Services" type="EAS.ServiceLocators.ServiceConfigHandler,EAS.ServiceLocator" />

  </configSections>

         EAS.Configurations:一般配置資訊

         EAS.WinServices:Win Services外掛程式配置資訊

         EAS.Objects:IOC容器物件配置資訊

         EAS.Services:服務發現與定位配置資訊

一般配置資訊

         一般配置資訊也可以稱為公用配置資訊定義,也就除其他專有配置資訊之外的資訊都可以寫在這樣,一般配置資訊的定義採用Key-Value的方法進行配置:

<EAS.Configurations>

         <ConfigurationItem name="DbConnectString" value=""/>

         <ConfigurationItem name="WorkstationUser" value="Administrator;james" />

         <ConfigurationItem name="LastUser" value="james" />

         <ConfigurationItem name="SmartLogin" value="true" />

         <ConfigurationItem name="Startup" value="" />

         <ConfigurationItem name="SystemStyle" value="DevStyle" />

         <ConfigurationItem name="NavigationStyle" value="TreeStyle" />

         <ConfigurationItem name="NavigationExpand" value="true" />

         <ConfigurationItem name="Desktop" value="Enabled" />

         <ConfigurationItem name="MultiInstance" value="Enabled" />

</EAS.Configurations>

         AgileEAS.NET平台提供了EAS.Configuration.Config類對一般配置資訊進行一股讀寫:

         public static string GetValue(string key)

         public static void SetValue(string key, string value)。

容器物件的配置

         IOC容器物件設定檔主要設定物件的定義、生存方法、生存周期資訊,以及對象在之的存依賴關係,其配置資訊如下:

<object name="MasterDbConnection" type="EAS.Data.Access.OleDbConnection"

assembly="EAS.Data" LifestyleType="Pooled:InitialSize = 1 | MaxSize = 10">

<property name="ConnectionString" type="string" value="..." />

</object>

<object name="OrmAccessor" assembly="EAS.Data"

type="EAS.Data.ORM.OrmAccessor" LifestyleType="Thread">

<property name="DbConnection" type="object" value="MasterDbConnection" />

</object>

<object name="CacheAccessor" assembly="EAS.Data"

type="EAS.Data.ORM.CacheAccessor" LifestyleType="Singleton">

</object>

<object name="MasterDataAccessor" assembly="EAS.Data"

type="EAS.Data.Access.OleDbAccessor" LifestyleType="Thread">

<property name="Connection" type="object" value="MasterDbConnection" />

</object>

<object name="MothodInvoker" assembly="EAS.Data"

type="EAS.Business.LocalMothodInvoker.LocalMothodInvoker"/>

         上面的設定檔定義了5個對象及其生命週期以及對象之間的關係,比如OrmAccessor對象的屬性DbConnection即為MasterDbConnection對象的一個執行個體。

         在IOC配置中,需求定義對象的類型資訊:程式集和類型,還需要定義對象的生存類型LifestyleType,目前在AgileEAS.NET平台中提供了如下的生存方式:

/// <summary>/// 枚舉LifestyleType 組件的生存方式,即組件以何種生存周期在容器中生存。/// </summary>public enum LifestyleType{    /// <summary>    /// Transient,組件在使用時建立、使用後銷毀。    /// </summary>    Transient = 0x00000000,    /// <summary>    /// Singleton,組件一旦自在,則在所有的客商端中共用。    /// </summary>    Singleton = 0x00000001,    /// <summary>    /// Thread,每一個用戶端線程擁有單獨的一個執行個體。    /// </summary>    Thread = 0x00000002,    /// <summary>    /// Pooled,組件池,初始時分配一定數量的組件,客戶請求時,分配一個空閑組件,使用者使用完後交由池中。    /// </summary>    Pooled = 0x00000003}

服務定位配置資訊

         服務定位與發現的配置資訊主要定義分布式技術服務的發現與定位配置,經如開發員定義了一個基於.NET Remoting技術的服務,用戶端如何去動態啟用這個服務,我們來看看服務寫位的設定檔:

<EAS.Services>

<Services>

         <Service name="EAS.DataAccessService.Service" service-type="DotNetRemoting"

component="tcp://localhost:8000/EAS.DataAccessService"/>

         <Service name="EAS.RMIService.Service" service-type="DotNetRemoting"

singleton="true" url="tcp://localhost:8000/EAS.RMIService"/>

         <Service name="EAS.Cached.Service" service-type="DotNetRemoting"

Singleton=" true" url="tcp://localhost:8000/EAS.Cached"/>

<Service name="FileTransService"

service-type="WebService" component="FileTransService" />

         <Service name="HelloWorldWebService" service-type="WebService"

Singleton="true" url="http://localhost/webservicetest/hello.asmx" />

</Services>

</EAS.Services>

         Services配置節中的內部可以根據具體情況進行設定,AgileEAS.NET平台的Service locator支援LocalComponent、WebService、DotNetRemoting三種類型的,LocalComponent的服務元件定義必須定義到IOC容器中的某個組件實現名稱如下:

         <Service name="HelloWorld" service-type="LocalComponent" component="HelloWorld" />

         WebService和DotNetRemoting的組件可以選擇定義到IOC容器中的某個組件:

         <Service name="FileTransService" service-type="WebService" component="FileTransService" />

         也可以直接由SL動態產生服務代理(用戶端):

         <Service name="EAS.Cached.Service" service-type="DotNetRemoting" Singleton=" true"

url="tcp://localhost:8000/EAS.Cached"/>

         <Service name="HelloWorldWebService" service-type="WebService" Singleton="true"

url="http://localhost/webservicetest/hello.asmx" />

Win服務組態檔

         AgileEAS.NET提供了基於外掛程式的Win Service開發,提供的設定檔如下:

<EAS.WinServices>

         <Config port ="8000"/>

<WinServices>

         <WinService name="EAS.Cached" key="EAS.Cached.Service"/>

         <WinService name="EAS.RMIService"

key="EAS.Distributed.Remoting.RMIServiceAddIn"/>

         <WinService name="EAS.DataAccessService"

key="EAS.Distributed.Remoting.DataAccessServiceAddIn"/>

</WinServices>

</EAS.WinServices>

         在port參數中設定管理員啟動並執行TCP連接埠,WinServices配置節中定義啟動並執行WinService 外掛程式:

         <WinService name="EAS.Cached" key="EAS.Cached.Service"/>

         這裡我們定義了一個快取服務,配置資訊中配置了服務的名稱為EAS.Cached他將在用戶端調用的時間用到:

         <Service name="EAS.Cached.Service" service-type="DotNetRemoting"

Singleton=" true" url="tcp://localhost:8000/EAS.Cached"/>

         Key屬性的值則指向IOC容器中的組件配置:

<object name="EAS.Cached.Service" assembly="EAS.Cached.ServiceAddIn"

type="EAS.Cached.ServiceAddIn" LifestyleType="Singleton">

<property name="MaxMemory" type="int" value="512" />

</object>

 

連結

     AgileEAS.NET平台開發指南-系列目錄

     AgileEAS.NET應用開發平台介紹-文章索引

     AgileEAS.NET官方網站

     敏捷軟體工程實驗室

 

QQ群:116773358

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.