WPF против Winforms производительность больше не является основным критерием.
Я знаю, что этот вопрос задавался ранее, но с учетом .NET 4.x и улучшений, которые сделали WPF более производительным, сообщество считает, что производительность больше не является критерием выбора одной технологии перед другой .
В целом настольные приложения WPF работают значительно лучше, чем эквивалентный код WinForms, в сценариях, требующих сложного пользовательского интерфейса, настройки стилей и сценариев с интенсивным использованием графики, из-за нескольких архитектурных преимуществ WPF над WinForms:
- Лучшее использование графического процессора
- Режим рендеринга с сохранением
- Более эффективное связывание данных. Более эффективное построение дерева объектов.
- Более эффективное использование ОЗУ (с помощью DependencyObject)
- Меньший программный код
Однако оба работают достаточно быстро, и я не думаю, что производительность будет основной причиной выбора WPF вместо WinForms. Это будет возможность быстрее создавать лучшие приложения.
Разработчики игр и другие, которым нужна максимальная производительность, не будут использовать WPF или WinForms для критических частей своего пользовательского интерфейса: они будут программировать для Direct3D или даже для аппаратного обеспечения.
Эта статья описывает платформы (UWP, WPF и Windows Forms) и помогает вам определить лучшую для вашего приложения.
Для модульного тестирования Winforms первое, что вы должны сделать, - убедиться, что вы правильно отделили свою бизнес-логику от формы. В основном, с использованием шаблона MVC. Затем вы можете легко проверить все, что находится за пределами формы, как если бы форма даже не существовала.