Re[2]: WinForms окончательно помер?
От: Kolesiki  
Дата: 26.06.17 21:50
Оценка: 1 (1) +1 -1
Здравствуйте, Gattaka, Вы писали:

G>WPF по скорости быстрее, т.к. использует видеокарту напрямую.


Эти сказки надо оставлять в том же рекламном мусоре, где ты их нашёл. Все тырнеты воют "wpf тормозит", зачем говорить откровенную ахинею??

G> По качеству кода выше не то что на две головы, а на порядок.


Качество кода? Так говоришь, будто сам понимаешь, что сказал. Достаточно знать, что WPF — overengineered кусок индусячей мысли, какое "качество" ты там нашёл?
Одни "гении" решили, что "всё есть объект" и придумали однородный, но тормозной Смоллток. Благополучно помер и труп насилуют в академических средах.
В M$ решили, что можно проперти обвешать своими хитрозадуманными dependency — чай, производительности дофига! Этот бред пронизал практически всю библиотеку, так что WPF — это не просто монстр, а тормознутый монстр — очевидный труп даже при вливании миллионов. Тот, кто хоронит WinForms, ещё пороха не нюхал и дальше стилизации кнопок в WPF не заглядывал. Это звучит дико, но здесь именно тот случай, когда отец переживёт дитя.
Re[2]: WinForms окончательно помер?
От: Философ Ад http://vk.com/id10256428
Дата: 27.06.17 17:05
Оценка: 1 (1) +1
Здравствуйте, 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> По качеству кода выше не то что на две головы, а на порядок.


По качеству чьего кода кто выше?
Всё сказанное выше — личное мнение, если не указано обратное.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.