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