【问题标题】:C# Pluggable Architecture, Consideration for a dissertation [closed]C# 可插拔架构,一篇论文的考虑 [关闭]
【发布时间】:2011-11-27 00:55:03
【问题描述】:

我正在撰写一篇软件工程论文,其中我将作为一名牙科诊所的客户为其开发软件。客户端有需求问题,当前软件不断通过补丁升级。

我试图争论底层需求是不好的想法,并开发一种能够适应变化的新软件。我还希望该软件具有通用性,以便可以将其部署到各种牙科诊所,这些诊所可以对其进行自定义以切换特定功能。

我的想法是将每个功能都视为一个插件。这样,应用程序应该简单地托管已启用的插件,并且可以打开/关闭它们,并单独升级,而无需对应用程序进行硬更改。

如果您能帮助我解决以下问题,我将不胜感激:

这是一个好方法吗? 是否已经有一个 .NET 框架可以很好地满足这一需求? 有什么我应该注意的重大问题吗?

对不起,我很抱歉得到了任何回应。 非常感谢 迈克

【问题讨论】:

  • 这可能会因为 SO 的题外话而被关闭,但无论如何 +1 :)
  • 同意这是对 SO 的 OT。如果您将其迁移到程序员 SE,我相信您会得到更好的答案。
  • 抱歉,以后会多考虑的,谢谢。编辑:对不起,我不知道我是否可以自己迁移?我是否需要一定程度的声誉才能关闭它?

标签: c# .net plugins frameworks components


【解决方案1】:

在过去的几年里,我在应用程序中使用过 HTML、WinForms、ASPX、WPF、WCF、Web 服务、Silverlight、PRISM、MEF,我个人的选择(考虑到对新项目没有限制)是:

  • WPF 或 Silverlight(更新:我会更倾向于 WPF,因为 Silverlight 不再受到广泛支持)
  • WCF 服务
  • 像 PRISM(现在包括 MEF)这样的模块化框架

PRISM 是最大的收获,因为您构建的组件真正是松散耦合的,并且可以独立开发模块,而无需开发人员破坏彼此的代码。

【讨论】:

    【解决方案2】:

    对于像牙科诊所这样的特定事物,希望您能够在通用插件框架之上构建一个层。

    插件及其容器应该专门用于该领域。确定该专业化应该是什么的最佳方法是列举几个适合该软件的插件,识别它们之间的共同点并在您的框架中抽象/表示它们。

    我知道这不是很具体,但希望有点用处。

    【讨论】:

      【解决方案3】:

      我知道 MEF 是 MS 推荐的可插拔应用程序框架,但也许某些 IoC 框架也可以帮助您。 MS 推荐 Unity(根据 Microsoft Patterns and Praciticies 开发)unity on codeplex

      【讨论】:

        【解决方案4】:

        Managed Extensibility Framework 内置于 .NET 4.0 中,可从 CodePlex 作为早期版本的 dll 获得。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-08-17
          • 1970-01-01
          • 2016-05-30
          • 2014-09-29
          • 1970-01-01
          • 2014-01-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多