基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 配置文件

简介: AgileEAS.NET平台提供了独立的配置文件,主要涉及一般配置信息、IOC对象配置信息、SL服务配置信息、WinService插件配置信息: 系统配置文件重有如下配置项定义:                                                                  EAS.

         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

目录
相关文章
|
19天前
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
|
19天前
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
|
2月前
|
自然语言处理 物联网 图形学
.NET 技术凭借其独特的优势和特性,为开发者们提供了一种高效、可靠且富有创造力的开发体验
本文深入探讨了.NET技术的独特优势及其在多个领域的应用,包括企业级应用、Web应用、桌面应用、移动应用和游戏开发。通过强大的工具集、高效的代码管理、跨平台支持及稳定的性能,.NET为开发者提供了高效、可靠的开发体验,并面对技术更新和竞争压力,不断创新发展。
101 7
|
2月前
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
45 5
|
2月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
50 4
|
2月前
|
开发框架 .NET C#
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位。从企业应用到电子商务,再到移动开发,.NET 均展现出卓越性能,助力开发者提升效率与项目质量,推动行业持续发展。
40 4
|
2月前
|
机器学习/深度学习 人工智能 物联网
.NET 技术:引领未来开发潮流
.NET 技术以其跨平台兼容性、高效的开发体验、强大的性能表现和安全可靠的架构,成为引领未来开发潮流的重要力量。本文深入探讨了 .NET 的核心优势与特点,及其在企业级应用、移动开发、云计算、人工智能等领域的广泛应用,展示了其卓越的应用价值和未来发展前景。
70 5
|
2月前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
48 3
|
2月前
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
47 3
|
2月前
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
43 3