Dmvvm-es

Exercícios práticos para tentar entender o padrão MVVM e talvez encerrar o desenvolvimento de uma estrutura MVVM pequena e útil para Delphi.
Outras estruturas usadas
Equipe de trabalho
Somos um pequeno grupo de programadores que nos reunimos no Telegram ( Grupo Delphi MVVM em espanhol ) e lá compartilhamos nossas idéias e dúvidas
Links de interesse
https://www.youtube.com/watch?v=ci1hp8zbjxk
https://blog.grijjy.com/2018/01/22/mvvm-starter-kit-part-o-of-3/ https://github.com/grijjy/mvvmstarterkit
https://bitbucket.org/sglienke/knockoff/src/master/ https://delphisorcery.blogspot.com/2015/06/anonymous-method-overloading.html
https://bitbucket.org/sglienke/dsharp/src/master/ https://github.com/jpluimers/conferences/blob/master/2015/20151020-dapug-denmark-nyborg-hotel-hesselet/2015 1020-CALIBURN/01-INT-MVVM-DSHARP-CALIBURN/MVVM-IN-DELPHI-UHE-CALIBURN-MICRO-FOR-DELPHI-FRAMEWORK.MD https://delphisorcery.blogspot.com/2011/12/putting-pieces-toger-dsharp.html
https://github.com/msnts/glue
https://github.com/bogdalak/command-delphi
Https modificado://github.com/delphipraxis/mvvmstarterkit/commits/master
Idéias para levar em consideração
- Motor permite o registro de diferentes tipos de estratégias/métodos de ligação
- Possibilidade de ativar/desativar todas as ligações?
Protótipo 0 (acabado)
Metas:
- O objetivo não é criar um maravilhoso modelo-viemodel-vistas, então o exemplo em si pode não fazer um significado excessivo
- O MVVM principal deve ser agnóstico da plataforma (VCL/FMX)
- Deve haver serviços (interface do usuário) na plataforma, que podem ser invocados de qualquer um dos níveis (normal da VM), um serviço simples foi criado
- O exercício de criar testes unitários para o modelo e viewmodel-vista foi feito
- Uma visão específica para FMX e outra para VCL foi criada, bem como um aplicativo FMX e outro VCL para testar a funcionalidade
- Neste caso específico, o viewmodel tem algumas funcionalidades semelhantes ao próprio modelo, quase somos pontes, então os próprios testes de unidade são semelhantes
- Um viewModel (ou vários) pode ser vinculado a um modelo, e esse viewmodel pode suportar tantas visualizações quanto são viciadas
- A visão não é trabalhada
Protótipo 1 (em andamento, as fontes ainda visíveis são do protótipo. 0)
Metas:
- Adicione o mecanismo de mensagem ao sistema: analise se for melhor para o padrão observar para o <- sem modelo
- Análise de Bindas de Motores Grijjy/DSharp/Knockoff/Glue para ver a que boas idéias podem ser incorporadas. Knockoff: Não há classes ou interfaces especializadas a serem usadas em nenhuma das 3 camadas, são usados atributos para ligação. Complexo para executar b. Cola: parece incompleto, sem exemplos completos c. DSharp: Ainda não analisado d. Grijjy: Parece o mais completo e simples de entender para aplicá -lo como uma referência. Mais exemplos estão faltando
- Integrar o núcleo a possibilidade de diferentes estratégias de ligação, que podem ser registradas
- Integrar idéias da estrutura Grijjy (felizmente elas em seu blog dão permissão para usar sua estrutura para fazer outras pessoas)
- O protótipo 1 no momento terá uma correspondência 1-1 entre a visão e o ModelView
Protótipo 2
Metas:
- Crie cliente REST (clientes externos ao aplicativo) e veja Fit the Model, o que pode ser automatizado, o que não, dificuldades, ...
- App de amarração: se encaixa?