Беспокоюсь о WPF. Должен ли я использовать WPF или другую библиотеку для графического интерфейса Windows? - PullRequest
4 голосов
/ 04 ноября 2010

Я некоторое время работал над библиотекой, которая выполняет числовые вычисления.Он написан на чистом родном C ++, и до сих пор я использовал простые консольные приложения для проверки его функциональности.

Пришло время построить графический интерфейс поверх библиотеки - чтобы лучше отображать таблицы результатов итакже для их визуализации в графической форме.

Я всегда планировал использовать WPF для реализации пользовательского интерфейса и потратил некоторое время на его изучение, но сейчас у меня возникают другие мысли.Мои опасения по поводу WPF следующие:

  1. Стоит ли связывать мою программу с .NET framework только ради пользовательского интерфейса?.NET и WPF, кажется, добавляют накладные расходы во многих формах, включая:
    • Сложность программы
      • Использование .NET подразумевает использование второго языка - и, следовательно, написание большого количества беспорядочного кода взаимодействия.
    • Производительность во время выполнения
      • В частности, приложения WPF запускаются очень медленно.
    • Развертывание
      • Is .NETБыстрая и простая установка каркаса?Требуется ли перезагрузка аппарата?

  2. Качество рендеринга
    • Это улучшилось в WPF 4, но отображение стандартных элементов по-прежнему кажетсяв некоторых областях неудовлетворительное.

  3. Обеспокоенность по поводу того, улучшатся ли производительность и качество в будущем
    • Правда ли, что в Microsoft снимают акцент с WPF (в пользу Silverlight)?

Мои опасения усугубляются новостями о том, что люди, покидающие WPF, сталкивались с похожими проблемами - самой последней и самой громкой является Evernote.

Вы бы порекомендовали мне придерживаться своего первоначального плана и использовать WPF?

Если да, что вы думаете о вышеуказанных проблемах?
Если нет, то какие альтернативные библиотекиМогу ли я использовать для создания высококачественного графического интерфейса Windows?


Редактировать:

Спасибо Риду Копси за то, что обратились к моим индивидуальным вопросам.Ответ предполагает, что большинство проблем, с которыми я сталкиваюсь с WPF, можно обойти.

Кажется, что использование WPF потребует больше работы, чем было бы идеально - включая написание кода взаимодействия и настройку для обеспечения хорошей производительности и высокой производительности.качественный.Согласны ли люди с утверждением о том, что, несмотря на это, лучший способ создания высококачественного пользовательского интерфейса - это WPF, а не какой-либо другой фреймворк?

1 Ответ

6 голосов
/ 04 ноября 2010

Я постараюсь обратиться к ним по порядку. Спойлер: По моему мнению, по большей части ответ - да.

Стоит ли связывать мою программу с .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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...