天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Silverlight for Windows Phone 7開(kāi)發(fā)體驗(yàn)

  直接下水

  正如學(xué)習(xí)游泳應(yīng)該下水嘗試一下,而不是坐在教室里看書,學(xué)習(xí)Windows Phone 7開(kāi)發(fā)技術(shù)也應(yīng)該親身實(shí)踐一下,而不是僅僅翻閱資料。那么,怎樣實(shí)踐呢?不必想得太復(fù)雜,這里所說(shuō)的實(shí)踐就是找個(gè)需求實(shí)現(xiàn)一下。那么,找個(gè)什么需求來(lái)實(shí)現(xiàn)呢?也不必想得太復(fù)雜,作為一名程序員,我們每天都在幫助別人實(shí)現(xiàn)需求,可我們自己的需求呢?千萬(wàn)別告訴我你沒(méi)有需求哦!想象一下,當(dāng)你拿到一個(gè)Windows Phone 7手機(jī),你會(huì)希望它為你做點(diǎn)什么特別的事?從這點(diǎn)出發(fā),發(fā)揮你的想象力,你應(yīng)該能找到一個(gè)起點(diǎn)的,比如說(shuō),寫個(gè)課程表應(yīng)用

  有了需求,很自然就想尋找實(shí)現(xiàn)需求的工具,說(shuō)到這里,你可能馬上想到價(jià)格不菲的Visual Studio 2010和Expression Studio 4,有的話當(dāng)然是好,沒(méi)有的話也不用擔(dān)心,因?yàn)槲④浱峁┝嗣赓M(fèi)的Expression Blend 4 for Windows Phone和Visual Studio 2010 Express for Windows Phone,足以應(yīng)付常見(jiàn)的Windows Phone 7開(kāi)發(fā)需求了。裝好開(kāi)發(fā)環(huán)境之后,可以做個(gè)Hello World試一下,就像圖1這樣:

圖1

  很多人覺(jué)得Hello World太過(guò)簡(jiǎn)單以至于不屑一顧,我不是這么想的,我認(rèn)為Hello World的價(jià)值之一在于用最簡(jiǎn)單的方式驗(yàn)證開(kāi)發(fā)環(huán)境是否成功安裝和正確設(shè)置,而這正是后續(xù)故事得以展開(kāi)的基準(zhǔn)點(diǎn)。

  在開(kāi)發(fā)Windows Phone 7的應(yīng)用時(shí),我喜歡用Expression Blend來(lái)設(shè)計(jì)用戶界面,然后用Visual Studio來(lái)編寫內(nèi)部邏輯。Expression Blend提供了豐富的設(shè)計(jì)體驗(yàn),其中一個(gè)我最喜歡的特性是設(shè)計(jì)時(shí)數(shù)據(jù)的支持,你可以按照?qǐng)D2所示的方式從XML文件里導(dǎo)入現(xiàn)有的數(shù)據(jù):

圖2

  然后通過(guò)拖放把數(shù)據(jù)綁定到控件上,如圖3所示:

圖3

  此外,你也可以讓Expression Blend為你自動(dòng)生成設(shè)計(jì)時(shí)數(shù)據(jù)。當(dāng)你在Expression Blend里設(shè)計(jì)好用戶界面之后,就可以在Visual Studio里為控件編寫事件處理程序了。如果你在Expression Blend的Options里設(shè)置了"使用Visual Studio創(chuàng)建和編輯事件處理程序的代碼",如圖4所示:

圖4

  那么當(dāng)你在圖5所示Expression Blend的Properties面板上雙擊控件事件旁邊的編輯框時(shí),Visual Studio會(huì)打開(kāi)對(duì)應(yīng)的代碼文件,并定位到對(duì)應(yīng)的事件處理程序,如果該事件處理程序還沒(méi)有,Visual Studio會(huì)為你創(chuàng)建一個(gè)。當(dāng)然,如果你比較極客,喜歡手工編寫XAML,那么Visual Studio基本上已經(jīng)可以滿足你的所有需求了。

圖5

  應(yīng)用的開(kāi)發(fā)和測(cè)試是密不可分的,當(dāng)你想運(yùn)行并測(cè)試應(yīng)用時(shí),就輪到Windows Phone 7模擬器出場(chǎng)了,圖6像你展示了我們的程序在模擬器中運(yùn)行的樣子:

