Microsoft(或其他软件生产商)桌面应用程序的设计模式

时间:2009-08-10 14:57:15

标签: design-patterns

这个问题类似于

  1. What is the most common design patterns for any windows forms application?
  2. UI Design Pattern for Windows Forms (like MVVM for WPF)
  3. 但我想问一些更具体的问题:我想知道微软用什么设计模式来构建他们令人印象深刻的桌面应用程序套件,包括VS 2008,Microsoft Office等。

    任何人都有任何想法?我环顾四周,但最多只能找到模糊的细节。在这方面似乎没有很多信息。

    编辑:好的,也许我会稍微放松一下这个问题:任何人都知道主要软件生产商(不仅仅是微软)是如何构建他们的桌面应用程序的?

6 个答案:

答案 0 :(得分:1)

对于Windows窗体应用程序,我建议您试用复合UI应用程序块(CAB),您可以在MS站点中找到大量信息。实践。我自己并没有这样做,因为我主要是开发Web应用程序,但我有一些同事一直在使用它并且真正推荐它。更多信息herecodeplex

如果您的目标是WPF应用程序,那么CAB就不那么好了。你最好看看什么叫做PRISM。我可以解释一下,为什么在WPF应用程序中PRISM比CAB更好,但是在互联网上已经有一个非常好的解释,你可以找到here以及codeplex

这两种'解决方案'都是由Microsoft Patterns& amp;实践团队,可以在CodePlex找到......所以我认为这是一个很好的方法!

答案 1 :(得分:1)

您可能希望通过Rob Pierry

查看有趣的文章 MSDN杂志中的

Discover the Design Patterns You're Already Using in the .NET Framework

在.net中进行编程时,几乎每天都会使用Iterator,Observer,Decorator,Adapter,Strategy,factory等一些模式。

答案 2 :(得分:0)

嗯,在我谦逊的经历中,我已经看到并使用了一种名为PAC的东西:

演示文稿 - 抽象 - 控制

两个主要想法是:

  • 去除演示文稿(ui 渲染/用户事件)来自 抽象(你的处理:数据 访问,对象模型,硬件,IO, ...)通过使用控制器 管理这两者之间的联系 份。
  • 管理层次树 代理商所在的代理商 演示模块,抽象 模块和控制器模块。

在具体实现中,Presentation模块将低级UI事件转换为应用程序事件,控制器将事件流管理到更高级别。有些事件发送给某个经理,他们将它们分发到应用程序的处理部分(抽象)。

这样:

  • UI部分与之完全分开 处理/抽象部分。 您可以更改UI,使用GUI和 文本UI,TCP / IP命令UI,......
  • UI的层次组织 代理映射到您的UI元素 你可以重复使用许多不同的 的应用程序。

当然,许多其他模式都在使用,但这个主要架构是重用UI模块以及处理/业务模块的关键。

编辑:

我检索了一篇关于UI架构的精彩文章,比较了不同类型的架构,包括PAC:

<强> a must read for UI/application architect

答案 3 :(得分:0)

在Mac OS X上,Cocoa Web框架的设计强调了模型 - 视图 - 控制器方法的使用。我认为Apple在构建大多数应用程序时可能会使用MVC,而且大多数Mac开发人员似乎都使用相同的方法。但是,很难说,因为我无法访问Apple大多数应用程序的源代码。

答案 4 :(得分:0)

Gang of Four book中的设计模式都来自于检查实际软件应用程序并查看使用了哪些常见解决方案。我猜想书中提出的模式也被普遍化,对一般人群更有用。

鉴于这一事实,我希望任何中型或大型应用程序都至少包含少数几个模式或变体。

答案 5 :(得分:-1)

我不认为所有Windows(甚至大多数)桌面应用程序都会(或应该)使用一组设计模式。

虽然在服务器应用程序中大量使用的某些模式可能并不常见,但设计模式的使用会回到每个程序的预期用途。