Как устроен WPF?
От: Слава  
Дата: 18.08.15 21:12
Оценка: 5 (1)
Здравствуйте. А где бы почитать про low-level устройство WPF? Я примерно понимаю, как работает обычный GDI, с его окнами и оконными сообщениями. Примерно понимаю, как система вычисляет необходимые для перерисовки окна. Но, ведь вся эта машинерия работает в ядре, не так ли? А WPF — он только managed. Как вообще он встроен в систему, например — у меня в процессе два WPF-окна, видных на таскбаре, я одно перетащил над другим — кто будет вычислять "грязные" регионы, ядро или WPF внутри процесса? Что это за окна вообще — обычный объект GDI, внутри которого directx'ом что-то рисуется?

Есть ли какие-то подобные фреймворки, которые оперировали бы не сообщениями и device contexts, а графическими примитивами? В линуксе, например.
Отредактировано 10.01.2017 5:54 AndrewVK . Предыдущая версия .
wpf
Re: Как устроен WPF?
От: Sinix  
Дата: 19.08.15 06:28
Оценка: 20 (5) +1
Здравствуйте, Слава, Вы писали:

С>Здравствуйте. А где бы почитать про low-level устройство WPF?

Примерно так (+ ещё немного деталей). Более подробных постов не попадалось.

С>Как вообще он встроен в систему, например — у меня в процессе два WPF-окна, видных на таскбаре, я одно перетащил над другим — кто будет вычислять "грязные" регионы, ядро или WPF внутри процесса?

http://blogs.msdn.com/b/greg_schechter/archive/2006/06/09/623566.aspx
и ещё немного в .pro wpf programming
Re: Как устроен WPF?
От: c-smile Канада http://terrainformatica.com
Дата: 12.09.15 18:16
Оценка: 27 (3) +1
Здравствуйте, Слава, Вы писали:

С>Но, ведь вся эта машинерия работает в ядре, не так ли?


Если ядро имеется ввиду kernel то нет. GDI поверх работает в основном.

С>кто будет вычислять "грязные" регионы?


WPF/DirectX рисует в swap buffer (bitmap фактически). Т.е. WM_PAINT в WPF нет. Приложение рисует в буфер. Который переключается (swap) когда он готов.

С>Есть ли какие-то подобные фреймворки, которые оперировали бы не сообщениями и device contexts, а графическими примитивами? В линуксе, например.


Мой Sciter например.
Это в принципе тот же WPF только вместо XAML используется HTML/CSS. Ну и работает на всех desktop platforms в отличие от.
Отредактировано 12.09.2015 18:17 c-smile . Предыдущая версия .
Re[2]: Как устроен WPF?
От: vdimas Россия  
Дата: 19.01.16 14:06
Оценка:
Здравствуйте, Sinix, Вы писали:

С>>Как вообще он встроен в систему, например — у меня в процессе два WPF-окна, видных на таскбаре, я одно перетащил над другим — кто будет вычислять "грязные" регионы, ядро или WPF внутри процесса?

S>http://blogs.msdn.com/b/greg_schechter/archive/2006/06/09/623566.aspx
S>и ещё немного в .pro wpf programming

Че-та по ссылкам не говорится о том, что WPF рисует не в DirectX, а кодирует последовательность вызовов для отрисовки сцены в виде данных, затем передает эти данные нейтивному "плееру", который затем проигрывает сию последовательность в отдельном потоке. Вернее, наоборот, WPF вынужден создавать отдельный поток для обработки событий и отрисовки сцены, а главному шлёт вот этот закодированный алгоритм-данные для отрисовки в нейтивном GUI, в свою очередь, главный поток пуляет в этот дополнительный пришедшие события мыши, клавы и прочего. Вот такая херня, малята. )) Трафик GC порой просто невменяемый от просто движений мышью над сложной сценой. Отсюда все тормоза.
Re: Как устроен WPF?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.01.16 14:38
Оценка:
Здравствуйте, Слава, Вы писали:
Есть еще windowinterophelper
Я в 1С использую

public partial class Window1 : Window
    {
        dynamic Модуль1С;
        public Window1(dynamic модуль1С, dynamic Object1C)
        {
            InitializeComponent();
            Модуль1С = модуль1С;
            IExtWndsSupport n;
             n = (IExtWndsSupport)Object1C;
             IntPtr hwnd;
                    n.GetAppMainFrame(out hwnd);

            var wih = new System.Windows.Interop.WindowInteropHelper(this);
            wih.Owner = hwnd;

        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            Модуль1С.СообщитьСтр(textBox.Text);
        }
    }
и солнце б утром не вставало, когда бы не было меня
Re[3]: Как устроен WPF?
От: Слава  
Дата: 19.01.16 17:09
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Че-та по ссылкам не говорится о том, что WPF рисует не в DirectX, а кодирует последовательность вызовов для отрисовки сцены в виде данных, затем передает эти данные нейтивному "плееру", который затем проигрывает сию последовательность в отдельном потоке. Вернее, наоборот, WPF вынужден создавать отдельный поток для обработки событий и отрисовки сцены, а главному шлёт вот этот закодированный алгоритм-данные для отрисовки в нейтивном GUI, в свою очередь, главный поток пуляет в этот дополнительный пришедшие события мыши, клавы и прочего. Вот такая херня, малята. )) Трафик GC порой просто невменяемый от просто движений мышью над сложной сценой. Отсюда все тормоза.


