2017-03-22 80 views
2

我有一個簡單的應用程序,它是在Xamarin開發的移動設備和Windows桌面。爲了開發C#,使用了(Galasoft)MVVM-Light和Repository Pattern。後端不是這個項目的一部分。但是對於完整的圖片,使用REST EndPoints。從Xamarin項目在Qt C++項目代碼的可重用性

現在我問自己,如果我想在Qt & C++中編寫相同的應用程序(用於Linux),可以使用以前的項目。到目前爲止,我知道:

  • 觀點,必須完全地重寫,因爲Qt使用「QML」,而不是XAML
  • 也像它在MVVM/C#/ XAML是可能的Qt不使用「綁定」。但有一些替代方式,發現here
  • 模型應該相對易於重用。

爲了最大限度地減少代碼的'重寫'部分,我還發現了一個C#到C++包裝,但到目前爲止只適用於不適用於整個類的方法。看看你自己here

有沒有人有進一步的Tipps,或者如果他們在某些方面有錯誤可以糾正我的陳述?

感謝您的支持

回答

3

從經驗說起,我最好的提示是避免嘗試使用現有的代碼,而是在C++/Qt中從頭開始編寫新的應用程序。它可能是誘人的,你已經有了一個應用程序,但試圖移植它可能會比僅僅重寫它更加痛苦的過程,並且你也將錯過從Qt強大的方面受益的機會。例如,QML的聲明性質並沒有明確的對應關係,您一定要充分利用它。

唯一的例外是,如果你(像你說的)有一個非常獨立的庫部分,你會很容易能夠包裝和重用。但即便如此,在建造時也是一個負擔。我發現將整個代碼庫保存在C++/Qt5中使構建和部署變得非常簡單和優雅。 Qt附帶的工具,如qmake,qbsQtCreator真的很適合跨平臺。

除此之外,這裏有一些評論:

希望這對我有幫助!

0

基本上,老實說它是一個完整的重寫。 Qt的原因是C++,而Xamarin主要是C#。