信息系统开发平台OpenExpressApp - 总体架构的由来我们经常在对相同需求进行着重复的设计和编码,这使得开发效率低,而且质量也得不到保证,OpenExpressApp 就是抽取了信息系统的一些共性,用平台的方式提供大粒度的重用,提高开发效率和质量。 在《信息系统开发平台openexpressapp 1.0发布》中提到过,OpenExpressApp不会带给大家创新性的技术,而是将现有技术和产品中有价值的部分引入到一起,它要做的是整合别人已经实践的方法,提高我们自身的开发能力,以求快速、高质量的开发产品。 下面我将通过对现有技术和产品的参考来讲解OpenExpessApp的架构,理解这些参考技术的架构是理解OpenExpressApp架构的最好办法。 为了提高产量和代码质量,我研究过一些产品和方法,而MetaEdit+是建立在DSM方法之上的工具,能够比较好提高产量和质量。 现有技术和和产品下面我先介绍一下MetaEdit+。 MetaEdit+MetaEdit+是全球DSM领域内著名的产品,它能够带来以下好处:
从上图DSM方法知道模型和生成器是DSM的核心部分,而MetaEdit+的元模型比较好,所以OpenExpressApp的建模工具中模型部分将参考MetaEdit+。(由于现在还没有开始这部分内容,所以在这里就先不介绍了。) 从上图可以看到领域框架也是重要部分,所以接下来我就需要去搜索比较好的框架来参考。在我参考一些框架之后,我觉得DevExpress eXpressApp Framework比较适合,它是.Net下的一个应用框架。 DevExpress eXpressApp Framwwork (XAF)DevExpress eXpressApp Framework是一种快速业务开发平台,它可以通过一个模型同时支持C/S和B/S应用。
OpenExpressApp名称中的ExpressApp词就来自这个应用框架,所以也暗示着OpenExpressApp参考了很多XAF的思想(架构、模块化、AutoUI等)。 XAF的基础类库建立在OO的思想上,所以我还需要一个支持OO的框架。而CSLA可以很好的支持类库开发和应用。 CSLACSLA 是Component-based, Scalable, Logical Architecture的简写,它是由Rockford Lhotka1999年开始编写的基于.Net的一套N-tier分布式框架。它还在不断更新,现在也支持Silverlight。 它包含如下功能:
信息系统应用模块和功能会比较多,所以框架支持模块化就显得比较重要。第一阶段OpenExpressApp将实现基于WPF的应用,而微软模式小 组编写的Composite WPF and Silverlight除了支持WPF外,也可以很好的支持模块化,所以我也使用了Composite WPF and Silverlight。 Composite WPF and SilverlightXAF框架中不仅有类库,还有报表支持,而报表在信息系统中是不可缺少的,所以我还需要找到一个比较好的报表系统。我几年前研究过一阵子报表,润乾报表是我觉得模型最好的一个。感兴趣的可以参考我以前写的《研究润乾报表的实现》,在《软件工厂方法(二):软件工厂应用》中我也介绍过研究的一些方法。 润乾报表
以上主要说的是框架主要部分参考内容,框架思路选定后还需要一个集成环境来开发,所以我又去找了几个基于模型驱动开发的软件平台,目前准备参考Mendix 和Novulo MendixNovulo
依据以上参考和个人经验,确定了如下一些架构指导思想。这个在《OpenExpressApp架构-一个信息系统开发平台》也有所介绍 架构总体思想
OpenExpressApp架构
以上对OpenExpressApp架构的起源以及参考的现有产品进行了简单介绍,后期我会对我如何使用这些产品或者采用这些产品思想分别进行介绍。如果大家对OpenExpressApp内部比较感兴趣的话,则理解这些已有产品将会有很大帮助。
相关文章链接: |
|
来自: 快乐学习 > 《OpenExpressApp》