Upload
zhoujg
View
49
Download
3
Embed Size (px)
DESCRIPTION
Citation preview
信息系统开发平台OpenExpressApp
周金根zhoujg.cnblogs.com
我是这样偷着做架构的Bad artists copy;Good artist steal -毕加索
• 找到抄袭源• 主题抄袭,求同存异
• 组合抄袭• 由抄到偷• 不断修改
问题
Company Logo
开发方法?
可维护?
定制化能力?
开发效率?
产品质量?
本节内容• Not 如何实现和使用这个平台
• Is 平台的理解• Is OpenExpressApp 的由来和总体架构• Is OpenExpressApp的功能介绍
目录• 什么是平台和架构• 相关方法• OpenExpressApp的由来• OpenExpressApp介绍
系统平台
开放平台
目录• 什么是平台• 相关方法• OpenExpressApp的由来• OpenExpressApp介绍
山寨完全自己做 完全用别人的 组合扩展
平台如何产生
不同复用层次
思想
OpenExpressApp平台Roadmap
开发平台是在系统平台之上,提供在开发方法指导下,通过 开发工具、辅助工具,基于框架、引擎以及内置的模块等一套支持软件开发生命周期的完整开发环境来构造软件,以期在统一平台下能够快速高质量的提供产品。
软件=商业+架构+流程+组织BAPO
流程
基于单项目开发 基于产品线开发
架构
技术方法
代码 模型
以独立技术为中心 以业务集成平台为中心
目录• 什么是平台• 相关方法• OpenExpressApp的由来• OpenExpressApp介绍
Domain-Specific ModelingMetacase: The world's leading supplier of Domain-Specific Modeling (DSM) environments.
MetaEdit+
MetaEdit+是全球 DSM领域内著名的产品,它能够带来以下好处:
• 缩短上市时间,开发生产力能够提高 5-10倍• 开发人员可以集中设计和关注业务功能,而不必用代码去写所有方面的内容
• 由于使用的是经过验证的工具,产品质量显著提高
• 可以完全控制模型和代码生成,而不像MDA方法模型和代码生成固定,不便于特定领域开发
Domain-Specific ModelingMetacase: The world's leading supplier of Domain-Specific Modeling (DSM) environments.
DevExpress eXpressApp Framework是一种快速业务开发平台。
• 一个架构• XPO,一个 ORM• AutoUI, 自动生成界面• 模块化架构• 基础类库• 基于角色的安全实现• 数据验证• 本地化支持• 报表• 与 Visual Studio IDE 继承
.NET Application Framework - DevExpress eXpressApp Framework™
CSLA (Component-based, Scalable Logical Architecture)
• 1999年开始编写的基于 .Net的一套 N-tier分布式框架。• 持部署为单机、局域网和广域网• 允许生成面向对象的业务层来封装业务逻辑和数据• n层撤销功能• 跟踪违反业务规则以确定某个对象是否有效• 跟踪某个对象的数据是否发生了改变(是否“变脏”?)• 支持对于子对象的基于强类型的集合• 针对 UI开发人员的一种简单抽象模型• 对于Windows Forms、WPF和Web Forms中数据绑定的支持• 表驱动的安全机制• 其他各种特性
Composite WPF and Silverlight
润乾报表
• 类 Excel 报表设计模型 • 非线性报表模型• 多源填报模型 • 强关联语义模型
Mendix
目录• 什么是平台• 相关方法• OpenExpressApp的由来• OpenExpressApp介绍
OpenExpressApp平台Roadmap
开发平台是在系统平台之上,提供在开发方法指导下,通过 开发工具、辅助工具,基于框架、引擎以及内置的模块等一套支持软件开发生命周期的完整开发环境来构造软件,以期在统一平台下能够快速高质量的提供产品。
架构总体思想• 基于单项目开发 - 基于产品线开发• 以独立技术为中心 - 以业务集成平台为中心
• 代码 - 模型• 面向数据库开发 - 面向对象
产品线工程• 软件工厂方法• 四个主要方法原则
– 可变性管理– 商业驱动– 架构驱动– 两阶段生命周期
• 三大基本活动– 核心资产开发– 产品开发– 管理
• BAPO之商业• BAPO之架构
Domain-Specific Modeling
企业架构1月 20日 星期三
当前进展• C/S(WPF)分布式框架已完成,已在
GIX4应用
OpenExpressApp 框架
架构的定义• 最高层次的系统分解• 系统中不易改变的决定
• 架构是一种主观上的东西,是专家级项目开发人员对系统设计的一些可共享的理解
• 架构通常指产品组成部分的大粒度的组成部分的设计,架构师在特定方法下,在经验和直接下进行系统、企业或者软件的分解,形成大粒度的组成元素。在《软件构架实践》中定义软件架构是系统的一个(或多个)结构,它由软件元素、元素的外部可见属性以及它们之间的关系组成。
• 架构是针对某种特定目标系统的具有体系性的、普遍性的问题而提供的通用的解决方案。
• 架构往往是对复杂系统的一种共性的体系抽象。• 架构让我们能够正确、合理地理解、设计和构建复杂的系统。
演示
下一步工作• 在应用中不断完善 C/S框架• 实现元模型引擎,增加建模工具
Metametamodel
Object RoleRelationship
Metamodel
Object X Object Y
Model
InstanceOf
System in operation
Customer instance
InstanceOf
Object X ”customer”
InstanceOf
Relationship instance
InstanceOf
GOPRR
Method(ology)ConceptsRulesSymbolsReports
Product specifications
PropertyGraph
Model architecture in MetaEdit+
Object Y ”name”
41
ConceptsGraphObjectPropertyRoleRelationship
MetaEdit+ has own tool for each metamodeling concept
Metamodeling concepts of GOPRR
42
Apply in software production
• MetaEdit+ delivers immediately the method to your team (editors, reports, multi-user, multi-platform, etc)
• Prototype your design; refine and iterate
43
Concepts Symbols
GeneratorsRules1 2 3 4
Steps for implementing DSM
功能参考• OpenExpressApp架构-一个信息系统的平台 • 订单示例 • 总体架构的由来 • 平台学习必备知识 • 代码目录说明 • 应用模型ApplicationModel • 内置支持的模块类型 • 内置支持的属性编辑方式 • 内置支持的列表编辑方式 • 理解核心元素ObjectView • AutoUI自动生成界面 • Command扩展机制• 支持列表分组(Group)• 如何部署OEA应用• 配置CSLA的WCF数据门户代理• CSLA约定及框架约定• CSLA类库编写• 数据懒加载• 模型相关Attribute介绍• 性能相关• 支持差异保存• 支持WPF主题样式• 支持勾选视图 • 用户权限模块设计 • 使用CSLA类库实现用户管理 • 功能权限