2012-12-10 36 views
6

我接手了一個Windows Phone項目,該項目以前是針對WP 7.1平臺的,並且最近宣佈的新平臺應以WP 8爲目標以及。如何組織Windows Phone代碼庫以同時定位7.x和8平臺

VS 2010解決方案由幾個項目(數據訪問,模型,測試和WP7客戶端應用程序),我遊蕩如何包括WP8支持。

我必須注意,由於使用Toolkit控件和其他專門針對WP7.1的第三方庫,代碼庫與WP8不兼容。

此外,Visual Studio版本還存在另一個問題 - WP7.1可以與VS 2010一起使用,但WP8需要VS 2012. 我應該將整個代碼庫移動到VS 2012嗎?

關於如何以最有意義的方式組織代碼庫以避免重複和可能的痛苦維護的任何好建議?

一個解決方案之間的思考 - 多個項目多種解決方案 - 可重複使用的項目方法。代碼重複(像兩個單獨的文件夾/解決方案)應該是最不可能的方法(回退)。

回答

3

最好的辦法是將所有項目升級到VS2012,以便能夠支持兩個WP版本(儘管它是VS2012解決方案,您仍然可以在VS2010中打開WP7項目,因爲它是向後兼容的)。

關於組織代碼庫的最佳方法,在我看來,您應該創建一個支持WP7和WP8的便攜式庫,並獲得所有常見代碼庫(可能主要是業務邏輯,如果您使用諸如MVVM之類的模式)。不要忘了控制問題,你可能應該有一些不同的WP8控件,因爲屏幕大小不一樣,你可以獲得更多的信息並使用不同的控件。如果您仍想使用相同的XAML代碼,請在其中一個項目中只有一個文件,並在要重新使用該項目的另一個項目中添加同一文件「作爲鏈接」。

最後,通過使用#if指令,您可以也可能應該使用某些條件代碼編譯。

希望這些信息有幫助,如果需要任何代碼示例,請直接說出來,然後我會盡量收集一些信息。

+0

感謝您的及時答覆Marco。我喜歡你的方法,並會嘗試一下。回到我的發現... – ljubomir

+0

我花了一些時間來正確設置Windows 8 + Visual Studio 2012環境,但這絕對是我喜歡的方式。現在我有兩個客戶端項目的解決方案,每個項目都針對不同版本的Windows Phone平臺,並且它們之間共享的可重用庫很少。再次感謝。 – ljubomir