我想知道是否有任何架构框架可用于创建桌面或独立应用程序,例如Java或C#。似乎有很多可用于Web应用程序,但我找不到很多关于桌面开发的框架或架构最佳实践的好资源。
理想情况下,我想知道是否有任何桌面应用程序的源代码可以被认为具有良好的体系结构或者是使用某种框架构建的。
答案 0 :(得分:8)
虽然如果您正在为编写良好的项目寻找合适的源代码,但与桌面应用程序没有直接关系,我问了一个类似的问题:
Open source C# projects that have extremely high code quality to learn from.
人们在那里提出了一些很好的建议:
- Scott Hanselman的The Weekly Source Code系列(通常是 管理C#)
- 由Microsoft Patterns & Practices团队撰写的代码。
- SharpDevelop(用C#编写)
- Mono(C#中的大多数框架)
- Paint.Net(用C#编写)
- NHibernate(用C#编写)
- The Castle Project(用C#编写)
- xUnit(用C#编写)
- .Net Framework Source Code
答案 1 :(得分:7)
有一个新的.NET architectural guidance package from Microsoft patterns & practices for WPF that is code named "Prism" - 它基本上是“下一代”复合UI应用程序块(没有SCSF工具)。它使用依赖注入,复合模式等等。
有一个非常好的DNRTV截屏视频演示。
答案 2 :(得分:7)
在轻量级应用程序类别中,JSR 296 for Java(可能是未来的Java 7)是一个处理资源管理和操作等基础知识的框架。这里有很多链接:
向上扩展,您可以查看各种RCP框架,例如:
更新:已经提到(由Mark Reinhold在Devoxx '08),JSR 296将包含在Java 7中。
进一步更新:JSR 296已经死亡。 JavaFX是客户端Java的当前方向。
答案 3 :(得分:6)
检查微软的Smart Client Software Factory。它包含代码示例和文档。
<强>概述强>
该软件工厂提供经过验证的 找到共同挑战的解决方案 同时建造和运营复合材料 智能客户端应用。它有助于 建筑师和开发人员建立 可以构建的模块化系统 由独立团队部署。 使用该软件构建的应用程序 工厂使用经过验证的做法 操作,如集中 异常记录。
软件工厂包含一个 可重用组件的集合和 库,Visual Studio 2008解决方案 模板,向导和扩展, 方法主题,自动化测试, 广泛的架构文档, 模式和参考 实现。软件工厂 使用Windows窗体,Windows Presentation Foundation,Windows 传播基金会,和 企业库3.1 - 2007年5月 发布。有了这个版本, 复合UI应用程序块是 包含在软件工厂中。
答案 4 :(得分:3)
在Java中,裸体对象 - http://nakedobjects.org/home/index.shtml
JMatter - 裸体对象的实现 - http://jmatter.org/。非常好。
它们都是开源的。
答案 5 :(得分:3)
在Java方面,有几个针对Rich Client平台的项目(RCP是'桌面'应用程序的新流行词):
谷歌上述任何一项,你都会获得大量的信息。
答案 6 :(得分:1)
您可以在Web开发中使用的客户端开发中使用一些相同的方法,例如Model View Presenter。 System.Windows.Forms命名空间具有在C#中构建客户端应用程序所需的一切,其余的.NET Framework可用于提供所需的服务(例如IO和远程处理)。
至于桌面应用中可靠架构的源代码,请查看Paint.NET和SharpDevelop的代码。两者都有非常不同的方法,对你来说很有意思。
很抱歉这个回复的.NET倾向。这是我最了解的。 :)
答案 7 :(得分:1)
我会推荐Rockford Lhotka的CSLA .NET框架:http://www.lhotka.net/cslanet/Default.aspx
它将提供完整的源代码以及使用ASP.NET,WinForms和WPF构建的示例客户端应用程序。
答案 8 :(得分:1)
我刚发现Composite Application Guidance for WPF and Silverlight看起来非常有趣。它于2009年2月出版。
答案 9 :(得分:0)
我们在这里开发.NET技术。
我们在这里从事客户端应用程序的朋友将他们的软件开发为通常与Web开发相关的Model View Presenter设计模式。对他们来说,他们发现它运作良好,我相信它可能值得一试。
智能客户端工厂(Panos提到)也可能对您有用,虽然它不是一个框架,而是一个针对常见问题的最佳实践解决方案库。
答案 10 :(得分:0)
具体到ui函数的有组织的表示框架我们一直在使用infonode docking windows,这是一个使用eclipse外观的窗口框架(在任何地方拖动视图,关闭它们,取消它们等等,当然可以换肤)。有开源产品的gpl版本,尽管开发者许可证并不昂贵(每个299美元)。
答案 11 :(得分:0)
检查IdeaBlade的Dotana C#Cabana。 http://www.ideablade.com/CAB.html
Cabana Sample App
Cabana应用程序是一款简单的智能客户端参考应用程序,具有清晰,功能丰富的用户体验,易于在Web上部署和操作。 Cabana演示:
微软模式和组合中的复合UI应用程序块的简单方法实践小组。 通过UI组合维护可重用的代码。 从Presentation中分离模型(业务逻辑和数据访问)。 模型 - 视图 - 展示器模式。 性能调整。 和更多。
答案 12 :(得分:0)
我最近发布了DesktopBootstrap。我尝试分解创建大中型桌面应用程序的许多常见元素。
你可以找到它here。