在这样一个移动当道的年代,我跟大家讨论Windows客户端开发,似乎有些倚老卖老的意思了。然而我却觉得无论什么时候,Windows客户端开发其实还是有着不少实用经典的技术的。对了,确切说我是要说说Windows C++客户端开发,什么WinForm,WPF,并不在讨论范围之内,我承认用.NET ,C#做Windows客户端对开发人员来说确实是件轻松愉快的事,但是因为这些技术由于种种原因(主要还是效率问题)在经典的Windows客户端程序采用的少之又少,所以我打算把他们略过。
我并不是什么微软技术的狂热者,但是因为从毕业开始就选择了微软这条路,所以一直以来接触的都是以微软的技术居多,所以可以说我从一而终,当然也可以认为我认知狭隘,这都随您怎么看了。
微软的这些技术,用的人很多,恨的人更不在少数,现在依然有不少人一听说微软帝国日落千丈就欢欣鼓舞。但是无论你怎么样讨厌他,排斥他,你也无法改变一个事实:Windows始终是有史以来最成功的商业操作系统,围绕这个OS建立的生态圈,改变了数以亿计平凡人的生活,这其中不仅仅有像我这样的Windows开发人员,还包括了我们的Windows程序的用户,这个世界许许多多人都经历着由于Windows和微软帝国的崛起而对他们的生活带来的巨大改变,这是铁的事实,类似什么“垃圾”,“无用”之类的词藻在这一事实面前其实根本都是苍白无力的。
通常所说的Windows开发并不是如字面上表述的那种所有在Windows平台上进行的开发活动。比如你可以在Windows服务器上架设PHP网站,开发PHP程序,但是这其实并不属于Windows开发范畴,你也可以在Windows平台上安装JRE和开发环境来开发Java程序,但这也不属于Windows开发,至于安卓,虽然对大部分人而言,也是在Windows完成开发活动的,但是依然不属于Windows开发。
一般而言,所谓的Windows开发,我认为有一个标准就是是否是在Windows平台上采用微软自己专有的技术,比如你用VC++/MFC/COM或者WinForm、WPF 开发一个客户端程序,用WinSocket,IOCP开发服务器端程序,用ASP.NET开发网站服务程序,用Direct3D开发游戏客户端,这些都可以归属于Windows开发的范畴。
而我在这个系列里要讨论的,是Windows开发下的一个分类:Windows C++客户端开发。所谓的Windows C++客户端是指什么呢?首先客户端是相对于服务器端而言的,所以所谓的Windows 客户端一般是指互联网软件下的一个分类,对于早期的单机软件,一般性的工具程序,其实是不能算在Windows客户端分类下的,因为不具备联网功能嘛。举个例子:Windows版的QQ是个Windows客户端程序,PPTV的Windows版也是个Windows客户端程序。诸如此类的还有浏览器程序,比如Chrome,IE,FireFox,Safari,还有QQ音乐,迅雷,YY语音之类的程序也算作是Windows客户端软件。
开发Windows客户端程序,其实这里面要涉及的技术点也很多,我打算分别罗列,逐个介绍,有一些比较难点的地方我会细致的展开,尽量让有志于从事Windows开发的人心里有个大致的概念,不至于在进入这一行的时候感到一头雾水,我希望我的语言是浅显易懂的,如果做的不好,大家可以尽量指出。
其实我的这篇文章也能给一些我的猎头朋友们做个参考,因为我发现他们很多人分不清Windows开发,Windows客户端开发和Windows C++客户端开发的区别^_^。
第一篇先写到这里,接下来的文章我会以一个典型的互联网客户端架构展开,简单介绍一下Windows客户端程序的基本结构,然后罗列出分别要用到哪些技术。