XAML - Какой смысл (печатать) это?

В настоящее время я изучаю WPF и Silverlight. До сих пор я занимался разработкой на Delphi и C # (Winforms). При просмотре некоторых книг о WPF и просмотре вводных видеороликов в Интернете у меня складывается впечатление, что эта вещь XAML - это большой шаг назад с точки зрения эффективности и удобства использования (для разработчика). Особенно в онлайн-видео люди с удовольствием набирают код XAML для создания форм и элементов управления, что, как я думал, было техникой, которая давно устарела с приходом дизайнеров визуальных форм и т. Д. Зачем мне создавать кнопку или сетку, вводя текстовое представление в XAML, когда использование конструктора форм намного быстрее? Зачем вводить цвет или название шрифта, если гораздо быстрее выбрать его из раскрывающегося списка в инспекторе свойств? Действительно ли графические интерфейсы реальных приложений разрабатываются с помощью ввода XAML?

Я уверен, что мне что-то здесь не хватает, хотя я не могу понять, что ...


person Timo    schedule 31.01.2009    source источник
comment
Я не уверен, что существует действительно так много реальных приложений, использующих Silverlight и WPF. Однако из того, что существует, да, много написанного вручную XAML сделано. Инструментов на самом деле нет, но люди хотят использовать технологию ... такова цена.   -  person BobbyShaftoe    schedule 31.01.2009


Ответы (10)


Я обычно пишу весь свой XAML вручную, потому что еще не освоил Blend. Но некоторые другие разработчики, с которыми я работаю, любят использовать Blend, и он отлично подходит для создания таких вещей, как градиенты.

Я рекомендую вам загрузить пробную версию Blend и попробовать ее, она очень хорошо работает с Visual Studio и сэкономит вам много времени, если вы научитесь ее использовать.

person timothymcgrath    schedule 01.02.2009

Это почти то же самое, что писать необработанный HTML вручную, в отличие от использования редактора WYSIWYG: гораздо более точный контроль над результатом без необходимости повторять ненужные циклы с редактором.

person Tamas Czinege    schedule 31.01.2009

Действительно ли графические интерфейсы реальных приложений разрабатываются путем ввода XAML?

Одним словом, да. Может быть, не много, но обязательно бывает.

Мой опыт работы с визуальными дизайнерами заключается в том, что они, как правило, добавляют ненужные панели, фиксированные размеры и абсолютное позиционирование, в то время как желательна более гибкая и правильно масштабируемая компоновка. Например, посмотрите этот недавний вопрос в stackoverflow

Кроме того, если вы пишете настраиваемые элементы управления, вам часто приходится выполнять дополнительную работу, чтобы сделать их совместимыми с визуальными дизайнерами, эта дополнительная работа не требуется, если вы можете напрямую редактировать xaml.

person Bubblewrap    schedule 31.01.2009

Если вы можете ввести XAML, значит, вы понимаете XAML :) (imho)

Смысл знания того, как его набирать, состоит в том, чтобы знать, как его отлаживать, реорганизовывать и реорганизовывать. Все это невозможно сделать в Expression blend, а для больших проектов вам понадобятся все они.

Другая проблема, возникшая здесь, заключается в том, что ручное написание XAML дает вам больше контроля, это не такая сильная сторона, как в случае html. XAML выделяется более структурированным, чем html, и редакторы, такие как смесь выражений или другие, в значительной степени предоставляют тот же XAML, который вы бы написали вручную, за несколькими незначительными исключениями.

person Pop Catalin    schedule 03.03.2009

Что ж, дизайнеры обычно используют Expression Blend, который является мощным конструктором xaml. Но да, я знаю много разработчиков, которые редактируют xaml как текст и считают это проще, чем дизайнеры.

person Marc Gravell    schedule 31.01.2009

Если вы хотите использовать дизайнер, приобретите Expression Blend.

Вы правы, хотя в VS тоже должен быть элементарный дизайнер.

Silverlight пришел из другого направления, типичные элементы управления появились в Silverlight совсем недавно и еще только начали.

Сказав это, как разработчик, я предпочитаю набирать XAML примерно так же, как я предпочитаю вводить HTML. Дизайнеры (и blend не исключение) выкидывают в разметку слишком много лишнего, чего я бы не хотел там присутствовать.

person AnthonyWJones    schedule 31.01.2009

Как только вы поймете, как использовать различные структуры панелей, которые являются частью WPF, написать XAML вручную станет проще, чем использовать конструктор. Я обнаружил, что могу вводить элементы управления в форму намного быстрее, чем с помощью любого дизайнера, и у меня больше контроля над тем, как выглядит и размещается XAML.

Я использую дизайнер только для того, чтобы иногда устанавливать свойство для элемента управления, который уже находится в форме. И я использую Blend для создания анимации, поскольку у меня еще нет XAML для этого.

person Ray    schedule 03.03.2009

XAML можно сравнить с Glade XML, форматом для хранения графических интерфейсов на основе GTK +. GTK +, в отличие от Windows Forms и WPF, на самом деле разумен тем, что использует относительное позиционирование. С Windows Forms абсолютное позиционирование становится PITA, когда люди начинают настраивать свои шрифты, а ваш графический интерфейс выглядит как дерьмо с большим количеством вырезок текста.

Относительное позиционирование легко запрограммировать вручную, в отличие от абсолютного позиционирования, потому что вам не нужно определять координаты!

person wj32    schedule 01.02.2009

Потому что он лучше подходит для системы контроля версий, чтобы другие люди могли изменять его одновременно без конфликтов? Потому что вы можете разрабатывать целое приложение в emacs? Потому что вы могли бы легко написать генераторы и инспекторы для этого материала? Потому что легко контролировать, как этот графический интерфейс будет выглядеть до мельчайших деталей?

person vava    schedule 31.01.2009

Я это печатаю.

Я ненавижу только небрежный, недетерминированный и трудно контролируемый вывод дизайнеров, будь то HTML, будь то XAML.

По сути, если я создаю файл XAML, я делаю это точно так же, как пишу любой другой фрагмент кода.

Я начинаю с сегментации всего этого в сетку, помещаю точный размер в пикселях на ВСЕ (кроме нечетного «свободно плавающего» пространства, где я ставлю «*»), решаю, что куда идет, а затем я также добавляю комментарии и пустые строки в структуру XAML.

Кроме того, я отвергаю каждый XAML, не соответствующий этому стандарту, как «непригодный для использования», что имеет очень хороший образовательный эффект.

Небрежность и пренебрежение лучшими практиками - смертный грех, и я никогда их не терпел.

person Turing Complete    schedule 17.08.2010