关闭

XAF 架构(转载)

标签: applicationasp.netwindowsmicrosoftattributeslibrary
913人阅读 评论(0) 收藏 举报
分类:

转自:http://www.cnblogs.com/Tonyyang/archive/2011/01/07/1929528.html


使用 eXpressApp Framework 构建的应用程序由几个功能块组成. 下图展示了基本的块, 指明何时及这些块如何被创建, 最后, 展示了你可以扩展应用程序的区域. 每个应用程序构建块的概述在本文的后面给出.

XPO - 数据管理级

当构建一个业务应用程序时, 基本上都需要处理数据. 如果使用 eXpressApp Framework, 事实上你不需要在 DBMS 中创建一个数据库, 定制表, 字段等. 你不需要使用低级的 ADO.NET 结构访问数据. 而是使用内建的“对象-关系映射系统” - eXpressPersistent Objects 库 (XPO 在上图的底部). 这个库也可以单独购买. 它最初发布于2004年, 意味着你可以确信它是经过良好测试, 可靠的和全面的产品.

XPO 允许你使用熟悉的代码结构 - 类, 属性和 attributes 来为应用程序描述数据. 要创建一个数据表, 你需要声明一个类. 它的公共属性将在表中声明为数据字段. 当然, 你可以创建所需的许多表, 并使用专门设计的 attributes 来指定表间关系. 注意在构建这些类时, 你不需要做大量额外的工作. 你只需要从适当的类派生它们, 以及提供一组 attributes - 这就够了. 为了帮助你入门, 我们提供了在下面小节中描述的业务类库(Business Class Library). 该库包含几个备用的类, 你可以集成到应用程序中. 你也可以重温这些类的源代码, 把它们作为适当数据声明的示例.

因为一个数据表是通过类描述的, 实际数据是通过类的实例集合来描述的. 因此, 要修改特定记录的某个字段, 你需要从集合中获取所需的对象, 并修改它的属性. 这是一种非常简单和更自然的管理数据的方法. 它隐藏了所有实现细节, 让你专注于应用程序程序的业务逻辑.

通常, 你不需要考虑实际的数据库, 除非需要使用你的应用程序来修改 DBMS. Microsoft SQL Server 是默认的选择. 当前 XPO 也支持 Microsoft Access, MySQL, Oracle, PostgreSql, Firebird, PervasiveSQL, VistaDB, SQL Anywhere, Advantage, DB2 和 Sybase. 修改目标 DBMS 时, 所有你需要做的是提供一个适当的连接字符串. 这在 连接一个 XAF 应用程序到数据提供程序 主题中进行详述.

 

使用下列链接获取更多关于 XPO 的信息.

 业务类库(Business Class Library)

业务类库(Business Class Library) 为你提供了下列内容:

下图展示了某些可在 业务类库(Business Class Library) 中找到的类.

  • 使用例如 Person, Note, Organization 等实体定义某些公共的类. 你可以原样使用这些类, 或者在需要扩展或修改它们时派生出自己的类. 你也可以重温这些类的源代码来学习如何适当地实现自己的数据结构.
  • 你可能需要实现数据类的接口. 某些 eXpressApp Framework 的子系统要求数据遵守特定的规则. 举一个实例来说, 安全子系统需要 User 类实现 IUser 接口. 因此, 如果你已决定开发自己的类来描述应用程序程序用户, 你也需要实现此接口.

视图(Veiws)

eXpressApp Framework 的一个关键功能是基于应用程序数据, 自动生成用户界面. 假定你已经声明了一个描述某个人的 XPO 类. 要得到一个存储通讯录信息的应用程序, 基本上这就是所有你需要做的事.你可以简单地启动应用程序, 它将使用某个表格控件来显示一个个人列表. 你可以添加新的条目或修改已有的条目. 这些操作是通过自动生成一套独立的编辑器来执行的, 每个编辑器都绑定一个特定的字段.

