• mono кроссплатформенность .net GUI WPF А откуда пошло такое мнение, что WPF на Mono не портируют потому, что там используется много платформозависимых фич?

    В Windows.Forms таких фич гораздо больше, но таки их портировали.

    WPF — кроссплатформенный фреймворк, но он огромен и очень сложен. Кому кроме MS по силам разработать аналог, или хотя бы просто портировать его?

    WPF не портируют по той причине, что это гигантский и очень сложный проект. Реально дико сложный. И он создан усилиями огромной команды высокооплачиваемых профессионалов. Группе энтузиастов такое просто не повторить. Ну то есть, тупо такой расклад:
    Возьмем людей из опенсорса, которым интересно Mono. Возьмем из них тех, кто разбирается в GUI-фреймворках(в том числе знаком с эзотерическими подходами к GUI, типа реактивности), двумерной и трехмерной векторной графике, обработке видео, электронной, и не только, электронной типографике, accessibility и другом. Теперь возьмем из всех них тех, кому за все это дело проект Mono готов платить. Сколько народу получилось? Вот-вот.

    И вот это единственная причина, а никакая не завязанность на WinAPI, никакие не козни Microsoft(MS, кстати, наоборот, даже помогает разработчикам Mono), и не что-либо еще.
    ♡ recommended by @kusayu, @O01eg, @stanis

Replies (26)

  • @lovesan,
    Кому кроме MS по силам разработать аналог, или хотя бы просто портировать его?

    IBM например. Но это им нафиг не надо.
  • @Irsi, Аналогично и с другими крупными конторами.
  • @lovesan,
    "WPF — кроссплатформенный фреймворк"
    называть что-то кроссплатформенным нельзя, пока оно не поддерживает как минимум 3 разные платформы.
  • @lovesan, есть же moonlight, основа в сильверлайте и wpf ведь одна и та же, могли бы на этом коде и wpf замутить.
  • @lovesan, Пост кратко: "Вы считаете, что не портируют потому, что много платформозависимых фич? Нет, это не так. На самом деле --- потому что там много платформозависимых фич, так что это сложно и некому делать."
  • @borman, откуда там такие фичи?
  • @vt, Оттуда, что этот фреймворк разрабатывался как фреймворк под винду?
  • @vt, <http://juick.com/post?body=%231813105%2F6+>
    Ну например оттуда, что в WPF торчит наружу DirectX.
  • @dmitry-vk, не кури, пожалуйста, это больше. DirectX никакого отношения к WPF вообще не имеет.
  • @vt, <http://juick.com/post?body=%231813105%2F9+>
    Я и не курю MSDN =)
  • @lovesan, я думаю всё проще — эти три буквы просто нахуй не нужны. Как и W.Forms и всё остальное моно.
  • @vt, ололо, как раз на DirectX WPF и крутится.
  • @nevar, а земля плоская и стоит на трех черепахах
  • @vt, ты упорок, иди МСДН почитай
  • @vt, proof or GTFO
  • @nevar, Don't be such aggressive.
    msdn.microsoft.com
    WPF relies entirely on Direct3D for rendering
  • @dmitry-vk, линуксоеды увидели рядом слова WPF и DirectX и сразу начали кидаться какашками. WPF — это гораздо более высокоуровневый фреймворк, естественно, в реализации на венде он использует Direct3D для рендеринга, ничто не мешает реализовать это иначе. Например, вышеупомянутый moonlight прекрасно работает под линуксом, DirectX в его дистрибутиве точно нет :)
  • @vt, Я напомню, что WPF напрямую предоставляет доступ к функциональности Direct3D. Например, есть Effect'ы, в которые можно класть шейдеры, которые написаны на HLSL.
  • @vt, <http://juick.com/post?body=%231813105%2F17+>
    Меня умиляют слова "ничто не мешает реализовать это иначе" от опенсорсоненавистников и патентофилов
  • @dmitry-vk, ну и что? Отсутствие COM в линуксе не помешало реализовать pinvoke в mono, и оно работает. Достоинства, которые нужны от WPF, совсем не в каких-то там шейдерах, пусть загружаются на другом языке. Нелепые отмазки же.
  • @vt, и таки да, в Moonlight поддерживаются твои эффекты.
  • @vt, p/invoke — это всего лишь FFI к сям. За взаимодействие c COM отвечают другие части .NET.
  • @vt, Представим гипотетическую ситуацию: вы частично реализовали API WPF'а. В вас тут же летят камни: а чего это шрифты рендерятся попиксельно не так же, как в .NET WPF? А чего это наши красивые UI-тулкиты, использующие эффекты и шейдеры, не работают?
  • @dmitry-vk, высосанная из пальца проблема. И что же делать? Представим гипотетическую ситуацию несколько с другой стороны — нам нужно написать "красивый UI-тулкит с шейдерами и эффектами", и чтоб работал в системах, отличных от Microsoft. И что же видим? А ничего не видим, и mono/moonlight — единственный инструмент, который позволяет хоть как-то приблизиться к цели. Соответственно, любители альтернативных мелкософту систем должны либо развивать моно, либо развивать альтернативное решение. А где оно? Нету же. И моно развивается, можно сказать, усилиями самого мелкософта, типичное "линукс-коммунити" его ненавидит, не давая никаких альтернатив.
  • @vt, я не совсем представляю что такое "шейдеры и эффекты", но тулкиты с анимацией есть, qt/qml например.
  • @max630, эффекты WPF это не анимация(анимация это отдельная часть WPF)

    эффекты это разнообразные графические красивости.
    Вот стандартный DropShadowEffect, примененный к TextBlock:
    pastebin.com
    картинка:
    dl.dropbox.com