Здравствуйте, _Raz_, Вы писали:
НС>>Включая. Проблема не в нем, а в архитектуре винформсов и железных оковах user32.dll. _R_>О как! То есть по сути претензии не к WinForms, а к виндовой подсистеме контролов?
А одно от другого не отделимо, оно построено по единым принципам.
НС>>[...] Шаблончики накидал базовые, а форма сама из них собралась. _R_>На WinForms то что мешает сделать подобное?
Придется писать море нетривиального и плохо поддерживаемого кода. А на WPF зачастую вообще ничего писать не надо, штатные контролы, биндинг и движок лейаута сами справляются.
НС>>На винформсах же, даже если ты выпрыгнешь из штанов и полностью перепишешь штатный убогий биндинг, _R_>А нафига? Штатный биндинг действительно убог, но ведь никто не заставляет его использовать.
А что вместо него? Ручками твой вожделенный MVVM протаптывать в каждой форме?
НС>> возможностей по композиции UI у тебя все равно не добавится. _R_>А на WPF как биндинг помогает композиции UI?
Интересные вопросы ты задаешь. Еще как помогает.
НС>>Все те же юзерконтролы _R_>С ними что не так?
Слишком негибкие.
_R_>>>Получив личный негативный опыт НС>>Можно узнать а какой ты получил опыт? Неличный? _R_>Личный.
Так и чем твой лучше моего?
_R_> И не только. Допустим в этой теме несколько сообщений с успехом использования ВинФормсов.
Понятие успеха у каждого свое. Речь не про то, что на одном можно, а на другом нет. Речь про то, что типовые приложения с большим количеством форм на WPF, при грамотном подходе, пишутся существенно проще. Иногда трудозатраты отличаются на порядок.
Но learning curve у WPF, конечно, жесткая.
НС>> Что то можно решить заплатками, а что то — нет. _R_>Это не заплатки. Это просто по другому. Никто на ВинФормсах не имитирует подсистему шаблонов.
И что взамен? Ручное выписывание генераторов форм с ручным рассчетом размеров и координат? А если HighDPI?
НС>>Нормальную поддержку HighDPI, к примеру, ты туда уже точно не добавишь. _R_>Не я, а производитель. И, таки, добавляет.
А, ну если в винформсах, по твоему, нормальная поддержка масштабирования, то дальше разговаривать бессмысленно.
Здравствуйте, Mr.Delphist, Вы писали:
_R_>>А на WPF как биндинг помогает композиции UI? MD>Вы не поверите — соединение презентации с данными получается очень гибкое
И не только простое соединение, возможности там очень гибкие. Совместно с Control Template и Data Template можно весь UI строить по данным штатными средствами, без моря рукописного кода. Попытка подобный подход воспроизвести в винформсах — ну разве что ради поржать.
Здравствуйте, Слава, Вы писали:
С>Мне кажется, вы решили поиграть в игру "А что, неужто так сложно написать пол-WPF самостоятельно, с нуля и без ошибок?".
Если б только это. user32 то тоже никуда не девается, и полет фантазии быстро обрывает. А если выдрать из Control этот самый user32, то это уже и не винформсы будут. А главное — нафига, если проще и дешевле взять WPF?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Придется писать море нетривиального и плохо поддерживаемого кода. НС>А на WPF зачастую вообще ничего писать не надо, штатные контролы,
Копипаст в шаблонах, включая необходимость копипаста стандартных шаблонов для плевого изменения. Это хорошо поддерживаемый код? Или копипаст убирает рутину?
НС>биндинг
Глотающий ошибки. Ну не плохо. Код же тривиальный. Да и INotifyPropertyChanged убирает рутину.
НС>и движок лейаута
WPF win
НС>сами справляются.
Вот опять голословные утверждения о "море нетривиального и плохо поддерживаемого кода". Опять голое сравнение фунционала. Где фразы по шаблону "Такой-то функционал WPF легко и быстро позволяет напечь много форм тем что [...], что в сравнении с WinForms дает нам отсутствие рутины и/или качество кода".
Я знаю про шаблоны WPF. Я не знаю как изменение внешнего вида контрола при сохранении его поведения способствует убиранию рутины. При этом я знаю, что шаблон повторяется одним презентером и нужным количеством вьюх. Это для тебя не тривиальный и плохо поддерживаемый код? Тут ты увидел рутину?
_R_>>А нафига? Штатный биндинг действительно убог, но ведь никто не заставляет его использовать. НС>А что вместо него? Ручками твой вожделенный MVVM протаптывать в каждой форме?
Банальное прямое присваивание.
_R_>>А на WPF как биндинг помогает композиции UI? НС>Интересные вопросы ты задаешь. Еще как помогает.
Я действительно не вижу как. И ответ "ещё как" ничего не проясняет, кроме твоей крутости или надменности.
_R_>>С ними что не так? НС>Слишком негибкие.
Есть хэндл, есть оконная процедура. Куда уж гибче в "железных оковах user32.dll". Свойств зависимостей нет, ну звиняйте.
_R_>>Личный. НС>Так и чем твой лучше моего?
Тем что мой.
НС>Речь не про то, что на одном можно, а на другом нет. Речь про то, что типовые приложения с большим количеством форм на WPF,
Опять двадцать пять. Это все архитектурные вопросы. Если ты не продумал их, то и на WPF получишь ерунду.
НС>при грамотном подходе, пишутся существенно проще. Иногда трудозатраты отличаются на порядок.
Так расскажи про этот подход! Расскажи в чем ущербость WinForms, что им не доступен этот подход.
_R_>>Это не заплатки. Это просто по другому. Никто на ВинФормсах не имитирует подсистему шаблонов. НС>И что взамен? Ручное выписывание генераторов форм с ручным рассчетом размеров и координат?
Взамен — грамотный подход на WinForms.
НС>А если HighDPI?
Похоже вилять начинаешь.
_R_>>Не я, а производитель. И, таки, добавляет. НС>А, ну если в винформсах, по твоему, нормальная поддержка масштабирования, то дальше разговаривать бессмысленно.
А в WPF нормальная? Наверняка не та, которая мыло дает? Что, и картинки двойного размера автоматом применяет?
Здравствуйте, Shmj, Вы писали:
S>Не, тут вы перебарщиваете. Пока нет замены от MS -- говорить о кончине рано. О замене сейчас и речь не идет.
Не слушай этого товарища. Он уже лет 10 вещает о конце WPF
Здравствуйте, _Raz_, Вы писали:
_R_>Копипаст в шаблонах, включая необходимость копипаста стандартных шаблонов для плевого изменения.
Ты там что то писал про спагетти-стайл?
_R_>Я знаю про шаблоны WPF. Я не знаю как изменение внешнего вида контрола при сохранении его поведения способствует убиранию рутины.
Я там Data Templates упоминал. Не заметил?
_R_>>>А нафига? Штатный биндинг действительно убог, но ведь никто не заставляет его использовать. НС>>А что вместо него? Ручками твой вожделенный MVVM протаптывать в каждой форме? _R_>Банальное прямое присваивание.
Т.е. ручками. Ну вот ты и сам все продемонстрировал.
_R_>Я действительно не вижу как.
Верю.
_R_> И ответ "ещё как" ничего не проясняет, кроме твоей крутости или надменности.
Ну да, чужой код спагетти стайл ты обзываешь, а крутость и надменность у меня.
_R_>>>Личный. НС>>Так и чем твой лучше моего? _R_>Тем что мой.
Все, в общем, уже понятно.
_R_>>>Не я, а производитель. И, таки, добавляет. НС>>А, ну если в винформсах, по твоему, нормальная поддержка масштабирования, то дальше разговаривать бессмысленно. _R_>А в WPF нормальная?
Здравствуйте, koandrew, Вы писали:
S>>Не, тут вы перебарщиваете. Пока нет замены от MS -- говорить о кончине рано. О замене сейчас и речь не идет. K>Не слушай этого товарища. Он уже лет 10 вещает о конце WPF https://blogs.msdn.microsoft.com/wpf/ — последняя запись 29 октября 2015. Что это как не конец?
Причины, правда, вовсе не технические, а последствия ЧСВ придурка Синовского.
Здравствуйте, Mr.Delphist, Вы писали:
MD>Здравствуйте, Shmj, Вы писали:
S>>Или лучше сразу на WFP?
MD>Сейчас это называется UWP — тот же WPF, но без тяжкого наследия Win32 API
Сейчас это называется кроссплатформенный XAML Standard
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, c-smile, Вы писали:
CS>Зачем менять то что не произошло?
CS>WPF так и не состоялась как UI layer системных и образующих приложений Windows. Т.е. велика вероятность что это будет abandon-ware очередной.
CS>Или у тебя другие данные?
Интересно только, что ж всё-таки тогда произошло? Т. е. на чём ж тогда написаны большинство приложний?
MFC/raw API? Вряд ли, скорее это похоже на поддержку уже написанного в системах вроде AutoCAD, чтоб не переписывать их от и до? Или есть что-то, где это основной UI и ничего нового не планируется?
JVM? Был период популярности из-за того, что WPF запоздал, но что на нём написана большая часть приложений — не похоже.
QT? Хороший инструмент сам по себе, но не сильно похоже, чтоб он самый распростанённый.
Python, Ruby, etc.. Возможно, хотя вроде и остальные инструментальные средства ещё окончательно не вымерли.
Допустим даже, что Windows вообще уже не очень нужен? Но что вместо? Web UI? Видел я как-то Web-версию PhotoShop? В самом деле на это уже все перешли? Может, мобильные устройства? Только мне пока что крупнее, чем Lightroom, мало что попадалось. Своя ниша у них немалая, но до замены desktop, видать, ещё не близко. IoT? Что-то ещё?
I>Допустим даже, что Windows вообще уже не очень нужен? Но что вместо? Web UI? Видел я как-то Web-версию PhotoShop? В самом деле на это уже все перешли? Может, мобильные устройства? Только мне пока что крупнее, чем Lightroom, мало что попадалось. Своя ниша у них немалая, но до замены desktop, видать, ещё не близко. IoT? Что-то ещё?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Aquilaware, Вы писали:
A>>Писал и на Windows Forms, и на WPF. Большой недостаток WPF — у него очень плохая стандартная тема
НС>Стандартная тема WPF максимально имитирует родной стиль той ОС, на которой он запущен. Причем на разных ОС он разный. Никакой разницы в этом плане от винформсов нет.
Насчет максимально это конечно сильно сказано. Тот же ListView на всех версиях Windows имеет стиль а ля Windows7 (подозреваю, что и он не совсем нативный, выглядит несколько убого). Грязно-серого цвета кнопки, непохожие на нативные, на всех версиях выше семерки (не говоря уже про такие мелочи, как отсутствие анимации подсветки при наведении курсора). В стиле по умолчанию отступы и выравнивание черти знает какое. Сделать нормальный TreeView они так и не удосужились.
Это навскидку. WPF из коробки довольно сырой. И это приходится компенсировать сторонними библиотеками или собственными усилиями.
Здравствуйте, Shmj, Вы писали:
S> Или лучше сразу на WFP?
Что там щас с ратеризацией шрифтов? Раньше было
в ideal mode смазано, если размер маленький — отстой
в display mode — пиксельные зубцы, если размер средний и большой — тоже отстой
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, Mr.Delphist, Вы писали:
MD>>Здравствуйте, Shmj, Вы писали:
S>>>Или лучше сразу на WFP?
MD>>Сейчас это называется UWP — тот же WPF, но без тяжкого наследия Win32 API
S> Сейчас это называется кроссплатформенный XAML Standard
We are pleased to announce XAML Standard, which is a standards-based effort to unify XAML dialects across XAML based technologies such as UWP and Xamarin.Forms.
Т.е. это более абстрактная штука, что-то типа Стандарта на язык. А UWP — это уже стандартизованный XAML плюс набор доступных API (ибо дёрнуть какой-нибудь CreateFileEx в корневой папке диска C: в UWP-приложении уже не получится, тьфу-тьфу-тьфу).
S>> Сейчас это называется кроссплатформенный XAML Standard
MD>
MD>We are pleased to announce XAML Standard, which is a standards-based effort to unify XAML dialects across XAML based technologies such as UWP and Xamarin.Forms.
MD>Т.е. это более абстрактная штука, что-то типа Стандарта на язык. А UWP — это уже стандартизованный XAML плюс набор доступных API (ибо дёрнуть какой-нибудь CreateFileEx в корневой папке диска C: в UWP-приложении уже не получится, тьфу-тьфу-тьфу).
Но с выходом .NetStandard 2, возможности UWP приблизятся к старшему .Net. Но будет выполняться в своем контейнере.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Tolanay, Вы писали:
T>Это навскидку. WPF из коробки довольно сырой. И это приходится компенсировать сторонними библиотеками или собственными усилиями.
Что есть, то есть. Но по сравнению с проблемами винформса это цветочки.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>https://blogs.msdn.microsoft.com/wpf/ — последняя запись 29 октября 2015. Что это как не конец? НС>Причины, правда, вовсе не технические, а последствия ЧСВ придурка Синовского.
В отличие от тебя, я живу в реальном мире, а не в мире бложиков, и определяю "живость" технологии тем, делаются ли на них новые проекты, и есть ли соответствующие контракты.
Так вот — в "Тойоте" ВСЕ новые десктопные проекты пишутся на WPF (по крайней мере в северо-американской её части, хз, как там в остальных), плюс контракты в новые проекты на WPF тоже приходят мне регулярно. Для меня это является неопровержимым доказательством, что технология живёт и здравствует. А наличие или отсутствие бложиков "евангелистов" меня ни коим образом не трогает, ибо у меня нет ни времени, ни желания читать их выспосты.
Здравствуйте, s_aa, Вы писали:
_>Ничего смешного, таких мелких задач пруд пруди и смысл огород городить с WPF?
Вот мне интересно — о каком огороде идёт речь? Я его использую даже для примитивнейших proof-of-concept проектов с двумя кнопками "Do Thing #1" и "Do Thing #2". Никакого инфраструктурного кода там не требуется, MV инстанциируется прямо WPF в XAML.