Здравствуйте, Gattaka, Вы писали:
G>Здравствуйте, Shmj, Вы писали:
S>>Вот стали бы вы писать небольшую утилиту для бухгалтерии на WinForms (5-7 разных форм средней сложности)? Или лучше сразу на WFP?
S>>Плюс WinForms -- оно работает на Linux. Мало ли, вдруг понадобится.
S>>Или трупа лучше не ворошить?
G>WPF по скорости быстрее, т.к. использует видеокарту напрямую.
Ну во-первых, WPF не использует видеокарту напрямую.
| Видел когда-нибудь вот такое? |
| private void Window_Loaded(object sender, RoutedEventArgs e)
{
if (ForceSoftwareRendering)
{
HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
HwndTarget hwndTarget = hwndSource.CompositionTarget;
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
}
}
|
| |
Оно использует то, рендерер, который частенько выбирается по каким-то странным критериям, а не видеокарту. При этом значительная часть всё-равно почему-то рендерится софтверно.
Во-вторых, кроме непосредственно рендера в процессе формирования картинки учавствует ещё WIC, который за каким-то хреном заюзали для масштабирования битмапов, хотя старые способы были вполне годными и превосходно оптимизированными. А он работает как ему заблагорассудится. Это ты просто с Windows Core не сталкивался. Кстати, похоже что именно для него — чисто маркетинговые цели.
В-третьих, кроме масштабирования битмапов и рендерера в процессе формирования изображения учавствуют Layout Engine, и WPF'ная маршрутизация событий, которая невероятно тормозная. Ясен пень, что здесь я о сложном и большом UI говорю.
В-четвёртых, WPF существенно замедляет старт софтины из-за компиляции BAML'а, что особенно заметно, если у тебя нет SSD. Там же он отжирает нереальное кол-во оперативы.
G> По качеству кода выше не то что на две головы, а на порядок.
По качеству чьего кода кто выше?