Аналоги WPF
От: Аноним  
Дата: 16.07.08 10:38
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>На мамом деле скорость разработки для конкретного индивидума определяется скорее его познаниями в конкретных технологиях. Если ты хорошо знаком с Дельфи и посредственно знаешь C#, то конечно для теля скорость (и даже качество) разработки на Дельфи будет выше. Однако для людей одинаково хорошо знакомых с разными технологиями выбор очевиден. И он не в пользу Дельфи. От того Дельфи и дохнет на глазах. Ну, а если сравнить Дельфи с каким-нить Nemerle или F#, то это будет все равно, что сравнение хромой кобылы с автомобилем Мустанг в условиях шоссейной гонки.


Ага, если иметь очень глубокие знания в ASM-e то еще быстрее

VD>Что до библиотек, то их для .NET огромное множество. Больше (но не факт, что лучше) только для Java. Сравнивать их с Дельфевыми библиотеками просто смешно. Найди к примеру, аналог WPF для неуправляемого Дельфи.


А вообще есть аналог WPF не для .NET? Еще бы сказал что нету LINQ для неуправляемых языков

18.07.08 17:24: Ветка выделена из темы F# vs C#
Автор: zubrik
Дата: 18.05.08
— AndrewVK
18.07.08 17:25: Перенесено модератором из '.NET' — AndrewVK
Re: Аналоги WPF
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.07.08 13:20
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>А вообще есть аналог WPF не для .NET?


Полного аналога, конечно нет, а идеологически есть. Swing называется.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[2]: Аналоги WPF
От: Lloyd Россия  
Дата: 17.07.08 09:50
Оценка:
Здравствуйте, AndrewVK, Вы писали:

А>>А вообще есть аналог WPF не для .NET?


AVK>Полного аналога, конечно нет, а идеологически есть. Swing называется.


А что между ними общего?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[3]: Аналоги WPF
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.07.08 10:01
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А что между ними общего?


Идеология построения — MVC, лейауты, малое количество гибких контролов.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[4]: Аналоги WPF
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.07.08 17:48
Оценка:
Здравствуйте, AndrewVK, Вы писали:

L>>А что между ними общего?


AVK>Идеология построения — MVC, лейауты, малое количество гибких контролов.


Тогда почти все ГУИ-библиотеки имеют много общего .

А вообще, согласен с Лойдом. Межуд WPF и Swing общего не больше чем между WPF и MFC.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Аналоги WPF
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.07.08 18:15
Оценка: +1
Здравствуйте, VladD2, Вы писали:

AVK>>Идеология построения — MVC, лейауты, малое количество гибких контролов.


VD>Тогда почти все ГУИ-библиотеки имеют много общего .


На практике куда больше библиотек с идеологией VCL/MFC сотоварищи.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[6]: Аналоги WPF
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.07.08 03:31
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>На практике куда больше библиотек с идеологией VCL/MFC сотоварищи.


Расскажи по подробнее о ней. А то авторы этих библиотек в один голос утверждают, что использовали MVC.
Причем если VCL еще по организации похожа на ВыньФормс, так как предлагает реализовывать контроллер программисту через события, то вот MFC — это классика MVC.

Реально архитектура WPF сильно отличается. Она скорее ближе к архитектуре 3D-игр. Но конечно по признаку использования паттерна MVC все GUI-библиотеки похожи .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Аналоги WPF
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.07.08 08:21
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Расскажи по подробнее о ней. А то авторы этих библиотек в один голос утверждают, что использовали MVC.


MVC они предлагают использовать пользователям (о чем ты сам ниже пишешь), а WPF/Swing используют MVC для самих контролов. Можно оторвать модель контрола от представления в MFC? А WPF/Swing можно.

VD>Реально архитектура WPF сильно отличается.


Она, конечно, отличается.

VD> Она скорее ближе к архитектуре 3D-игр.


??? Чем именно она так близка?
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[8]: Аналоги WPF
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.07.08 10:47
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Можно оторвать модель контрола от представления в MFC?


Да там контролы как надстройка сделаны. Так что по умолчанию так оно и есть. Ты бы почитал об MFC.
Я конечно понимаю, что из всех ГУИ библиотек отличных от WPF и WinForms тебе ближе Swing, но это еще не повод, чтобы считать все остальное дыркой от бублика.

VD>>Реально архитектура WPF сильно отличается.


AVK>Она, конечно, отличается.


VD>> Она скорее ближе к архитектуре 3D-игр.


AVK>??? Чем именно она так близка?


Идеологией. На верхнем уровне, мы не реагируем на события и рисуем, а размещаем объекты в сцене, а потом уже кто-то отображает эту сцену на представления. Это конечно тоже MVC, но все же.

Как раз у MFC и Свинга много общего. И там, и там пропагандируется идея абстрактного источника данных. В МФЦ оным является документ.

Ну, а вообще все библиотеки разные. WPF явно особенная. Скорее с ней можно сравнивать разные Макромедия Флэши нежели обычные ГУЕ-вые библиотеки.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Аналоги WPF
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.07.08 11:05
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Да там контролы как надстройка сделаны.


Ну и что?

VD> Так что по умолчанию так оно и есть. Ты бы почитал об MFC. Я конечно понимаю, что из всех ГУИ библиотек отличных от WPF и WinForms тебе ближе Swing, но это еще не повод, чтобы считать все остальное дыркой от бублика.


Я не только про нее читал, а еще и писал под нее. И под WPF и Swing тоже. И под OWL, как плюсовую, так и паскалевую. Так что давай не будем обсуждать взаимную квалификацию. а то я вспомню про твои знания WPF и свинга.

AVK>>??? Чем именно она так близка?


VD>Идеологией. На верхнем уровне, мы не реагируем на события и рисуем, а размещаем объекты в сцене, а потом уже кто-то отображает эту сцену на представления.


Это не архитектура всего WPF, это маленький кусочек, ответственный за рендеринг. Причем этот кусочек может быть заменен — первые беты WPF использовали для отрисовки банальный GDI с классической отрисовкой по событию.
В свинге, кстати, тоже нет никаких событий отрисовки на прикладном уровне.

VD>Как раз у MFC и Свинга много общего. И там, и там пропагандируется идея абстрактного источника данных. В МФЦ оным является документ.


Документ это конечно здорово. Но, еще раз — это объект прикладного кода. А в свинге, к примеру, модель можно оторвать от кнопки. Есть контрол кнопка, есть отдельно где угодно ее состояние, есть модель, обеспечивающая взаимодействие этой кнопки с состоянием. MFC же базируется на виндовых нативных контролах, и, если их вообще возможно перековать под такую модель — это будет жутчайший геморой.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[10]: Аналоги WPF
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.07.08 12:39
Оценка: -1
Здравствуйте, AndrewVK, Вы писали:

AVK>Я не только про нее читал, а еще и писал под нее. И под WPF и Swing тоже. И под OWL, как плюсовую, так и паскалевую. Так что давай не будем обсуждать взаимную квалификацию. а то я вспомню про твои знания WPF и свинга.


ОК. Тогда поведуй мне зачем нужны классы CView и CDocument если MFC не поддерживает MVC.

AVK>Это не архитектура всего WPF, это маленький кусочек, ответственный за рендеринг.


Вот этот маленький кусочек весьма важное архитекрутное отличие определяющиее много чего.
А то что что-то там на МВЦ основано, так оно все на нем. Пока ничего более умного не придумали.

AVK>Причем этот кусочек может быть заменен — первые беты WPF использовали для отрисовки банальный GDI с классической отрисовкой по событию.


Думаю, что после этой замены (если она вообще возможна) смысла в WPF не будет как класс.

AVK>В свинге, кстати, тоже нет никаких событий отрисовки на прикладном уровне.


Я сам видел код кастом-отрисовки.

VD>>Как раз у MFC и Свинга много общего. И там, и там пропагандируется идея абстрактного источника данных. В МФЦ оным является документ.


AVK>Документ это конечно здорово. Но, еще раз — это объект прикладного кода. А в свинге, к примеру, модель можно оторвать от кнопки.


MFC не для кнопок делалась. Она делалась для разработки приложений а-ля Офис. В то время модно было все наследовать от единого базовго класс. Вот документ и был им. А к представлению он никак не привязан. Там в этом контексте все впорядке.

AVK>Есть контрол кнопка, есть отдельно где угодно ее состояние, есть модель, обеспечивающая взаимодействие этой кнопки с состоянием. MFC же базируется на виндовых нативных контролах, и, если их вообще возможно перековать под такую модель — это будет жутчайший геморой.


МфЦ как раз имеет четкое отделение модели от представления см. выше. Кнопки там вообще сделали от балды и далеко не в первой версии. И кнопки эти всего лишь обертка над комон-контролами винды. Отсюда и поведение. Но ты волен сделать сам представления и документ которое в них будет отображаться. При этом все будет очень даже отвязанной. Все что нужно для этого в МФЦ есть.

Кстати, модель Свинга не очень то соответствует как раз WPF-фу который предлагает заполнять контентом те самые контролы. Там скорее больше аналогий с ВиньФормсами. Тоже есть датабиндиг и т.п. А заложить данные прямо в кнопку мне там никто не помешает. В Свинге с этим вроде бы сложнее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Аналоги WPF
От: Qbit86 Кипр
Дата: 18.07.08 12:48
Оценка:
То VlaD2 и AndrewVK.

Господа, очень боюсь показаться невежливым, но не могли бы вы остановиться в перечислении схожих и отличных черт в WPF, MFC, Swing, OWL, etc? Не сомневаюсь, что вы отлично в них разбираетесь. Дело в том, что подписчикам на ветку приходят уведомления о новых сообщениях, а там — оффтопик.

Впрочем, если есть какие-нибудь интересные ссылки про WPF, буду очень благодарен. Причём лучше более обзорные статьи для новичков, но можно и серьёзные.
Глаза у меня добрые, но рубашка — смирительная!
Re[12]: Аналоги WPF
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.07.08 13:00
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Господа, очень боюсь показаться невежливым, но не могли бы вы остановиться в перечислении схожих и отличных черт в WPF, MFC, Swing, OWL, etc? Не сомневаюсь, что вы отлично в них разбираетесь. Дело в том, что подписчикам на ветку приходят уведомления о новых сообщениях, а там — оффтопик.


Нашел бы место где пошел офтоп и проголосовал бы за его отделение.
Например, я уже проголосовал за отделение http://rsdn.ru/forum/message/3025162.1.aspx
Автор:
Дата: 16.07.08
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: F# vs C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.07.08 13:24
Оценка: 3 (1)
Здравствуйте, VladD2, Вы писали:

AVK>>Я не только про нее читал, а еще и писал под нее. И под WPF и Swing тоже. И под OWL, как плюсовую, так и паскалевую. Так что давай не будем обсуждать взаимную квалификацию. а то я вспомню про твои знания WPF и свинга.


VD>ОК. Тогда поведуй мне зачем нужны классы CView и CDocument если MFC не поддерживает MVC.


Еще раз по буквам — я нигде не писал, что MFC не поддерживает MVC, я написал что сами контролы не устроены как MVC.

AVK>>Это не архитектура всего WPF, это маленький кусочек, ответственный за рендеринг.


VD>Вот этот маленький кусочек весьма важное архитекрутное отличие определяющиее много чего.


Зарадибога. Только помимо рендеринга есть еще масса аспектов. Я говорил о модели контролов (то, что составляет собственно PresentationFramework, а не базовые уровни навроде composition engine ии оберток вокруг нее). Если сравнивать с классическими GUI библиотеками, то есть функционал, реализуемый GDI и user32, а есть объектные обертки, которые собственно библиотека. PresentationFramework это грубый аналог второго, а composition engine и механика, генерящая raw events — первого.

AVK>>Причем этот кусочек может быть заменен — первые беты WPF использовали для отрисовки банальный GDI с классической отрисовкой по событию.


VD>Думаю, что после этой замены (если она вообще возможна) смысла в WPF не будет как класс.


Как сказать.

AVK>>В свинге, кстати, тоже нет никаких событий отрисовки на прикладном уровне.


VD>Я сам видел код кастом-отрисовки.


Ну, я тебе и в WPF могу показать такое. Берем рефлектор, открываем PresentationFramework.dll, смотрим, ну пусть System.Windows.Shapes.Ellipse, метод OnRender.
protected override void OnRender(DrawingContext drawingContext)
{
    if (!this._rect.IsEmpty)
    {
        Pen pen = base.GetPen();
        drawingContext.DrawGeometry(base.Fill, pen, new EllipseGeometry(this._rect));
    }
}

Годится?

VD>MFC не для кнопок делалась.




VD>МфЦ как раз имеет четкое отделение модели от представления см. выше.


Читай внимательно что я пишу.

VD>Но ты волен сделать сам представления и документ которое в них будет отображаться.


В тысячный раз — документ это сущность прикладного кода, я говорю про сущности самой библиотеки.

VD>Кстати, модель Свинга не очень то соответствует как раз WPF-фу который предлагает заполнять контентом те самые контролы.


