我正在花这些假期学习编写Qt应用程序.几个小时前我正在阅读有关Qt Designer的内容,这让我想知道:人们在Qt中编写真实世界的应用程序用于设计他们的GUI是什么?事实上,人们如何设计GUI一般?
我,其中一个,发现手工编写代码在概念上比使用Qt Designer更简单,尽管对于复杂的GUI,Designer可能有意义.使用Designer可以实现大型GUI,但随着时间的推移,随着复杂性的增加,它们可能变得非常难以管理(这只是我的意见).我还下载了AmaroK源代码,看看那些人在做什么,并发现很多调用addWidget()和朋友,但没有一个由Designer创建的XML文件(除了:AmaroK必须是我最喜欢的应用程序)任何平台).
那么,创建GUI的"正确"方式是什么?设计师还是代码?在本次讨论中,让我们考虑以下类型的GUI:
我们都知道这个练习:你有一个(小)模型,你需要坚持它,你需要一个UI(网络,桌面,移动,一些前者,所有这些).
这是一个重复的过程,我不禁想知道为什么我们仍然坚持使用POJO,OR映射器和手工编写UI(因为大多数UI"设计者"甚至不知道继承,你需要构建每一个从头开始确定/取消具有多个字段的对话框).RAD工具/平台承诺解决这个问题,但我还没有看到任何真实的东西.这个wiki的想法是收集所有工具,让你在几分钟内充实一个想法并从那里构建.简单的事情(比如为模型创建一个简单的UI或将其保存在数据库中)应该很简单.将一个相当复杂的对象附加到一个对话框来编辑它应该需要一行或更少的代码;)
所以接下来是挑战:什么RAD工具允许在8小时内构建一个小应用程序.为了让您了解它应该能够做什么,这里是规范:
你有"知识"节点.每个这样的节点都附有名称和长描述(单行和多行字符串)
每个知识节点可以具有任意数量的知识节点作为子节点(1:*排序的父/子关系).子节点需要维护顺序(即使用列表,而不是一组)
每个知识节点都可以附加任意数量的标签(1:*不同类型之间的无序关系)
任何两个知识节点都可以连接任意数量的关系(n:m关系)
应该可以轻松地从/作为XML加载/保存模型,也可以从数据库加载/保存模型
用户期望今天撤消/重做
UI应提供标准操作:创建,重新排序和删除知识节点.重新排序应该使用drag'n'drop.它应该允许从知识节点添加/删除标签.应该有一种通过关系连接两个知识节点的简单方法(比如通过在特殊模式下拖动另一个节点).
UI还应允许搜索具有特定标签或关系的节点.对于奖励积分,它应该提供一种导航关系图的简单方法.
还有挑战吗?像往常一样,OSS更喜欢.
背景:我正在开发软件超过25年.尽管如此,这个简单的应用程序需要花费几周甚至几个月来编写我迄今为止遇到的任何语言:Groovy,Java,Python,Tcl/Tk,Grails,OpenOffice,MS Access,TreeLine,[TurboGears] [10], [Enthought Traits] [11] ,. net.
关于竞争者的一些反馈.请注意,我尝试在一个句子中突出显示要点,所以下一节用一粒盐,好吗?
Groovy Nice语言,紧凑的代码.关闭但缺乏UI部门.他们正在努力,但只是没有.对于持久性,只有Java序列化开箱即用.
Java Java在十年前推出时非常棒,但它并没有发展那么多.它是一种具有大量库的老化语言,但您只需要太多代码就可以完成任务,每行代码都需要时间来编写.
Python几乎可以满足它的所有需求,但由于某些原因,它从未像Java一样成为主流.使用PyQt4获得了一个很好的UI设置,这是一个很酷的OR映射器与SQLAlchemy但是,我们仍然没有看到它将油门拉到全速前进.只有随着单元测试的出现,编写更大的项目变得可行.任务水平太低.
Tcl/Tk Nice小部件设置但是当代码大小超过某个点时语言很糟糕.显示它的年龄.
OpenOffice从2.0开始,OO带有内置数据库和"类似访问"的工具.它还处于起步阶段,但它们最终会到达那里.无法处理父/子关系,因为UI不允许指定它们(请参阅bug).3.1中修正.使用3.1,您可以创建模型,但UI仍然需要花费大量时间编写.
MS Access几乎我们需要的任何东西,但UI选项非常有限.令人沮丧.
TreeLine没有办法实现关系,并且对大多数其他用例来说太过限制(你根本无法用它做太多其他事情)
.net我没有这方面的经验,主要是因为它只是Windows.我认为这个可能非常接近,但我们要面对它:锁定四分之一的人类有什么意义?
我应该使用哪些平台和工具进行快速游戏开发和原型设计?
假设我有一个想要尝试的简单游戏或游戏机制的想法,有哪些最好的工具可以快速创建可玩的东西,我可以尝试试用这个想法?
该平台不一定非常容易学习,这不是问题,但一旦掌握,就必须快速使用.
我最近发现,在经历了Morrison的案例研究后,salesforce.com不仅仅是一个在线CRM ,他们开发了一个工作管理应用程序.我一直在试图在平台上重新创建我们自己的Works Management系统.
我的背景是微软和.Net,显而易见的第一选择是asp.net.然而,我真的只有.net经验,而我的经理有更多传统的Synergy编程背景,我自学成才,正在考虑评估其他RAD选项(例如Ironspeed).
业务的性质是主要的2-5个并行建筑类型合同,每个合同运行3 - 5年,每个合同需要15-50个系统用户.传统上我们使用基于角色的Works Mangement系统来处理所有事情,并为每个合同调整它.面对它的Salesforce许可模式适合这种灵活性,但我担心开发灵活性/学习曲线以及围绕锁定的所有问题.网站上的平台似乎没有太多中立的清醒分析,而不是salesforce自己的材料/博客
与更"传统"的.Net路线相比,有没有人在salesforce上开发应用程序的经验?
什么以及为什么.apt_generated文件夹是在Eclipse或RAD工作区内的Web项目中创建的?
是否有C++脚本语言(如perl)可用于快速开发并使用一些可转换为C/C++程序的工具以获得更高的部署性能?
编辑:
根据一些评论,让我澄清一下这个问题.我应该能够将脚本转换为C/C++程序或二进制文件,而无需修改我的脚本.
我有一个项目,我刚刚从CVS导入.它在几十个其他开发人员IDE中工作,但就我而言,它报告了一个问题:
CHKJ3000E: WAR Validation Failed: com.ibm.etools.j2ee.commonarchivecore.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml
Run Code Online (Sandbox Code Playgroud)
谷歌搜索这表明它是Eclipse加载上下文的方式的问题.对于某些用户,清理项目是有效的.它不适合我.
关于我接下来可以尝试解决它的任何想法?
我倾向于在很短的期限内做很多项目,并且有很多代码永远不会再次使用,所以总是有压力/诱惑偷工减料.我总是坚持的一个规则是封装/松耦合,所以我有很多小班而不是一个巨大的上帝班.但我还有什么不妥协的呢?
更新 - 感谢您的好评.很多人都建议进行单元测试,但我认为这并不适合我所做的UI编码.可用性/用户验收测试似乎非常重要.重申一下,我在谈论针对不可能的截止日期项目的编码标准的BARE MINIMUM.
我已经被给了很短的时间(约80小时开始)用完整的SQL + Web系统替换现有的Access数据库,我正在枚举我的选项.我想使用ASP.NET MVC,但我不确定如何在短时间内有效地使用它.
对于数据库后端,我将使用Linq to SQL,因为它是我已经知道的产品,可以快速使用它.
有没有人有这种方式使用ASP.NET MVC的经验,可以分享一些见解?
编辑:我对ASP.NET MVC感兴趣的原因是因为我知道(100%确认)在第一轮之后还有更多的工作要做,我希望我的维护工作尽可能简单.根据我的经验,尽管有纪律,但Webforms应用程序往往会因重复维护而崩溃.
也许有中间立场?对我来说,使用Webforms构建应用程序有多困难,然后在我有更多时间预算到项目时将其迁移到MVC?
编辑2:进一步背景:我正在更换的Access应用程序被大楼中的每个人以某种身份使用,并且自从它从Access 98升级到2003以来它每天都在崩溃,导致数小时的生产力损失,因为人们必须重新自上次备份后输入数据.这就是短时间的原因 - 这是一项关键的业务功能,他们无法负担每天重新输入数据的费用.
你有什么经验与视觉的LightSwitch的Beta2的?它可以用于现实生活中的项目吗?有人知道,最终的(RTM)版本何时会出来?我非常希望将来使用Lightswitch用于RAD,但如果该工具足够灵活以满足我的个性化要求并且可以使用自己的代码扩展 Lightswitch解决方案,那么我就会有点自我意识!可以与"普通"Silverlight混合使用吗?
rad ×10
.net ×2
c++ ×2
eclipse ×2
war ×2
asp.net-mvc ×1
c ×1
c# ×1
ear ×1
java ×1
java-ee ×1
oop ×1
prototype ×1
qt ×1
qt-designer ×1
salesforce ×1
scripting ×1
silverlight ×1