圖6

  你還可以通過(guò)Visual Studio在模擬器里調(diào)試你的應(yīng)用。不過(guò),這個(gè)模擬器只支持系統(tǒng)自帶的軟鍵盤輸入,你無(wú)法通過(guò)電腦的鍵盤進(jìn)行輸入,這會(huì)為輸入測(cè)試數(shù)據(jù)造成一些不便。

  善用資源

  雖然Expression Blend和Visual Studio已經(jīng)提供了很多Windows Phone 7控件,但這顯然無(wú)法滿足日益增長(zhǎng)的需求,于是微軟發(fā)布了Silverlight for Windows Phone Toolkit,通過(guò)附帶的示范程序(如圖7所示),你可以感受一下這些組件能夠?qū)崿F(xiàn)什么功能和效果:

圖7

  最新版本是Feb 2011,里面包含了以下組件:

  1. AutoCompleteBox
  2. ContextMenu
  3. DatePicker
  4. GestureService/GestureListener
  5. ListPicker
  6. LongListSelector
  7. Page Transitions
  8. PerformanceProgressBar
  9. TiltEffect
  10. TimePicker
  11. ToggleSwitch
  12. WrapPanel

  如果你在使用期間遇到一些奇怪的問(wèn)題,請(qǐng)別急著自己解決,先看看別人是否也遇到這些問(wèn)題,另外,你也可以看看是否有人提交了相關(guān)的補(bǔ)丁,除非你一眼就能看出問(wèn)題所在,或者你享受解決問(wèn)題的過(guò)程。我在使用LongListSelector控件時(shí)就遇到一個(gè)奇怪的問(wèn)題,我在一個(gè)頁(yè)面上使用這個(gè)控件,里面顯示一組作業(yè),然后通過(guò)新的頁(yè)面來(lái)新建和編輯作業(yè),每當(dāng)我從新的頁(yè)面返回時(shí),LongListSelector控件都無(wú)法顯示剛才新建的作業(yè)或者更新的內(nèi)容,經(jīng)過(guò)一番調(diào)查,我最后發(fā)現(xiàn)LongListSelector控件沒(méi)有考慮到打開(kāi)新的頁(yè)面這種情況。當(dāng)我們打開(kāi)新的頁(yè)面時(shí),Windows Phone 7為了節(jié)約資源會(huì)把原來(lái)那個(gè)頁(yè)面卸載(unload);而當(dāng)我們從新的頁(yè)面返回時(shí),布局系統(tǒng)會(huì)重新計(jì)算并構(gòu)建原來(lái)那個(gè)頁(yè)面,這會(huì)導(dǎo)致LongListSelector控件在子元素的處理上出現(xiàn)錯(cuò)誤(這個(gè)問(wèn)題在最新的Feb 2011版本里也沒(méi)得到修復(fù))。

  從這里我們不難看出,雖然Windows Phone 7的應(yīng)用屬于本地應(yīng)用,但它和我們平時(shí)接觸到的Windows應(yīng)用程序是不同的,你需要搞清楚頁(yè)面的生命周期以及頁(yè)面的導(dǎo)航是如何工作的,除非你的應(yīng)用只有一個(gè)頁(yè)面。

  此外,微軟也提供了適用于Windows Phone 7的Prism,如果你打算在Windows Phone 7應(yīng)用里使用MVVM模式,那么Prism里面提供的一些類型就會(huì)幫上忙。當(dāng)然,你也可以選擇其它MVVM框架,比如說(shuō),MVVM Light Toolkit,還有Caliburn Micro。類庫(kù)和框架固然能夠節(jié)省一定的工作量,但如果你想切實(shí)地提高自己的能力,那么需要的就是知識(shí)和技術(shù),你可以讀一讀微軟發(fā)布的《Windows Phone 7 Developer Guide》(英文)和《Windows Phone 7開(kāi)發(fā)者培訓(xùn)包》(中文),你也可以上Windows Phone 7 Development Best Practices Wiki看看別人有什么最佳實(shí)踐,吸取一下別人的經(jīng)驗(yàn)。如果你有些問(wèn)題確實(shí)不知道怎么處理,還可以試著到App Hub的論壇或者博客園的博問(wèn)上問(wèn)一問(wèn)。

  技術(shù)之外

  如果你希望寫個(gè)好的應(yīng)用,那么僅僅關(guān)注技術(shù)方面的內(nèi)容是不夠的,你需要把應(yīng)用看做一組完整的用戶體驗(yàn),然后站在用戶的角度考慮每個(gè)細(xì)節(jié)。

  舉個(gè)例子吧,你認(rèn)為圖8中的頁(yè)面設(shè)計(jì)有沒(méi)有問(wèn)題?

