我目前正在开发一个类似 C# CMS 的 Web 应用程序,该应用程序将用于标准化我们的网站开发。从一开始,我们的想法就是让核心尽可能简单,以避免困扰许多 CMS 系统的复杂性和菜单/选项过载。这个简单的核心现在已经完成并且运行良好。
我们设想系统将能够接受插件或模块,这些插件或模块将扩展核心功能以满足给定项目的需求。这些也可以跨项目重复使用。例如,可能需要基本目录和购物篮。此类扩展的所有代码都应位于单独的程序集中。他们应该能够从这个库中提供自己的管理界面和前端代码。系统应搜索可用插件,并为管理员用户提供启用/禁用该功能的选项。(这都非常像 WordPress 插件)
以正确的方式解决这个问题是至关重要的,所以我试图在加入之前尽可能多地进行尽职调查。
我知道插件模式 ( http://msdn.microsoft.com/en-us/library/ms972962.aspx ) 并阅读了一些关于它使用的文章。这似乎是合理的,但我不相信它一定是这种情况下的正确/最佳技术。它似乎更适合处理应用程序(图像/音频处理、数学等)。
是否有任何其他选项可以实现这种 UI 可扩展性功能?或者插件模式是要走的路?
如果有人链接到解释为此目的使用插件模式的文章,我也会感兴趣?