В настоящий момент я в основном человек .Net, но в последнее время я играю с Java, изучая, что там.
Теперь я ищу эквивалент Java для WPF. Я знаю, что я мог бы найти библиотеку OpenGL или два там, но это не так богато или просто, как система WPF.
В настоящий момент я в основном человек .Net, но в последнее время я играю с Java, изучая, что там.
Теперь я ищу эквивалент Java для WPF. Я знаю, что я мог бы найти библиотеку OpenGL или два там, но это не так богато или просто, как система WPF.
Я думаю, что сочетание JavaFX, Swing, Java2D и Java JRE на базе браузера основано на решениях, которые предоставляет 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.