现在的消费者不仅仅要求通过个人电脑访问互联网上的资源,他们还需要通过别的方式来访问,网站的设计者对此感到很苦恼。他们的第一个本能的反映是通过一个现有的Web网站来创建多个导航路径。很多Web开发者使用这种机制来解决不同版本的浏览器对HTML规范的支持程度不一样的问题(例如有的版本的浏览器能支持FRAME,有的却不能支持)。尽管这种方式比较容易实现,但是由于不同的设备需要不同的网页显示方式,所以Web站点的页面会随着访问设备的增加而呈现指数的增长,这将会使网站的维护和管理变得很复杂。所以Web开发者不得不寻求更好的解决之道。
XML和XSLT
XML 和XSLT已经成为解决浏览网页设备的独立性问题的最有效的方法。Web开发者能使用XML和XSLT来创建基于静态的XML文档和从数据库返回的动态的XML数据流的网站。网站设计者能创建XSL模板,该模板应该接收一个XML数据流并将XML数据流转换成用来浏览网页的设备所能识别的HTML,开发者设计网站并发送被相应XSL模板转换的HTML文件到客户浏览器,而不用处理多路径问题。
从资源使用的立场来说,因为每个网页仅仅需要一个XML文件,每种设备类型只要一个能处理XML文件的XSL模板,所以这种创建Web站点的方法是很有效的。但是如果从系统处理的立场来说,因为当用户浏览网页时,这些网页都要动态的生成,而不是简单的从硬盘中读出就行了,所以处理效率比较低。
所不幸的是,要实现上面的机制,现在的设计者和开发者应该在XML和XSLT方面拥有更多的知识和经验。正是由于这方面的原因导致了现在我们的现实生活中很少有能支持移动设备的网站和Web应用程序。
使用MMIT
微软试图用.NET Framework和Microsoft Mobile Internet Toolkit (MMIT)来解决通过多种移动设备来访问网站的问题,并且从一开始微软就提倡将Visual Studio .NET和.NET Framework作为为移动设备开发连接式和断开式应用程序的首要平台。尽管支持断开式模型的工具尚处于beta测试之中,但是在几个月以前就可以得到MMIT提供的支持创建连接式的应用程序的工具。同时这些工具也将作为一种标准特性出现在Visual Studio .NET和the .NET Framework的下一个版本中。
MMIT允许开发者创建支持移动设备的Web应用程序,并且没有象XSLT带来的设备依赖性问题(因为每个设备需要它自己的XSL模板集)。由于MMIT通过提供一套设备独立的控制器和一套设备适配器,所以开发者能使用它的设备独立控制器来开发不依赖于设备的应用程序。MMIT在Visual Studio .NET的工具箱中放置了一些关于设备的控制器,同时也提供了用于开发快速移动设备应用程序的一些模板。一旦开发者完成应用程序的开发,这些设备控制器就能发布到运行设备适配器的服务器上以便多个设备终端都能使用该设备控制器。
当一个连接的移动设备请求一个使用MMIT控制器开发的网页,ASP.NET运行引擎查询该设备的浏览能力并且为其指定一个相应的设备适配器,该设备适配器自动的将从控制器返回的值转换成设备能使用的格式。设备适配器不仅处理显示,它还为设备生成管理和返回输入值的标记语言代码。例如,开发者能创建一个单页面,通过使用WAP它能被袖珍电脑或手机所浏览。设备的使用者可以使用袖珍电脑的手写笔或手机的键来与网站进行交互,ASP.NET能识别设备适配器生成的代码的返回数据并进行相应的处理。
各种方法的优点和缺点
并不是说如果开发移动通讯就一定要使用MMIT,其实使用老式的XML 和XSLT技术也是可以的。实际上.NET Framework中内置的对XML规范的支持使得用XML 和XSLT技术来创建支持多设备的方法比用MMIT更容易。但是要开发连接式的Web应用程序,你可能依旧会首先考虑使用MMIT。
使用MMIT方法,你可以为应用程序设计一个访问它的设备,这样当新设备可以使用以后,你通过简单的增加附加的设备适配器到ASP.NET服务器中就可以使用该新设备了。你也可以通过扩展现有的MMIT控制器来创建被现有的或将来的设备适配器所支持的设备控制器。使用MMIT的另外一个关键性的好处是能利用ASP.NET的内部状态管理系统,开发者如果创建基于XSLT的移动通讯应用程序就必须开发和维护自己的状态管理方法。