欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

现有ASP.NET MVC框架应用巧妙移植到手机

创建时间:2011年06月16日 22:53  阅读次数:(5111)
分享到:

【51CTO独家特稿】客户对我们的产品质量非常满意,因此在该项目完成后又给了我们另外一个订单,即部署客户程序到Windows智能手机设备上。但是我们项目团队成员以前都没有这种开发经验。我们的计划是通过最小限度的修改现有程序代码,使其可以运行在Windows智能手机上。

移动设备Web应用工具箱(Web Application Toolkit for Mobile Devices)

我们选择了微软移动设备Web应用开发工具箱作为解决方案。使用这个免费的工具,可以轻松将基于MVC框架的Web应用扩展到移动设备上。下载地址:http://code.msdn.microsoft.com/WebAppToolkitMobile/Release/ProjectReleases.aspx?ReleaseId=3914

该移动应用开发工具箱所需的环境要求是:

1、安装微软.NET Framework 3.5 SP1。

2、Visual Studio 2008专业版或更高版本。你也可以下载免费的微软Visual Web Developer 2008 Express版。

3、如果你的操作系统是Windows XP,则需要安装同步软件Microsoft Active Sync,以实现开发环境和设备模拟器之间的同步。

4、ASP.NET MVC框架,该框架也是免费的,你可以从MSDN或CodePlex上下载。

5、Windows Mobile SDK 6.0或更高版本。默认情况下,该SDK没有模拟器映像文件,你可从以下地址下载:http://www.microsoft.com/downloads/details.aspx?FamilyID=1A7A6B52-F89E-4354-84CE-5D19C204498A&displaylang=en

在安装了Web应用开发工具箱后,它将在你指定的位置创建一个名为WebAppToolkitMobile的文件夹。打开WebAppToolkitMobile\VisualStudioTemplates文件夹,双击Mobile Web Application.vsi文件,将在Visual Studio 2008中创建一个新Mobile Application模板项目。现在打开你的Visual Studio 2008,并从“我的模板”分类中选择Mobile Web Application项目模板,并将你的项目命名为“TestMobileWebApplication”。另外根据向导要求增加一个单元测试项目。

环境

图1

现在如果你看一下解决方案浏览器,它将有三个不同的项目。第一个项目名为“MobileCapableViewEngie”,它是一个类库型项目,其输出为一个主项目引用的程序集(.dll文件)。在运行时中,这个程序集将根据浏览器和设备类型来决定展现哪一个视图。

解决方案浏览器

图2

举例来说,如果你想在你的asp.net应用中显示一个员工列表,而且你也希望为手机应用浏览器创建一个相同的列表,那么你需要创建两个不同的视图。其中一个视图供IE浏览器使用,而另一个则是为手机网络浏览器所准备。你还可以为手机浏览器创建定制化的视图,因为手机和PDA显示屏可能非常小。在多数情况下,开发者将为手机应用创建定制化的视图。MobileCapableViewEngine类的ViewEngineResult函数确定运行时展现哪一个视图。

  1. public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)  
  2.         {  
  3.             ViewEngineResult result = null;  
  4.             HttpRequestBase request = controllerContext.HttpContext.Request;  
  5.  
  6.             if (request.Browser.IsMobileDevice)  
  7.             {  
  8.                 string mobileViewName = string.Empty;  
  9.  
  10.                 mobileViewName = string.Format(  
  11.                                         CultureInfo.InvariantCulture,  
  12.                                         "Mobile/{0}/{1}",  
  13.                                         this.RetrieveDeviceFolderName(request.Browser.Browser),  
  14.                                         viewName);  
  15.  
  16.                 result = this.ResolveView(controllerContext, mobileViewName, masterName, useCache);  
  17.  
  18.                 if (result == null || result.View == null)  
  19.                 {  
  20.                     mobileViewName = string.Format(  
  21.                                             CultureInfo.InvariantCulture,  
  22.                                             "Mobile/{0}",  
  23.         &n/
来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 12+70=? 的结果(结果是:82)
结  果: