2.6 .NET/C#
根據(jù)維基百科(Wikipedia)的解釋,Microsoft .NET Framework 是由微軟開發(fā),一個致力于敏捷軟件開發(fā)(Agile software development)、快速應(yīng)用開發(fā)(Rapidapplication development )、跨平臺和網(wǎng)絡(luò)透明化的軟件開發(fā)平臺。.NETFramework 是以一種采用系統(tǒng)虛擬機運用的編程平臺,以通用語言運行時(Common Language Runtime)為基礎(chǔ),支持多種語言(C#、VB.NET、C++、Python等)的開發(fā)。.NET 也為編程界面(API)提供了新功能和開發(fā)工具。這些革新使得程序設(shè)計員可以同時進(jìn)行Windows 應(yīng)用軟件和網(wǎng)絡(luò)應(yīng)用軟件以及元件和服務(wù)(web service)的開發(fā)。.NET 提供了一個新的反射性的且面向?qū)ο蟪绦蛟O(shè)計編程界面。.NET 設(shè)計得足夠通用化從而使許多不同高級語言都得以被匯集。
2.6.1 使用.NET的優(yōu)勢
使用.NET 框架(.NET Framework)最顯著的優(yōu)勢在于當(dāng)你使用這個框架編寫程序的時候,可以保證代碼能夠運用在所有安裝了.NET Framework 的虛擬機上。.NET Framework 已經(jīng)被預(yù)裝在微軟已發(fā)布的最新操作系統(tǒng)(Windows Vista)里了,當(dāng)然也就包括即將發(fā)布的Windows 7。
另一個優(yōu)點就是代碼運用時“自動管理”,意思就是它不會讓你的系統(tǒng)崩潰,也不會降低系統(tǒng)的穩(wěn)定性。從大范圍看,兼容性問題也要比原生的C++程序要少。
2.6.2 .NET的歷史和多點觸摸
.NET 2.0 沒有意個真正的預(yù)期想象的多點觸摸典型案例,因為.NET 2.0 缺少自由的用戶界面。它的目的是作為一個商業(yè)的應(yīng)用程序框架,而不是更加豐富的用戶界面。只有在.NET 3,WPF 和Silverlight 中才提供了被用作多點觸摸應(yīng)用程序開發(fā)的足夠條件。XAML 標(biāo)記語言是可擴展的和相對自由的,它允許開發(fā)者開發(fā)豐富美觀且具有交互性的界面。
.NET 3 一開始也不是一個支持多點觸摸的平臺。Flash 在當(dāng)時仍然是愛好者們最主要的設(shè)計和開發(fā)平臺,原因就在通過Touchlib 和TUIO 已經(jīng)發(fā)展了很多的項目,而且這個方案可以很簡單地將觸摸信息發(fā)送到應(yīng)用程序上。
在2007 年,Donovan Solms 創(chuàng)造了C# Touchlib Interface (CsTI). 它可以通過二進(jìn)制連接將Touchlib 獲得的觸摸數(shù)據(jù)發(fā)送到.NET。CsTI 將觸摸事件轉(zhuǎn)換為.NET 經(jīng)常使用的實際.NET 事件(actual .NET events)。另一種比較常見的方式是使用與Flash 相同的TUIO,然后獲取觸摸數(shù)據(jù)輸入到.NET 中。
從那時起,許多的.NET 多點觸摸框架(.NET multitouch Frameworks)被創(chuàng)造出來。使用MultiTouch Vista,你現(xiàn)在可以通過CCV 或者Touchlib 的安裝程序來控制Windows 7。Microsoft Surface 使用了.NET 來作為它的應(yīng)用程序的基礎(chǔ),.NET3,WPF,Silverlight 都支持3D。
XNA,微軟新的管理圖形的API,擁有更好的3D 支持,但是目前對它的了解有待繼續(xù)探索。
2.6.3 開始使用.NET來開發(fā)多點觸摸應(yīng)用
首先,您需要決定是使用現(xiàn)有的框架還是自己開發(fā)新的框架,或者根據(jù)您的需求來擴展現(xiàn)有框架,畢竟它們很多都是開源的。下面是3 種備選方案以及如何使用它們進(jìn)行開發(fā)。
使用現(xiàn)有的框架
現(xiàn)在確實有不少的.NET 多點觸摸框架(.NET multitouch Frameworks)可供選擇,它們一般被命名為WPF多點觸摸框架。比如MultiTouchVista支持Windows 7上的多點觸摸交互。
自己家開發(fā)新的框架
這個方案適用于有經(jīng)驗的開發(fā)者。它需要與原始觸摸數(shù)據(jù)工作,所以要為這個框架解決如何建立一個事件系統(tǒng),以及之間的算法,確定所有的底層操作和.NET 一般性的處理架構(gòu)。
這兒有兩種途徑來獲取原始的觸摸數(shù)據(jù)然后輸入到.NET 中:
C# Touchlib Interface (CsTI) 和通過XMLSocket 連接到TUIO
其中,CsTI 是一個只能通過Touchlib 來工作的二進(jìn)制連接方案,而通過XMLSocket 連接的TUIO 可以與Touchlib,CCV,ReacTIVision 中的任何一個進(jìn)行協(xié)同工作,你可以從ReacTIVison 網(wǎng)站上獲得基本的實現(xiàn)過程的演示。現(xiàn)在,第一個.NET 多點觸摸框架已經(jīng)不被社區(qū)所支持了,但是它的代碼仍然可以在Google Code 上找到,來作為學(xué)習(xí)的起點,只是起點而已?,F(xiàn)在更多的人使用的是IInputProvider。關(guān)于這個,你可以在MSDN 上找到相關(guān)的解釋。
擴展現(xiàn)有的框架
這種方案適用于開發(fā)者找到了一個比較合適的框架,但是里面缺了自己需要的個別功能。在這種情況下,你只需要購買(有的框架是收費的)或免費獲取你所需要的部分,而后在它的許可證下進(jìn)行二次開發(fā),注意版權(quán)問題,哪怕是開源的。還有注意它的工作方式,以及這個框架現(xiàn)在是否還很活躍。
工具
大多數(shù)的.NET 程序員更喜歡微軟的Visual Studio,這個確實是一個完善的,多功能的.NET 集成開發(fā)平臺(IDE)。你可以從微軟的相關(guān)頁面上在線安裝或者下載完整的離線安裝包(ISO 格式),Express Editions(速成版)是免費的。