Ничоси. Интересно, есть ли хоть один нетормозной композитный фреймворк?
Re: Как устроен WPF?
От: m2l  
Дата: 19.01.16 18:18
Оценка: 20 (2)
Здравствуйте, Слава, Вы писали:

С>Здравствуйте. А где бы почитать про low-level устройство WPF?

Если не изменяет память, то на https://www.techdays.ru/ проскальзывала пара докладов в которых более менее рассказывалось про работу всего стека (от xaml до драйвера видиокарты).
Re[4]: Как устроен WPF?
От: vdimas Россия  
Дата: 19.01.16 18:45
Оценка:
Здравствуйте, Слава, Вы писали:

С>Ничоси. Интересно, есть ли хоть один нетормозной композитный фреймворк?


Нейтивные браузерные — большинство с открытыми исходниками. Ну еще встроенный WinRT, начиная с Windows 8.0 — рендерит прямо из того же потока, в котором выполняется логика layout сцены, поэтому заметно пошустрее. GUI-cобытия, опять же, не надо перекачивать из потока в поток...
Re[4]: Как устроен WPF?
От: MxMsk Португалия  
Дата: 20.01.16 10:13
Оценка: 42 (2) +1
Здравствуйте, Слава, Вы писали:

С>Ничоси. Интересно, есть ли хоть один нетормозной композитный фреймворк?

Нашел кого слушать. Он уже не раз писал бред про WPF, в котором ни черта не разбирается. Лучше сам покопайся, если интересно. Да и с GC я тесты проводил — его там менее 1% про профайлеру.
Re[2]: Как устроен WPF?
От: UA Украина  
Дата: 04.02.16 13:16
Оценка:
CS>Мой Sciter например.
CS>Это в принципе тот же WPF только вместо XAML используется HTML/CSS. Ну и работает на всех desktop platforms в отличие от.

А в чем преимущество вашего подхода перед Desktop Applications и Web Applications?
Мне почему то всегда казалось что ваше решение это объединение наихудшых решений что можно было взять у Desktop Applications и Web Applications одновременно — то есть ваше решение не может полноценно заменить ни Desktop Application и также не может полноценно заменить и Web Application. В чем профит?
Re[3]: Как устроен WPF?
От: c-smile Канада http://terrainformatica.com
Дата: 05.02.16 00:52
Оценка: 19 (1)
Здравствуйте, UA, Вы писали:

UA>В чем профит?


Profit тот же что и у WPF, только как я уже сказал это HTML/CSS что заведомо лучше чем XAML. На всех desktop platforms

UA> ... Desktop Application ...


Desktop Application они все разные. Вот например одно
http://sciter.com/from-skeuomorph-to-flat-ui-evolution-of-one-application/
которое работает со Sciter UI уже десять лет.
За все десять лет из UI они только стили (CSS) в основном и меняют в UI.

При этом они перешли таким безболезненным образом с XP на Win 10 с его flat, Metro alike UI.
Это конечно своебразный UI, но вот и чисто утилитарный GitHub UI явно укладывется в HTML/CSS



Ну или вот чистый HTML/CSS desktop UI:

Atom / Electron editor



или вот Brackets editor



Кстати в Украине со Sciter активно работают (из тех что я знаю) несколько команд в softserve inc (Львов) и comodo (Одесса).
Отредактировано 05.02.2016 1:18 c-smile . Предыдущая версия .
Re[4]: Как устроен WPF?
От: UA Украина  
Дата: 05.02.16 10:40
Оценка: :)
UA>>В чем профит?
CS>Profit тот же что и у WPF, только как я уже сказал это HTML/CSS что заведомо лучше чем XAML. На всех desktop platforms

Разметка это дело десятое (например в Delphi ее вообще никто не видел), главное чтобы было удобство прописать байдинги и все такое.
В WPF можно интерактивность приложения наварачивать до усирачки, тогда как HTML даже сейчас это довольно статический контент из текста и картинок. То есть ваш подход явно проигрывает Desktop решениям, в том числе и WPF.
А если взять WebApplication, то там HTML разметки можно и не увидеть за серверными контролами который отдается клиенту или прикрутить как сейчас модно JavaScipt контролы — а у вас так можно делать? Думаю что нет.
Я не знаю почему антивирусы застряли на HTML-like UI, ведь если есть грамотный UI чел, то навернуть можно в разы круче и удобнее, а они сами себя добровольно урезают в возможностях своего UI выходит.
Re[5]: Как устроен WPF?
От: c-smile Канада http://terrainformatica.com
Дата: 05.02.16 18:07
Оценка: 3 (1) +1 :)
Здравствуйте, UA, Вы писали:

UA>>>В чем профит?

CS>>Profit тот же что и у WPF, только как я уже сказал это HTML/CSS что заведомо лучше чем XAML. На всех desktop platforms

UA>Разметка это дело десятое (например в Delphi ее вообще никто не видел), главное чтобы было удобство прописать байдинги и все такое.


"удобство прописать байдинги" тоже дело относительное. Это кому что удобно.
Кто-то считает что AngularJS (или +plus в Sciter) это высшая форма duplex data binding и лучше просто ничего не бывает.

UA>В WPF можно интерактивность приложения наварачивать до усирачки, тогда как HTML даже сейчас это довольно статический контент из текста и картинок. То есть ваш подход явно проигрывает Desktop решениям, в том числе и WPF.


Вот глянь на screenshots здесь https://cyberraiden.wordpress.com/2014/09/28/norton-internet-security-2015-review-settings/
Это не всё, там реально 40-50 форм и вариаций разных. Интерактивных настолько что рядовым проктологам и не снилось. Это всё HTML/CSS. Уже 10 лет как. Ибо это Sciter UI.

В Sciter можно делать заведомо больше того что можно в WPF. Ну вот скажем примеры из Sciter SDK:








UA>А если взять WebApplication, то там HTML разметки можно и не увидеть за серверными контролами который отдается клиенту или прикрутить как сейчас модно JavaScipt контролы — а у вас так можно делать? Думаю что нет.


А как WebApplication и WPF соотносится?
Ну да ладно...

Есть такое понятие — Single Page Web Applications (SPA). Там сервер отдает одну единственную статическую web page и реализует набор REST интерфейсов.
А клиент уже создает content. Всякие AngularJS, EmberJS, ReactJS и прочие они все про это.

SPA это классичесий вариант client-server архитектуры c толстым кдиентом.

Так вот SPA это и есть модель desktop приложения. Где в качестве server выступает business logic and data layer самого приложения.
В случае Sciter это или native code или код на C#, Go, D или, прости хоспидя, Delphi.

UA>... там HTML разметки можно и не увидеть ...


Ну вот
  Код richtext примера что на screenshot выше
<html>
  <head>
    <title>Richtext sample</title>
    <style>
      @import url(richtext.css);
      body { margin:0;}
      plaintext { font-family:monospace; overflow:scroll-indicator; white-space:pre-wrap; }
    </style>

    <script type="text/tiscript">
    function self.ready() {
      var richtext = $(richtext);
      var plaintext = $(plaintext);
      richtext.on("change", function() {
        plaintext.value = this.source;
      });
    };
    </script>
  </head>
<body>
  <frameset cols="*,*">
    <richtext src="test-doc.html" />
    <splitter/>
    <plaintext />
  </frameset>
</body>
</html>


Много ты там видишь из того что на картинке? UI того <richtext> создается в скрипте котоый подключается стилем @import url(richtext.css);

UA>Я не знаю почему антивирусы застряли на HTML-like UI, ведь если есть грамотный UI чел, то навернуть можно в разы круче и удобнее, а они сами себя добровольно урезают в возможностях своего UI выходит.


Ну почему только антивирусы ...

ICQ знаешь? Ну дык Sciter нонче...

И у меня в клиентах есть например World Bank Organization, или Kindred Healthcare (50 тыс сотрудников в US).
У них там дофига интересного деется на Sciter. С одним и тем же UI на разных платформах...
Re[6]: Как устроен WPF?
От: UA Украина  
Дата: 05.02.16 18:53
Оценка:
UA>>В WPF можно интерактивность приложения наварачивать до усирачки, тогда как HTML даже сейчас это довольно статический контент из текста и картинок. То есть ваш подход явно проигрывает Desktop решениям, в том числе и WPF.

CS>Вот глянь на screenshots здесь https://cyberraiden.wordpress.com/2014/09/28/norton-internet-security-2015-review-settings/

CS>Это не всё, там реально 40-50 форм и вариаций разных. Интерактивных настолько что рядовым проктологам и не снилось. Это всё HTML/CSS. Уже 10 лет как. Ибо это Sciter UI.

И где интерактивность? Обычный статический текст с картинками и кнопочками.

CS>А как WebApplication и WPF соотносится?

CS>Ну да ладно...

Мне не совсем понятна ваша ниша, вот если брать Qt — понятно, wxWidgets — тоже понятно, PhoneGap — понятно, и так далее. А вы где то посредине ни к десктопу ни к вебу.

CS>Есть такое понятие — Single Page Web Applications (SPA). Там сервер отдает одну единственную статическую web page и реализует набор REST интерфейсов.

SPA значит что нету постбэков с полной перезагрузкой страницы. А подгружать или замещать куски UI через .ajax никто не запрещает.

CS>А клиент уже создает content. Всякие AngularJS, EmberJS, ReactJS и прочие они все про это.

Это сегодняшняя мода такая, но UI можно делать и на сервере и отдавать уже готовым на клиента которому только отрендерить.

CS>SPA это классичесий вариант client-server архитектуры c толстым кдиентом.

Это зависит от реализации, можно сделать и тонким клиентом.

CS>Так вот SPA это и есть модель desktop приложения. Где в качестве server выступает business logic and data layer самого приложения.

CS>В случае Sciter это или native code или код на C#, Go, D или, прости хоспидя, Delphi.
Это бывает удобнее чтобы завернуть веб-приложение через PhoneGap и отдать его под видом desktop приложения, но все же понимают что это далеко не desktop приложение и оно имеет кучу ограничений.
Re[4]: Как устроен WPF?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 10.02.16 20:37
Оценка: +5 -2
Здравствуйте, c-smile, Вы писали:

CS>Profit тот же что и у WPF, только как я уже сказал это HTML/CSS что заведомо лучше чем XAML. На всех desktop platforms

Мягко говоря, спорное утверждение. По мне так XAML заруливает любые другие аналоги с большим отрывом. HTML/CSS — вообще самое большое убожество, придуманное человечеством. И только обильное добавление жабаскриптовых либ делает его более-менее юзабельным.
Я конечно понимаю, что тебе нужно пиарить свой продукт, но всё же...
[КУ] оккупировала армия.
Re[5]: Как устроен WPF?
От: c-smile Канада http://terrainformatica.com
Дата: 11.02.16 01:26
Оценка: +1
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, c-smile, Вы писали:


CS>>Profit тот же что и у WPF, только как я уже сказал это HTML/CSS что заведомо лучше чем XAML. На всех desktop platforms

K>Мягко говоря, спорное утверждение. По мне так XAML заруливает любые другие аналоги с большим отрывом. HTML/CSS — вообще самое большое убожество, придуманное человечеством. И только обильное добавление жабаскриптовых либ делает его более-менее юзабельным.

То что в HTML/CSS люди добавляют тучи разных frameworks и подходов я классифицирую как достоинство. Значит основа достаточно гибкая.
Вокруг HTML/CSS мы наблюдаем кучу всяких технологий и идей, те же jquery, angular, react и прочее. WPF же... ну всё в том же состоянии...

Да даже MS от него как-то дистанциируется. Ну сделали вот WPF с рисованием в DirectX...
Но буквально через пару лет сделали Direct2D с тем же принципом. Только без этого странного XML нагромождения...
Хотя могли бы продолжать развивать WPF и переписать на нем desktop. Но не стали. Ужаснулись на реальных примерах ?

WPF/XAML это в принципе точно такое же DOM tree как тот же HTML или SVG. Словарь другой, а так в принципе то же самое.

Но у WPF архитектуры есть две основные проблемы:

1. Дикое нарушение принципа separation of concerns. Всё в куче и стили и биндинги и разметка.
На самом деле WPF это всё те же .FRM файлы от VisualBasic только вместо YAML-alike формата использован XML. Такой вот наивный рефактринг во времена когда было XML-наще-фсё.

2. Стили в WPF это вообще грустно. Особенно в сравнении с CSS и его cascading и селекторами. Ну вот не получается в WPF применить другую систему layout или стилей без переписывания всего и вся. Всё приколочено гвоздями. Фактичски та же проблема что и у WinForms.

Т.е. не получается как с HTML когда backend/server выдает абстрактный список <ul><li>, а уже CSS раскладывает его вертикально и горизонтально — как надо.
И тут много всякого под этим.

K>Я конечно понимаю, что тебе нужно пиарить свой продукт, но всё же...


Я хоть и участвовал как Invited Expert в W3C в разаработке HTML5 спецификации, но ни HTML ни CSS не являются моими продуктами.
Т.е. тут "пиарить" мне нечего.
Re[6]: Как устроен WPF?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 11.02.16 01:57
Оценка: +1 -3
Здравствуйте, c-smile, Вы писали:

CS>То что в HTML/CSS люди добавляют тучи разных frameworks и подходов я классифицирую как достоинство. Значит основа достаточно гибкая.

Неверно — это значит, что оригинал настолько убог, что без костылей его использовать невозможно.

CS>Вокруг HTML/CSS мы наблюдаем кучу всяких технологий и идей, те же jquery, angular, react и прочее. WPF же... ну всё в том же состоянии...

См. выше. Плюс тут сказалось жёсткое легаси. Собственно jquery изначально зародилась как способ предоставить браузеро-независимое API для жабаскриптов.

CS>Да даже MS от него как-то дистанциируется. Ну сделали вот WPF с рисованием в DirectX...

CS>Но буквально через пару лет сделали Direct2D с тем же принципом. Только без этого странного XML нагромождения...
CS>Хотя могли бы продолжать развивать WPF и переписать на нем desktop. Но не стали. Ужаснулись на реальных примерах ?
Месье понимает разницу между композицией и рендером?

CS>WPF/XAML это в принципе точно такое же DOM tree как тот же HTML или SVG. Словарь другой, а так в принципе то же самое.

Принцип действительно похожий, только XAML намного мощнее за счёт дата-шаблонов и байндинга.

CS>1. Дикое нарушение принципа separation of concerns. Всё в куче и стили и биндинги и разметка.

Байндинг и дата-темплейты — это как раз ОГРОМНОЕ преимущество XAML и то, чего так не хватает в HMTL. Не зря же появилась куча жабаскриптовых библиотек для этих фич — потому что искаропки в HTML ничего этого нет.

CS>На самом деле WPF это всё те же .FRM файлы от VisualBasic только вместо YAML-alike формата использован XML. Такой вот наивный рефактринг во времена когда было XML-наще-фсё.

Это (а также остальные пункты) только говорит об уровне твоих знаний о WPF.

CS>2. Стили в WPF это вообще грустно. Особенно в сравнении с CSS и его cascading и селекторами. Ну вот не получается в WPF применить другую систему layout или стилей без переписывания всего и вся. Всё приколочено гвоздями. Фактичски та же проблема что и у WinForms.

Разные лейауты реализуются разными XAMLами. При этом благодаря байндингам у дизайнера полная свобода в размещении элементов — такое HTML/CSS даже не снилось. При этом никакого кода писать не нужно — всё подцепляется само.

CS>Т.е. не получается как с HTML когда backend/server выдает абстрактный список <ul><li>, а уже CSS раскладывает его вертикально и горизонтально — как надо.

А как насчёт замены списка на, скажем, комбобокс? В XAML — пара строчек разметки. А в HTML/CSS опять упс.
CS>И тут много всякого под этим.

CS>Я хоть и участвовал как Invited Expert в W3C в разаработке HTML5 спецификации, но ни HTML ни CSS не являются моими продуктами.

CS>Т.е. тут "пиарить" мне нечего.
А мы конечно не видим ссылку на твой сайт в профиле, и не заметили прямую рекламу в одном из предыдущих постов. Ты за кого нас держишь?
[КУ] оккупировала армия.
Re[7]: Как устроен WPF?
От: c-smile Канада http://terrainformatica.com
Дата: 11.02.16 07:33
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, c-smile, Вы писали:


CS>>То что в HTML/CSS люди добавляют тучи разных frameworks и подходов я классифицирую как достоинство. Значит основа достаточно гибкая.

K>Неверно — это значит, что оригинал настолько убог, что без костылей его использовать невозможно.

Если следовать такой логике то "С++ настолько убог что без библиотек его использовать невозможно".
Или я не правильно мысль твою уловил?

CS>>Вокруг HTML/CSS мы наблюдаем кучу всяких технологий и идей, те же jquery, angular, react и прочее. WPF же... ну всё в том же состоянии...

K>См. выше. Плюс тут сказалось жёсткое легаси. Собственно jquery изначально зародилась как способ предоставить браузеро-независимое API для жабаскриптов.

jquery уже давно не про браузеро-независимость.
Но вот кстати в чём парадокс... HTML/CSS работает на куче платформ ...
Про WPF я так понимаю ты опять стыдливо промолчишь.

CS>>Да даже MS от него как-то дистанциируется. Ну сделали вот WPF с рисованием в DirectX...

CS>>Но буквально через пару лет сделали Direct2D с тем же принципом. Только без этого странного XML нагромождения...
CS>>Хотя могли бы продолжать развивать WPF и переписать на нем desktop. Но не стали. Ужаснулись на реальных примерах ?
K> Месье понимает разницу между композицией и рендером?

О да, слова я такие знаю только причем они здесь?

CS>>WPF/XAML это в принципе точно такое же DOM tree как тот же HTML или SVG. Словарь другой, а так в принципе то же самое.

K>Принцип действительно похожий, только XAML намного мощнее за счёт дата-шаблонов и байндинга.

Нужен тебе data binding? Подключай angular.js, vue.js или knockout какой.
Не нужен — ничего не подключай и ни за что платить не будешь в плане performance.
Нужны тебе шаблоны? {{mustache}}, handlebars, angular, react, polymer и иже с ними...
На любой вкус, цвет и настроение.

CS>>1. Дикое нарушение принципа separation of concerns. Всё в куче и стили и биндинги и разметка.

K>Байндинг и дата-темплейты — это как раз ОГРОМНОЕ преимущество XAML и то, чего так не хватает в HMTL. Не зря же появилась куча жабаскриптовых библиотек для этих фич — потому что искаропки в HTML ничего этого нет.

Всё там есть и в ассортименете.

CS>>На самом деле WPF это всё те же .FRM файлы от VisualBasic только вместо YAML-alike формата использован XML. Такой вот наивный рефактринг во времена когда было XML-наще-фсё.

K>Это (а также остальные пункты) только говорит об уровне твоих знаний о WPF.

Верну ка я сию претензию в твой адрес обратно, но про современный web stack.

CS>>2. Стили в WPF это вообще грустно. Особенно в сравнении с CSS и его cascading и селекторами. Ну вот не получается в WPF применить другую систему layout или стилей без переписывания всего и вся. Всё приколочено гвоздями. Фактичски та же проблема что и у WinForms.

K>Разные лейауты реализуются разными XAMLами. При этом благодаря байндингам у дизайнера полная свобода в размещении элементов — такое HTML/CSS даже не снилось. При этом никакого кода писать не нужно — всё подцепляется само.

Ты давно не интересовался state of affairs в web технологиях.

CS>>Т.е. не получается как с HTML когда backend/server выдает абстрактный список <ul><li>, а уже CSS раскладывает его вертикально и горизонтально — как надо.

K>А как насчёт замены списка на, скажем, комбобокс? В XAML — пара строчек разметки. А в HTML/CSS опять упс.
CS>>И тут много всякого под этим.

CS>>Я хоть и участвовал как Invited Expert в W3C в разаработке HTML5 спецификации, но ни HTML ни CSS не являются моими продуктами.

