xunwap

专注移动互联网服务

正在浏览 Windows GUI 里的文章

做windows下面的GUI应用程序开发,设计并实现一个好的GUI界面是非常重要的。一个好的用户界面能给用户在视觉上带来非常好的体验;同时一个好的界面库也能简化界面的开发,同时实现理想的界面效果。

常见的Windows界面库包括: MFC,Qt,wxWidget,WTL。
MFC: 这算得上是老牌的C++界面库了。由Microsoft开发维护,历经十多年发展,与VisualStudio系统集成。直接对Windows原生的API进行封装,所以效率较高。不过由于MFC设计的初期技术因素的限制,在今天看来,MFC类库在整体上框架设计并不是十分优秀,在类库的易用性上也不够友好,为了实现一个基本的界面功能,可能要使用大量的tricks。同时MFC的入门门槛比较高。不过MFC长期发展所积累的文档资料和开发社区是十分重要的资源,有助于解决大量问题。如果仅仅是做Windows平台上的GUI开发,并且对界面的要求不是太高,那么使用MFC是一个不错的选择。

Qt: 号称是当前最优化的C++GUI库,具有跨平台特性,使用Qt开发的著名应用有:Google Earth,Adobe Reader…
同时Qt框架设计优良,易用且功能强大,如果要做跨平台的GUI开发,同时对界面要求较高,那么Qt是最优的选择。不过对于Qt相对于MFC有一个问题就是:版权问题。Qt分开源免费版和商业版。即如果使用Qt开发免费的开源软件,那么Qt是免费的;如果使用Qt开发商业的应用程序,那么是需要交Qt授权费的。

wxWidget: 一个界于 MFC 和 Qt 之间的GUI库,同样具有距平台特性,但总体功能不如Qt强大。wxWidget相对于Qt的好处在于,wxWidget是完全免费的,你可以使用它开发商业软件而无需交纳授权费用。

WTL:可以称作一个精简版的MFC,对Win32 API进行了封装,功能不如MFC强大,但是类库体积更小,依赖性更少。WTL是一群技术人员开发的类库,所以技术支持和文档方面
都不好MFC,Qt优秀,如果想在Windows下面开发体积更小的GUI应用程序,那么WTL是不错的选择。

本站原创文章,转载请注明出处。

不管互联网如何发展,传统的基于桌面的本地GUI应用程序都是不可取代的。当前的云计算似乎有将所有的服务转移到”云端的服务器来完成”这种趋势,于是有就不少网站,媒体炒作”传统的桌面应用程序将被取代甚至消失”,明白人都知道这只是炒作,为了吸引眼球而已。原因很简单,不是所有的应用程序都可以搬到云端实现,比如游戏,好的游戏都需要大量的图形运算来完成游戏的显示,而这种图形计算必须借助于PC上的显卡来计算和显示。也不是所有的应用程序都适合搬到云端,比如类似于office的办公软件,云计算无法离开网络而存在,没有了网络,云计算也就失去了意义。一个最基本的事实,并不是任何一台PC机都可以在任何时候访问网络,所以,如果把office作为”云计算”来实现,那么当你的PC不能接入网络但又需要使用office时,你又该怎么办?
所以,云计算与本地的应用程序是相辅相成的关系,而不是谁要取代谁。如果一个应用程序适合作为”云计算”来实现,那就作为云计算来实现;如果一个应用程序不适合作为云计算来实现,那就作为本地化的应用程序来实现。

当前以Ubuntu为代表的Linux桌面正在快速发展。但是不管Linux桌面如何发展,它都很难对Windows产生影响,更不要说会”打败”Windows。不管Linux桌面如何进步,始终只有那少得可怜的市场份额,但是为了这点市场份额,它却消耗了开源社区太多的资源,完全的得不偿失。如果把这些资源集中发展Linux服务器版本的开发,那么现在的Linux服务器的质量和份额要好很多。对于开源社区的发展,我的看法是:合理使用有限的资源,做最擅长的事情。

为什么Linux桌面不可能有好的发展?原因很简单,Windows经过这么多年的发展已经形成了一个由硬件,软件,用户以及开发商组成的”生态系统”。形容得更贴切一点,现在的Windows桌面操作系统就是一个以Windows为核心的”航母战斗群”,Linux桌面拿什么和它挑战?

有太多太多的硬件,软件厂商都把自己的利益和Windows牢牢地绑定在一起。没有广大商业软件厂商的支持,单凭开源社区的力量无法为最广泛的桌面操作系统用户提供大量最简单易用,服务支持优秀的软件。一个简单的例子,大量的游戏厂商根本就不考虑支持Linux系统,这样一来,作为桌面操作系统的Linux就会缺少被大量用户需要的游戏娱乐功能(不要期望桌面用户都是Geek),这样又怎么能吸引普通的用户。

没有广大硬件厂商的支持,大量的硬件都无法在Linux下发挥最好的效果,以至于在Linux下无法使用。例如,大量的优质显卡就无法在Linux下发挥最大的效能…

不管Server端的技术和功能如何发展,作为Server端服务与用户交互的载体之一的”桌面应用程序”始终是不可替代的角色,本站后续会推出大量关于”桌面应用程序”开发的文章。

本站原创文章,转载请注明出处。