openexpressapp
已在微软codeplex网站发布1.0版本,这个版本包括框架所有代码,以及一个简单示例代码,感兴趣的可以随时关注,平台将不断完善。
介绍
OpenExpressApp没有创新性的技术,而是将现有技术和产品中有价值的部分引入到一起,它要做的是整合别人已经实践的方法来提高我们自身的开发能力,以求快速、高质量的开发信息系统产品。
不
同于以往为特定开发角色提供独立的开发工具和框架,它基于业务模型驱动开发指导思想,为业务分析人员、软件设计和开发人员提供的一种集成的开发平台,提供
报表、流程、元数据等基础引擎,具有业务建模、领域建模和应用建模等模型,并提供权限、报表等多个通用应用模块。为了支持软件开发,还提供基于敏捷思想的
软件项目管理工具、快速原型工具和测试支持。

主要内容
-
OpenExpressApp框架
。
目前主要做此内容,已开始在项目中应用。现阶段实现主要是基于C/S(WPF
)分布式,参考了ExpressApp
Framework(XAF 应用框架)
,使用了CSLA
作为分布式业务对象框架,Composite WPF
作为UI框架,还使用了其他一些代码(如
LiteORM、Flee
等)。支持B/S、C/S、Mobile
- OpenMetaEdit(参考MetaEdit+
)
- OpenReport(参考润乾报表
)
- OpenWorkflow(使用微软的WF
)
- OpenStudio(基于OpenExpressApp开发,参考Mendix、Novulo
)
- OpenTool(基于OpenExpressApp开发)
现状
目前处于第一阶段,提供类似ExpressAppFramework的开发框架,实现C/S(WPF)基础框架,供软件开发人员使用,现有框架已在实际项目中应用。

借鉴ExpressApp的AutoUI和扩展的思想,这里的UI层也是通过模型自动生成。
以下为现在的代码组织。OpenExpressApp为框架代码,GIX4开头的为项目组应用框架时写的类库和扩展Command等代码。目前只支持WPF,还不支持B/S。

现状模型只是实现了通过类的属性来实现,还未实现模型编辑器。例如下面在类上定义属性可以自动在主界面生成导航项,双击后可以打开模块,模块界面也是自动生成。现在界面都只是根据模板生成,还不支持通过设计器来设计界面。

以下是一个通过在代码中WPFListViewCommand继承下来的一个命令,在命令上写上属性内容后,就可以在界面自动生成按钮,这样开发人员可以更多关注业务逻辑,而不用关注界面的变化了。

