Должно ли приложение WPF быть написано на C++/CLI или C#?
Приложения WPF по своей сути являются управляемыми приложениями? Правильно? Итак, я должен выбирать между использованием управляемого C++ или управляемого C#. Я экспериментировал с управляемым C++ несколько лет назад. Казалось, не совсем готов к прайм-тайм. Я предполагаю, что Microsoft приложила больше усилий к управляемому C#, чем к управляемому C++. Таким образом, кажется, что использование управляемого C# - лучшая альтернатива между ними. Это тот случай? Какой у вас опыт работы с WPF на любом языке? Заранее спасибо.
6 ответов
Управляемый C++ был заменен на C++/CLI, и "управляемый C#" - это просто C#.
Я настоятельно рекомендую вам использовать C# для нового проекта и использовать C++ / CLI только при необходимости. C# имеет лучшую поддержку, имеет большую базу пользователей и с ним легче работать в Visual Studio 2010.
Кроме того, имейте в виду, что C++ и C++ / CLI - это два разных языка. Для моего первого проекта.Net я выбрал C++/CLI, потому что я уже знал C++, и это была очень плохая идея: кривая обучения от C++ до C++ / CLI аналогична изучению C# из C++: не попадитесь в эту ловушку,
C++/CLI действительно был создан только для поддержки написания уровней взаимодействия между неуправляемым кодом (т. Е. Собственным C/C++) и управляемым кодом. Для "тяжелой работы" вам обязательно следует использовать C# (или VisualBasic.NET).
Вы можете использовать управляемый C++ для своего бэкэнда, но при проверке VS (я использую 2010 Ultimate) не имеет встроенных шаблонов для приложения C++ WPF - только C# или VB.
Я уверен, что вы могли бы заставить его работать, если бы захотели, но я бы посоветовал вам использовать C#.
C# является наиболее используемым, поэтому, если у вас возникли проблемы, есть больше онлайн поддержки C#. C# также имеет лучшую поддержку со стороны Microsoft. В целом, это просто более законченный продукт, даже сейчас. Если вы действительно не заботитесь о себе, я бы пошел с C#.
ИМО без сомнения C# (или VB / F#).
C++/CLI отлично подходит для пересечения границы управляемого мира и библиотеки C++. Сложность выше, хотя тонкие проблемы возникают из-за того, что человек объединяет управляемый язык и неуправляемый.
Время компиляции дольше, хотя и в C++/CLI, тем более что шаблоны кода смоделированы по принципу работы компилятора C#, а не по принципу работы компилятора C++.
Что касается бэкэнда, они оба работают на CLR и способны работать. На самом деле все сводится к тому, что вам наиболее удобно. Если вы не уверены, поэкспериментируйте с обоими. Используйте то, что кажется наиболее продуктивным.
Редактировать:
Как мне только что сказали, кажется, что поддержка шаблонов WPF (и, возможно, даже intellisense) просто отсутствует для C++. Так что в этом случае, я думаю, я бы рекомендовал C#.