【问题标题】:Reusability of Code from a Xamarin Project in a Qt C++ ProjectQt C++ 项目中 Xamarin 项目中代码的可重用性
【发布时间】:2017-03-22 12:33:15
【问题描述】:

我有一个简单的应用程序,它是在 Xamarin 中为移动设备和 Windows 桌面开发的。对于其开发 C#,使用了 (Galasoft) MVVM-Light 和存储库模式。后端不是这个项目的一部分。但要获得完整的图片,则使用 REST EndPoints。

现在我问自己,如果我想在 Qt 和 C++ 中编写相同的应用程序(适用于 Linux),可以使用以前的项目中的哪些内容。到目前为止,我知道:

  • 必须完全重写视图,因为 Qt 使用“qml”而不是 XAML
  • Qt 也不像在 MVVM/C#/XAML 中那样使用“绑定”。但是有一些替代方法,找到here
  • 模型应该相对易于重复使用。

为了最小化代码的“重写”部分,我还找到了一个 C# 到 C++ 包装器,但到目前为止仅适用于方法,而不适用于整个类。见自己here

如果我的陈述在某些方面有误,是否有人有进一步的提示或可以纠正我的陈述?

感谢您的支持

【问题讨论】:

    标签: c++ linux qt xamarin mvvm


    【解决方案1】:

    根据经验,我最好的建议是避免尝试使用现有代码,而是在C++/Qt 中从头开始编写新应用程序。您已经拥有一个应用程序可能很诱人,但尝试移植它可能会比简单地重写它更痛苦,而且您也会错失从 Qt 的优势中受益的机会。例如,QML 的声明性质没有明确的对应物,您肯定希望充分利用它。

    唯一的例外是如果您(如您所说)有一个非常独立的库部分,您将能够轻松地包装和重用。但即便如此,在构建时也是一种负担。我发现将整个代码库保存在 C++/Qt5 中可以使构建和部署变得非常简单和优雅。 Qt 自带的 qmakeqbsQtCreator 等工具非常适合跨平台使用。

    除此之外,还有一些cmets:

    希望这对您有所帮助!

    【讨论】:

      【解决方案2】:

      老实说,这是一次彻底的重写。 Qt 是 C++ 而 Xamarin 主要是 C# 的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-06
        • 2015-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多