No momento, estou tentando entender o MVVM para WPF - não quero dizer o que pensa, mas sim as coisas reais de se fazer algo que está mais fora do comum do que o burro CRUD.
O que eu notei é que muitos dos frameworks e a maioria das postagens são de 'idades' atrás.
Isso é porque agora é velho e os blogueiros mudaram para o Next Big Thing, ou apenas porque disseram tudo o que há para dizer?
Em outras palavras, há algo que estou perdendo aqui?
Respostas:
O MVVM não está desatualizado, mas foi exagerado no início. Eu nunca gostei e isso me manteve no WinForms por muito tempo; não vendo a floresta para as árvores, joguei o bebê fora com a água do banho. Agora, tenho o WPF e tenho a ideia de não querer misturar código com marcação, mas prefiro o estilo Android de colar a marcação em um só lugar e desreferenciá-la com conversões no meu código (o que você também pode fazer no WPF, mesmo embora nunca tenha ficado na moda fazê-lo por qualquer motivo).
Dessa forma, você obtém um controle mais refinado e não precisa se preocupar com todo o manuseio "alterado" em todos os lugares. Eu sinto que isso é realmente mais testável porque os testes nem sempre o capturam se você perder um evento "onchanged".
Você perde um pouco da integridade "declarativa", que parece ser uma tendência nos dias de hoje (por exemplo, se dois widgets são mapeados para o mesmo valor, no MVVM você pode fazer isso, enquanto que com o código imperativo é necessário definir os dois individualmente) . Mas mesmo com o MVVM, isso só funciona no caso servil. Se algum widget precisar exibir o log de outro widget, você precisará escrever outro manipulador e outro evento "onchanged" e, portanto, terá que esticar a definição de "declarativo" para dizer que sim.
Atualização de 2015
O WPF MVVM foi (r) evolutivo para a época. Como foi o WPF. Mas ambos tinham verrugas. O WPF simples tinha muita coisa embutida nela (além disso, ela era construída em XML) e era meio difícil de lidar. (Realmente, se o WPF tivesse adotado uma abordagem mais de "biblioteca" em vez de uma abordagem de "estrutura", poderia ter se transformado em algo realmente interessante e todo o universo tecnológico poderia ser totalmente diferente agora). A idéia do MVVM era ótima, mas tentar encaixar um MVVM no WPF era um pouco invasivo, pois 1) o C # não conseguia expressá-lo sem muito clichê e 2) as relíquias do WinForms, como pop-ups modais, ainda eram ideologicamente predominantes, mas não podiam ser facilmente representado no MVVM. Assim, tudo foi péssimo.
Dito isso, ainda é a única opção realista no Windows quando você precisa de transparência ou GPU para aplicativos LOB.
É claro que o React tornou a MVVM obsoleta. Fiquei decepcionado por o VS2015 não ter um contador nativo para isso. Por enquanto, ainda estamos presos ao uso do WPF bruto (o que é bom, mas parece antigo (realmente parece tão antigo quanto as formas de win agora) e não possui muitas funcionalidades integradas (parece um projeto interessante, mas abandonado) ou with-MVVM, que neste momento parece sobrecarga por nada, já que até uma boa MVVM (angular 1) foi exposta por suas deficiências.
Eu evitaria o WPF MVVM. É uma camada extra e ninguém mais se importa com isso.
fonte
Tudo dito e feito, há um limite para o que você pode fazer com uma estrutura MVVM.
Eles estão "prontos", pois o WPF não foi adiante desde que a Microsoft o lançou. Se houvesse atualizações para a tecnologia, as bibliotecas também precisariam ser atualizadas. Isso não aconteceu.
fonte