@j64

Кроссплатформенность c++ -> Qt\c++, c++\CLI?

Пишу на c++. Изучил Qt, и .NET, и вот подумал, Qt только для KDE(linux), а на windows чистая .NET программа. Решил для этого сделать свои классы кроссплатформенными так, чтобы один и тот же код выдавал или чистый .NET(то есть все классы управляемые) код или чистый Qt\С++ код, то есть почти полностью отказаться от стандартной библиотеки. Но плата за кроссплатформенность высока, иногда даже не знаешь как будет вести себя код. Приходится тщательно рассматривать множество мелочей.
Вопрос: имеет ли смысл в .NET(C++\CLI) делать классы управляемыми, или просто делать управляемые обертки на обычные неуправляемые классы(модель программы)? Но в таком случае компилятор выдаст managed и unmanaged код. Где вызовы между ними будут медленными, и вообще, чистота кода испортится. Также там будут внешние зависимости, отличные от dll'ок .NET'а
Рассмотрим две программы: одна будет использовать некую свою библиотеку для расчётов, а в другой будет мало своего кода, но будет много вызовов .NET фреймворка. Где выгоднее использовать чистый .NET и где смешанный? Может .NET и Qt использовать чисто для интерфейса, а саму логику на крестах делать? Но тогда придется тащить за собой всякие библиотеки типа boost и тому подобных, да и размер программы увеличится.

По поводу Qt для windows и linux: в втором всё хорошо, но в первом приходится тащить за собой Qt библиотеки на несколько метров, и вообще, зачем отвергать инструмент, созданный специально для ОС,- .NET?
  • Вопрос задан
  • 1283 просмотра
Пригласить эксперта
Ответы на вопрос 5
@SZolotov
Asp.net core, MAUI,WPF,Qt, Avalonia
Самое главное не выражайте подобные мысли на работе. Ни в слух, ни письменно, ни как. В середине первого предложения руководитель вас уволит, если повезет то на втором. Ближе к концу и до рукоприкладства дойти может.
Ответ написан
Adamos
@Adamos
Вы вес .NET библиотек смотрели? И их поддержку в страшно устаревшей, но по-прежнему распространенной в реальной жизни ХР?
Вопрос звучит так, как будто вы сами не понимаете, что вам нужно. Мешать кроссплатформенную библиотеку с дотНетом - значит потерять достоинства и того, и другого. А главное - ЗАЧЕМ?!
Ответ написан
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Qt -- кроссплатформенная библиотека. Зачем делать что-то своё, если все уже сделали за вас? Представьте, что вам внезапно захотелось портировать приложение еще и на Mac... Будете снова делать свои классы кроссплатформенными, или просто напишите один раз на Qt и это будет работать везде и одинаково в 95% случаев? Выбор за вами в общем.
Ответ написан
Olej
@Olej
инженер, программист, преподаватель
Глупость какая-то несусветная: впихнуть не впихуемое :-(
... смешать кросплатформенную Qt с каким-то непотребным .NET ... вы бы хоть тему тегом Windows отмечали, а то C++ ... при чём тут C++ вообще?
Ответ написан
@iv_k
круто. обязательно еще напишите свой компилятор и свою ОС.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы