



Я думаю, что сочетание JavaFX, Swing, Java2D и JRE на основе браузера Java составляет решения, которые предоставляет WPF:
Так же гладко ли он обрабатывает привязку данных?
Дает ли кто-нибудь из них ответ на шаблоны WPF?
WPF с точки зрения функций является более всеобъемлющим, чем любой из JavaFX, Swing, AWT или Java2D. В конце концов, это и было целью дизайна - собрать все, что связано с презентацией, в единой библиотеке. С точки зрения производительности они примерно одинаковы, за исключением использования памяти, где Java - это голодный боров.
Я запрограммировал Aqua, Macintosh Quick Draw, Windows GDI и GDI +, Qt и .NET Winforms, и WPF, безусловно, является самым сложным API, который я использовал. Хотя он имеет довольно мощный набор функций, который лучше, чем предыдущие технологии, такие как Swing, он не подходит для WPF. Он решает некоторые серьезные проблемы, которые мешали графическому программированию. Если вы пришли из мира HTML / JS, этому легко научиться, но если вы пришли из традиционного мира графического программирования, это серьезный сдвиг парадигмы. Тем не менее, его намного легче изучить, чем CSS / HTML / JS. Это полный отход от устаревших концепций, которые преследуют другие среды графического программирования.
Самая большая сила WPF в том, что он не зависит от разрешения. Он может масштабироваться на разных устройствах практически без изменений. Чтобы взять экранную версию рисунка и вывести ее на принтер с высоким разрешением без потери разрешения, требуется немного усилий.
Он также поддерживает запуск событий. Элементы пользовательского интерфейса могут реагировать на события других элементов пользовательского интерфейса или на код ваших приложений, что делает возможными динамические интерфейсы. Это позволяет легко отделить ваш код от пользовательского интерфейса, чего не может достичь даже HTML / JS. Элементы могут транслировать и прослушивать события и соответственно реагировать.
Еще одна сильная сторона - его объектно-ориентированный и декларативный API. Используя XAML, вы можете легко и быстро создать рабочий интерфейс с помощью нескольких строк. В отличие от HTML / JS, его легче изучить, а его вывод гораздо более предсказуем и эффективен. Вы даже можете полностью запрограммировать WPF в коде, но обычно это не стоит незначительного прироста производительности. Лучше скомпилировать ваш Xaml в код .NET.
Кроме того, набор инструментов, доступных для WPF, очень обширен по сравнению с JavaFX. Доступно множество инструментов, включая Expression Blend. Существует также множество инструментов для преобразования форматов векторной графики, таких как SVG и Adobe Illustrator, в XAML. Теперь дизайнеры и программисты могут сотрудничать в области настольных издательских систем, что раньше было очень сложно.
Таким образом, WPF настолько всеобъемлющий, что команда Mono решила не переносить его на базу кода Mono. Они утверждали, что для полной реализации разумного набора функций потребуется много человеко-лет. Если бы существовала Mono-совместимая версия WPF, она бы де-факто превратила .NET в платформу кроссплатформенных приложений. Фактически, он может даже заменить HTML / CSS, поскольку он намного мощнее и проще в использовании. К сожалению, Microsoft не нашла экономического обоснования для кроссплатформенного WPF. Вот почему SilverLight / WPF проиграли HTML5 / JS. Из-за этой ошибки они теперь вынуждены передать HTML 5 / JS не только Интернет, но и часть своего рабочего стола.
Спасибо за развернутый ответ!
Большая ошибка Microsoft.
WPF предназначен только для вдохновителей, а не для людей со средним IQ, таких как я. Пора переходить на открытый исходный код.
Нет настоящей поддержки 3D, особенно для языка шейдеров, который есть в DirectX HLSL и OpenGL SL. Кроме того, любая текущая поддержка JavaFX в IDE не может сравниться с мощью конструктора XAML Expression Blend и Visual Studio 2008 и Visual Studio 2010 Cider (конструктор WPF в Visual Studio).