【问题标题】:Devexpress xaf modulesDevexpress xaf 模块
【发布时间】:2021-03-26 06:12:15
【问题描述】:

使用 devexpress 12.2.x
假设我们创建了一个跨平台应用程序。 SomeApp
创建了以下项目:
SomeApp.Module
SomeApp.Module.Web
SomeApp.Module.Win
SomeApp.Web
SomeApp.Win

现在每个 .Module 项目都包含一个 xafml 文件。

到目前为止,我只在我的 SomeApp.Module 项目中进行了更改,但我一直想知道进行更改的效果/目的是什么,例如SomeApp.Module.Win 项目。基本上这些 xafml 文件之间有什么区别,我什么时候会在其中一个而不是另一个中进行更改?

【问题讨论】:

    标签: c# module devexpress xaf


    【解决方案1】:

    参考应用解决方案结构

    应用解决方案包含以下内容:

    • Windows 窗体应用程序项目 - 代码,特定于 Windows 窗体 您的应用程序的版本。

    • Web 应用程序项目 - 代码,特定于基于浏览器的界面。

    • 模块项目 - 使用此程序集实现与 UI 无关 应用元素。例如,您可以在其中定义一个业务 模型。随后,Windows 窗体和 ASP.NET Web 应用程序将具有类似的业务模型。

    • Windows 窗体模块项目 - 使用此程序集来实现 Windows 窗体应用程序版本的应用程序元素。这个 程序集仅在 Windows 窗体应用程序项目中被引用。

    • ASP.NET Web 模块项目 - 使用此程序集实现 ASP.NET Web 应用程序版本的应用程序元素。该程序集在 仅限 Web 应用程序项目。

    Further Reading

    【讨论】:

    • 还有顶层的用户模型和模型图最底层的启用模型的类节点:documentation.devexpress.com/#Xaf/CustomDocument2580每一层都重叠修改到较低层。类节点包含在 class.bo 文件中。当模型修改没有生效并且您不知道原因(开始检查更高级别的层)时,了解这一点很有用。
    • “实现应用程序元素”是什么意思?例如。在什么情况下应该在 Windows 窗体模块项目而不是 Windows 窗体应用程序项目中进行编辑,反之亦然?它们对我来说似乎是多余的。
    【解决方案2】:

    XAF 覆盖模块差异文件中的更改。应用于您的应用程序的模型(即,通过覆盖模块中的所有 Model.DesignedDiffs.xafml 文件产生的模型)是您的主项目(SomeApp.Web、SomeApp.Win)中的文件 Model.xafml

    在哪个 xafml 文件中应该进行哪些调整的问题很难回答。我们已经尝试了几种解决方案,没有一个是真正完美的。一般的经验法则可能是:对元素的调整应用于定义元素的模块的 xafml 文件。

    有时,特别是如果您有分层应用程序,您可能必须在两个不同的模块中应用相同的调整(例如:产品级别的数据项标签可能与客户级别的标签不同) .

    【讨论】:

      【解决方案3】:

      在 Devexpress XAF 应用程序具有三个主要部分。模块,Module.Win.Control,Module.Win。 Win.Control 部分包含 Module 部分,Win 部分包含 Win.Control 部分。 因此 Model.DesignedDiffs.xafml 文件具有相同的行为。

      如果您更改模块 xafml,它会影响其他 xafml 文件,但您更改 win xafml 文件,它只会影响它自己。这个结构和dll引用一样。

      【讨论】:

        猜你喜欢
        • 2023-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多