从Web开发转向桌面开发
我已经做了两年的网页开发(用php、symfony和doctrine),最近有个朋友让我帮他做一个桌面应用。我为他开发了一个项目,并在他的电脑上安装了LAMP(一个开源的网页开发环境),现在他用得挺开心的。但我自己却不太满意,因为在本地服务器上等待响应总觉得不太对劲。显然,php不太适合做桌面应用。那么,我想问问,如果一个php程序员想开发一个桌面应用(就是可以安装的,有自己界面的,但又能用到网页应用的类似概念,比如css、javascript和orm),你们推荐用什么语言或框架呢?
我想提到Python作为一个可能的答案。有没有人有用Python开发桌面应用的经验,特别是用到ORM和(或)基于HTML的界面?
5 个回答
也许可以看看Adobe AIR?你可以查看他们的示例应用程序。如果你不想使用“专有”的技术,可以看看HTML5的一些技术,比如Web Storage和Web SQL(虽然Web SQL不在HTML5的规范中)。这些技术完全是在客户端使用的(不过也可以扩展到网络上使用),所以你不需要等服务器。
我不太清楚Web SQL的能力和使用难易程度,但市面上确实有一些不错的AIR应用。
从本地服务器等待响应感觉就是不对劲。
没错!你有没有对你的应用进行性能分析,看看服务器端和浏览器端的表现?本地网页应用没有理由会慢,除非它的设计或实现有问题。桌面应用也是一样,虽然一般来说更难开发。
所以,赶紧打开你的Firebug,给你应用发出的每个数据库查询做个explain plan
,再加上你PHP设置允许的任何性能分析,看看问题出在哪里。很可能,问题不在于你选择的编程语言。
你绝对应该使用Python。它非常棒,入门简单,而且功能强大。
utilizing an ORM and(or) HTML-based GUI
请不要这样做。HTML有它的用途,但不适合桌面应用程序。请不要把你的经验强加到新技术上。
你应该看看各种Python的图形用户界面框架,比如Tkinter、PyQt(我更喜欢这个)或者GTK。