El Model-View-ViewModel es muy popular entre WPF y Silverlight. He estado usando esto para mis proyectos más recientes y soy un gran admirador.¿Qué hace que MVVM sea especialmente adecuado para WPF?
Entiendo que es un refinamiento de MVP. Sin embargo, me pregunto exactamente qué características únicas de WPF (y Silverlight) permiten a MVVM trabajar, y evitar (o al menos dificultar) que este patrón funcione con otros marcos o tecnologías.
Sé que MVVM tiene una fuerte dependencia de la poderosa tecnología de enlace de datos dentro de WPF. Esta es la característica que muchos artículos y blogs parecen mencionar como la clave para que WPF proporcione los medios de la fuerte separación de View from ViewModel. Sin embargo, el enlace de datos existe en many forms en otros marcos de IU. Incluso hay proyectos como Truss que proporcionan enlaces de datos de estilo WPF a POCO en .NET.
¿Qué características, aparte del enlace de datos, hacen que WPF y Silverlight se adapten exclusivamente a Model-View-ViewModel?
¿Por qué siente que se requiere XAML para MVVM? –
Por dos razones, DataBinding (en MVVM se realiza a través de XAML) y ControlTemplates. Sin este último, la edición/creación de nuestro propio control estaría ligada al código, lo que haría que MVVM fuera más difícil cuando se trabaja con controles creados por el usuario. – Carlo
El enlace de datos no tiene que hacerse a través de XAML, y hay algunos que prefieren dividirlo de XAML. Si bien la creación de la IU de código es más difícil que XAML, es posible y no afecta el uso de MVVM. Y creo que las plantillas de datos son más relevantes para MVVM que las plantillas de control. –