Design Your Life

SyntaxHighlight

2013-02-02

使用Portable Class Libraries打造跨平台App核心

什麼是Portable Class Library?

由於微軟自己有許多不同的.NET Framework,如果你想在不同的Framework(Windows 8 store, WP8, Silverlight...etc.)下開發支持同一個App服務的界面是一件非常困難的事情,並且你需要一直重複的把相同的Code翻譯為不同的版本,即便是那些商業邏輯與流程完全一樣,於是有了Portable Class Library這個概念。


為什麼要用Portable Class Library?

Portable Class Library可以讓你選擇你所要支援的Framework,並且提供支援他們的API集合,而在MVVM架構中,Developer只要專注在把Model與ViewModel寫好,與View分離有助於各個實作Unit Test藉此產生錯誤率低的程式,更重要的是,不用將一樣的資料物件與商業邏輯一再的翻譯成不同版本,相信沒有Developer喜歡把同一個功能一寫在寫:

Diagram of the MVVM Pattern

然而要達到跨平台的目標還是有些事情需要做,你需要把針對個平台不同的功能抽象化,並且在個平台的專案中各別實作,但比起整個重新打掉重練要來的好太多了...


Cross Platform App Project Structure with Portable Class Libraries and MVVM

該篇作者還Demo了一個跨平台的程式,裡面使用Portable Class Libraries當作核心,並且用MonoTouch for iOS, Mono for Android實作現今流行的行動裝置平台app,其架構如下:
Cross-platform apps



心得:

不得不說Portable Class Libraries真的是一個很好的概念,身為一個Developer當然希望能夠以最小的開發成本,有效且穩定的達到支援所有平台的應用,尤其在現在的平台越來越多,大家都要出自己的手機OS的戰國時代下,Developer要如何自保?(誤)

但比較有趣的是,微軟自己旗下Windows 8與WP8竟然是用不同的library,也算是蠻特別的XD ,如果以iOS為例子完全不需要把Portable Class Libraries拉出來做,因為其MVC架構若做得好,Model層完全一樣。

總算是寫一點東西了,希望之後自己能持續下去XD

沒有留言:

張貼留言