2.6 .NET/C#
根据维基百科(Wikipedia)的解释,Microsoft .NET Framework 是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapidapplication development )、跨平台和网络透明化的软件开发平台。.NETFramework 是以一种采用系统虚拟机运用的编程平台,以通用语言运行时(Common Language Runtime)为基础,支持多种语言(C#、VB.NET、C++、Python等)的开发。.NET 也为编程界面(API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行Windows 应用软件和网络应用软件以及元件和服务(web service)的开发。.NET 提供了一个新的反射性的且面向对象程序设计编程界面。.NET 设计得足够通用化从而使许多不同高级语言都得以被汇集。
2.6.1 使用.NET的优势
使用.NET 框架(.NET Framework)最显著的优势在于当你使用这个框架编写程序的时候,可以保证代码能够运用在所有安装了.NET Framework 的虚拟机上。.NET Framework 已经被预装在微软已发布的最新操作系统(Windows Vista)里了,当然也就包括即将发布的Windows 7。
另一个优点就是代码运用时“自动管理”,意思就是它不会让你的系统崩溃,也不会降低系统的稳定性。从大范围看,兼容性问题也要比原生的C++程序要少。
2.6.2 .NET的历史和多点触摸
.NET 2.0 没有意个真正的预期想象的多点触摸典型案例,因为.NET 2.0 缺少自由的用户界面。它的目的是作为一个商业的应用程序框架,而不是更加丰富的用户界面。只有在.NET 3,WPF 和Silverlight 中才提供了被用作多点触摸应用程序开发的足够条件。XAML 标记语言是可扩展的和相对自由的,它允许开发者开发丰富美观且具有交互性的界面。
.NET 3 一开始也不是一个支持多点触摸的平台。Flash 在当时仍然是爱好者们最主要的设计和开发平台,原因就在通过Touchlib 和TUIO 已经发展了很多的项目,而且这个方案可以很简单地将触摸信息发送到应用程序上。
在2007 年,Donovan Solms 创造了C# Touchlib Interface (CsTI). 它可以通过二进制连接将Touchlib 获得的触摸数据发送到.NET。CsTI 将触摸事件转换为.NET 经常使用的实际.NET 事件(actual .NET events)。另一种比较常见的方式是使用与Flash 相同的TUIO,然后获取触摸数据输入到.NET 中。
从那时起,许多的.NET 多点触摸框架(.NET multitouch Frameworks)被创造出来。使用MultiTouch Vista,你现在可以通过CCV 或者Touchlib 的安装程序来控制Windows 7。Microsoft Surface 使用了.NET 来作为它的应用程序的基础,.NET3,WPF,Silverlight 都支持3D。
XNA,微软新的管理图形的API,拥有更好的3D 支持,但是目前对它的了解有待继续探索。
2.6.3 开始使用.NET来开发多点触摸应用
首先,您需要决定是使用现有的框架还是自己开发新的框架,或者根据您的需求来扩展现有框架,毕竟它们很多都是开源的。下面是3 种备选方案以及如何使用它们进行开发。
使用现有的框架
现在确实有不少的.NET 多点触摸框架(.NET multitouch Frameworks)可供选择,它们一般被命名为WPF多点触摸框架。比如MultiTouchVista支持Windows 7上的多点触摸交互。
自己家开发新的框架
这个方案适用于有经验的开发者。它需要与原始触摸数据工作,所以要为这个框架解决如何建立一个事件系统,以及之间的算法,确定所有的底层操作和.NET 一般性的处理架构。
这儿有两种途径来获取原始的触摸数据然后输入到.NET 中:
C# Touchlib Interface (CsTI) 和通过XMLSocket 连接到TUIO
其中,CsTI 是一个只能通过Touchlib 来工作的二进制连接方案,而通过XMLSocket 连接的TUIO 可以与Touchlib,CCV,ReacTIVision 中的任何一个进行协同工作,你可以从ReacTIVison 网站上获得基本的实现过程的演示。现在,第一个.NET 多点触摸框架已经不被社区所支持了,但是它的代码仍然可以在Google Code 上找到,来作为学习的起点,只是起点而已。现在更多的人使用的是IInputProvider。关于这个,你可以在MSDN 上找到相关的解释。
扩展现有的框架
这种方案适用于开发者找到了一个比较合适的框架,但是里面缺了自己需要的个别功能。在这种情况下,你只需要购买(有的框架是收费的)或免费获取你所需要的部分,而后在它的许可证下进行二次开发,注意版权问题,哪怕是开源的。还有注意它的工作方式,以及这个框架现在是否还很活跃。
工具
大多数的.NET 程序员更喜欢微软的Visual Studio,这个确实是一个完善的,多功能的.NET 集成开发平台(IDE)。你可以从微软的相关页面上在线安装或者下载完整的离线安装包(ISO 格式),Express Editions(速成版)是免费的。