圖8

  沒(méi)有,一切看起來(lái)都是那么正常,至少表面上確實(shí)如此,用戶可以完成相關(guān)的操作,頁(yè)面的相關(guān)功能也沒(méi)有bug,可是,在圖9中你會(huì)看到,每次輸入完畢之后都不能直接關(guān)閉頁(yè)面,因?yàn)榇_定按鈕被軟鍵盤擋住了:

圖9

  要想關(guān)閉頁(yè)面,用戶就需要先單擊頁(yè)面空白處關(guān)閉軟鍵盤,然后才能單擊確定按鈕關(guān)閉頁(yè)面。你覺(jué)得這是不是一個(gè)問(wèn)題呢?我在測(cè)試這個(gè)應(yīng)用的時(shí)候,一開(kāi)始只是覺(jué)得有點(diǎn)兒麻煩罷了,但當(dāng)我重復(fù)這個(gè)過(guò)程大概十次之后,我就開(kāi)始痛恨這個(gè)多余的步驟,并且深深地體會(huì)到這個(gè)小小的細(xì)節(jié)為用戶體驗(yàn)帶來(lái)了多么糟糕的影響!于是,在開(kāi)發(fā)后續(xù)的功能時(shí),我嘗試了新的設(shè)計(jì),用Application Bar按鈕替代傳統(tǒng)按鈕,就像圖10中顯示的這樣:

圖10

  這樣,用戶在輸入完畢之后馬上可以單擊確定,這個(gè)小小的改動(dòng)使得整個(gè)操作體驗(yàn)變得更加平滑、流暢。

  再舉一個(gè)例子吧,你覺(jué)得圖11中的頁(yè)面設(shè)計(jì)有沒(méi)有問(wèn)題?

圖11

  這是一個(gè)支持通過(guò)標(biāo)簽進(jìn)行篩選的筆記應(yīng)用,上面顯示當(dāng)前標(biāo)簽,單擊這個(gè)控件將會(huì)打開(kāi)一個(gè)新的頁(yè)面,用戶可以在新的頁(yè)面里選擇其它標(biāo)簽,下面顯示根據(jù)當(dāng)前標(biāo)簽篩選的筆記。還是那句老話,這個(gè)設(shè)計(jì)很正常,用戶照樣可以完成相關(guān)的操作,那么,還有什么需要修改的嗎?

  試想一下,既然這是一個(gè)關(guān)于筆記的應(yīng)用,那么它的主要任務(wù)自然就是顯示筆記內(nèi)容,而筆記標(biāo)簽作為一種輔助的手段,不應(yīng)該占用本來(lái)就不多的手機(jī)屏幕空間,它應(yīng)該在用戶需要的時(shí)候才出現(xiàn)。為此,我修改了頁(yè)面的設(shè)計(jì),使顯示筆記內(nèi)容的ListBox占滿頁(yè)面可用空間,然后把顯示筆記標(biāo)簽的ListBox隱藏在屏幕下方,修改后的程序運(yùn)行效果如圖12所示。

