Я постараюсь обратиться к ним по порядку. Спойлер: По моему мнению, по большей части ответ - да.
Стоит ли связывать мою программу с .NET framework только ради пользовательского интерфейса?
Это зависит от требований к интерфейсу. Вам нужен хороший, надежный, современный интерфейс? Если это так, вы захотите использовать правильный инструмент для выполнения этого требования.
.NET и WPF, кажется, добавляют накладные расходы во многих формах, включая:
- Сложность программы
- Использование .NET подразумевает использование второго языка - и, следовательно, написание большого количества беспорядочного кода взаимодействия.
Вы можете использовать GDI + через C ++ / CLI и обрабатывать все на одном языке. Тем не менее, одна из причин, по которой люди используют другие языки для этого, - производительность - на самом деле она очень и очень быстра по сравнению с созданием графического интерфейса в C ++. Код взаимодействия через C ++ / CLI совсем не очень грязный, по крайней мере, если ваши подпрограммы основаны на классах.
Производительность во время выполнения
- В частности, приложения WPF запускаются очень медленно.
В некоторой степени это может быть проблемой. Тем не менее, вы можете многое сделать, чтобы смягчить его - но это, вероятно, всегда будет запускаться немного медленнее, чем простая, родная кодовая база, поскольку она должна раскручивать библиотеки CLR +.
Развертывание
- Быстрая и простая установка .NET Framework? Требуется ли перезагрузка машины?
Да, по обоим пунктам, как правило. Тем не менее, большинство людей уже имеют установленную платформу (особенно если вы нацелены на .NET 3.5, но 4.0 идет хорошо), так что это не проблема. Однако я всегда рассматриваю это как разовую вещь - я бы предпочел обменять хороший пользовательский интерфейс на немного времени развертывания, особенно когда это развертывание относительно безболезненно (.NET очень прост в установке, просто большой и немного времени)
Качество рендеринга
- В WPF 4 это улучшилось, но в некоторых областях отображение стандартных элементов все еще кажется плохим.
Я бы категорически не согласился. WPF является (особенно в v4), главной платформой для качественных пользовательских интерфейсов. Сложно превзойти параметры качества рендеринга в WPF -
Беспокойство о том, улучшатся ли производительность и качество в будущем
- Правда ли, что в Microsoft снимают акцент с WPF (в пользу Silverlight)?
Нет. На PDC была даже хорошая беседа о будущем WPF. Silverlight получает гораздо больше прессы, но в основном потому, что технология не настолько зрелая, поэтому она меняется быстрее. WPF по-прежнему является лучшим в пользовательском интерфейсе и все еще добавляет новые функции. Это также предлагаемая платформа для взаимодействия с нативным кодом - хотя это возможно в SL с использованием COM, это не так приятно, как в WPF.
Производительность, проблемы с потоками и проблемы с воздушным пространством, по-видимому, будут иметь в виду будущие улучшения, согласно докладу PDC. Для получения подробной информации смотрите « Будущее WPF .»