CS>>Т.е. тут "пиарить" мне нечего.
K>А мы конечно не видим ссылку на твой сайт в профиле, и не заметили прямую рекламу в одном из предыдущих постов. Ты за кого нас держишь?

Это про что? А вообще чего так глубоко залазить? Тут вот рядом есть форум "Продукты Terra Informatica", это всё про Sciter и уж триста лет как.
Зачем мне что-то еще?

Вот помнится Evernote 3.5 вышел на WPF...
Абстракции были зашибись, всё там правильно было, и binding и rendering и composition.
А реализацию правильных патернов можно было на стенку вешать за для красоты...
Но понимаешь какое дело... Не шевелилось, оно...
4 месяца дистрибуция или около того продержалась. Быстро на native переписали...

И вообще в Канаде работы по WPF нет. В смысле вообще нет. О чём сие говорит как думаешь?
Re[8]: Как устроен WPF?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 11.02.16 13:10
Оценка: -2
Здравствуйте, c-smile, Вы писали:

CS>Если следовать такой логике то "С++ настолько убог что без библиотек его использовать невозможно".

CS>Или я не правильно мысль твою уловил?
Абсолютно правильно.

CS>jquery уже давно не про браузеро-независимость.

CS>Но вот кстати в чём парадокс... HTML/CSS работает на куче платформ ...
CS>Про WPF я так понимаю ты опять стыдливо промолчишь.
Нет — просто мне платформы, где он не работает, не интересны.

CS>О да, слова я такие знаю только причем они здесь?

А подумать?

CS>Нужен тебе data binding? Подключай angular.js, vue.js или knockout какой.

CS>Не нужен — ничего не подключай и ни за что платить не будешь в плане performance.
CS>Нужны тебе шаблоны? {{mustache}}, handlebars, angular, react, polymer и иже с ними...
CS>На любой вкус, цвет и настроение.
Вот и я о чём. А в XAML всё это искаропки, не нужно никаких велосипедов.

CS>Всё там есть и в ассортименете.

Только при устновке 100500 библиотек. Я предпочитаю искоробочное решение, т.к. все эти библиотеки кривые.

CS>Верну ка я сию претензию в твой адрес обратно, но про современный web stack.

Ну то есть ты не отрицаешь, что имеешь наглостьсмелость критиковать XAML, даже не потрудившись его как следует изучить?

CS>Ты давно не интересовался state of affairs в web технологиях.

Я каждый день ими интересуюсь, и пока я вижу только костыль на костыле и костылём подгоняет.

CS>Это про что? А вообще чего так глубоко залазить? Тут вот рядом есть форум "Продукты Terra Informatica", это всё про Sciter и уж триста лет как.

CS>Зачем мне что-то еще?
Откуда я знаю зачем? Я не умею читать чужие мысли...

CS>Вот помнится Evernote 3.5 вышел на WPF...

CS>Абстракции были зашибись, всё там правильно было, и binding и rendering и composition.
CS>А реализацию правильных патернов можно было на стенку вешать за для красоты...
CS>Но понимаешь какое дело... Не шевелилось, оно...
CS>4 месяца дистрибуция или около того продержалась. Быстро на native переписали...
Тоже видимо такие же "профи" были WPF фигово работает в руках идиотов — тут руки прямые нужны, да голова ясная.

CS>И вообще в Канаде работы по WPF нет. В смысле вообще нет. О чём сие говорит как думаешь?

Правда чтоли? Значит мне мои контракты на WPF приснились?
[КУ] оккупировала армия.
Re[9]: Как устроен WPF?
От: c-smile Канада http://terrainformatica.com
Дата: 11.02.16 17:41
Оценка:
Здравствуйте, koandrew, Вы писали:

CS>>И вообще в Канаде работы по WPF нет. В смысле вообще нет. О чём сие говорит как думаешь?

K>Правда чтоли? Значит мне мои контракты на WPF приснились?

Я не знаю кого ты больше обманываешь, себя или окружащих.

Вот сегодня:

http://careers.stackoverflow.com/jobs?&amp;tags=wpf — 6 позиций, только одна в Canada (Mississauga, ON)
http://careers.stackoverflow.com/jobs?&amp;tags=css — 89 позиций, каждое село в Canada представлено.

Успехов.
Re[10]: Как устроен WPF?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 11.02.16 17:42
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Я не знаю кого ты больше обманываешь, себя или окружащих.


CS>Вот сегодня:


CS>http://careers.stackoverflow.com/jobs?&amp;tags=wpf — 6 позиций, только одна в Canada (Mississauga, ON)

CS>http://careers.stackoverflow.com/jobs?&amp;tags=css — 89 позиций, каждое село в Canada представлено.

CS>Успехов.

А ты давно в Канаде-то? Вроде как все, проработавшие тут хотя бы пару лет, знают, где нужно искать действительно интересные варианты... Хинт — это не интернет.
[КУ] оккупировала армия.
Re[11]: Как устроен WPF?
От: c-smile Канада http://terrainformatica.com
Дата: 11.02.16 20:27
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, c-smile, Вы писали:


CS>>Я не знаю кого ты больше обманываешь, себя или окружащих.


CS>>Вот сегодня:


