Здравствуйте, IT, Вы писали:
IT>Как мне без копипасты определить десять однотипных кнопок?
Как я понимаю, можно сделать миксин описывающий кнопку (все ее оформление) и капипастить уже обращение к этому миксину указывая уникальные данные. При таком решении копипаста будет очень условной. Что-то вроде:
Или эти кнопки не однотипные, а одинаковые? Вряд ли нужны совсем уж одинаковые кнопки. Если же они чем-то отличаются, то это уже не совсем копипаст.
В XAML, как я понимаю, никаких циклов нет. И никто даже не стремится добавить. Почему?
Как и в случае с XAML в случае с AMMY всегда можно перейти в императивный язык (C# или Nemerle) и закодировать что хочешь. Но в и AMMY, и XAML рассчитаны на MVVM. Так что логичнее было был решать проблемы GUI-я именно в этом стиле.
Ну, еще можно создать свой WPF-контрол и использовать его из AMMY.
В общем, обоснуй необходимость этих самых циклов. Покажи примеры. Может уговорим ionoy добавить их поддержку. На Nitra это не сложно будет сделать. Пока что я не вижу в этом никакой необходимости.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
WH>1)Нужен конвертер из XAML в AMMY.
Полностью согласен! Надеюсь, автор сделает его в ближайшее время.
WH>2)Большое количество значений в строках. Нитра позволяет делать подсветку и автокомплит в строках.
Ага. Я не однократно говорил об этом автору. Но он меня не послушал. Думаю, что в процессе эволюции это уйдет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, bazis1, Вы писали:
B>P.S. Лучше бы кто-нибудь запилил XAML для сайтостроения. С нормальным визуальным редактором, strong typed binding-ами безо всяких angular-извращений, интеграцией в IDE и нормальной библиотекой контролов типа всяких TreeView. Вот это взлетит в отличие от.
Сразу оговорюсь, я не автор языка. Просто язык создан на базе Nitra, а я один из авторов Nitra.
B>1. XAML и WPF — умирающие тренды. В таком рынке люди обычно сидят на поддержке легаси и "взять и переписать лучше" нафиг никому не надо, ибо риск.
Вот здесь полностью не согласен. Для создания GUI в Windows вменяемых альтернатив нет. А программировать в xml-е крайне неприятно.
Сылка на гугльтренд опять таки говорит только о том, что WPF стали меньше пиарить, только и всего. Если попытаться забить там C# или Java вместо XAML получишь примерно такую же картину. Что же теперь C# и Java отмирающие технологии?
Конечно, сейчас в тренде JavaScript. Но и у него тренд не рвется в высь, а всего лишь идет по прямой.
В общем, тезис об вымирании явно высосан из пальца. Если надо делать гуй для виндовс — альтернативы особо и нет.
Кстати, если посмотреть на Xamarin, то его тренд действительно рвется в высь. А это по сути разновидость XAML-а. Почему это так? Все очень просто — Microsoft вкладывает мегабаксы в его раскрутку. Вот сейчас рекламная компания кончится и тренд пойдет на спад. Так что если автор окучит Xamarin, то будет в тренде . А планы такие, вроде бы, есть.
B>2. Вообще, новый closed-source язык с точки зрения рисков — бяка. Допустим, я сделал проект с бюджетом в $100K с помощью нового суперязыка, сэкономив $20K. А что если завтра автору проект надоест и он прекратит развитие? Прекратит интеграцию с новыми версиями студии, рантайма и т.п. Я попал на еще $100K, чтобы в спешке все переделывать на старом языке. Бесплатный язык и платные usability-расширения с точки зрения продаж куда интересней.
Это тоже какая-то надуманная причина. Если вдруг у него бизнес не удастся, то ежу понятно, что он выложит исходники в опенсорс. Исходники и так лежат на https://github.com. Просто в приватном репо. Я к ним доступ имею (просто потому что косултировал автора по Nitre, а код проще было через репо смотреть). Так что в случае "эффекта кирпича" даже я смогу эти исходники выложить. Но, надеюсь, этого не понадобится делать.
Да и твои аргументы совсем уж надуманны. Допустим сделал ты этот проект на C#, а МС решил закрыть тему C#-а. Ты, что переключишься на разработку C#-а? Да не в жизнь! Будешь использовать старые его версии только и всего. Да и как-то писал ты на C# когда он был закрытым.
Ну, и AMMY в итоге генерирует XAML. Так что в крайнем случае можно тупо взять полученный XAML и продолжить пилить его руками (без блэкджека и шлюх).
Хотя лично я тоже за опенсорс. Но опенсорс под очень свободной лицензией убьет автору бизнес на прочь. Любой дурак сможет скачать продукт и сделать его клон распространяемый на его условиях.
Так что я бы выложил исходники, но ограничил бы их использование лицензией.
Что касается цены — . Наверно можно было бы и подешевле сделать. Я как-то опенсорсом больше занимаюсь, так что для меня это все бесплатно.
B>3. В чем фишка продукта? JSON вместо XML? Ну да, красиво. Но это из серии "изумрудная тема для VS, радующая глаз". Красота, красотой, но $200 в месяц за это никто платить не будет, особенно учитывая риски.
Вообще-то фишки я описал в тематическом сообщении. Это и более читабельный синтаксис, и миксины, и изменение GUI во время работы приложения (без перекомпиляции в реалтайме) и много чего еще. Но, да — синтаксис первое что раздражает в XAML-е. Я лично ненавижу программировать в XML-е! По сему языки типа XAML-а или WiX меня просто раздражают.
B>4. Возможность менять GUI прямо во время исполнения? А смысл? Если это суперкритично, то
Смысл огромный. Интерактивность разработки очень повышает ее скорость и качество! В студии для XAML есть превью и даже визуальный редактор. Но он постоянно падает и очень сильно тормозит. Плюс отображает не все и данных нормальных нет. А делать GUI в рантайме, да еще и на настоящих данных — это сплошное удовольствие!
B>это можно прикрутить за полдня к обычному XAML-у, перезагружая его по таймеру в debug-сборке.
Так прикрути! Люди тебе спасибо скажут. Только при этом обеспечь интеллисенс. А то в студии в рантайме XAML изменять нельзя вроде.
В AMMY — это одна из фич доступная "изкаропки".
B>В общем, за технологию 5, а за продукт двойка.
То-то я смотрю у автора на Редите такая толпа откликов? Раже авторы Xamarin-а и Avalon заинтересовались. Они просто твоего мнения наверно не успели прочитать.
В общем, не гони напраслину на парня. Получился очень приличный язык, нужный людям. А так можно все что угодно заклевать. Ему сейчас поддержка нужна, а не наезды беспочвенные.
B>P.S. Лучше бы кто-нибудь запилил XAML для сайтостроения.
А зачем шило то на мыло менять?
Конечно, иметь типизированный MVVM-язык для создания WUI было бы не плохо. Но зачем тут XAML? Опять программирование в XML? Ну, его на фиг!
А решение для WUI автор делал несколько лет назад. NemerleWeb называется. На старых технологиях, правда. И вот такие же критики как ты его заклевали, даже не поняв смысла и крутости продукта.
На сегодня есть только аналоги на JavaScript. А жаль.
B>С нормальным визуальным редактором,
Не нужен никому этот редактор. Нельзя в нем полноценно отобразить MVVM-ые фичи вроде биндинга. Вот превью нужно. Но быстрое, а не те тормоза, что в Студии есть. И качественное. А то у меня редактор XAML постоянно падает.
Единственное зачем я использовал редактор XAML — это найти нужный участок XAML-а. Если сделать так, чтобы в рантайме можно было найти соответствующий контролу кусок кода на AMMY было бы просто идеально. Такую подержку сделать можно. Разны XAML-spy-е хватает. Прикрутить к такому навигацию и будет супер.
B>strong typed binding-ами безо всяких angular-извращений, интеграцией в IDE и нормальной библиотекой контролов типа всяких TreeView. Вот это взлетит в отличие от.
Вот все это было в NemerleWeb. Но заклевали. Такие как ты заклевали. Потом автор ушел из веб-разработки и занялся GUI-ём под Windows. Вот и зародилась у него идея сделать решение заменяющее убогий XAML, на котором приходилось не мало работать.
Собственно на Nitra то что ты хочется делается. Хочешь — займись. Может даже денег поднимешь. Мы тебе поможем, как помогли автору AMMY.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, bazis1, Вы писали:
B>>2. Вообще, новый closed-source язык с точки зрения рисков — бяка. Допустим, я сделал проект с бюджетом в $100K с помощью нового суперязыка, сэкономив $20K. А что если завтра автору проект надоест и он прекратит развитие? Прекратит интеграцию с новыми версиями студии, рантайма и т.п. Я попал на еще $100K, чтобы в спешке все переделывать на старом языке. Бесплатный язык и платные usability-расширения с точки зрения продаж куда интересней. VD>Ну, и AMMY в итоге генерирует XAML. Так что в крайнем случае можно тупо взять полученный XAML и продолжить пилить его руками (без блэкджека и шлюх).
Да, всё что нужно, это убрать из из референсов Ammy и добавить сгенерированные XAML файлы. Они, кстати, получаются не сильно хуже рукописных.
B>>P.S. Лучше бы кто-нибудь запилил XAML для сайтостроения.
VD>А решение для WUI автор делал несколько лет назад. NemerleWeb называется. На старых технологиях, правда. И вот такие же критики как ты его заклевали, даже не поняв смысла и крутости продукта.
Надо отметить, что делал я его не один, а вместе с _NN_.
VD>Вот все это было в NemerleWeb. Но заклевали. Такие как ты заклевали.
Проблема была не в критике, (хотя по-моему её было неоправданно много), а в том что не нашлось сторонников. К тому же у меня родился ребёнок, а у NN так вообще двойня. Заниматься проектом параллельно с основной работой и ребёнком стало просто нереально.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, VladD2, Вы писали:
WH>1)Нужен конвертер из XAML в AMMY. У людей уже есть горы кода на XAML и переписывать его руками в AMMY они не станут.
Он есть, но в очень зачаточном состоянии. Фактически он просто читает XML и переводит в Ammy с небольшими правками. Там пока нет поддержки x:Name, x:Key и прочего.
В любом случае я в ближайшие пару дней залью его на http://www.github.com/ammyui/ammyui
WH>2)Большое количество значений в строках. Нитра позволяет делать подсветку и автокомплит в строках.
Такова природа XAML'а. В некоторых местах можно будет убрать необходимость строк, но пока это не приоритет.
WH>3)Так как алиас всегда возвращает строго один узел скобки лишние.
WH>Ну и для однообразия с миксинами WH>
Ага, я точно про такой синтаксис думал. Но поразмыслив решил остановится на текущем — он по моему легче читается. "Есть функция, которая вставляет такую-то ноду". Короче говоря, это спорный момент.
WH>4)Что мешает сделать типизированные переменные?
Нет смысла. Типизация помогает с интеллисенсом и проверкой во времени компиляции.
Проверка работает и так, потому что при компиляции Ammy запускается парсер XAML ошибки которого потом мапятся обратно на Ammy.
С интеллисенсом хуже, но для того чтобы его получить пришлось бы усложнять синтаксис. Например, чтобы получить подсказку по enum'у пришлось бы писать:
Visibility $visibility = Hidden
Со свойствами ещё хуже:
from Control $triggerProperty = Background
И всё это только для интеллисенса. Повторюсь, ошибки и так показываются интерактивно.
WH>5)Все миксины в видео не имеют параметров. И при их вызове скобки не используются. Возможно стоит сделать скобки при описании миксина опциональными?
Согласен, надо над этим подумать. Если не сложно, можешь на гитхаб сделать Issue?
WH>6)Где можно скачать проект, созданный в видео? Да и вообще несколько примеров было бы неплохо.
В ближайшее время всё выложу на http://www.github.com/ammyui/ammyui.
Здравствуйте, ionoy, Вы писали:
I>Здравствуйте, Jack128, Вы писали:
I>В этом плане Ammy ничем не отличается от XAML. Когда добавляешь Ammy контрол, добавляется точно такой же code behind как и раньше.
Да, не обратил внимание, сорри.
Здравствуйте, Jack128, Вы писали:
I>>В этом плане Ammy ничем не отличается от XAML. Когда добавляешь Ammy контрол, добавляется точно такой же code behind как и раньше. J>Да, не обратил внимание, сорри.
А чего сорри, мне наоборот хорошо когда много вопросов. Становится понятно какие моменты неочевидны, что нужно подробнее описать на сайте. Так что спасибо за вопрос
1) Есть два солюшена, один с ammy-юзер контролом, другой — просто новое wpf приложение.
2) Ставим ammy-экстеншн.
3) Открываем ammy-солюшн, подсветка есть, авторелоад есть.
4) открываем обычный wpf солюшн, тут же закрываем его
5) открываем ammy-солюшн, авторелоад работает, а подсветка синтаксиса — пропала.
Здравствуйте, ionoy, Вы писали:
I>Здравствуйте, Jack128, Вы писали:
J>>Здравствуйте, VladD2, Вы писали:
J>>Баг или у меня косяки ??
I>Починил. Если есть желание, обновится можно с тестового сервера MyGet. I>Nuget V2: https://www.myget.org/F/ammy/api/v2 I>Nuget V3: https://www.myget.org/F/ammy/api/v3/index.json
I>Добавляется в Options -> Nuget Package Manager -> Package Sources
I>При обновлении попросит перезапустить студию, надо перезапустить.
I>Ещё раз спасибо
Здравствуйте, ifle, Вы писали:
I>Добавьте киллер фичу — поддержку ограниченного css, как в nativescript и react-native. Будет очень полезно и для xamarin