Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模块化应用(规模、性能、可能的问题)_C#_Wpf_Mef_Modular_Extensibility - Fatal编程技术网

C# 模块化应用(规模、性能、可能的问题)

C# 模块化应用(规模、性能、可能的问题),c#,wpf,mef,modular,extensibility,C#,Wpf,Mef,Modular,Extensibility,我目前正在进行一个非常早期的项目,目标是创建模块化应用程序,通过添加新模块可以轻松地进行扩展。模块可以是任何东西,从简单的功能到复杂的插件功能、ui等等。。。。应用程序的核心部分包括应用程序登录的所有配置、设置、一些通用功能以及集成插件的逻辑(如何加载插件、如何以及在何处添加新的ui元素等)中相同的部分。。。。我正在使用WPF和MVVM模式自定义MVVM框架。我也在使用DevExpress 我做了一些研究,发现了MEF。这似乎是实现模块化/可扩展性的好方法。我做了一些测试,它似乎可以工作。然而,

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

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


我非常感谢您在这方面提供的任何建议,或者是否有其他/更好的方法来做到这一点

您可以尝试使用Prism框架。

Prism提供四种方式来插入模块:

在代码中注册模块。 从目录加载模块也在 需要 从xaml文件加载模块。 从app.config文件加载模块。
现在我在prism上安装了12个模块的应用程序,它运行良好。

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