学习008-01-04 Reuse Implemented Functionality(重用实现的功能)

Reuse Implemented Functionality(重用实现的功能)

This topic describes how to add optional modules to extend application functionality.

本主题介绍如何添加可选模块以扩展应用程序功能。

An XAF application consists of user-defined and standard XAF modules.

XAF应用程序由用户定义和标准XAF模块组成。

Modules can be platform-agnostic or platform-dependent. Platform-agnostic modules use framework features that are not specific to any platform and work on different platforms with the same code base. You can build applications for different platforms based on the same business logic if the applications refer to the same set of platform-agnostic modules.

模块可以与平台无关,也可以与平台相关。与平台无关的模块使用不特定于任何平台的框架功能,并在具有相同代码库的不同平台上工作。如果应用程序引用同一组与平台无关的模块,您可以基于相同的业务逻辑为不同的平台构建应用程序。

You can extend or modify an XAF module, use third-party modules, or create your own reusable modules.

您可以扩展或修改XAF模块、使用第三方模块或创建自己的可重用模块。

Implement Property Value Validation(实现属性值验证)

Follow the steps below to add the Validation module to your application and set up validation rules for entity objects.

按照以下步骤将验证模块添加到您的应用程序并为实体对象设置验证规则。

1.Add the DevExpress.ExpressApp.Validation.Blazor NuGet package to the SimpleProjectManager.Blazor.Server project and the DevExpress.ExpressApp.Validation.Win NuGet package to the SimpleProjectManager.Win project. See the following topic for more information on how to install DevExpress NuGet packages: Choose Between Offline and Online DevExpress NuGet Feeds.

将DevExpress. ExpressApp.Validation.Blazor NuGet包添加到SimpleProjectManager.Blazor.Server项目,将DevExpress.ExpressApp.Validation.WinNuGet包添加到SimpleProjectManager.Win项目。有关如何安装DevExpress NuGet包的更多信息,请参阅以下主题:在离线和在线DevExpress NuGet Feeds之间进行选择。

2.In the MySolution.Blazor.Server project, open the Startup.cs file and add the Validation module to the application builder. Do the same in the Startup.cs file of the MySolution.Win project:

在MySolutions. Blazor.Server项目中,打开Startup.cs文件并将验证模块添加到应用程序构建器。在MySolution.Win项目的Startup.cs文件中执行相同操作:

C#(ASP.NET Core Blazor)

csharp 复制代码
public class Startup {
// ...
    public void ConfigureServices(IServiceCollection services) {
        // ...
        services.AddXaf(Configuration, builder => {
            builder.UseApplication<MySolutionBlazorApplication>();
            builder.Modules
                // ...
                .AddValidation();
            // ...
        });
        // ...
    }
}

C#(Windows Form)

csharp 复制代码
public class ApplicationBuilder : IDesignTimeApplicationFactory {
    public static WinApplication BuildApplication(string connectionString) {
    var builder = WinApplication.CreateBuilder();
    builder.UseApplication<MySolutionWindowsFormsApplication>();
    builder.Modules
    //...
        .AddValidation();

    }
}

3.Open the SimpleProjectManager.Module\BusinessObjects\ProjectTask.cs file and apply the RuleCriteriaAttribute to the ProjectTask class:

打开SimpleProjectManager. Module\BusinessObjects\ProjectTask.cs文件并将RuleCriteriaAttribute应用于ProjectTask类:

C#

csharp 复制代码
using DevExpress.Persistent.Validation;
// ...
[RuleCriteria("EndDate >= StartDate", 
    CustomMessageTemplate = "Start Date must be less than End Date")]
public class ProjectTask : BaseObject {
    // ...
}

4.Run the application and change the task's end date. When you save the changes, XAF validates the task according to specified settings.

运行应用程序并更改任务的结束日期。保存更改时,XAF会根据指定的设置验证任务。

ASP.NET Core Blazor

Windows Forms

Highlight Property Editors(突出显示属性编辑器)

Follow the steps below to add the Conditional Appearance module to your application and highlight all tasks whose status is "In progress".

按照以下步骤将条件外观模块添加到您的应用程序并突出显示状态为"In progress"的所有任务。

1.Add the DevExpress.ExpressApp.ConditionalAppearance NuGet package to the SimpleProjectManager.Module project.

将DevExpress. ExpressApp.ConditionalAppearance NuGet包添加到SimpleProjectManager模块项目。

2.In the Solution Explorer, go to the SimpleProjectManager.Module project and open the Module.cs file. Add the Conditional Appearance module to the RequiredModuleTypes collection.

在解决方案资源管理器中,转到SimpleProjectManager.Module项目并打开Module.cs文件。将条件外观模块添加到必需的模块类型集合中。

C#

csharp 复制代码
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Updating;

namespace SimpleProjectManager.Module;

public sealed class SimpleProjectManagerModule : ModuleBase {
    public SimpleProjectManagerModule() {
        // ...
        RequiredModuleTypes.Add(typeof(DevExpress.ExpressApp.ConditionalAppearance.ConditionalAppearanceModule));
    }

    // ...
}

3.Open the ProjectTask class and apply AppearanceAttribute as displayed in the code sample below:

打开ProjectTask类并应用外观属性,如下面的代码示例所示:

C#

csharp 复制代码
// ...
using DevExpress.ExpressApp.ConditionalAppearance;

namespace SimpleProjectManager.Module.BusinessObjects
{
    // ...
    [Appearance("InProgress", TargetItems = "Subject;AssignedTo",
    Criteria = "Status = 1", BackColor = "LemonChiffon")]
    public class ProjectTask : BaseObject
    {
        // ...
    }

    // ...
}

4.Run the application. The task whose status is "In progress" is highlighted now.

运行应用程序。现在突出显示状态为"In progress"的任务。

ASP.NET Core Blazor -- List View

ASP.NET Core Blazor -- Detail View

Windows Forms -- List View

Windows Forms -- Detail View

相关推荐
小码编匠6 小时前
C# 工控上位机必备:数据转换工具类与十个核心模块
后端·c#·.net
Cerrda9 小时前
开发体验升级:UnoCSS 自定义 SVG 图标热更新方案
架构·前端框架
Kstheme12 小时前
把任何 GitHub 仓库变成系统设计课:这个开源项目做到了
架构
禅思院13 小时前
路由性能高可用架构实战方案
前端·架构·前端框架
倔强的石头_14 小时前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
zzzzzz3102 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
贵慜_Derek2 天前
《从零实现 Agent 系统》连载 32|闭集 IE 与小模型:分类、意图与字段抽取
人工智能·架构·agent
江米小枣tonylua2 天前
译:设计生产级 RAG 架构
架构
怕浪猫2 天前
领域特定语言(Domain-Specific Language, DSL)
设计模式·程序员·架构