|
本篇為《Programming Windows, 6th Edition》譯文,本人將一些瑣碎之事寫在譯文之前,沒看過的還請勞駕看一下寫在《Programming Windows,6th Edition》譯文之前 引言 本書《Windows程序設(shè)計第6版》是一本編寫Windows8應(yīng)用的入門書籍。在寫這本電子書的時候(2012.8.1)Windows8還沒有完成,這本實體書也并沒有完成。你現(xiàn)在看到的電子書是一個實體書的預(yù)覽版本。本書基于2012年5月31號發(fā)布的Windows8客戶預(yù)覽版(build8400)。 微軟已經(jīng)宣布將在12年10月26日正式發(fā)售Windows8。Microsoft Press和我計劃在十一月中旬發(fā)布這本書的最終版本。 使用這本書,你需要下載并安裝Windows8客戶預(yù)覽版和Microsoft Visual Studio Express2012 RC for Windows8。這兩個都可以在Windows8開發(fā)者網(wǎng)站下載到: http://msdn.microsoft.com/windows/apps 下載VS,可以點擊“Downloadthe tools and SDK”
Windows8的版本 Windows8在很大程度上是用來運行Windows7上的應(yīng)用程序。Windows8在今年年末發(fā)布的時候?qū)幸粋€常規(guī)版本叫做Windows8和一個帶有額外特色的Windows8 Pro edition。 Windows8和Windows8 Pro edition將會運行兩類程序:
桌面應(yīng)用就是傳統(tǒng)的Windows應(yīng)用程序(即通過Windows應(yīng)用程序接口和系統(tǒng)交互的應(yīng)用程序),為了運行這些桌面應(yīng)用,Windows8包含一個熟悉的Windows桌面屏幕。 而新的Windows8應(yīng)用則是代表了對傳統(tǒng)Windows的一個突破,這些程序一般都是全屏模式運行的,兩個程序也可以通過“Snap”模式共享一個屏幕。而且這些應(yīng)用程序?qū)⒅С钟|摸或是寫字板。另外這些應(yīng)用只能從微軟公司的應(yīng)用商店買來安裝。 新的Windows8應(yīng)用有新的設(shè)計風(fēng)格。一部分靈感來自城市環(huán)境,這個設(shè)計風(fēng)格注重內(nèi)容而不是程序界面,使用樸素的字體,純凈開放的樣式,塊式界面和傳統(tǒng)的動畫。 除了有可以運行在X86處理器上的Windows8版本。還有一個運行在ARM處理器的Windows8版本,這個版本的Windows8叫做Windows RT,被預(yù)裝在平板電腦中。除了預(yù)裝的桌面應(yīng)用之外,Windows RT就只能運行Windows8應(yīng)用了。 Windows8設(shè)計規(guī)則和Windows Phone 7很類似。微軟在試著將桌面應(yīng)用的設(shè)計使用更小的設(shè)備,例如手提電腦或是手機?,F(xiàn)在一種適應(yīng)手機的用戶界面設(shè)計已經(jīng)移植到了桌面和平板電腦了。 新系統(tǒng)有一個很重要的特征就是多點觸控,它改變了人與計算機的關(guān)系。事實上多點觸控(multitouch)這個名詞已經(jīng)過時了。因為所有的觸摸設(shè)備都是可以對多個手指作出反應(yīng)的。叫“touch”就可以了。而新的Windows8應(yīng)用的程序界面部分用統(tǒng)一的方法對待觸摸,手表,手寫筆輸入以便于應(yīng)用可以靈活的選擇這三種輸入設(shè)備。
這本書關(guān)注的 這本書僅僅關(guān)注編寫新的Windows8應(yīng)用。關(guān)于Win32桌面應(yīng)用編寫的書籍市面上已經(jīng)有很多了。我將在這本書里偶爾提及Win32 API和桌面應(yīng)用,但這本是就是關(guān)于Windows8應(yīng)用的書籍。 編寫Windows8應(yīng)用,就不得不說到一個新的面向?qū)ο蟮腁PI,Windows運行時或者是WinRT(不要和運行在ARM處理器的Windows8版本弄混淆了,那個叫做Windows RT)。在內(nèi)部,Windows運行時是基于組件對象模型(COM),WinRT本質(zhì)上是一基于COM的API。API的定義存儲在以”.winmd"為后綴的元數(shù)據(jù)文件中。從外部上來看是非常面向?qū)ο蟮摹?/p> 從應(yīng)用開發(fā)者的角度看,Windows運行時與Silverlight十分類似,雖然不是一套API。對于Silverlight程序員來說,可能最大的不同就是命名空間:Silverlight的命名空間是System.Windows,現(xiàn)在已經(jīng)被Windows.UI.Xaml取代。 大多數(shù)Windows8應(yīng)用將由代碼和標(biāo)記語言(HTML或是XAML)組合完成,將應(yīng)用程序分成代碼和標(biāo)記語言的好處是可以在開發(fā)的時候?qū)⒊绦騿T和設(shè)計者的工作分開完成。 有三種主流的編寫Windows8應(yīng)用的方式,每一種都有一種代碼和一種標(biāo)記語言關(guān)聯(lián):
每一種編程方式中,Windows運行時通過另外編程接口適當(dāng)?shù)难a充這種語言。盡管你不能在一種應(yīng)用里面混合多種語言,但是你可以用他們自己的.winmd文件創(chuàng)建獨立語言庫(也叫做Windows運行時組件)。 C++程序員使用的是帶有擴展組件的C++,也叫做C++/CX,這個可以使C++更好的利用WinRT。C++程序員也可以直接訪問Win32 API的子集和COM API,當(dāng)然還有DirectX。 使用托管語言C#或Visual Basic.NET的程序員將會發(fā)現(xiàn)WinRT是個很熟悉的領(lǐng)域。用這些語言編寫Windows8應(yīng)用程序不能像C++那樣容易的接觸Win32,COM或DirectX API。但是這這本書里會用一些簡單的程序為你展示.NET也是可以完成底層任務(wù)的。 對于JavaScript來說,Windows運行時通過一個JavaScript的Windows庫(叫做WinJS)提供支持,他提供大量用于編寫Windows8應(yīng)用的系統(tǒng)級特性。 再三考慮之后,我還是決定這本書使用C#和XAML這種模式。托管語言對于開發(fā)和調(diào)試優(yōu)勢是不言而喻的。對于我來說C#是最適合Windows運行時的。我希望C++程序員能通過本書很容易的發(fā)現(xiàn)C#代碼的益處。 我也相信本書只關(guān)注一種語言的模式要比同時覆蓋多種語言的模式要強。毫無疑問會有大量的Windows8書籍教你如何用其他語言編寫Windows8應(yīng)用。 帶著這個說法,我已經(jīng)加入到了關(guān)于C++和本地代碼在編寫高質(zhì)量應(yīng)用時的優(yōu)點的新一輪爭論。沒有一種單一工具可以最好的解決各種問題,我希望將來有機會研究Windows8平臺上的C++和DirectX的開發(fā)。作為一個謙虛的開始,這本書的附帶內(nèi)容會包含所有的轉(zhuǎn)換為C++的程序?qū)嵗?/p> |
|
|