`
zhoujg
  • 浏览: 61532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

信息系统开发平台openexpressapp 1.0发布

 
阅读更多

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】。

准备工作

  1. 安装.Net35 SP1
  2. 安装CodeSmith5,以便通过模板自动生成类库框架
  3. 下载OpenExpressApp框架代码(发布1.0版本程序集中没有包括CodeSmith模板文件)

生成类库程序集

  1. 新建类库项目
    取名为“OrderLibrary”,引用【Lib】目录下程序集:Csla.dll、OpenExpressApp.MetaModel.dll
  2. 添加订单 根对象( 可以暂时理解为订单主表):Order
    双击【Lib/CodeGen】目录下的“EditableRoot.cst ”,弹出生成代码界面,在业务对象类名属性【BOClass】中输入:Order ,在命名空间【Namespace】属性中输入:OrderLibrary ,点击【Generate】按钮,生成代码后点击上面右边工具栏的保存为"Order.cs"。
  3. 生成订单明细项 子对象OrderItem
    按同样步骤点击“EditableChild.cst ”,生成OrderItem 子对象
  4. 按照CSLA类库模板更改订单和订单明细类,更改后的代码见示例代码。如果你自己有不同的业务,则自己对业务对象进行相应设计实现,增加自己的属 性、方法和规则。后期会详细介绍如何写这些类库,以及类库上面的属性标识分别代表什么含义。(注:第一阶段是需要我们开发人员自己去写这些类库的,后期这 些重复工作会由建模工具来处理。)
  5. 编译生成程序集”OrderLibrary.dll
    (注:生成类库,也可通过【OpenExpressApp/CodeGen/】下的CodeSmithCodeGen.csproj项目来生成)

生成数据库

  1. 执行【Example】下的DBSQL.txt文件,生成数据库
    (注:生成数据库也可以通过工具DBCreator.exe来生成)

修改配置文件

  1. 将【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 >

部署

  1. 把”OrderLibrary.dll“拷贝到【Lib/Library】目录下:框架会自动去这个目录下查找系统的业务对象并生成界面

(注:【Lib】目录下的配置文件默认为单机版本,这里示例尽量简单一些,所以这里只讲解如何配置为单机版本,以后会专门讲解如何进行单机、局域网和广域网的部署。)

运行

运行“OpenExpressApp.Host.WPF.exe”即可打开主界面。在左边模板导航列表会自动出现我们建立的订单模块 ,双击后会在右边打开,订单模块已经具备了业务对象的基本操作。现在界面非常一般,希望以后有人能帮忙美化一下:)

(注:如果需要扩充功能按钮的话,需要再自己扩充Command。Command是OpenExpressApp的主要功能之一,以后会专门讲解)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics