El enfoque Modelo-Vista-VistaModelo (MVVM) parece ser el patrón de corredor principal en el desarrollo de la interfaz de usuario de WPF. Casi todos los artículos que leo implican que es la mejor práctica. El uso de RelayCommand o DelegateCommand también es prominente en muchos artículos y parece que es casi imposible implementar MVVM sin utilizar ninguno de ellos (ni ninguna otra variación). Entonces, ¿por qué no son parte de .NET 4?¿Por qué RelayCommand o DelegateCommand no forman parte de WPF?
Sé que RelayCommand es realmente fácil de implementar y muchos kits de herramientas de terceros ya lo tienen, pero me pregunto por qué Microsoft omite algo tan básico y fundamental para la implementación de las llamadas "mejores prácticas". "¿?"
Realmente no veo que rompan ninguna de las promesas que hace MVVM. Al final, MVVM tiene que ver con el desacoplamiento, por ejemplo, desde la vista y la lógica detrás de él, y esos comandos lo logran perfectamente. SRP es innegablemente uno de los principios más importantes, pero debe tener cuidado en dónde colocar el R .. Para mí, la responsabilidad de un RelayCommand es proporcionar una forma de ejecutar algo que es la respuesta a un evento, y me gusta poner eso 'Algo' en la propia máquina virtual, por lo que el comando tiene una sola dependencia (la VM). De lo contrario, el comando podría tener una dependencia en uno o más objetos que introducen un acoplamiento más estricto. – stijn
... pero todo depende de la situación exacta, por supuesto. También tengo muchos RelayCommands que no dependen de la máquina virtual, pero solo publican un evento en un EventAggregator más o menos. En ese caso, sería una locura enviar la solicitud a la máquina virtual. – stijn