Здравствуйте, licedey, Вы писали:
L>Мы говорим про XAML, с иерархичной структурой и десятком тегов. а конкретнее я имел ввиду layout — быстрее нарисовать, чем прописывать эти Width, Height, вложенность итд.
Слишком узкий взгляд на вещи. Разметка — это не только ГДЕ, но и КАК. Практически невозможно объяснить XAML'у при помощи карандаша, что у тебя не грид, а док-панель и что нарисованная кнопка должна выравниваться вправо. Короче, "визуальные рисовалки" — глупости для детей, в мире декларативного UI они не нужны. Тем более, что XAML-код пишется вообще ненапряжно, а потом только дополняется элементами.
Re[5]: Хочу похвастаться! Первый язык на основе Nitra - AMMY
Здравствуйте, VladD2, Вы писали:
VD>Но тут, мне кажется, не важно делают они или нет.
Важно. Если бы MS активно догфудилась, то у них было бы меньше вольностей выкидывать технологии — "совместимость" и всё такое.
Но в этом и прикол, что MS знает, какой отстой они выкатили и не торопится складывать яйца в корзину "WPF"! И я с ними согласен — WPF умрёт или очень сильно переродится, урезав свой дикий функционал.
VD> Важно является ил WPF основной платформой для создания настольного GUI или нет. Вроде как является.
На мой взгляд, здесь политика M$ — "выстрел дробью": не ставить на одну технологию (потому что некому её делать идеальной), а набрать десяток макак в каждую команду и каждая команда лепит свой лунапарк — какой из них юзеры примут/полюбят, такой и раскручивать. Разумеется, не бросив серьёзные силы на один проект, невозможно его спроектировать-реализовать-внедрить хорошо. Поэтому мы сейчас и имеем в гуях "как бы устаревший WinWorms" (клянусь, вы его ещё лет 10 хоронить будете!), "как бы новый WPF" (дичайший overengineering + тормоза), но даже при наличии WPF, M$ дёргается в сторону Web'а — мол, "межплатформенно" и всё такое. То есть опять как кисейная барышня, MS не может чётко ответить: да, у нас есть технология XYZ, мы её активно развиваем и это будет наша главная технология для задач ABC.
Такое ощущение, что когда 20 лет назад лошары-большие-шишки прощёлкали "интернеты", им таких вставили, что они теперь вцепились в Web мёртвой хваткой и всячески стараются копировать оттуда любые тенденции. Груздь-доска ситуации в том, что в вебе MS — никто, а значит надо играть на своём поле — декстоп! (который дилетанты и кликуши хоронят последние 10 лет и ещё лет 50 не похоронят) Поэтому MS-ту нужна одна чёткая, надёжная, грамотно спроектированная технология ГУЁв без легаси дерьма типа COM. Такой у них нет. Студия — тоже напрочь состоит из протухших COM-костылей (и это на .NET-е!!). Так что сейчас MS в состоянии паровоза на распутье, а позади него дышит мёртвым холодом ядерный локомотив других, более умных компаний. Вот такие как ionoy — современные, гибкие, безбюрократические муравьишки, способные ВМЕСТЕ сдвинуть гору.
VD> Но если нужно создать окно в дотнетном приложении, то WPF первый в списке получается.
Тоже юзаю WPF, но только после 10 оглядок "а не понадобится ли мне в приложении сложная логика, кастом-контролы или скорость". В результате, главный продукт компании работает на WinForms и чертовски хорошо работает!! Ни у кого даже в мыслях нет "хоронить WinForms", хехе.
VD>Что касается AMMY, то его можно ...
Можно. Но надо понимать — это временная технология, зависящая от смертника-WPF. К счастью, это всего-лишь разметка+фичи, т.е. совершенно спокойно можно нахлобучить ammy поверх тех же WinForms! (или вообще дать рождение новым ГУЯМ) Вот чего надо бояться мелкомягким — что обставят их, монстродумных, что от былого гиганта останется десктопная Win7 и ни одного мелкософтовского продукта на ней.
Re[6]: Хочу похвастаться! Первый язык на основе Nitra - AMMY
Здравствуйте, TechL, Вы писали:
TL>А хотелось бы вот что: расчерчивать лэйаут как на доске, и правой кнопкой уже детализировать — что это — грид, панель, датагрид, меню, и так вплоть до кнопок и текстбоксов. Скажем постепенная детализация UI, начиная с разметки или чертежа, заканчивая ответом на вопрос "Что это за квадратик" — правой кнопой можно задать, что это Grid. "А что это за прямоугольник внутри грида?" — в выпадающем меню выбираем button. "А как выглядит этот button?" итд.
Ну вот у меня (не в WPF) прямо так и работает. Только собственно "чертить" (в смысле графически) ничего не надо — и это тоже делается само. А всё управление заключается в перетаскивание лэйаутов по дереву. При этом в соседнем окне отображается превьюшка, которая в точности напоминает эту твою картинку.
Здравствуйте, Kolesiki, Вы писали:
L>>Мы говорим про XAML, с иерархичной структурой и десятком тегов. а конкретнее я имел ввиду layout — быстрее нарисовать, чем прописывать эти Width, Height, вложенность итд. K>Слишком узкий взгляд на вещи. Разметка — это не только ГДЕ, но и КАК. Практически невозможно объяснить XAML'у при помощи карандаша, что у тебя не грид, а док-панель и что нарисованная кнопка должна выравниваться вправо.
Ну не знаю как в мире XAML, но в других это делается элементарно (все эти выравнивания и т.п. задаются в один клик мыши) и отлично работает уже много лет.
K>Короче, "визуальные рисовалки" — глупости для детей, в мире декларативного UI они не нужны.
Это всего лишь твоё личное мнение. )
K>Тем более, что XAML-код пишется вообще ненапряжно, а потом только дополняется элементами.
Конечно пишется без проблем. Только вот во много раз дольше, чем аналогичная работа в визуальном редакторе. Скажем результат, достигнутый на видео из первого сообщения темы, я получу где-то за минуту (вместо 25 минут на видео) неторопливого шевеления мышкой. )))
Re[7]: Хочу похвастаться! Первый язык на основе Nitra - AMMY
Здравствуйте, aloch, Вы писали:
A>Расскажи ка нам без грубостей, чем так плох COM? Что там протухло, например?
В контексте данной темы там протухло все. протухло OLE, протухли ActiveX, протухли апартенты и библиотеки типов, протух DCOM и COM+ протухли прокси и стабы наконец...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[8]: Хочу похвастаться! Первый язык на основе Nitra - AMMY
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, aloch, Вы писали:
A>>Расскажи ка нам без грубостей, чем так плох COM? Что там протухло, например?
TK>В контексте данной темы там протухло все. протухло OLE, протухли ActiveX, протухли апартенты и библиотеки типов, протух DCOM и COM+ протухли прокси и стабы наконец...
Т.е. когда я вызываю CoInitializeEx и потом через COM поднимаю хост .Net в процессе, чтоб заиспользовать там WPF, тухлость до WPF доходит или нет? Или в контексте этой темы свежайший JSON выступает оберегом.
А сесли серьезно, хотелось конкретики. И именно от колесиков.
Re[9]: Хочу похвастаться! Первый язык на основе Nitra - AMMY
Здравствуйте, aloch, Вы писали:
TK>>В контексте данной темы там протухло все. протухло OLE, протухли ActiveX, протухли апартенты и библиотеки типов, протух DCOM и COM+ протухли прокси и стабы наконец...
A>Т.е. когда я вызываю CoInitializeEx и потом через COM поднимаю хост .Net в процессе, чтоб заиспользовать там WPF, тухлость до WPF доходит или нет?
А тут не важно — с хвоста оно тухнет или с головы — протухнет все. Вы берёте технологию 90х и добавляете что-то из ранних 00х тут все от условий хранения зависит...
A>А сесли серьезно, хотелось конкретики. И именно от колесиков.
Легко — давайте код где будет CoInitializeEx и так дальше до WPF — сразу будет конкретика где тухлость, а где вторичный продует.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[10]: Хочу похвастаться! Первый язык на основе Nitra - AMMY
Здравствуйте, Kolesiki, Вы писали:
K>Слишком узкий взгляд на вещи. Разметка — это не только ГДЕ, но и КАК. Практически невозможно объяснить XAML'у при помощи карандаша, что у тебя не грид, а док-панель и что нарисованная кнопка должна выравниваться вправо. Короче, "визуальные рисовалки" — глупости для детей, в мире декларативного UI они не нужны. Тем более, что XAML-код пишется вообще ненапряжно, а потом только дополняется элементами.
Возможно объяснить правой кнопкой мыши, что у тебя Grid или DockPanel. Ты вообще не понял идеи, выше Vlad2 ответил.
Re[12]: Хочу похвастаться! Первый язык на основе Nitra - AMMY
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, aloch, Вы писали:
A>>Ты — колесики? Вообще — похож.
TK> Код то у вас есть? Вы вообще представляете во что выльется от поднять .net хост до заиспользовать через него WPF?
Вполне. Естественно, WPF поднимается уже в дотнетовской сборке, с которой из C++ взаимодействуем с через тухлый COM.
Я через тухлый COM .Net/WPF в VB6 IDE поднимаю, есть такая необходимость.
Re[2]: Хочу похвастаться! Первый язык на основе Nitra - AMMY
Здравствуйте, licedey, Вы писали:
L>Большой Респект ionoy и VladD2 за то что довели до релиза этот проект. У меня была подобная идея, только вместо JSON, я использовал что-то близкое к Python-style. L>Тобишь совсем без скобок, а одни отсутпы. Довел до прототипа, который генерит из этого простенького ML -> C#-классы. Можем поближе пообщаться..
Ammy тоже сначала код генерировала, но оказалось что некоторые вещи через код не сделать (см. шаблоны и UWP).
Если есть предложения, то пиши конечно. На первой странице сайта, внизу есть ссылки на гиттер и мыло.
Здравствуйте, ionoy, Вы писали:
I>Новый синтаксис позволяет в коде определить конвертер:
I>
I>Text: bind Name
I> convert (string name) => "Hello, " + name
I>
Я бы добавил бы еще две фиичи:
1. Поддержку вывода типов для параметра конвертера. Он ведь, как я понимаю, всегда задается тем что идет после "bind". В данном примере типом свойства Name.
Text: bind Name
convert (name) => "Hello, " + name
2. Позволил бы короткий синтаксис для указания статических функций:
Text: bind Name
convert Utils.MyConverterMethod
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Я бы добавил бы еще две фиичи: VD>1. Поддержку вывода типов для параметра конвертера. Он ведь, как я понимаю, всегда задается тем что идет после "bind". В данном примере типом свойства Name. VD>
VD>Text: bind Name
VD> convert (name) => "Hello, " + name
VD>
Вывод типов будет работать далеко не всегда, потому что далеко не всегда тип можно вывести в компайл-тайм. Не знаю, стоит ли добавлять такую фишку, которая то работает, то нет.
VD>2. Позволил бы короткий синтаксис для указания статических функций: VD>
VD>Text: bind Name
VD> convert Utils.MyConverterMethod
VD>
Здравствуйте, ionoy, Вы писали:
I>Вывод типов будет работать далеко не всегда, потому что далеко не всегда тип можно вывести в компайл-тайм. Не знаю, стоит ли добавлять такую фишку, которая то работает, то нет.
А когда тип известен только в рантайме?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.