linux下GUI设计模式的有效性

时间:2010-05-01 21:11:02

标签: python ruby linux design-patterns mvvm

我正在研究从Windows到Linux的转换,我很难找到在这个世界中应用的设计模式样本。

该应用程序是一个典型的客户端服务器,每个业务实体都有详细的表单 它将接受用户输入,进行一些验证检查,一些计算,并将它们保存到数据库中 它还将包含总结实体的列表,以及这些实体之间的搜索 单击这些列表中的一个项目将打开已详细的表单。

如果我使用python或ruby,我应该使用什么GUI?
什么模式:MVC,MVVM或MVP有什么用呢? 还是有什么更好的?

注意:我从未完成过web开发,我想避免同时学习linux和web开发。

5 个答案:

答案 0 :(得分:4)

当你使用Python时,请查看Qt(Python绑定可供选择:PyQtPySide)。 Qt是一个非常好/功能完整/成熟的跨平台GUI库(也可以做其他一些事情)。

就Python绑定而言,PyQt目前是GPL 商业广告/ PySide是LGPL(如果许可证重要)。

您所说的这些“模式”(MVC,...)可以跨平台应用。什么是最合适的,取决于你正在写什么类型的应用程序。

答案 1 :(得分:2)

鉴于您如何在评论中解释您的应用程序,同时完全支持Qt,我还建议您考虑使您的应用程序成为Web应用程序的许多优势。

由于您说它是客户端 - 服务器应用程序,它至少需要(至少)本地网络连接,因此通常针对Web应用程序提出的第一个异议无效。

第一个巨大的优势是你不会选择一个客户端平台而不是另一个 - 只需支持现代的跨平台浏览器,如Firefox或谷歌的Chrome,你的客户将能够选择他们的任何客户端平台更喜欢(如果您还仔细检查Safari上的应用程序,它通过Webkit框架与Chrome有很多共同的渲染逻辑,那么您的网络应用程序也可以在iPad上使用)。

第二个重大胜利是您的应用程序不需要在客户端上进行任何“安装” - 它将始终准备就绪。

现代Javascript框架(例如jQuery,Dojo,Closure,...)允许在需要时进行大量交互,支持使用UI小部件和GUI构建GUI,并代表您顺便处理大多数跨浏览器差异。在服务器端,使用Ruby或Python(或其他语言),您甚至可以找到与客户端Javascript资源平滑集成的框架。

哦,并且,运行应用程序所需的计算资源(例如RAM,CPU电源,磁盘空间......)在服务器或小型服务器上“批量”更便宜,因此可以共享那些在特定时间活跃的客户,而不是分散在许多客户身上(包括许多在任何时候都不会活跃的客户; - )。

实际上,在我看来,今天几乎没有什么可以推荐当你重新开发本地GUI应用程序,除了可能需要在所有连接中切断时运行(甚至在那里,使用HTML5等,浏览器在为这些应用程序授权方面取得了很大进展。)

答案 2 :(得分:1)

目前Linux中的两个主要UI工具包是Qt和GTK +。 Qt被KDE桌面广泛使用,而GTK +被Gnome广泛使用。但是Qt应用程序将在Gnome中运行,反之亦然。这两个工具包都绑定了大量语言。

答案 3 :(得分:0)

设计(或架构)模式与目标编程语言或操作系统无关。如果你能看到你的要求将由一个模式提供的某些解决方案来满足并且后果将是好的,那么你可以使用该模式。如果您要求MVC,MVP,MVVM等查看他们解决的那些模式和问题,如果它是您应用程序所需的,请使用它们。

答案 4 :(得分:0)

您可能需要查看Mono。它基本上是跨平台的.NET。您可以编写一次应用程序并在Windows或Linux上运行它(并轻松将其移植到Android或iOS)。如果您想专注于MVVM模式,您还可以查看Silverlight的开源版本Moonlight。利用.NET将使迁移到Web应用程序框架变得更加容易。您可以在Windows,Linux或Mac上进行开发。

如果您需要数据库访问,并且将使用.NET,我建议使用dblinqMySql后端。