日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
現(xiàn)有ASP.NETMVC框架應(yīng)用巧妙移植到手機(jī)

【獨(dú)家特稿】客戶對我們的產(chǎn)品質(zhì)量非常滿意,因此在該項(xiàng)目完成后又給了我們另外一個(gè)訂單,即部署客戶程序到Windows智能手機(jī)設(shè)備上。但是我們項(xiàng)目團(tuán)隊(duì)成員以前都沒有這種開發(fā)經(jīng)驗(yàn)。我們的計(jì)劃是通過最小限度的修改現(xiàn)有程序代碼,使其可以運(yùn)行在Windows智能手機(jī)上。

目前創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、黃島網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

移動設(shè)備Web應(yīng)用工具箱(Web Application Toolkit for Mobile Devices)

我們選擇了微軟移動設(shè)備Web應(yīng)用開發(fā)工具箱作為解決方案。使用這個(gè)免費(fèi)的工具,可以輕松將基于MVC框架的Web應(yīng)用擴(kuò)展到移動設(shè)備上。下載地址:http://code.msdn.microsoft.com/WebAppToolkitMobile/Release/ProjectReleases.aspx?ReleaseId=3914

該移動應(yīng)用開發(fā)工具箱所需的環(huán)境要求是:

1、安裝微軟.NET Framework 3.5 SP1。

2、Visual Studio 2008專業(yè)版或更高版本。你也可以下載免費(fèi)的微軟Visual Web Developer 2008 Express版。

3、如果你的操作系統(tǒng)是Windows XP,則需要安裝同步軟件Microsoft Active Sync,以實(shí)現(xiàn)開發(fā)環(huán)境和設(shè)備模擬器之間的同步。

4、ASP.NET MVC框架,該框架也是免費(fèi)的,你可以從MSDN或CodePlex上下載。

5、Windows Mobile SDK 6.0或更高版本。默認(rèn)情況下,該SDK沒有模擬器映像文件,你可從以下地址下載:http://www.microsoft.com/downloads/details.aspx?FamilyID=1A7A6B52-F89E-4354-84CE-5D19C204498A&displaylang=en

在安裝了Web應(yīng)用開發(fā)工具箱后,它將在你指定的位置創(chuàng)建一個(gè)名為WebAppToolkitMobile的文件夾。打開WebAppToolkitMobile\VisualStudioTemplates文件夾,雙擊Mobile Web Application.vsi文件,將在Visual Studio 2008中創(chuàng)建一個(gè)新Mobile Application模板項(xiàng)目?,F(xiàn)在打開你的Visual Studio 2008,并從“我的模板”分類中選擇Mobile Web Application項(xiàng)目模板,并將你的項(xiàng)目命名為“TestMobileWebApplication”。另外根據(jù)向?qū)б笤黾右粋€(gè)單元測試項(xiàng)目。

圖1

現(xiàn)在如果你看一下解決方案瀏覽器,它將有三個(gè)不同的項(xiàng)目。***個(gè)項(xiàng)目名為“MobileCapableViewEngie”,它是一個(gè)類庫型項(xiàng)目,其輸出為一個(gè)主項(xiàng)目引用的程序集(.dll文件)。在運(yùn)行時(shí)中,這個(gè)程序集將根據(jù)瀏覽器和設(shè)備類型來決定展現(xiàn)哪一個(gè)視圖。

圖2

舉例來說,如果你想在你的asp.net應(yīng)用中顯示一個(gè)員工列表,而且你也希望為手機(jī)應(yīng)用瀏覽器創(chuàng)建一個(gè)相同的列表,那么你需要創(chuàng)建兩個(gè)不同的視圖。其中一個(gè)視圖供IE瀏覽器使用,而另一個(gè)則是為手機(jī)網(wǎng)絡(luò)瀏覽器所準(zhǔn)備。你還可以為手機(jī)瀏覽器創(chuàng)建定制化的視圖,因?yàn)槭謾C(jī)和PDA顯示屏可能非常小。在多數(shù)情況下,開發(fā)者將為手機(jī)應(yīng)用創(chuàng)建定制化的視圖。MobileCapableViewEngine類的ViewEngineResult函數(shù)確定運(yùn)行時(shí)展現(xiàn)哪一個(gè)視圖。

 
 
 
 
  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.             if (request.Browser.IsMobileDevice)
  6.             {
  7.                 string mobileViewName = string.Empty;
  8.                 mobileViewName = string.Format(
  9.                                         CultureInfo.InvariantCulture,
  10.                                         "Mobile/{0}/{1}",
  11.                                         this.RetrieveDeviceFolderName(request.Browser.Browser),
  12.                                         viewName);
  13.                 result = this.ResolveView(controllerContext, mobileViewName, masterName, useCache);
  14.                 if (result == null || result.View == null)
  15.                 {
  16.                     mobileViewName = string.Format(
  17.                                             CultureInfo.InvariantCulture,
  18.                                             "Mobile/{0}",
  19.                                             viewName);
  20.                     result = this.ResolveView(controllerContext, mobileViewName, masterName, useCache);
  21.                 }
  22.             }
  23.             
  24.             if (result == null || result.View == null)
  25.             {
  26.                 result = this.ResolveView(controllerContext, viewName, masterName, useCache);
  27.             }
  28.             return result;
  29.         }
  30.         protected virtual ViewEngineResult ResolveView(ControllerContext controllerContext, string 
  31.         viewName, string masterName, bool useCache)
  32.         {
  33.             return base.FindView(controllerContext, viewName, masterName, useCache);
  34.         }

