【问题标题】:Modular application (scale, performance, possible problems)模块化应用(规模、性能、可能的问题)
【发布时间】:2020-01-18 02:23:53
【问题描述】:

我目前正在开展一个项目(非常早期),目标是创建模块化应用程序,通过添加新模块可以轻松扩展。模块可以是任何东西,从简单的功能到复杂的插件(功能、用户界面……)。应用程序的核心包含部分,在应用程序的所有配置(登录、设置、一些通用功能)和集成插件的逻辑(如何加载它们、如何以及在何处添加新的 ui 元素、. ..)。我正在使用带有 MVVM 模式的 WPF(自定义 MVVM 框架)。我也在使用 DevExpress。

我做了一些研究,发现了 MEF。这似乎是实现模块化/可扩展性的好方法。我做了一些测试,似乎它可以工作。但是,我还没有找到任何有关 MEF 性能的信息。我有点担心可以使用多少个模块。以免说我会有 40 个模块。 10 个非常简单(单个功能),20 个中等复杂度(例如导出列表到带有某些格式的 Excel),10 个更复杂(具有一些 ui 元素的模块,几个带有可视化的窗口 - 图表,更复杂的逻辑,...)。启动时间会因此受到很大影响吗?应用程序是否可以正常运行,或者这是一个很大的禁忌。与常规应用程序(所有代码都是应用程序的一部分)相比,它在某种程度上是资源密集型(cpu、ram)吗?

我将非常感谢这方面的任何建议(或者如果有其他/更好的方法可以做到这一点)。

【问题讨论】:

  • 如果您使用 DevExpress,我不会担心 MEF :D
  • StackOverflow 是一个提供特定编程问题和答案的站点。这不是一个讨论论坛,所以这个问题对于这个网站来说太宽泛了。

标签: c# wpf mef modular extensibility


【解决方案1】:

您可以尝试使用 Prism 框架。 https://prismlibrary.github.io/

Prism 有四种插入模块的方式:

  • 在代码中注册模块。
  • 从目录加载模块(同样在 需求)。
  • 从 xaml 文件加载模块。
  • 从 app.config 文件加载模块。

现在我在 prism 上有一个包含 12 个模块的应用程序,它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多