在前面的章节中,我们说明了如何使用AgileEAS.NET敏捷开发平台俩开发药店系统,但是我们没有从总体上去说明AgileEAS.NET的一些功能,我们都是在细节上讲述了
一些该平台的相关特性,我们在药店系统的开发过程中,只是包含了该平台的大部分功能,还有一些功能,并没有使用到,可能我们后续会继续讲述这些功能。本文就将之前
开发的药店系统,来进行总结和综述吧,之前放出的文章中的配套文档相对来说,还有一些内容还需要完善,不过大体上已经很详尽了,本来想把概要设计文档也放出的,但
是我本机没有特别好的UML建模工具,所以就搁浅了,对大家说抱歉了。下面我们就来总结药店系统开发过程中的心得和体会。
1、AgileEAS.NET解决了药店系统开发中的哪些问题。
2、药店系统中用到了AgileEAS.NET平台中的哪些技术。
3、并且分析这些技术在其他领域的应用。
我们在药店中遇到的问题,前面也有具体的文档有分析过,平台提供的功能也是比较强大,主要的功能图如下:
从上图中我们也可以发现,我们的非功能性方面的需求,例如药店系统,需要支持分布式访问支持等。包括一些部署等方面的要求等等。
1、打印问题:
我们的可选择:
水晶报表:微软提供的报表解决方案,功能强大,我认为使用该报表可以做出来一切报表,唯一缺点,需要客户机安装,否则无法使用。
FastReport:非常强大的报表。支持可拖拽,非免费,收费。有一个开源版本,但是好像不是.NET的。
AgileEAS.NET平台报表:提供强大的可视化设计器,并且也支持复杂的交叉报表的设计,并且是免费的,永久的,并且是开源的报表。并且提供了二种方案的支持,
一种是基于平台的报表设计器,一种是独立的设计器。
2、分布式访问支持
我们的选择:
自己开发:基于WCF或直接使用Remoting,WebService来进行服务端与客户端之间的通信。
市面上的一些免费的并且可商业应用免费的分布式访问中间件:
AgileEAS.NET分布式访问中间件:提供了普通模式与分布式访问模式的热切换,只需要通过配置文件来简单配置即可。具体的内容可以参考系列文章中的分布式访问配
置与部署。具体文章《AgileEAS.NET平台开发实例-智能升级及服务器部署》。
3、ORM问题:
我们的选择:
开源的免费的ORM组件:
NHibernate:NHibernate是把Java的Hibernate核心部分移植到Microsoft .NET Framework上。它是一个对象关系映射工具,其目标是把.NET对象持久化到关系数据库。
Spring.NET:Spring.NET框架包括很多功能,Spring.NET 1.0包括完整的IoC容器和AOP类库。1.1版加入Web、ORM和数据模块。
Castle:Castle是由Hamilton Verissimo撰写的,从2003年就开始开发,并在2006年11月发布了1.0 RC2 。2007年09发布了1.0 RC3版本。Castle是个轻量级(Lightweight)容器(Container)、实现 IoC(Inversion of Control)概念,是一个全方位的应用程序(Application)框架(Framework),并提供相关的一系列工具
IBatis:iBATIS 是一个可以设计和实现更好的 Java/.NET 应用程序持久化层的框架。iBATIS 把对象和存储过程或者使用 XML 描述符的 SQL 语句进行了关联。
AgileEAS.NET平台提供的ORM:
支持二种模式,一种是ActiveRecord模式,一种是表模式+ActiveRecord相结合的形式,总体来说,都是提供一个ORM访问的功能支持。并且基于ORM组件,提供了
强大的数据库模型设计器,通过该设计器来提供解决方案的生成及数据库的相关双向工程的相关工作。
4、资源管理器
目前市面上提供的这样的组件的生命周期管理的资源管理平台,开源的不多,当然就像OSGI所提供的功能已经非常强大,可以看作是这样的资源管理平台,通过定义插
件契约,不同的模块都能被这样的平台识别并提供相关的基础服务。
相关的OSGI的平台也是例子比较多,这里就不详述了。
AgileEAS.NET提供了平台+插件的开发思想,提供这样的插件的资源管理平台,管理插件的资源的分配与回收,并且管理插件的生命周期。
关于资源管理平台的具体的插件契约的说明及资源管理平台的使用,请参考如下药店中的相关文章的介绍。
《AgileEAS.NET平台开发实例-药店系统-准备开发环境(中)》
5、权限控制系统:
关于权限这样,大家的经验都是比较多了,如果深入剖析的话,可能就是无法剖析完全,每个人对权限的设计,都有几个思路,目前的比较流行的权限控制系统,微
软提供的RBAC标准的权限模型,关于具体的介绍,网上搜索,资料也是非常的多,思路也是非常的清晰。
大家一般在开发一个应用系统时,可能权限控制的问题,也会被弄得焦头烂额的时候,这个时候,需要权限系统的控制,那么我们如果自己开发一些基础的权限功
能,也是需要花费非常大的精力和时间。
平台本身提供了简单的权限控制模块,关于权限的分配与控制的原理解析,AgileEAS.NET平台权限管理=Windows2000的权限控制思路,通过ACL来控制模块的相
关权限。具体的权限配置与分配,请参考如下文章:《AgileEAS.NET平台开发实例-药店系统-功能发布[权限配置][下]》
6、智能客户端:
关于智能客户端这块,我想大家对于C/S这样的架构的思路,基本上都是差不多,关键是该组件的使用与自己的应用程序相结合时,是否能够方便的应用,当然如果
说自己开发的话,也就不需要考虑这块的内容了
平台也是提供了这一方面的支持,提供了二种模式的选择,一种是WebService的还有一种是Remoting的,.NET平台下,使用Remoting的方式,更新的速度快,
效率高。
7、其他
快速的插件构建及方便的测试环境支持,通过平台提供的测试环境,很方便的运行调试程序。更高的开发效率。
在药店系统的开发的过程中也是使用到了平台提供的方方面面的技术了,基本上理解了药店系统的开发流程,对平台的使用可以说是掌握了精髓的东西,如何能够快速的
使用平台进行功能模块的开发是,我们追求的目标。也是开发该药店系统的一个重要的目的。
1、ORM技术:
对象关系映射,平台提供了ORM的功能支持,在药店系统中使用了这块的功能,通过代码生成器,提供了ORM底层代码的自动生成,这样能够达到代码的一致性和较好
的可读性和可维护性等。
2、分布式及智能客户端:
通过平台提供的分布式访问组件+智能客户端支持,提供了分布式数据通信、智能客户端+服务器部署功能等功能,只需要通过相关工具使用后就能完成相关功能。
3、基础功能:
权限管理模块:提供权限的管理功能。
资源管理平台:提供插件的管理功能。
4、报表服务:
报表:提供设计器+报表的打印服务。
5、插件+平台的开发思想:
插件+平台的开发思想。
6、软件工程:
软件+工厂=软件工程
该平台提供的是插件+平台的敏捷并行开发方法。
上面讲述了AgileEAS.NET平台提供的一些功能,是主要的功能,但不是全部,有很多的功能,还得继续发掘才能发现,我们下面就来分析下AgileEAS.NET平台在其他的
应用场景的应用。
1、单独使用ORM,来快速的完成数据的持久化。
ORM组件负责通用的持久化服务,提供一个充血模型,来完成相关的数据访问支持。
2、单独使用报表服务:
可以脱离ORM来使用:
通过单独的访问组件,来提供报表定义文件的访问,进而使用打印服务,关于具体的脱离使用,请参考如下文章
《AgileEAS.NET平台开发实例-药店系统-报表开发(高级篇)》
3、分布式部署与智能客户端
由于工具基于AgileEAS.NET平台开发,所以使用起来,会有一些限制,总体来说限制并不大。只要很好的配置即可。
4、插件+平台
上面我们也是分析了软件工程方面的内容,我们就知道了,该平台的主要价值的体现,是在软件开发过程的相关改进,提供开发速度,降低开发的成本,并且可以实现,
敏捷并行的开发方法,通过每个开发人员负责一个功能模块的开发,最后组装到平台中,完成集成与部署。而这些模块不会因为功能的分离而影响开发,当然敏捷开发中的用
户故事的提炼也是基于这样的分配思路。
5、基础服务
权限管理:必须是符合平台契约的插件,才能被权限分配及管理,否则无法被平台识别。
所以权限管理功能,必须符合插件契约才可以,无法单独脱离契约存在。
其他的底层基础服务,也需要相关基础组件的支持,平台提供了AOP,IOC等相关组件的支持。
6、更多服务
持续更新,强大的团队支持。
强大的工作流+表单设计器。
更多内容,持续完善。
上面我们简单综述了药店系统使用了AgileEAS.NET平台中的相关功能,并且对比说明了,AgileEAS.NET平台提供的强大功能,当然其中还有部分功能还没有全部整理贴
出,关于更多的功能详尽分析及说明。 当然由于本人水平有限,错误之处,还请大家多拍砖。
官方博客:http://www.smarteas.net/
官方网站:http://www.agilelab.cn/
如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。
1、邮箱方式:
魏琼东: [email protected] 手机:18629261335 博客:http://eastjade.cnblogs.com/
殷长波:[email protected] 博客: http://www.cnblogs.com/onmyway/
何戈洲:[email protected] 博客:http://www.cnblogs.com/hegezhou_hot/
2、QQ交流群:
AgileEAS.NET平台交流群:120661978(超级群)[新建]
AgileEAS.NET平台交流群:125643764(高级群)[新建]
AgileEAS.NET平台交流群:147168308(高级群)[新建]