我正在开发一个服务器端应用程序,它应该根据模块是否作为程序集存在而在启动时动态加载模块。我以前做过类似的事情,但这次是生产代码,我想使用框架进行模块化和实例化(使用 IoC 容器)。我最初发现 Microsoft 的 Prism(带有 Unity)是执行此操作的合适框架,但随着我实现初始化和引导,我越来越担心。服务器将没有自己的 GUI,并且可能会在以后作为 Windows 服务运行。 (同时,我将其开发为一个简单的控制台应用程序。)将开发各种客户端(每个模块大约一个客户端应用程序)以通过 WCF 与服务器交互。
我是否应该为这样的应用程序使用 Prism,因为它似乎非常适合支持 GUI 的应用程序?我在使用基类 Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper
时停止编码,这需要实现 CreateShell()
方法。我有点希望它被命名为 Run()
或类似的名称。我真的没有 shell,或者至少没有 GUI shell。我是否对此读了很多书,使用 Prism 而不必担心它具有潜在的冗余 GUI 功能是否有意义?我是否使用了正确的工具来完成工作?
最佳答案
我想你已经知道答案了。 Prism 用于客户端应用程序。即使您在您的服务器环境中实现了此功能,也会有很多框架妨碍您。您确实想使用 IoC 容器,并且您已经为此使用了 Unity(Prism 默认使用 Unity)。我的建议是,放弃 Prism,开始使用 Unity 连接一切。动态加载程序集非常容易。您不需要仅用于加载程序集的臃肿框架。
关于c# - Microsoft Prism 是否适合开发非 GUI 模块化实时服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18353608/