Архитектурно, я думаю, что WPF довольно изумительный. В общем, я большой поклонник внутренней обработки рендеринга/анимации. Гибкость настройки шаблонов и стилей довольно впечатляет.
Но я ненавижу XAML - я чувствую, что это усложняет многие вещи. Я использовал его в больших и малых приложениях, и я много раз пытался выяснить, как сделать что-то в XAML, для которого базовый принцип является базовым, но синтаксис является изворотливым. Не только это, но я много раз задавался вопросом, насколько тяжелы определенные части синтаксического анализа/привязки. (Я знаю, что он скомпилирован, но я не уверен, сколько еще оценивается во время выполнения)
XAML - это всего лишь один способ создания и загрузки визуального дерева. Существуют ли какие-либо рамки для упрощения построения визуального дерева в не-XML, основанный на кодах (но все же в значительной степени декларативный) способ? В частности, меня интересуют рамки, которые смягчают любые из следующих проблем, сохраняя при этом подход MVVM:
-
Сильно типизированная привязка. Укажите, что ViewModel должен соответствовать определенному типу. Я предполагаю, что BaseBinding использует отражение под капотом, и я немного скептически отношусь к скорости этого, не говоря уже о том, что разбитые привязки раздражают.
-
Ускоренное связывание, не связанное с
INotifyPropertyChanged
. Кажется, что какой-то типBindableProperty<T>
может быть создан, и привязка может прослушиваться напрямую, а не получать все изменения свойств ViewModel. И использование прямого обратного вызова в сравнении с строковым аргументом также показалось бы полезным. -
Другой подход к управлению ресурсами; опять же, сильно типизированные словари могут быть довольно приятными. Я почти хотел бы видеть стили как лямбды или что-то, чтобы зафиксировать строго типизированный аспект.
Итак, любые фреймворки, не основанные на XAML, хорошо подходят для MVVM и строго типизированы?