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