То, что в WPF называется Content, в свинге называется Model. Существенная разница лишь в том, что у контролов WPF этот контент нетипизированный и они в рантайме пытаются интерпретировать все гавно, которое туда подпихнут, а в свинге модель описана строго типизированными интерфейсами.

VD> Там скорее больше аналогий с ВиньФормсами. Тоже есть датабиндиг


Офигеть. В WPF тоже data binding есть собственный, не знал?
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[20]: F# vs C#
От: IT Россия linq2db.com
Дата: 18.07.08 14:03
Оценка: +2
Здравствуйте, AndrewVK, Вы писали:

AVK>>>В свинге, кстати, тоже нет никаких событий отрисовки на прикладном уровне.


VD>>Я сам видел код кастом-отрисовки.


AVK>Ну, я тебе и в WPF могу показать такое. Берем рефлектор, открываем PresentationFramework.dll, смотрим, ну пусть System.Windows.Shapes.Ellipse, метод OnRender.

AVK>
AVK>protected override void OnRender(DrawingContext drawingContext)
AVK>{
AVK>    if (!this._rect.IsEmpty)
AVK>    {
AVK>        Pen pen = base.GetPen();
AVK>        drawingContext.DrawGeometry(base.Fill, pen, new EllipseGeometry(this._rect));
AVK>    }
AVK>}
AVK>

AVK>Годится?

Вообще-то это не отрисовка. Это её декларация, с которой потом можно ещё понаделать много разных трансформаций. Отрисовка в WPF — это скорее где-то в System.Windows.Graphics.
Неясность изложения обычно происходит от путаницы в мыслях.
Если нам не помогут, то мы тоже никого не пощадим.
Re[21]: F# vs C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.07.08 14:31
Оценка:
Здравствуйте, IT, Вы писали:

IT>Вообще-то это не отрисовка. Это её декларация


Не, это именно отрисовка. Декларация там нарисовывается, когда эта отрисовка преобразуется в набор узлов для передачи в конвеер composition engine. А на прикладном уровне, что WPFных рендерер, что GDI+, принципиального отличия нет.
Вот реальная картинка контролов, собираемая из шейпов и примитивов, вот она да, она абсолютно декларативна, но это уже совсем другой уровень.
Чтобы не продолжать этот спор, сразу скажу — модель рисования WPF безусловно на свинг не похожа.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[22]: F# vs C#
От: IT Россия linq2db.com
Дата: 18.07.08 14:57
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Не, это именно отрисовка.


DrawingContext в принципе не рисует. Он только создаёт набор рисовальных инструкций. Их можно с таким же успехом задать и в XAML.

AVK>Декларация там нарисовывается, когда эта отрисовка преобразуется в набор узлов для передачи в конвеер composition engine. А на прикладном уровне, что WPFных рендерер, что GDI+, принципиального отличия нет.


Принципиальное отличие как раз имеется. Приведённый тобой метод UIElement.OnRender ничего сам не рисует, он генерирует инструкции, о чём недвусмысленно написано в документации. Далее такой контрол можно подвергать всевозможным трансформациям, анимациям и прочим ациям.
Неясность изложения обычно происходит от путаницы в мыслях.
Если нам не помогут, то мы тоже никого не пощадим.
Re: Аналоги WPF
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 18.07.08 15:05
Оценка: +1
Здравствуйте, <Аноним>, Вы писали:


А>А вообще есть аналог WPF не для .NET?


Tcl/Tk
Автор: Andrei N.Sobchuck
Дата: 01.06.06
двадцатилетней давности?

ЗЫ Когда-то инсталятор Oracle был на Tcl/Tk. Работал и не жужжал. Когда попёрла java (~1998) инсталятор переписали и мало того, что возникла куча багов, так оказалось, что инсталятору памяти нужно больше, чем самой СУБД для работы. Т.е. в требованиях к СУБД стояло толи 32 толи 48, а инсталятору нужно было более 64Мб.
http://www.smalltalk.ru << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[4]: Аналоги WPF
От: FR  
Дата: 19.07.08 09:32
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


L>>А что между ними общего?


AVK>Идеология построения — MVC, лейауты, малое количество гибких контролов.


Угу, практически краткое описание TK
Re[5]: Аналоги WPF
От: Константин Б. Россия  
Дата: 21.07.08 01:10
Оценка:
Здравствуйте, FR, Вы писали:

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


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


L>>>А что между ними общего?


AVK>>Идеология построения — MVC, лейауты, малое количество гибких контролов.


FR>Угу, практически краткое описание TK


И где в Tk MVC?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.