接下來要做的事情是,在Global.asax文件的Application_Start事件中登記所有設(shè)備和瀏覽器類型。MobileCapableViewEngine程序集配置了兩個(gè)默認(rèn)設(shè)備文件夾映射;一個(gè)是針對iPhone,被映射到View\Home\Mobile\iPhone文件夾,另一個(gè)是針對Windows手機(jī),被映射到View\Home\Mobile\WindowsMobile文件夾。在RegisterViewEngines函數(shù)中添加實(shí)例到引擎集合之前,開發(fā)者可以通過修改MobileCapableWebFormViewEngine類的DeviceFolders屬性,來實(shí)現(xiàn)刪除或增加新文件夾映射。請看以下代碼片段。

 
 
 
 
  1. public static void RegisterViewEngines(ViewEngineCollection engines)
  2.         {
  3.             var engine = new MobileCapableWebFormViewEngine();
  4.             engine.DeviceFolders.Clear();
  5.             engine.DeviceFolders.Add("Pocket IE", "WindowsMobile");
  6.             engine.DeviceFolders.Add("AppleMAC-Safari", "iPhone");
  7.             engine.DeviceFolders.Add("Safari", "iPhone");
  8.             engines.Clear();
  9.             engines.Add(engine);
  10.         }

移植現(xiàn)有ASP.NET應(yīng)用到手機(jī)

一旦設(shè)備和視圖的登記完成后,拷貝粘貼現(xiàn)有ASP.NET MVC框架應(yīng)用(你希望移植到手機(jī)的項(xiàng)目)到TestMobileWebApplication項(xiàng)目中。反之,你也可以增加MobileCapableViewEngine程序集到你現(xiàn)有MVC項(xiàng)目中,以進(jìn)行必要的修改。

下面我將用到之前使用MVC框架2.0創(chuàng)建的員工管理應(yīng)用。這個(gè)應(yīng)用有四個(gè)視圖:創(chuàng)建員工、編輯現(xiàn)有員工數(shù)據(jù)、顯示所有員工數(shù)據(jù)和顯示特定員工數(shù)據(jù)。我已經(jīng)把員工管理應(yīng)用中所有相關(guān)文件拷貝到TestMobileWebApplication項(xiàng)目中,并對RegisterViewEngine函數(shù)進(jìn)行了必要的修改。另外我還針對手機(jī)設(shè)備創(chuàng)建了新的定制化視圖,并增加了一些針對手機(jī)應(yīng)用的新管理頁面。我還在Content文件夾下創(chuàng)建了分別針對普通瀏覽器和手機(jī)瀏覽器的不同CSS文件。而且我對應(yīng)用程序增加了錯(cuò)誤處理功能。在增加了所有必需的組件后,如下圖所示。

圖3

在控制類中還需要進(jìn)行另一處改動,此前對于任何Http請求,你的應(yīng)用程序代碼需要將其重定向到特定視圖,現(xiàn)在你需要調(diào)用MobileCapableViewEngine類的FindView函數(shù),這個(gè)函數(shù)能夠識別瀏覽器類型,并將你的請求重定向到相應(yīng)的定制化視圖。開發(fā)頻道也向您推薦《ASP.NET MVC框架視頻教程》,以便于您更好的了解ASP.NET MVC框架。

使用模擬器測試你的應(yīng)用

Microsoft Mobile SDK 6.0已經(jīng)安裝了相關(guān)模擬器。為了測試你的應(yīng)用,首先你需要設(shè)置設(shè)備管理器和模擬器。雙擊設(shè)備模擬器管理程序(dvcemumanager.exe),它的存放路徑為:C:\Program Files\Microsoft Device Emulator\1.0。

圖4

如果你的本地系統(tǒng)是Windows XP,你還需要配置Microsoft Activesync。右鍵點(diǎn)擊Windows任務(wù)欄上的Active Sync圖標(biāo),并選擇“Open Microsoft ActiveSync”,從文件菜單中選擇連接設(shè)置。

參考圖4設(shè)置你的ActiveSync連接。然后在設(shè)備模擬器管理工具中選擇“Mobile Classic Emulator”并右鍵點(diǎn)擊,選擇連接選項(xiàng)。這樣將會打開Windows Mobile Classic Emulator,***打開可能需要40-45秒時(shí)間。右鍵點(diǎn)擊運(yùn)行的模擬器管理工具映像,并選擇Cradle選項(xiàng)激活A(yù)ctiveSync,你將會看到一個(gè)同步向?qū)Ы缑妗?/p>

圖5

不要選擇向?qū)е械娜魏芜x項(xiàng),點(diǎn)擊完成?,F(xiàn)在我們已經(jīng)可以在Windows Mobile Emulator中測試應(yīng)用。該模擬器如下圖所示。

圖6

現(xiàn)在回到Visual Studio編輯器中,按F5執(zhí)行該Web應(yīng)用。下圖顯示了普通IE瀏覽器中的已有員工列表。

圖7

要想在微軟系統(tǒng)手機(jī)瀏覽器中顯示相同的員工列表,我使用了一個(gè)定制化視圖,只顯示員工信息的部分內(nèi)容。如下圖所示:

圖8

通過ASP.NET MVC Framework,我們可以靈活的向項(xiàng)目中增加新定制化視圖模板。借助于文本模板轉(zhuǎn)換工具箱(Text Template Transformation Toolkit ),你可以***限度的定制你的ASP.NET MVC現(xiàn)有視圖模板。

原文題目:Extend Your ASP.NET MVC Application to Windows Mobile


當(dāng)前文章:現(xiàn)有ASP.NETMVC框架應(yīng)用巧妙移植到手機(jī)
本文網(wǎng)址:http://www.5511xx.com/article/codjihs.html