c#可插拔架构,论文考虑
本文关键字:文考虑 | 更新日期: 2023-09-27 18:09:52
我正在写一篇软件工程论文,我有一个牙科诊所的客户,我将为他开发软件。客户端有需求问题,当前软件通过补丁不断升级
我试图论证底层需求不好的想法,并开发一个能够适应变化的新软件。我还希望这个软件是通用的,这样它就可以部署到各种牙科诊所,他们可以定制它来切换特定的功能。
我的想法是考虑每个功能作为一个插件。这样,应用程序就可以简单地托管启用的插件,它们可以被打开/关闭,并且可以单独升级,而不需要对应用程序进行硬更改。
如果您能帮助我解决以下问题,我将不胜感激。
这是一个好方法吗?是否已经有一个。net框架很好地满足了这一点?有什么重大问题需要我注意吗?
对于那些大的介绍家伙,我很抱歉,我感谢我得到的任何回应。非常感谢迈克
托管可扩展性框架内置于。net 4.0中,并且可以从CodePlex作为早期版本的dll获得。
我知道MEF是MS推荐的可插拔应用程序框架,但也许一些IoC框架也可以帮助您。MS推荐的是Unity(在Microsoft Patterns and practices下开发)Unity on codeplex
在过去的几年里,我用过HTML、WinForms、ASPX、WPF、WCF、Web service、Silverlight、PRISM、MEF作为应用程序,我个人的选择是(如果对新项目没有限制):
- WPF或Silverlight(更新:我会更倾向于WPF,现在Silverlight不再被广泛支持) WCF服务像PRISM这样的模块化框架(现在包含MEF)
PRISM是最大的好处,因为您构建的组件真正是松散耦合的,模块可以独立开发,而不需要开发人员破坏彼此的代码。
对于一些特定的东西,比如牙科诊所,希望你能够在通用插件框架之上构建一个层。
插件及其容器应该针对该域进行专门化。确定专门化应该是什么最好的方法是列举几个适合这个软件的插件,识别它们之间的共同之处,并在您的框架中抽象/表示它们。