在公司也研究和做过一些框架,但是基本上每次都是重新开发,这对公司和个人来说都是很大的浪费,所以我深知一个平台的开发需要规划并不断的持续改
进。而一个平台的开发由一个人来做是很难的,所以现在Open出来,希望对此平台有共同方向的朋友一起参与,多提意见,共同打造一个属于我们自己的开发平
台,不求技术多么精湛,只求能够切实解决我们的问题。
示例
以下通过一个简单订单示例来演示如何使用OpenExpressApp框架来快速开发应用程序,示例代码见SVN目录
【Example】。
准备工作
- 安装.Net35 SP1
- 安装CodeSmith5,以便通过模板自动生成类库框架
- 下载OpenExpressApp框架代码(发布1.0版本程序集中没有包括CodeSmith模板文件)
生成类库程序集
- 新建类库项目
取名为“OrderLibrary”,引用【Lib】目录下程序集:Csla.dll、OpenExpressApp.MetaModel.dll
- 添加订单
根对象(
可以暂时理解为订单主表):Order
双击【Lib/CodeGen】目录下的“EditableRoot.cst
”,弹出生成代码界面,在业务对象类名属性【BOClass】中输入:Order
,在命名空间【Namespace】属性中输入:OrderLibrary
,点击【Generate】按钮,生成代码后点击上面右边工具栏的保存为"Order.cs"。
- 生成订单明细项
子对象
:OrderItem
按同样步骤点击“EditableChild.cst
”,生成OrderItem
子对象
- 按照CSLA类库模板更改订单和订单明细类,更改后的代码见示例代码。如果你自己有不同的业务,则自己对业务对象进行相应设计实现,增加自己的属
性、方法和规则。后期会详细介绍如何写这些类库,以及类库上面的属性标识分别代表什么含义。(注:第一阶段是需要我们开发人员自己去写这些类库的,后期这
些重复工作会由建模工具来处理。)
- 编译生成程序集”OrderLibrary.dll
“
(注:生成类库,也可通过【OpenExpressApp/CodeGen/】下的CodeSmithCodeGen.csproj项目来生成)
生成数据库
- 执行【Example】下的DBSQL.txt文件,生成数据库
(注:生成数据库也可以通过工具DBCreator.exe来生成)
修改配置文件
- 将【Lib】下的”OpenExpressApp.Host.WPF.exe.config"中的数据库连接字符串为自己实际的数据库环境下的参数
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
<
connectionStrings
>
<!--
更改为自己的数据库连接方式
-->
<
addname
=
"
BusinessDBName
"
connectionString
=
"
DataSource=./SQLExpress;
InitialCatalog=OpenExpressApp
;UserID=sa
;Password=as
"
providerName
=
"
System.Data.SqlClient
"
/>
</
connectionStrings
>
部署
- 把”OrderLibrary.dll“拷贝到【Lib/Library】目录下:框架会自动去这个目录下查找系统的业务对象并生成界面
(注:【Lib】目录下的配置文件默认为单机版本,这里示例尽量简单一些,所以这里只讲解如何配置为单机版本,以后会专门讲解如何进行单机、局域网和广域网的部署。)
运行
运行“OpenExpressApp.Host.WPF.exe”即可打开主界面。在左边模板导航列表会自动出现我们建立的订单模块
,双击后会在右边打开,订单模块已经具备了业务对象的基本操作。现在界面非常一般,希望以后有人能帮忙美化一下:)

(注:如果需要扩充功能按钮的话,需要再自己扩充Command。Command是OpenExpressApp的主要功能之一,以后会专门讲解)
分享到:
相关推荐
开源信息系统开发平台OpenExpressApp是一个专为IT专业人士设计的强大工具,它允许开发者快速构建和部署企业级的信息系统。这个平台的核心理念是开放源代码,鼓励社区参与和共享,旨在降低开发成本,提升开发效率,...
【OpenExpressApp:一个开源的信息系统开发平台】 OpenExpressApp是一个开源的开发平台,旨在提高开发效率、确保软件产品的质量,并提供高度定制化的可能性。它借鉴了“偷师学艺”的理念,即从已有的优秀架构中吸取...
### 开源信息系统开发平台之OpenExpressApp框架 #### 前言与总体介绍 《开源信息系统开发平台之OpenExpressApp框架》是一篇详细介绍OpenExpressApp框架的文档,旨在为开发者提供一套完整且易于使用的开发工具,...
### 开源信息系统开发平台之OpenExpressApp框架 #### 前言与总体介绍 《开源信息系统开发平台之OpenExpressApp框架》是一篇详细介绍OpenExpressApp框架的文档,它旨在为开发者提供一个高效、灵活且可扩展的信息...
OpenExpressApp是一个强大的开源信息系统开发平台,其核心框架OpenExpressApp1.1春节飞虎版是专门为开发者设计的,旨在简化企业级应用的构建过程。这个框架提供了丰富的功能和工具,帮助开发者快速、高效地创建复杂...
综上所述,OpenExpressApp 框架结合了CSLA.NET、Prism、AvalonDock等多个强大的组件,为开发者提供了一个高效、灵活的信息系统开发平台。通过深入理解和运用这些组件,开发者可以快速构建出稳定、健壮且用户友好的...
OpenExpressApp是一款面向.NET Framework 4的开源信息管理系统开发平台,旨在为开发者提供一个便捷、高效的应用构建工具。它集成了多种开源框架,使得开发者能够快速地开发出符合业务需求的应用程序,降低开发成本,...
插件化业务模块积累、客户化二次开发、实施配置平台。 3. 一套代码,可同时生成并运行 C/S、单机版、B/S 三种应用程序。 C/S版本 与 单机版 代码重用率 100%。 C/S版本 与 B/S版本 重用服务端代码(重用服务层以下...