windows8開發-初學階段知識點小結

來源:互聯網
上載者:User
學了一個多月的win8開發,做著一個項目;其間遇到了許多困難,也收穫了不少知識,有些東西是自學得到的,有些則是別人的協助,例如devdiv論壇就是一個不錯的學習助手。下面做一下本階段的一個簡單學習小結吧。
(1)wp7應用移植到metro風格應用。廢了不少勁,其中資料庫的重寫佔了大部分時間。可以參考部落格:http://blog.csdn.net/moxiaomomo/article/details/8104556(2)頁面間的跳轉問題。比較簡單,核心是使用支援導航的內容控制項Frame。如果涉及到SnapView,FillView,FullView的切換,最好實現一個管理所有頁面切換的RootPage;該RootPage內建了Frame控制項,並且註冊了SizeChanged的監聽事件。
(3)使用通知(Toast)和計劃通知(ScheduledToast)。支援事件的提醒,可以擷取從點擊toast到啟動應用的這個事件和參數。對於toast的處理和擷取,可以放到後台進行,避免當資料量較大時,阻塞UI互動。
(4)非同步編程。metro應用中一個很明顯的特徵是,所提供的API大部分是基於非同步啟動並執行(async/await)。該非同步機制用起來比較簡便和美觀,而且提高了UI互動的流暢度。不過有個問題,有時我們只是想要一個同步的操作,API偏偏沒有支援同步的介面;可以將非同步偽造成同步(事實上await就是相當於建立了類似同步的效果?),不過寫起來始終有點不舒服。
(5)自訂各種各樣的UserControl。進行這個過程,有時不亦樂乎,有時又極其的厭煩。因為有時你會覺得可以自由發揮,不受系統限制;但是有時候又覺得千篇一律,重重複復,而且一個ListBox的Style改寫起來都需要n行代碼(xaml)。有些東西還是需要注意一下,盡量少用相依性屬性(Dependency Property),因為很耗效能;有需要就自訂EventHandler,將監聽操作和處理的邏輯寫到控制項的外部。
(6)可監測的資料來源。如果要實現DataBinding,並且當資料來源更新時,相應的控制項也對應更新,一般做好兩點: a.資料來源類繼承自介面INotifyPropertyChanged; b.使用ObservableCollection<data> 代替 List<data>。
(7)關於後台線程。可以使用ThreadPool.RunAsync()方法,也可以使用Task.Run()方法等,不過官方建議盡量使用Task,因為對於線程的管理(例如CancelRun操作)提供了更加安全易用的介面。具體使用可參考一下部落格:http://blog.csdn.net/moxiaomomo/article/details/8236633或 http://blog.csdn.net/moxiaomomo/article/details/8312902(8)其他還有挺多的細節,就不描述了。林林總總,要做好一個用戶端應用,細節永遠都很重要。有些東西可能只是會用,但是卻沒有機會去一窺它的內涵機制,那是多少都有點遺憾。繼續學習吧,學到的還只是冰山一角,剩下的路還很長哩。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.