A default XAF solution contains one platform-agnostic (shared) module and platform-dependent modules for each application. This topic describes how to add extra modules and business objects from an external library to the shared module to extend the applications' functionality.

默认的XAF解决方案为每个应用程序包含一个平台无关的(共享的)模块和平台相关的模块。本主题描述如何将外部库中的额外模块和业务对象添加到共享模块以扩展应用程序的功能。

XAF Extra Modules

XAF额外的模块

Use the Module Designer or Application Designer to add or remove extra modules. Double-click the Module.cs (Module.vb) file to invoke the Module Designer from a module project. To invoke the Application Designer, double-click the WinApplication.cs (WinApplication.vb) or WebApplication.cs (WebApplication.vb) file in an application project.

使用模块设计器或应用程序设计器添加或删除额外的模块。双击Module.cs (Module.vb)文件,从模块项目调用模块设计器。要调用应用程序设计器,双击应用程序项目中的WinApplication.cs (WinApplication.vb)或WebApplication.cs (WebApplication.vb)文件。

Follow the steps below to add the Conditional Appearance and Validation module to the shared module and set up how they interact with the business objects.

按照以下步骤将条件外观和验证模块添加到共享模块,并设置它们与业务对象的交互方式。

  1. Invoke the Module Designer for the shared module in the SimpleProjectManager.Module project.
  2. Drag the Conditional Appearance and Validation modules from the Toolbox to the designer's Required Modules section.

为SimpleProjectManager中的共享模块调用模块设计器。模块项目。

.将“条件外观”和“验证”模块从“工具箱”拖动到“设计器所需的模块”部分。

  1. Open the SimpleProjectManager.Module\BusinessObjects\Planning.cs(vb) file. Apply the AppearanceAttribute and RuleCriteriaAttribute to the ProjectTask class, as demonstrated below:

打开SimpleProjectManager.Module\BusinessObjects\ plan .cs(vb)文件。将外观属性和RuleCriteriaAttribute应用到ProjectTask类,如下所示:

using DevExpress.ExpressApp.ConditionalAppearance;
using DevExpress.Persistent.Validation;
using System.Drawing;
// ...
[Appearance("Completed1", TargetItems = "Subject",
Criteria = "Status = 'Completed'", FontStyle = FontStyle.Strikeout, FontColor = "ForestGreen")]
[Appearance("Completed2", TargetItems = "*;Status;AssignedTo",
Criteria = "Status = 'Completed'", Enabled = false)]
[Appearance("InProgress", TargetItems = "Subject;AssignedTo",
Criteria = "Status = 'InProgress'", BackColor = "LemonChiffon")]
[Appearance("Deferred", TargetItems = "Subject",
Criteria = "Status = 'Deferred'", BackColor = "MistyRose")]
[RuleCriteria("EndDate >= StartDate")]
public class ProjectTask : BaseObject {
// ...
}
  1. Run the WinForms or ASP.NET application and create several project tasks. The added modules affect the applications' appearance and validation logic according to the specified settings.

运行WinForms或ASP。NET应用程序并创建多个项目任务。添加的模块根据指定的设置影响应用程序的外观和验证逻辑。

Note

Some built-in XAF modules integrate the DevExpress WinForms

and ASP.NET visual components into your application. For example, XAF provides modules for common business scenarios with the data grid and editors, navigation, menu and layout, report, chart, pivot grid, tree view, calendar and scheduler

, etc. Refer to the Extra Modules tutorial for more information.

请注意
一些内置的XAF模块集成了DevExpress WinForms
和ASP。NET可视化组件到您的应用程序中。例如,XAF为常见的业务场景提供了一些模块,包括数据网格和编辑器、导航、菜单和布局、报告、图表、数据透视网格、树视图、日历和调度器
等。有关更多信息,请参阅额外的模块教程。

Data Models from External Libraries

来自外部库的数据模型

You can add a business class to your application from the Business Class Library. XAF generates UI elements according to this class' structure. The following steps show how to add the Person class from the Business Class Library and create the Employee navigation item to display Person objects in a list.

您可以从业务类库向应用程序添加业务类。XAF根据这个类的结构生成UI元素。以下步骤演示如何从业务类库添加Person类,并创建Employee导航项以在列表中显示Person对象。

  1. In the Solution Explorer, double-click the Module.cs (Module.vb) file in the SimpleProjectManager.Module project to invoke the Module Designer.
  2. In the Exported Types section, expand the Referenced Assemblies | DevExpress.Persistent.BaseImpl.v19.2 node. Classes included in the Application Model are marked in bold. The Person node is marked in bold because the Application Model has ProjectTask.AssignedTo and Project.Manager properties of this type.

在解决方案资源管理器中,双击SimpleProjectManager中的Module.cs (Module.vb)文件。调用模块设计器的模块项目。
           在export Types部分,展开引用的程序集| devexpress . persistence . baseimpl .v19.2节点。应用程序模型中包含的类以粗体标记。Person节点用粗体标记,因为应用程序模型有ProjectTask。AssignedTo和项目。此类型的管理器属性。

Note

To export a type, select the corresponding class and press Space or right-click this class and choose Use Type in Application in the invoked context menu. Rebuild the project after you made changes in the Module Designer.

