Добавлен J64_
Пишу на c++. Изучил Qt, и .NET, и вот подумал, Qt только для KDE(linux), а на windows чистая .NET программа. Решил для этого сделать свои классы кроссплатформенными так, чтобы один и тот же код выдавал или чистый .NET(то есть все классы управляемые) код или чистый Qt\С++ код, то есть почти полностью отказаться от стандартной библиотеки. Но плата за кроссплатформенность высока, иногда даже не знаешь как будет вести себя код. Приходится тщательно рассматривать множество мелочей.
Вопрос: имеет ли смысл в .NET(C++\CLI) делать классы управляемыми, или просто делать управляемые обертки на обычные неуправляемые классы(модель программы)? Но в таком случае компилятор выдаст managed и unmanaged код. Где вызовы между ними будут медленными, и вообще, чистота кода испортится. Также там будут внешние зависимости, отличные от dll'ок .NET'а
Рассмотрим две программы: одна будет использовать некую свою библиотеку для расчётов, а в другой будет мало своего кода, но будет много вызовов .NET фреймворка. Где выгоднее использовать чистый .NET и где смешанный? Может .NET и Qt использовать чисто для интерфейса, а саму логику на крестах делать? Но тогда придется тащить за собой всякие библиотеки типа boost и тому подобных, да и размер программы увеличится.
Вопрос: имеет ли смысл в .NET(C++\CLI) делать классы управляемыми, или просто делать управляемые обертки на обычные неуправляемые классы(модель программы)? Но в таком случае компилятор выдаст managed и unmanaged код. Где вызовы между ними будут медленными, и вообще, чистота кода испортится. Также там будут внешние зависимости, отличные от dll'ок .NET'а
Рассмотрим две программы: одна будет использовать некую свою библиотеку для расчётов, а в другой будет мало своего кода, но будет много вызовов .NET фреймворка. Где выгоднее использовать чистый .NET и где смешанный? Может .NET и Qt использовать чисто для интерфейса, а саму логику на крестах делать? Но тогда придется тащить за собой всякие библиотеки типа boost и тому подобных, да и размер программы увеличится.
По поводу Qt для windows и linux: в втором всё хорошо, но в первом приходится тащить за собой Qt библиотеки на несколько метров, и вообще, зачем отвергать инструмент, созданный специально для ОС,- .NET?
upd: у вас парсер порвался от ++ :)
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Под линух есть mono для запуска .net приложений. В целом штука интересная, поддерживает стандарт 3.5 + дополнительные плюшки из 4.0. Либо использовать Xamarian, но он платный.
Под QT можно закомпилится под винду, но достаточно сложно, но сделав это один раз, дальше проблем не будет (я не справился, сдался)
Ред. J64_
BrEd Pitt:
Выбери то, что тебе больше нравится, на том и пиши. Mono не для извращенцев, просто он старенький и не поддерживается (потому что они перешли на комерцию). Unity3D использует mono для запуска на линуксе