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