请注意
要导出类型,请选择相应的类并按Space或右键单击该类,然后在调用的上下文菜单中选择Use type in Application。在模块设计器中进行更改后重新生成项目。

  • Invoke the Model Editor for the SimpleProjectManager.Module project and navigate to the NavigationItems | Items | Planning | Items node. Create a new navigation item and set its Caption property to "Employee" and View to "Person_ListView". Refer to the Add an Item to the Navigation Control topic for more information on how to add a navigation item.

  • 调用SimpleProjectManager的模型编辑器。模块项目和导航到NavigationItems |项|规划|项节点。创建一个新的导航项,并将其标题属性设置为“Employee”,将视图设置为“Person_ListView”。有关如何添加导航项的更多信息,请参阅导航控件主题中的“添加项”。
  • Run an application. The navigation control shows the new item in the Planning section.
  • 运行一个应用程序。导航控件在Planning部分显示新项。
Note

You can also use third-party modules

or create your own reusable modules for use in multiple XAF applications.

请注意
您还可以使用第三方模块
或者创建自己的可重用模块,以便在多个XAF应用程序中使用。

Reuse Implemented Functionality 重用实现功能的更多相关文章

  1. [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序、菱形问题、继承原理、Mixins机制),组合]

    [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序.菱形问题.继承原理.Mixins机制),组合] 继承应用 类与类之间的继承指的是什么'是'什么的关系(比如人类,猪类 ...

  2. roughViz 一个可重用,功能强大的手绘图表组件

    前段时间介绍过一个chart.xkcd 的手绘图表组件,roughViz 是另外一个,同时也提供了 比较多的图表类型,api 参考文档也比较全 支持的图表类型 Bar Horizontal Bar D ...

  3. Java 代码重用:操作与上下文重用

    目录 操作重用 参数化操作 上下文重用 上下文作为模板方法 结束语 我几乎不需要讨论为什么重用代码是有利的.代码重用(通常)会导致更快的开发与更少的 BUG.一旦一段代码被封装和重用,那么检查程序是否 ...

  4. Oracle 数据文件 reuse 属性 说明(转载)

    Oracle 表空间 创建参数 说明 http://blog.csdn.net/tianlesoftware/archive/2011/01/27/6166928.aspx 当我们对表空间添加数据文件 ...

  5. 使用include重用布局

    尽管Android 支持各种小部件,来提供小且可以重用的交互元素,你可能还需要更大的,要求一个专门布局的重用组件.为了高效的重用整个布局,你能使用和标签在当前的布局中嵌入别的布局. 重用布局功能特别强 ...

  6. Python之面向对象的组合、多态、菱形问题、子类中重用父类的两种方式

    一.组合 ''' 1.什么是组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外一个类的对象 2.为何用组合 组合也是用来解决类与类直接代码冗余问题的 3.如何用组合 ''' # 继承减少代 ...

  7. 为什么我在css里使用功能类优先

    前言 我想在我们开始的学CSS语法的时候,都是从以下的流程开始的: 1.写一个CSS类选择器: .my-class { } 2.往选择器里填充CSS语法: .my-class { display fl ...

  8. BlackArch-Tools

    BlackArch-Tools 简介 安装在ArchLinux之上添加存储库从blackarch存储库安装工具替代安装方法BlackArch Linux Complete Tools List 简介 ...

  9. Anti-pattern

    https://en.wikipedia.org/wiki/Anti-pattern https://zh.wikipedia.org/wiki/反面模式 An anti-pattern is a c ...

随机推荐

  1. Wonder发布v1.1正式版本,新增资产预览、脚本、AssetBundle等

    更新说明 本次版本重点增加了脚本组件,并且实现了类似于unity的AssetBundle,支持动态加载场景和资源. 相关链接 官网 Wonder官方QQ群: 106047770 相关资料 Wonder ...

  2. 利用sklearn对多分类的每个类别进行指标评价

      今天晚上,笔者接到客户的一个需要,那就是:对多分类结果的每个类别进行指标评价,也就是需要输出每个类型的精确率(precision),召回率(recall)以及F1值(F1-score).   对于 ...

  3. 高精度模板 val.1

    目录 高精构造 结构体 char数组转高精: 高精加高精 高精乘单精 高精除单精 同样搬以前初三写的... 其实还有个val.2,搬到文章里去了 @ 在做一道斯特林数的时候被卡高精...于是滚来写一些 ...

  4. Litho在美团动态化方案MTFlexbox中的实践

    1. MTFlexbox MTFlexbox是美团内部应用的非常成熟的一种跨平台动态化解决方案,它遵循了CSS3中提出的Flexbox规范来抹平多平台的差异.MTFlexbox适用于重展示.轻交互的业 ...

  5. 内网渗透教程大纲v1.0

    内网渗透 ☉MS14-068(CVE-2014-6324)域控提权利用及原理解析 ☉域控权限提升PTH攻击 未完待续...

  6. Jenkins工程中SQL语句执行的方法

    前言 网上很多jenkins工程中基于shell或批处理方式调用sql文件执行sql命令的方式,大部分都是需要基于sql文件来完成的,因此在sql语句发生变化时需要去jenkins服务端修改对应的sq ...

  7. VMware Workstation 15 Pro中安装ubuntu1804

    这篇笔记是一篇安装教程,没有什么实际的意义,仅为了记录一下……距离上次弄这东西不知道多长时间了,以至于这次再次使用时很是生疏,于是就想着把过程记录下来方便之后查看. 这里不涉及VMware Works ...

  8. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.关于Helm 1.1 为何需要Helm? 虽然K8S能够很好地组织和编排容 ...

  9. Hive concat函数连接后结果为null

    Hive concat函数连接后结果为null concat函数是用来连接字符串的 使用示例: select concat('Hello','World','Java'); 运行结果: 最近我们在做需 ...

  10. 【Leetcode 做题学算法周刊】第五期

    首发于微信公众号<前端成长记>,写于 2019.12.06 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 10 ...