一、前言
AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。
AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。
AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。
二、下载AgileEAS.NET SOA 中间件平台5.2 版本
通过AgileEAS.NET SOA 中间件平台官方网站最新下载页面进行下载:
可以选择通过下载打好的RAR压缩包,也可以选择通过SVN进行下载,一版情况下我们对AgileEAS.NET SOA 中间件平台进行改动和修正之后都会把最新的上传到SVN传大家下载,RAR包也会及时的重新打包,但是有是可以因为某些原因没有及时对RAR压缩包进行更新,所以最新的还是在SVN上,如果有条件的情况尽量通过SVN更新最新版本。
下载完成平台之后,有关于发布包之中的目录结构及程序集介绍请参考AgileEAS.NET SOA 中间件平台 5.2 发布说明一文。
三、初始化数据库并直接方式运行WinClient运行容器
运行bin\dotnet目录之中的EAS.DbInitializer.exe程序,即AgileEAS.NET SOA中间件数据库初始化工具,数据库初始化工具会帮助你完成AgileEAS.NET SOA中间件平台运行所必须的表结构及数据:
运行界面如下:
关于选择何种数据库请根据你的喜欢和你的擅长,假设我们选择SQL Server(2005/2008),然后进行下一步:
我们选择创建一个新库,在新库上创建AgileEAS.NET SOA 中间件的运行环境:
我们填写数据库名称,然后点“开始创建数据库”,完成后会有如下提示:
点确定后返回到如下界面:
我们点击完成之后开始AgileEAS.NET SOA中间件平台的数据库初始化工作:
数据库初始化工作包括创建数据库结构及建立初始化数据,初始化完成后会有完成提示(上图)。
如果选中了“完成后启动AgileEAS.NET SOA平台WinClient运行容器”,则会在初始化数据完成之后,我们点击确定之后启动AgileEAS.NET SOA中间件平台WinClient运行容器并以刚初始化完毕的数据库为基础进行运行,如下登录界面:
界面Administrator(管理员)初始密码:sa进入AgileEAS.NET SOA 中间件平台WinClient运行容器:
至此,AgileEAS.NET SOA 中间件平台的数据库初始化及直连数据库环境配置完成。
四、直连数据库的配置文件介绍
AgileEAS.NET SOA中间件平台的系统配置文档,其核心是AgileEAS.NET SOA中间件平台IOC框架的配置文件,其中配置了运行环境所依赖的数据库连接、数据访问、ORM数据存取等相关的组件的动态配置,以下为本例直接数据库的配置文件内容:
1: <?xml version="1.0" encoding="utf-8"?>
2: <configuration>
3: <configSections>
4: <section name="eas" type="EAS.ConfigHandler,EAS.MicroKernel" />
5: </configSections>
6: <startup useLegacyV2RuntimeActivationPolicy="true">
7: <supportedRuntime version="v4.0"/>
8: </startup>
9: <eas>
10: <configurations>
11: <item name="Key" value="Value" />
12: </configurations>
13: <objects>
14: <object name="DbProvider" assembly="EAS.Data" type="EAS.Data.Access.SqlClientDbProvider" LifestyleType="Thread">
15: <property name="ConnectionString" type="string" value="Data Source=.;Initial Catalog=eas_demo;User ID=sa;Password=sa1q2w3e4r;Connect Timeout=0" />
16: </object>
17: <object name="DataAccessor" assembly="EAS.Data" type="EAS.Data.Access.DataAccessor" LifestyleType="Thread">
18: <property name="DbProvider" type="object" value="DbProvider"/>
19: <property name="Language" type="object" value="TSqlLanguage"/>
20: </object>
21: <object name="OrmAccessor" assembly="EAS.Data" type="EAS.Data.ORM.OrmAccessor" LifestyleType="Thread">
22: <property name="DataAccessor" type="object" value="DataAccessor"/>
23: </object>
24: <!--查询语言-->
25: <object name="TSqlLanguage" assembly="EAS.Data" type="EAS.Data.Linq.TSqlLanguage" LifestyleType="Thread"/>
26: <!--服务桥-->
27: <object name="ServiceBridger" assembly="EAS.MicroKernel" type="EAS.Services.DirectServiceBridger" LifestyleType="Singleton" />
28: <!--日志管理-->
29: <object name="Logger" assembly="EAS.MicroKernel" type="EAS.Loggers.TextLogger" LifestyleType="Singleton" />
30: <!--资源-->
31: <!--<object name="EAS.Explorer.Resource" assembly="EAS.Explorer.Res" type="EAS.Explorer.Res.Resources" LifestyleType="Singleton" />-->
32: </objects>
33: </eas>
34: </configuration>
35:
其中eas/configurations中配置的内容供EAS.Configuration.Config对象进行读取的一些基本配置,供开发人员在处理系统的一些配置参数时候,在AgileEAS.NET SOA 平台内部没有使用。
其中eas/objects中配置的内容供EAS.Objects.ComponentConfig对象进行读取的IOC框架的对象配置信息,因为AgileEAS.NET SOA中间件平台在设计时支持多种数据库系统以及连接、分布式结构,所以系统的主体结果是不会变的,当换不同的数据的时候,只需要改变一下IOC之中的数据库连接对象的配置信息就能随便的切换,同样,系统在进行直连与分布式切换的时候,只需要通过修改配置文件就可以达到这样的目录。
本例的配置文件之中,以下配置内容,定义了系统使用的数据库连接对象为EAS.Data.Access.SqlClientDbProvider,即为SQLServer的连接:
1: <object name="DbProvider" assembly="EAS.Data" type="EAS.Data.Access.SqlClientDbProvider" LifestyleType="Thread">
2: <property name="ConnectionString" type="string" value="Data Source=.;Initial Catalog=eas_demo;User ID=sa;Password=sa1q2w3e4r;Connect Timeout=0" />
3: </object>
如需要切换其数据库我们只需要改变对象“DbProvider”的类库信息及修改数据库的连接字符串描述,比如做如下修改:
1: <object name="DbProvider" assembly="EAS.Data.Provider" type="EAS.Data.Access.SqliteProvider" LifestyleType="Thread">
2: <property name="ConnectionString" type="string" value="Data Source=..\db\Chat.db;" />
3: </object>
就变成了基于Sqlite数据库的定义了,当然了,改变数据库光改编“DbProvider”的定义还不够,还需要改变一下“DataAccessor”对象的属性“Language”定义,即需要把以下配置内容:
1: <object name="DataAccessor" assembly="EAS.Data" type="EAS.Data.Access.DataAccessor" LifestyleType="Thread">
2: <property name="DbProvider" type="object" value="DbProvider"/>
3: <property name="Language" type="object" value="TSqlLanguage"/>
4: </object>
5: <!--查询语言-->
6: <object name="TSqlLanguage" assembly="EAS.Data" type="EAS.Data.Linq.TSqlLanguage" LifestyleType="Thread"/>
改变为:
1: <object name="DataAccessor" assembly="EAS.Data" type="EAS.Data.Access.DataAccessor" LifestyleType="Thread">
2: <property name="DbProvider" type="object" value="DbProvider"/>
3: <property name="Language" type="object" value="SqliteLanguage"/>
4: </object>
5: <!--Linq查询语言-->
6: <object name="SqliteLanguage" assembly="EAS.Data.Provider" type="EAS.Data.Linq.SqliteLanguage" LifestyleType="Thread"/>
这样我们就把基于SQLServer的数据环境改变为基于Sqlite数据库的数据环境了。
另外一个很重要的配置是系统是工做于数据库直联还是工作于分布式,其决定是由“ServiceBridger”对象所决定,直练环境使用如下配置信息:
1: <object name="ServiceBridger" assembly="EAS.MicroKernel" type="EAS.Services.DirectServiceBridger" LifestyleType="Singleton" />
分布式环使用如下配置:
1: <object name="ServiceBridger" assembly="EAS.Distributed" type="EAS.Distributed.ServiceBridger" LifestyleType="Singleton"/>
当然了,变不是只改变这一个对象,改变为分布式是还需要改变“DataAccessor”、“OrmAccessor”对象的定义,在些就不做一一界面,愿意的朋友请使用AgileEAS.NET SOA中间件平台的配置文件定义工具(EAS.Configure.exe)多试试。
五、联系我们
为了完善、改进和推广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。