У меня есть простое приложение, которое было разработано в Xamarin для мобильных устройств и рабочего стола Windows. Для его разработки использовались C #, (Galasoft) MVVM-Light и Repository Pattern. Серверная часть не является частью этого проекта. Но для полной картины используются REST EndPoints.
Теперь я спрашиваю себя, какой из предыдущих проектов можно использовать, если я хочу написать то же приложение (для Linux) в Qt & C ++. Пока я знаю, что:
Чтобы свести к минимуму «переписать» часть кода, я также нашел оболочку от C # до C ++, но пока только для методов, а не для целых классов. Увидеть себя Вот
У кого-нибудь есть другие Типпс или они могут исправить мои заявления, если они ошибочны в каком-то аспекте?
Спасибо за вашу поддержку
Исходя из опыта, мой лучший совет — не пытаться использовать существующий код, а вместо этого написать новое приложение с нуля. C++/Qt
, Может показаться заманчивым, что у вас уже есть приложение, но попытка портировать его, вероятно, будет более болезненным процессом, чем просто переписать его, и вы также упустите возможности извлечь выгоду из сильных сторон Qt. Например, декларативный характер QML
не имеет четкого аналога, и вы определенно хотите использовать это в полной мере.
Единственное исключение — если у вас (как вы говорите) есть очень автономная библиотечная часть, которую вы легко сможете обернуть и использовать повторно. Но даже это будет ответственностью во время сборки. Я обнаружил, что хранение всей вашей кодовой базы в C++/Qt5
делает сборку и развертывание очень простым и элегантным. Инструменты, которые идут с Qt
такие как QMAKE, ООК а также QtCreator действительно хороши для кроссплатформенности.
Кроме этого, вот некоторые комментарии:
Способ создания переплеты в вашей ссылке правильно. Вот как вы делаете это с QML
, Но это не единственный способ. Есть много способов сделать это. Вот документация для альтернатив: http://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html
в C++
сторона, вы будете иметь дело с тем, что называется сигналами и слотами, что очень хорошо задокументировано здесь: http://doc.qt.io/qt-5/signalsandslots.html.
Надеюсь, это было полезно!
В принципе и честно это полное переписывание. Причиной этого Qt является C ++, а Xamarin — в основном C #.