2015-10-06 69 views
0

我正在編寫一個新的UWP應用,我希望儘可能多地重用業務邏輯代碼(在ViewModel層中),以創建一個單獨的WPF應用將在Windows 7/8/8.1用於Win8.1向後兼容的UWP應用項目結構

我使用的MVVM光工具包,這

幫助跑我目前的解決方案結構有4個項目:一個模型,一個視圖模型,一個UWP應用程序和一個WPF應用程序,但我很努力地設置ViewModel,使它能夠同時瞄準7/8/8.1和10.

看着Oren Novotny's blog我的想法是設置ViewModel,將目標覆蓋Windows 8/8.1商店應用程序和.NET 4.5桌面應用程序的net45和netcore45框架(與UAP框架一起),但我不確定這會如何複雜編碼本身,因爲這是我第一次經歷這個。

  1. 有沒有人見過這類問題的好文章?我發現的所有文章都談論了將應用程序從8.1升級到10,但不支持在支持兩種平臺時編寫應用程序以儘量減少編碼工作。

  2. 我想我需要2個不同的視圖:一個空白通用Windows應用程序和一個經典WPF應用程序,但我也需要有2個獨立的ViewModel項目:經典桌面dll(< = Win 8.1)和通用Windows類庫?或者,我可以使用Oren Novotny的帖子所建議的框架構建一個單一的dll嗎?

任何幫助或指針,將不勝感激。

感謝

+0

這裏肯定需要編譯指令。 –

回答

2

我寫一個新的UWP的應用程序,這是我想重用盡可能多的業務邏輯代碼(在視圖模型層),我可以創建一個單獨的WPF應用程序,它將在Windows 7/8/8.1

在這種情況下運行,你只需要創建一個可移植類庫哪些目標.NET 4.6和UWP在Visual Studio 2015年

看着奧倫諾沃提尼的博客我的想法是建立視圖模型爲目標的net45和netcore45框架(旁邊的UAP框架),這將涵蓋的Windows 8/8.1存儲應用和.NET 4.5的桌面應用程序

目前,我們無法創建包含UWP和Windows 8/8.1 Store App的便攜式庫。作爲一種替代方法,我建議您使用可以被Windows Store App 8/8.1,WPF net45/net46和UWP項目引用的共享項目。 enter image description here

+0

我認爲他只需要WPF和UWP的支持,所以PCL可以工作... –

+0

謝謝傑弗裏,目前看起來最接近我將要進行代碼重用。可悲的是(但可以理解),它不允許添加Nuget包,所以我可能不得不採取不同的方法來使用MVVM Light。 – Alastair

+0

FWIW Rico,MVVM Light目前不安裝在傳統的PCL上。直到我遇到這個問題時,昨晚使用PCL纔看好。我還沒有完全綁定到MVVM Light,所以會考慮實現相同結果的替代方法。 – Alastair