圖12

  當(dāng)用戶單擊Application Bar上的按鈕時(shí),顯示筆記標(biāo)簽的ListBox將會(huì)從屏幕下方外面向上平移。這樣,應(yīng)用就可以最大限度地利用有限的屏幕空間來(lái)完成最重要的任務(wù)了。

  很久之前,我看過(guò)一部電影,名字叫做《和你在一起》,里面有個(gè)情節(jié)至今仍然歷歷在目,余教授在聽(tīng)完他的學(xué)生拉的小提琴之后對(duì)這個(gè)學(xué)生說(shuō):"都對(duì),就是不好,你的音樂(lè)沒(méi)有感情,沒(méi)有感情的音樂(lè)怎么感染聽(tīng)眾?"現(xiàn)在的用戶對(duì)于品質(zhì)的要求越來(lái)越高,他們不再僅僅因?yàn)槟阏_地實(shí)現(xiàn)了他們的需求就選擇你的應(yīng)用,他們更加重視你是否切身處地的為他們?cè)O(shè)想、考慮他們的感受,因?yàn)檫x擇是有成本的,他們一旦選擇了你的應(yīng)用,他們就需要嘗試適應(yīng)你的應(yīng)用,因此他們會(huì)評(píng)估這樣的付出是否值得。下次,當(dāng)你打算開(kāi)發(fā)一個(gè)應(yīng)用時(shí),不妨問(wèn)一下自己:憑什么你的應(yīng)用值得用戶選擇?

  著眼未來(lái)

  去年Windows Phone 7首次發(fā)布時(shí),有人戲說(shuō)它是2007年水平的iPhone,潛臺(tái)詞當(dāng)然是指它和當(dāng)年的iPhone一樣退化為單任務(wù)方式,比較諷刺的是,當(dāng)微軟信心滿滿地解釋不支持多任務(wù)是為了保證電池的續(xù)航性時(shí),蘋果宣布ios支持多任務(wù)了,盡管那還不是真正的多任務(wù)。

  然而,正當(dāng)Windows Phone 7的開(kāi)發(fā)者學(xué)習(xí)如何處理單任務(wù)方式導(dǎo)致的各種問(wèn)題并為之而發(fā)愁時(shí),微軟又宣布Windows Phone的后續(xù)版本將會(huì)支持真正的多任務(wù)。如果你希望你的應(yīng)用在支持多任務(wù)的Windows Phone手機(jī)上有出色的表現(xiàn),你現(xiàn)在就要把它考慮進(jìn)你的設(shè)計(jì)里了。

  為Windows Phone 7開(kāi)發(fā)應(yīng)用還有一個(gè)廣受關(guān)注的問(wèn)題--應(yīng)用的部署。在Windows Phone 7之前,我們可以自行制作CAB安裝包,然后把它復(fù)制到手機(jī)上安裝,可惜,這種情況在Windows Phone 7上不復(fù)存在,因?yàn)槲④洓Q定Windows Phone 7的應(yīng)用必須通過(guò)Marketplace部署。此外,如果你想在真機(jī)上測(cè)試你的應(yīng)用,你需要注冊(cè)成為Windows Phone 7的開(kāi)發(fā)者并交納99美元的會(huì)費(fèi)(目前中國(guó)大陸的開(kāi)發(fā)者還不能直接注冊(cè)),否則你無(wú)法把你的應(yīng)用部署到真機(jī)上。為了解決這個(gè)問(wèn)題,Long Zheng、Rafael Rivera 和 Chris Walsh 一同發(fā)布了一款名為"ChevronWP7"的 Windows Phone 7 手機(jī)開(kāi)發(fā)者解鎖工具:

圖13

  隨后,微軟與Windows Phone 7破解團(tuán)隊(duì)ChevronWP7進(jìn)行了會(huì)晤,共同探討ChevronWP7解鎖工具的官方化,我相信他們的合作會(huì)為我們開(kāi)發(fā)者提供更多部署的選擇。

  經(jīng)常留意業(yè)界動(dòng)態(tài),及時(shí)學(xué)習(xí)所需知識(shí),合理利用各種資源,綜合考慮不同因素,這些都是開(kāi)發(fā)一個(gè)好的應(yīng)用必不可少的,然而,如果沒(méi)有踏踏實(shí)實(shí)地踏出第一步,一切都是空談,因此,最終我們又回到了最初的問(wèn)題:學(xué)習(xí)Windows Phone 7開(kāi)發(fā)技術(shù)應(yīng)該親身實(shí)踐一下。

it知識(shí)庫(kù)Silverlight for Windows Phone 7開(kāi)發(fā)體驗(yàn),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美日韩888在线观看 | 中文字幕无码亚洲字幕成A人蜜桃 | 国产精品久久久久久久久久影院 | 国产精品人妻久久无码不卡 | 影音先锋av丝袜天堂 | 秋霞电影院兔费理论84MB | 欧美在线看欧美视频免费 | 色欲无码国产喷水AV精品 | 国产欧美一区二区精品仙草咪 | 十二月综合缴缴情 | 神马伦理不卡午夜电影 | 男人插女人逼逼 | 色就色 综合偷拍区欧美 | 中文字幕在线观看 | 免费精品国产日韩热久久 | 果冻传媒在线观看网站 | 国产毛片视频网站 | 成人在线视频在线观看 | 欧美成人亚洲高清在线观看 | 无人区日本电影在线观看 | 精品亚洲午夜久久久久 | 免费观看高清黄页网址大全 | 岳的奶大又白又胖 | 日韩欧美一区二区中文字幕 | 久久精品一卡二卡三卡四卡视频版 | 被同桌摸出水来了好爽的视频 | 女性私密五月天 | a毛片基地免费全部视频 | 久久这里只精品热在线18 | 国产老师开裆丝袜喷水漫画 | 欧美大香线蕉线伊人久久 | 秋霞伦理机在线看片 | 少妇精品无码一区二区三区 | 果冻传媒视频在线观看完整版免费 | 黄瓜视频苹果直接安装 | 精品人妻伦一二三区久久AAA片 | 肉耽高h一受n攻 | 91区国产福利在线观看午夜 | 日本免费无码A专区在线观看 | 啦啦啦视频在线观看WWW | 国产国产成年在线视频区 |