開發Windows 8 Metro應用前你要知悉的5件事
作者:Lee Whitney 翻譯:@evan-css
作者介紹:李.惠特尼是總部設在德克薩斯州達拉斯的Slalom Consulting公司的一名解決方案架構師。他總是喜歡參與那些具有世界水平成果和和具有極佳使用者體驗的專案。
目前開發Windows 8平板電腦的移動應用程式只有一條途徑,那就是使用新的Metro應用程式框架,這是一個嶄新的事物,與之前的Microsoft開發平臺相比有很大的不同。為Windows 8開發Metro應用程式需要利用你已掌握的技能,但更需要學習新的平臺概念。
以下的5件事,是你在開發Metro應用程式之前必須要了解的,是你深入到新的水域創造讓你名利雙收的第一個偉大的應用程式的精神食糧:
1、現在程式語言將決定你的表示層技術
在此之前,Windows開發人員可以首先選擇一種程式語言(如C#或VB)然後再選擇一種表示層技術(如WinForms或DirectX)等。
然而開發Metro應用程式時,如果你選擇的是C#、VB或C ++,系統會自動選用XAML作為表現層。如果你選擇使用Javascript,你的命運將與HTML5和CSS3聯絡在一起。不可能將C#和HTML5混合使用,也不可能將JavaScript和XAML混在一起。
這種程式語言和表示層技術的耦合增加了為你的專案選擇正確程式語言的重要性。該選用哪個語言很大程度上取決於你的專案優先考慮什麼。
當你想建立可用於多種情景、適用範圍廣的專案時,學習Javascript和HTML5是一個非常值得的投資。例如JavaScript可被用來構建Metro應用程式、HTML頁面、所有的移動裝置的本地應用,甚至是伺服器端應用(如NodeJS)。
C#和XAML的優勢在於,大量的程式設計師已經非常熟悉這些技術。我的感覺是,在類似於Metro的微軟平臺上,為了在專案開工前減少學習基礎知識的時間,越來越多的開發人員將會掌握如何使用XAML來做動畫,而不是CSS3。
選擇你的程式語言的戰略應當基於你現有的技能和你對未來專案的期待。
2.NoSQL被賦予了新的含義
Metro應用程式的一個獨特之處在於它們不能夠很方便地訪問基於SQL的關係型資料儲存。而現有的Microsoft平臺上可以方便地直接訪問關係型資料庫,如SQL Server Express、Compact或CE版本,但目前在Metro沙盒中不是這種情況。
即使你下載並整合了一個開源的SQLite的資料庫,情況也沒有改善。你的應用程式可能由於安全性問題而無法通過(Windows應用商店)的釋出審批。大多數資料庫系統目前還無法在Metro沙盒環境中執行。
那麼,你如何管理在Metro應用程式的資料?當然你可以將資料寫入到檔案系統手動管理,或是使用目前可用的ISAM資料儲存介面(ESE,Jet Blue)。然而,最實用的方法可能是使用一種半結構化(semi-structured)的資料儲存機制。
Metro應用程式可以訪問IE10的本地儲存技術,如索引型資料庫(IndexedDB),這是一個新興的標準。這是一種簡單的本地儲存機制,它使用“鍵/值”這種類似cookie的技術訪問資料。當然,你可以呼叫一個遠端伺服器上Web服務來實現SQL的功能,但這解決不了本地儲存的問題。
雖然你仍然能夠解決問題,但對於程式設計師來說,如何規劃資料管理絕對是一個不同的事情。
3、後臺任務的工作方式不同
在後臺執行程式碼一直以來是存在規則的。而大多數開發人員的直覺是,一旦你啟動一個後臺程式,那麼它將繼續執行,直到你結束它。在Windows 8 中,這種直覺不再是真實的。
在Metro中,在後臺的應用程式不再自動持續地執行。相反,在使用者把它們帶到前臺之前,它們將一直處於掛起狀態。預設情況下,只有前臺Metro應用程式才能夠在任意時間使用CPU資源。這並不是一種倒退,而是一種新的Windows應用程式的行為模式。這種設計是為了最大程度地提高使用者的響應,併為移動裝置節約資源。
這些聽起來很熟悉,因為它非常類似iOS的工作方式。當蘋果公司在iPhone中新增了多工支援時,它僅允許在非常特殊的情況下執行後臺任務,在Windows 8中的Metro應用程式也是如此。Metro應用程式僅可以申請在後臺播放音訊、資料傳輸以及傳送通知的許可權。
這種新的模式主要是由於移動應用的場景,但它同時也是Metro桌面應用程式的模型。
4、不要指望能夠使用.NET的所有功能
我們已經越來越依賴“偉大”的.NET所提供的功能,但在Windows 7中,.NET框架是在Win32 API的基礎上構建的。在Metro下,一切(包括.NET庫)都在新的WinRT API基礎上構建。這裡.NET功能僅僅是Metro完整框架的一個子集。
舉例來說,WCF支援Metro應用程式嗎?是,也不是。核心客戶端方案均支援,但WS系列規範,如WS-Security不被支援。MTOM二進位制附件編碼不被支援。
好訊息是,微軟在選擇功能子集時,仔細考慮瞭如何最大限度發揮其作用。一個實用的建議是,在你選用功能模組之前,仔細檢查它們都支援哪些功能。
5、新的使用者體驗不止是新的控制元件(那麼簡單)
此前新版本的Windows中新增了一些新的控制元件(如視窗小部件),但其核心的使用習慣沒有變化。 (在1985年釋出)的Windows 1.0和Windows 7都具有選單欄、標題欄和可調整大小的應用程式視窗。而Windows 8的Metro應用程式沒有這些東西。即使是在類似Metro風格使用者體驗的Windows Phone 7上也不一樣,它類似全景控制元件(panorama control)的東西Windows 8沒有。我們(所習慣口味)的乳酪已不再有了。
正因如此,我們的工作將包括學習新的Metro使用者使用習慣,這樣我們才能知道他們對我們應用程式的感受。這包括應用條(AppBar),語義放大(Semantic Zoom),半屏對接(Partial Page Docking)以及其它Windows 8獨有的魅力。MSDN社群中有一個獨立的區域,涵蓋了所有這些內容。
在你的第一個Metro應用程式中,你可能並不需要所有的這些新的功能特性。但是,如果你不適當的利用這些優勢,你可能無法設計出一個完美的Windows 8應用程式。
Onward and upward
Windows 8的確不單純是技術的更新。上述的每一條,都是讓應用程式更好更快的巨集偉藍圖的一部分。Visual Studio 11是開發Metro應用的主要工具,幸運的是,它仍然沿用了這個地球上最佳開發工具的名號。總的來講,Metro正在召喚我們去創造下一個殺手級移動應用。
相關文章
- 在使用Redux前你需要知道關於React的8件事ReduxReact
- Windows 應用開發的系統要求Windows
- 安裝用於 Windows 應用開發的工具Windows
- 開始一個新專案前,應當想清楚的幾件事兒
- GitHub Star 數量前 5 的開源應用程式生成器Github
- 開發者測試:你必須知道 7 件事
- 還原一個 Windows 10 Metro 佈局Windows
- 在採用K8S之前您必須瞭解的5件事情K8S
- [譯] 用 Flutter 開發你的第一個應用程式Flutter
- 前端:你要懂的單頁面應用和多頁面應用前端
- 帶你瞭解 WebAssembly 的發展、應用與開發Web
- 為什麼要學習大模型應用開發?大模型
- 關於GDPR,你需要了解的的5件事
- Flutter基礎(四)開發Flutter應用前需要掌握的Basics WidgetFlutter
- Flutter 基礎(四)開發 Flutter 應用前需要掌握的 Basics WidgetFlutter
- 企業應用程式為什麼要定製開發
- aardio 開發桌面應用,這幾點必須要掌握!
- Homework 8 如果你要開發一箇中小學生學習數學的軟體,你應該找誰去做使用者調研?
- RabbitMQ的開發應用MQ
- 開發者談音效在遊戲中的8種基本應用遊戲
- 使用 Java 進行移動應用開發的 8 個理由 - VikrantJava
- H5開發在QQ錢包的應用實踐H5
- 『前端開發』- 相容IE8的響應式開發前端
- 當前低程式碼開發平臺給哪些應用程式開發提供支援
- 5 個開源的速讀應用
- Gradio.NET 支援 .NET 8 簡化 Web 應用開發Web
- 使用SAP UI5 Web Components開發React應用UIWebReact
- 5大移動應用開發平臺推薦
- .NET 開源工作流: Slickflow流程引擎高階開發(九) -- 條件事件模式解釋及應用事件模式
- 零基礎如何學習Java?你要注意的8件事Java
- 你必須做到的 3 件事
- 給你一臺人形機器人,你最想開發出怎樣的應用?機器人
- elasticsearch的開發應用(3)Elasticsearch
- 低程式碼應用程式開發平臺的5種選擇
- 常見的5個區塊鏈應用開發錯誤理解區塊鏈
- 快應用之開發體驗紀要
- Python開發Windows桌面應用程式(三)應用程式打包成exeWindows可執行檔案PythonWindows
- 打造你的泛娛樂多媒體應用開發核心能力
- 利用Hyperledger Fabric開發你的第一個區塊鏈應用區塊鏈