自动生成的用于显示和管理数据的用户界面元素被称为视图(Views). 显然, 有两种类型的视图:

  • 列表视图(List Views)
    列表视图(List Views)是应用程序的根模块. 最一般地, 这些是显示工作集合(数据表)的表格. 当你启动项目时, 你可以看到其中之一, 你可以使用导航控件(Windows 窗体应用程序中的浏览器栏, ASP.NET 应用程序中的导航标签页)在它们之间切换.

    细节视图(Detail Views)
    这种视图类型处理单个对象(数据记录), 并通过独立的编辑器呈现属性值. 当添加一条新记录或修改已有记录时, 你可看到这种视图.

  • 视图主要使用 Developer Express 生产的控件来构建, 并在 DXperience 商标下分发. 例如, Windows 窗体视图使用诸如 XtraGrid 和 XtraEditors 等套件生成. ASP.NET 视图使用 ASPxGridView and Editors 套件中的编辑器与 ASPxperience 库生成.

    当然, 你可以使用所需的任何控件来描述一个列表视图(List View)或作为在细节视图内的编辑器. 要把你自己的控件在应用程序中使用, 首先需要派生于特定的设计类. 然后, 修改应用程序模型(在下面描述), 把你的编辑器指定为特定数据类型的默认编辑器, 或作为一个编辑器指派到某个特定的字段.

    关于视图和其他用户界面元素的信息, 请重温 用户界面构建 帮助章节中的文档.

  • 仪表盘视图
    这种特殊类型的视图允许在一个画面放多个

    视图主要使用 Developer Express 生产的控件来构建, 并在 DXperience 商标下分发. 例如, Windows 窗体视图使用诸如 XtraGrid 和 XtraEditors 等套件生成. ASP.NET 视图使用 ASPxGridView and Editors 套件中的编辑器与 ASPxperience 库生成.

  • 当然, 你可以使用所需的任何控件来描述一个列表视图(List View)或作为在细节视图内的编辑器. 要把你自己的控件在应用程序中使用, 首先需要派生于特定的设计类. 然后, 修改应用程序模型(在下面描述), 把你的编辑器指定为特定数据类型的默认编辑器, 或作为一个编辑器指派到某个特定的字段.

    关于视图和其他用户界面元素的信息, 请重温 用户界面构建 帮助章节中的文档.

  • 控制器库(Controller Library)

    控制器是管理你的应用程序流的对象. 它们也负责最终用户交互. 即使是使用 eXpressApp Framework 构建的最简单的应用程序, 也使用了大量内建的源自 控制器库(Controller library) 的控制器. 这些默认的控制器主要负责数据管理. 在它们的帮助下, 你可以添加新记录, 删除已有记录, 执行全文搜索等.

    在极大程度上, 控制器是作为 行为(Actions) 的容器. 就像 XPO 类是数据表的抽象, 行为(Actions)是最终用户交互元素 - 按钮, 菜单等的抽象. 行为(Action)是用户界面元素和所关联代码的可视化描述. 因此, 你不需要处理特定编辑器, 工具栏系统, 上下文菜单等的低层实现细节. 同时, 更高级的抽象允许相同的行为(Action)被同时用于 Windows 窗体和 ASP.NET Web 应用程序.

    关于实现你自己的控制器和行为(Controllers and Actions)的信息, 请重温下列文档:

    • 指南 | 扩展功能
      该指南章节展示如何通过控制器的帮助, 扩展你自己的应用程序的用户界面. 你将创建有不同的行为(Action)类型的控制器, 以及无单个行为(Action)的控制器.
    • 基本原理 | 扩展功能
      此指南章节详述了使用新特性扩展应用程序的 eXpressApp Framework 控制器-行为技术(Controllers-Actions technique).  
  • 报表(Reports)

    业务应用程序不只是用于管理数据. 它也常用于分析趋势, 问题区域和资源瓶颈. 并且你可能需要拥有自己的屏幕和纸质形式的数据报告.你可以通过内建的全功能报告引擎 - XtraReports 套件 来实现. 在它的帮助下, 你可以自由构建任何所需的报告, 在 Windows 窗体和 ASP.NET Web 应用程序中查看它们, 当然也可以把它们打印出来.

    所有使用 eXpressAppFramework 构建的应用程序都包含报告模块. 在 Windows 窗体应用程序中, 你可以切换到该模块, 在运行时刻使用集成的最终用户设计器(End-User Designer)来添加新的报告和定制它的内容. 这也是你为应用程序的最终用户创建预定义报告的途径. 使用相同的方法, 最终用户也可以创建他们自己的报告. 但要注意在 ASP.NET Web 应用程序中, 报告只能被查看 - 因为目前 XtraReports 套件 不支持基于网页的最终用户设计器.

    通过打印某个控件或执行一个报告产生的输出, 可以被导出成为许多种格式, 包括 RTF, HTML 和 PDF.

    要学习更多关于集成报告系统的内容, 请参阅下列文档:

    除了报告功能外, eXpressApp Framework 提供了额外的可被 XAF 应用程序使用的功能. 具体内容请参阅下列主题:

     

     Windows 窗体和 ASP.NET Web 应用程序

    eXpressApp Framework 的一个主要目标是从应用程序的可视化描述中分离出业务逻辑. 这使得基于相同的业务逻辑来同时创建 Windows 窗体应用程序和 Web 站点成为可能.

    当你使用 eXpressApp Framework 来帮助创建一个新的应用程序解决方案时, 有五个项目被生成:

    • 应用程序模块(Application Module)
      这是一个类库项目, 它包含基本的业务对象, 以及任何其他不在 Windows 或网页用户界面上明确的代码. 在理想状态下, 这是唯一的需要你编写代码的地方. 用户界面区将被自动构建.
    • Windows 窗体应用程序项目(Windows Forms Application Project)
      包含了指定你的应用程序的 Windows 窗体版本的代码.
    • Web 应用程序项目(Web Application Project)
      包含了指定基于浏览器界面的代码.
    • Windows 窗体应用程序模块(Windows Forms Application Module)
      用于实现 Windows 窗体应用程序版本的应用程序元素.
    • ASP.NET 应用程序模块(ASP.NET Application Module)
      用于实现 ASP.NET Web 应用程序版本的应用程序元素.

    要学习更多关于这些应用程序解决方案组件的内容, 请参阅 应用程序解决方案组件(Application Solution Components) 主题.

    应用程序模型(Application Model)

    所有 eXpressApp Framework 用于构建用户界面的信息, 都出自应用程序模型(Application Model). 例如, 这些信息包括用于特定数据类型的编辑器类, 或与特定字段关联的标签(labels). 应用程序模型(Application Model)自动填充应用程序组件(例如业务对象或控制器)所需的元数据.

    应用程序模型(Application Model)定义文件被存储为 XML 格式, 因此可以轻易地被人为修改. 但是, eXpressApp Framework 甚至提供了更轻松的方式 - 模型编辑器(Model Editor), 它被集成在 Microsoft Visual Studio 中. 你可以在设计时刻和运行时刻使用它. 要在设计时刻运行它, 则在解决方案资源管理器中, 双击任意模块中的或应用程序项目中的一个 .xafml 文件.

    要获得更多关于应用程序模型(Application Model)的信息, 请参阅下列主题:


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:198181次
    • 积分:3139
    • 等级:
    • 排名:第11381名
    • 原创:106篇
    • 转载:40篇
    • 译文:5篇
    • 评论:36条
    文章分类
    最新评论