CS>>http://careers.stackoverflow.com/jobs?&amp;tags=wpf — 6 позиций, только одна в Canada (Mississauga, ON)

CS>>http://careers.stackoverflow.com/jobs?&amp;tags=css — 89 позиций, каждое село в Canada представлено.

CS>>Успехов.

K>А ты давно в Канаде-то? Вроде как все, проработавшие тут хотя бы пару лет, знают, где нужно искать действительно интересные варианты... Хинт — это не интернет.

17 лет однако. Хинт в ответ: на каком-то этапе развития варианты нужно начинать создавать самому.

Успехов.
Re[12]: Как устроен WPF?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 11.02.16 21:39
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>17 лет однако. Хинт в ответ: на каком-то этапе развития варианты нужно начинать создавать самому.

CS>Успехов.

Да на здоровье — я же не против! Просто здесь как-то больше принято выражать своё профессиональное мнение, а не устраивать sales pitch.
[КУ] оккупировала армия.
Re[13]: Как устроен WPF?
От: c-smile Канада http://terrainformatica.com
Дата: 11.02.16 22:58
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, c-smile, Вы писали:


CS>>17 лет однако. Хинт в ответ: на каком-то этапе развития варианты нужно начинать создавать самому.

CS>>Успехов.

K>Да на здоровье — я же не против! Просто здесь как-то больше принято выражать своё профессиональное мнение, а не устраивать sales pitch.


Ну тут кого что волнует. Кто на информацию смотрит, а кто sales pitch выискивает.

А вообще лет шесть назад уже были здесь войны по поводу "WPF — убийца HTML", проехали давно уже.

Помнится что в IE даже добавили специальный WPF Active Document server (ActiveX). И NPAPI plugin. Для хостинга WPF UI
Теперь ни ActiveX в browsers, ни Netscape plugins. Как-то оказалось что browsers уже сами умеют всё что позволяет WPF.

Ну и всё на этом.
Re[11]: Как устроен WPF?
От: snaphold  
Дата: 12.09.16 12:58
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, c-smile, Вы писали:


CS>>Я не знаю кого ты больше обманываешь, себя или окружащих.


CS>>Вот сегодня:


CS>>http://careers.stackoverflow.com/jobs?&amp;tags=wpf — 6 позиций, только одна в Canada (Mississauga, ON)

CS>>http://careers.stackoverflow.com/jobs?&amp;tags=css — 89 позиций, каждое село в Canada представлено.

CS>>Успехов.

K>Вроде как все, проработавшие тут хотя бы пару лет, знают, где нужно искать действительно интересные варианты... Хинт — это не интернет.

где искать?
Re[12]: Как устроен WPF?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 12.09.16 14:30
Оценка:
Здравствуйте, snaphold, Вы писали:

S>где искать?


Через свою профессиональную сеть.
[КУ] оккупировала армия.
Re[5]: Как устроен WPF?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 17.10.16 12:39
Оценка:
Здравствуйте, MxMsk, Вы писали:

С>>Ничоси. Интересно, есть ли хоть один нетормозной композитный фреймворк?

MM>Нашел кого слушать. Он уже не раз писал бред про WPF, в котором ни черта не разбирается. Лучше сам покопайся, если интересно. Да и с GC я тесты проводил — его там менее 1% про профайлеру.

GC — неинтересно. Расскажи лучше, сколько примитивов в секунду может внятно рендерить WPF если 'в лоб'. То есть, та самая пропускная способность.
Re[13]: Как устроен WPF?
От: snaphold  
Дата: 07.11.16 11:35
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, snaphold, Вы писали:


S>>где искать?


K>Через свою профессиональную сеть.


в смысле по знакомым или linkedin и френдидтся там со всеми?
Re[5]: Как устроен WPF?
От: dkotov  
Дата: 01.12.16 07:37
Оценка:
Здравствуйте, koandrew, Вы писали:

>> По мне так XAML заруливает любые другие аналоги с большим отрывом...


Но беспощадно сливает в производительности на сценах с большим количеством элементов. И какими бы прямыми руками не обладал разработчик, планка производительности у WPF низкая. Хотя сам продукт весьма приятный.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[6]: Как устроен WPF?
От: turbocode  
Дата: 01.12.16 21:22
Оценка:
D>Но беспощадно сливает в производительности на сценах с большим количеством элементов.
А кто не сливает?
Re[7]: Как устроен WPF?
От: dkotov  
Дата: 03.12.16 03:34
Оценка:
Здравствуйте, turbocode, Вы писали:
D>>Но беспощадно сливает в производительности на сценах с большим количеством элементов.
T>А кто не сливает?

Ответ очевиден Сливают все, но все делают это по разному, так как запас "прочности" у всех свой.
В нашем же случае с WPF получилась что то типа: "Висит груша — иди мимо".
При всей своей привлекательности он оказался крайне не поворотлив, и начал сливать уже при 20% от планируемой нагрузки.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[8]: Как устроен WPF?
От: turbocode  
Дата: 12.12.16 19:07
Оценка:
D>При всей своей привлекательности он оказался крайне не поворотлив, и начал сливать уже при 20% от планируемой нагрузки.

