@aleksey_vol

Вопрос по C# и net framework?

Планирую писать gui программы под винду, но останавливает то, что для запуска требуется net framework. Не каждый пользователь будет его устанавливать. На сколько я знаю, на семерке "из коробки" стоит 3 версия фреймворка, но на xp - его нет.
Так что же лучше - использовать C# или посмотреть в сторону C++ и Qt?
  • Вопрос задан
  • 561 просмотр
Пригласить эксперта
Ответы на вопрос 7
@beduin01
Забейте на С++, C# удобнее и современнее.
.NET сейчас стандарт де-факто. Он есть везде, даже на мертвом XP т.к. XP без пакета MSO я ни разу не видел.
Ответ написан
Nipheris
@Nipheris Куратор тега C++
> Не каждый пользователь будет его устанавливать.
Кто еще не установил - тому стоит это сделать, MS даже через апдейт систему предлагает дотнет поставить. А еще фишка в том, что и программам на плюсах в подавляющем большинстве случаев приходится ставить райнтайм. Конечно, его dll-ки можно просто положить в папку с программой, но это плохой путь по ряду причин. Итого, и для шарпа и для плюсов нужно ставить "среду", единственное отличие - рантайм плюсов будет легче (правда сама прога, юзающая Qt и включающая его библиотеки будет значительно тяжелее).
> На сколько я знаю, на семерке "из коробки" стоит 3 версия фреймворка
Тройка - на Висте, на семерке - 3.5.
> Так что же лучше - использовать C# или посмотреть в сторону C++ и Qt?
Тут обычно гораздо важнее вопрос кроссплатформенности. Сейчас Mono обеспечивает только WinForms, т.е. того же WPF на никсах пока не видать (и видимо уже не увидим). Поэтому я сейчас безоговорочно выбрал бы Qt, если б делал десктоп-софтину не только для винды (в 2015 году лично я не могу относиться к функциональности и CPU-oriented архитектуре WinForms всерьез). Поэтому решение принять достаточно просто:
1) если у вас line of business-приложение (напр., очередная утилитка для расчета кредитных условий по продуктам банка) и windows-машины в парке - смело берем C#, WPF, и решаем поставленную задачу;
2) если у вас приложение для широкого круга лиц, и его интерфейс сложнее интерфейса перекодировщика WAV в MP3 - берем Qt, пишем код без и получаем приложение, которое запустится на большинстве десктопных машин, а не только на тех, где винда.

P.S.
1) безусловно, есть и более чем приличные коммерческие десктопные программы на шарпе, например очень удобный и навороченный референс-менеджер Citavi, но я думаю её авторы просто приняли решение поддерживать только винду, и это их устраивает. Кроме того, они используют много сторонних платных GUI-контролов у себя в продукте.
2) реализовывать взаимодействие управляемого и нативного кода не так уж приятно, поэтому если ключевая библиотека реализована на плюсах, то и остальное приложение логично сделать нативным.
Ответ написан
Комментировать
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
В плане языка, C++ и C# разные языки разного назначения и используются для программ разного типа. Т.е., как вам уже отвечали, необходимо определиться с тем, что вы хотите писать.
От себя рекомендую следующее (есди выберите Qt): использовать Qt 5.x, gcc5, с++14 и обязательно посмотрите в сторону QML.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Не каждый пользователь будет его устанавливать

Он по дефолту идет в шиндовс, скажем можно более чем спокойно юзать .net 4.5 и радовать пользователей восьмерки и выше.
Ответ написан
Комментировать
vpuhoff
@vpuhoff
Программист в свободное от работы время
если захочется запускать на древних XP без фрэймворка можно заюзать spoon studio, exe будет на 20-40 метров тяжелее, но работать будет без фрэймворка.
Ответ написан
Комментировать
xakpc
@xakpc
full-stack .net developer, CEO Leecero.com
Gui программы под винду = C#, WPF, возможно WinRT если хотите попасть в WinStore. Не забывайте, через месяц выйдет Windows 10 с полноценной поддержкой стора, все скачивания приложений из сторонних источников сойдут на нет.
К слову под WinRT (Universal App) можно и на C++ писать.
Ответ написан
Комментировать
@DancingOnWater
Недавний пост на хабре вызвал интересный холивар(что странно), который заставил меня призадуматься.

Но я как и раньше рекомендую сначала хотя бы с годик - два поработать на C++ с использованием Boost и Qt, а затем можете идти куда угодно. Базовые понимание современных технологий у вас уже будет.

Дело в том, что избавление от рутины в современных языках приходит вместе с обрезанием возможностей. Начав с них, в итоге вы просто не будете о них знать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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