繁体   English   中英

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

[英]Desktop Applications: Architectural Frameworks?

我想知道是否有任何架构框架用于创建桌面或独立应用程序,例如Java或C#。 似乎有很多可用于Web应用程序,但我找不到很多关于桌面开发的框架或架构最佳实践的好资源。

理想情况下,我想知道是否有任何可用的桌面应用程序源代码可以被认为具有良好的体系结构或者使用某个框架构建。

虽然与桌面应用程序没有直接关系,但如果您正在为编写良好的项目寻找合适的源代码,我会问一个类似的问题:

具有极高代码质量的开源C#项目可供学习。

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

有一个来自Microsoft的WPF模式和实践的.NET架构指南包,代码名为“Prism” - 它基本上是“下一代”复合UI应用程序块(没有SCSF工具)。 它使用依赖注入,整个复合模式等。

有一个非常好的DNRTV截屏演示它。

在轻量级应用程序类别中,JSR 296 for Java(可能是未来的Java 7)是一个处理资源管理和操作等基础知识的框架。 这里有很多链接:

扩大一点,你可以看看各种RCP框架,如:

更新:已经提到(由Mark Reinhold在Devoxx '08),JSR 296将包含在Java 7中。

进一步更新:JSR 296已经死亡。 JavaFX是客户端Java的当前方向。

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

概观

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

该软件工厂包含一组可重用的组件和库,Visual Studio 2008解决方案模板,向导和扩展,操作方法主题,自动化测试,广泛的体系结构文档,模式和参考实现。 该软件工厂使用Windows窗体,Windows Presentation Foundation,Windows Communication Foundation和Enterprise Library 3.1 - 2007年5月发行版。 在此版本中,Composite UI Application Block包含在软件工厂中。

在Java中,Naked Objects - http://nakedobjects.org/home/index.shtml

JMatter - 裸体对象的实现 - http://jmatter.org/ 非常好。

它们都是开源的。

在Java方面,有几个针对Rich Client平台的项目(RCP是“桌面”应用程序的新术语):

  • Eclipse RCP(如果你可以使用SWT而不是Swing)
  • Spring RCP(正在进入Spring桌面的过程中)
  • NetBeans RCP(我对此并不是特别印象深刻,但这有点牵强)
  • JSR 296(应用程序框架) - 我其实非常喜欢这个

谷歌上面的任何一个,你会得到大量的信息。

您可以在Web开发中使用的客户端开发中使用一些相同的方法,例如Model View Presenter。 System.Windows.Forms命名空间具有在C#中构建客户端应用程序所需的一切,其余的.NET Framework可用于提供所需的服务(例如IO和远程处理)。

至于桌面应用程序中可靠架构的源代码,请查看Paint.NETSharpDevelop的代码。 两者都有非常不同的方法,对你来说很有趣。

对不起这个回复的.NET斜面。 这是我最了解的。 :)

我推荐Rockford Lhotka的CSLA .NET框架: http ://www.lhotka.net/cslanet/Default.aspx

它将提供完整的源代码以及ASP.NET,WinForms和WPF内置的示例客户端应用程序。

我刚刚找到了WPF和Silverlight复合应用指南 ,看起来非常有趣。 它于2009年2月发布。

我们在这里开发.NET技术。

我们在这里从事客户端应用程序的朋友将他们的软件开发为通常与Web开发相关联的Model View Presenter设计模式。 对他们来说,他们发现它运作良好,我相信它可能值得一试。

智能客户端工厂(Panos提到)也可能对您有用,虽然它不是一个框架,而是一个针对常见问题的最佳实践解决方案库。

特别是对于ui函数的有组织的表示框架,我们一直在使用infonode对接窗口 ,这是一个使用eclipse外观的窗口框架(在任何地方拖动视图,关闭它们,取消它们等等,当然可以换肤)。 有开源产品的gpl版本,尽管开发人员许可证并不昂贵(每个299美元)。

我最近发布了DesktopBootstrap。 这是我尝试分解创建中型到大型桌面应用程序的许多常见元素。

你可以在这里找到它。

检查IdeaBlade的Dotana C#Cabana。 http://www.ideablade.com/CAB.html

Cabana Sample App

Cabana应用程序是一个简单的智能客户端参考应用程序,具有清晰,功能丰富的用户体验,易于部署和在Web上运行。 Cabana演示:

从Microsoft的模式和实践组中轻松获取复合UI应用程序块。 通过UI组合维护可重用的代码。 从Presentation中分离模型(业务逻辑和数据访问)。 模型 - 视图 - 展示器模式。 性能调整。 和更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM