1
利用
利用
AgileEAS.
AgileEAS.
NET
NET
开发
开发
DrugShop
DrugShop
入门手册
入门手册
敏捷软件工程实例室
2013 年 03 月 20 日
2
利用 AgileEAS 平台开发 DrugShop 入门手册
DrugShop 是利用 AgileEAS.NET 平台进行快速开发的一个经典案例,最早
有 H.O.T 完成,并将系列文章发布在博客园上,旨在给初次使用或者是想利用
AgileEAS.NET 平台进行快速开发者一个完整的示例。
现在 AgileEAS5.0 已经发布,平台中对基础功能进行了大量的修改和升级,
本文档将利用最新的 EAS 版本,针对 DrugShop 进行重构并对重点内容进行详
细说明。
基于 AgileEAS.NET5.0 开发的 DrugShop 下载地址:(补充)
一、AgileEAS.NET 介绍
AgileEAS.NET 应用开发平台,简称 EAS.NET,是基于敏捷并行开发思想以
及.NET 构件技术而开发的一个应用系统快速开发平台,用于帮助中小型软件企
业建立一条适合快速变化的开发团队,以达到节省开发成本、缩短开发时间,快
速适应市场变化的目的,AgileEAS.NET 应用开发平台包含基础类库、资源管理
平台、运行容器、开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供
了设计、实现、测试等开发过程的并行,基于 AgileEAS.NET 平台的应用系统的
各个业务功能子系统,在系统体系结构设计的过程中被设计成各个原子功能模块,
各个子功能模块按照业务功能组织成单独的程序集文件,各子系统开发完成后,
由 AgileEAS.NET 资源管理平台进行统一的集成部署。
最新 AgileEAS.NET 版本为 5.0,下载地址:(补充)
二、开发环境配置
下载完成的 DrugShop 代码组织结构如下:
图 1
1. 还原 AgileEAS.NET 所需数据库
新建一个名称为 DrugShop 的数据库,然后将 Data 文件夹下的备份文件还
原到刚才新建的 DrugShop 数据库中,本数据库里包含了 AgileEAS.NET 平台
所需要的表结构及 DrugShop 程序的表结构,下面对数据库表结构进行简单说
3
明:
Dbo.DS_打头的表结构为 DrugShop 所需
Dbo.EAS_打头的表结构为 EAS 平台权限控制、模块管理所需
Dbo.IM_打头的表结构为 EAS 自带的 IM 工具所需
Dbo.SOA_打头的表结构为(补充)
Dbo.WEB_打头的表结构为(补充)
Dbo.WF_打头的表结构为 EAS 工作流所需
2. 浏览生成的 DrugShop 可执行文件
打开 Bin\DotNet4.0 目录,这里是 AgileEAS.NET 平 台 所 需 程 序 集 及
DrugShop 生成的程序集目录。具体工具使用介绍如下图:
图 2
在打开 DrugShop.Main.exe 之前,开发者首先需要检查 DrugShop 的配置
文件--DrugShop.Main.exe.config 中的数据库连接字符串是否正确。
默认字符串为连接本机,采用 window 认证方式。
图 3
在确认连接字符串无误的情况下打开 DrugShop.Main.exe,这就是我们利
用 AgileEAS.NET 平台构建的 DrugShop 的可执行文件,用户可以通过用户名
0001 或者 0002,密码 sa 进入 DrugShop 主界面。
5
图 5
1. DrugShop.Entities 程序集分析
以 PIn.cs 为例,该实体对应了数据库中的表 DS_PIN,用来记录药品入库记
录。PIn.cs 的代码如下:
/// <summary>
/// 实体对象 PIn(采购入库)
/// </summary>
public partial class PIn: DataEntity<PIn>
{
}
此类通过修饰符 partial 描述,他的另一部分代码保存在 Generat 文件夹下,
文件名为 PIn.Generator.cs。
此类标记了 SerializableAttribute,说明此类可以被序列化,并且可以作为
参数在分布式环境下传递。TableAttribute 接受一个参数,用来对应数据库的
表名。PIn 类继承于 DataEntity<PIn>,此类也就拥有了 orm 的所有功能,开
发者可以对 PIn 的事例进行如下操作:pin.Insert(),pin.Update()等。
再来看数据库和实体是如何映射的,AgileEAS.NET 提供了通过 Attribute
标记的方式,相对于 NHibernate 等框架利用 XML 文件进行映射的方式,标记
Attribute 方式显得更为直观,极大的降低了代码维护复杂度。AgileEAS.NET
通过对一个属性进行标记 ColumnAttribute 映射数据库的一个字段。另外该映
射类还可以通过 EAS 提供的 ORM 设计器 EAS.OrmDesigner.exe 直接生产代
码,关于代码生成工具的使用开发者可以自行练习。
[Serializable()]
[Table("DS_PIN"),Index]
partial class PIn: DataEntity<PIn>
{
public PIn()
{
}