桌面应用程序:架构框架?

22
我想知道是否有一些架构框架可以用来创建桌面或独立应用程序,例如Java或C#。似乎有大量的框架适用于Web应用程序,但我找不到多少关于桌面开发的最佳实践或架构框架的好资源。
理想情况下,我希望知道是否有任何可用的源代码桌面应用程序,这些应用程序被认为具有良好的架构或是使用某个特定的框架构建的。
13个回答

8

虽然与桌面应用程序没有直接关系,但如果您正在寻找良好编写的项目的优秀源代码,我提出了类似的问题:

开源C#项目,其代码质量极高,可以供学习参考。

人们在那里给出了一些很好的建议:


7

微软模式与实践团队发布了一款名为“Prism”的.NET架构指导包,用于WPF,它基本上是一个“下一代”组合UI应用程序块(不带SCSF工具)。它使用依赖注入、组合模式等。

有一个相当不错的DNRTV演示视频。


7
在轻量级应用程序类别中,Java的JSR 296(可能在未来的Java 7中)是一个处理基础资源管理和操作的框架。这里有很多链接: 稍微扩展一下,您可以查看各种RCP框架,如: 更新:已经提到(由Mark Reinhold在Devoxx '08上)JSR 296将包含在Java 7中。
进一步更新:JSR 296已死。 JavaFX是客户端Java的当前方向。

6

请查看微软的智能客户端软件工厂。它包含代码示例和文档。

概述

这个软件工厂提供了解决构建和操作复合智能客户端应用程序中常见挑战的经过验证的解决方案。它帮助架构师和开发人员构建可由独立团队构建和部署的模块化系统。使用软件工厂构建的应用程序使用针对操作的经过验证的实践方法,例如集中式异常日志记录。

软件工厂包含一组可重用的组件和库、Visual Studio 2008解决方案模板、向导和扩展、操作指南、自动化测试、广泛的架构文档、模式以及参考实现。软件工厂使用Windows Forms、Windows Presentation Foundation、Windows Communication Foundation和Enterprise Library 3.1 - May 2007版本。随着此版本的发布,Composite UI Application Block包含在软件工厂中。


如果你要为公司编写企业桌面应用程序,我建议不要为公司的每一个小需求编写独立的应用程序。编写一个综合性的应用程序并构建一个平台。SCSF也是我的推荐。用户喜欢只在一个地方查看信息。开发人员喜欢拥有可插拔的平台,而且只需要维护/部署一个应用程序。 - Travis Heseman

3

3
在Java方面,有几个旨在为 Rich Client Platforms(RCP是“桌面”应用程序的新热词)构建项目:
  • Eclipse RCP(如果您可以使用 SWT 而不是 Swing)
  • Spring RCP(正在改进为 Spring Desktop)
  • NetBeans RCP(我对此并不特别印象深刻,但正在获得一些关注)
  • JSR 296(应用程序框架)- 我真的很喜欢这个
谷歌上述任何一个,您都可以获取大量信息。

1

在客户端开发中,你可以使用一些跟网页开发相同的方法,比如 Model View Presenter。System.Windows.Forms 命名空间提供了在C#中构建客户端应用程序所需的所有内容,同时 .NET Framework 的其余部分可提供你所需的服务(例如IO和远程调用)。

至于桌面应用程序的稳健架构的源代码,请查看Paint.NETSharpDevelop的代码。它们都采用截然不同的方法,会对你很有帮助。

抱歉如果这个回答偏向 .NET。这是我最擅长的领域。 :)


1

1

0

查看IdeaBlade的Cabana For DotNet C#。

http://www.ideablade.com/CAB.html

Cabana示例应用程序

Cabana应用程序是一个简单而智能的客户端参考应用程序,具有清晰、功能丰富的用户体验,易于通过Web进行部署和操作。 Cabana演示了:

Microsoft模式和实践小组的复合UI应用程序块的简易方法。 通过UI组合实现可维护、可重用的代码。 将模型(业务逻辑和数据访问)与呈现分离。 模型-视图-控制器模式。 性能调优。 等等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接