Это потому что вы хотите решить свою задачу тупо в лоб, а оптимизаций нету.
P.S. Но оптимизаций от MS вы никогда не дождетесь, потому что MS всегда перекладывала эту трудоемкую задачу на разработчика.
Re[9]: Как устроен WPF?
От: dkotov  
Дата: 13.12.16 06:28
Оценка:
Здравствуйте, turbocode, Вы писали:

D>>При всей своей привлекательности он оказался крайне не поворотлив, и начал сливать уже при 20% от планируемой нагрузки.


T>Это потому что вы хотите решить свою задачу тупо в лоб, а оптимизаций нету.

T>P.S. Но оптимизаций от MS вы никогда не дождетесь, потому что MS всегда перекладывала эту трудоемкую задачу на разработчика.

Мы прекрасно понимали, что серебрянной пули не будет. И каждого кандидата (в качестве подходящего решения) проверяли уж точно не "в лоб".
Конкретно на "Proof of Concept" для "WPF" было потрачени 3 месяца.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[10]: Как устроен WPF?
От: turbocode  
Дата: 13.12.16 09:53
Оценка:
D>Мы прекрасно понимали, что серебрянной пули не будет. И каждого кандидата (в качестве подходящего решения) проверяли уж точно не "в лоб".
D>Конкретно на "Proof of Concept" для "WPF" было потрачени 3 месяца.

И кто выиграл по вашему?
Re[4]: Как устроен WPF?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 13.12.16 10:03
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, UA, Вы писали:


UA>>В чем профит?


CS>Profit тот же что и у WPF, только как я уже сказал это HTML/CSS что заведомо лучше чем XAML. На всех desktop platforms


Кстати а чем он лучше Angular 2
Компоненты от PrimeNG
и солнце б утром не вставало, когда бы не было меня
Re[5]: Как устроен WPF?
От: Слава  
Дата: 13.12.16 11:23
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Кстати а чем он лучше Angular 2

S>Компоненты от PrimeNG

О боже, они изобрели table tr td tr td tr td — звук едущего поезда грид из дельфи!

Помнится, я пытался взять их же компоненты для Java Server Feces — так они тоже не работали. Хотя может это я просто не осилил.
Re[6]: Как устроен WPF?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 13.12.16 11:37
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, Serginio1, Вы писали:


S>>Кстати а чем он лучше Angular 2

S>>Компоненты от PrimeNG

С>О боже, они изобрели table tr td tr td tr td — звук едущего поезда грид из дельфи!


С>Помнится, я пытался взять их же компоненты для Java Server Feces — так они тоже не работали. Хотя может это я просто не осилил.


Ну в их компонентах с наружи table tr td tr td tr td с наружи то нет.

http://www.primefaces.org/primeng/#/datatable/templating

<p-growl [value]="msgs"></p-growl>

<p-dataTable [value]="cars">
    <p-column field="vin" header="Vin"></p-column>
    <p-column field="year" header="Year"></p-column>
    <p-column field="brand" header="Brand"></p-column>
    <p-column field="color" header="Color">
        <template let-col let-car="rowData" pTemplate type="body">
            <span [style.color]="car[col.field]">{{car[col.field]}}</span>
        </template>
    </p-column>
    <p-column styleClass="col-button">
        <template pTemplate type="header">
            <button type="button" pButton icon="fa-refresh"></button>
        </template>
        <template let-car="rowData" pTemplate type="body">
            <button type="button" pButton (click)="selectCar(car)" icon="fa-search"></button>
        </template>
    </p-column>
</p-dataTable>



Очень похоже на XAML
и солнце б утром не вставало, когда бы не было меня
Re[7]: Как устроен WPF?
От: Silver_S Ниоткуда  
Дата: 31.01.17 13:19
Оценка: -1
Здравствуйте, UA, Вы писали:

CS>>Вот глянь на screenshots здесь https://cyberraiden.wordpress.com/2014/09/28/norton-internet-security-2015-review-settings/

CS>>Это не всё, там реально 40-50 форм и вариаций разных. Интерактивных настолько что рядовым проктологам и не снилось. Это всё HTML/CSS. Уже 10 лет как. Ибо это Sciter UI.

UA>И где интерактивность? Обычный статический текст с картинками и кнопочками.

UA>Мне не совсем понятна ваша ниша, вот если брать Qt — понятно, wxWidgets — тоже понятно, PhoneGap — понятно, и так далее. А вы где то посредине ни к десктопу ни к вебу.

Хоть и год назад писалось, но не смог не ответить...
Как раз, ИМХО, WPF оказался в непонятной нише, ни веб ни полноценный десктоп, ни рыба ни мясо. Для статических UI есть своя ниша, даже MS признает что иногда лучше HTML чем WPF.
И в то же время признает, что WPF не годится для динамических, графических высокопроизводительных UI — типа CAD систем, графических редакторов,...
Хотя пытаются такое делать даже в HTML, типа таких вот чартингов, но получается оно не приятное тормозное и корявое: https://ru.investing.com/currencies/eur-usd-advanced-chart
В WPF с этим не лучше, получается на десктопе сейчас нет для этого ничего, кроме голого Direct2D/3D и виндо-магазинных приложений.
Отредактировано 31.01.2017 13:24 Silver_S . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.