Neste artigo será dada continuação a exposição dos designs patterns mais comuns na plataforma .NET. Desta vez será tratado o uso do MVVM (Model View ViewModel) que é utilizado em projetos baseados no WPF (Windows Presentation Foundation). As aplicações desenvolvidas com esta tecnologia destinam-se tanto para aplicações desktop, web (Silverlight) e para celulares (Windows Phone). Além de abordar os principais aspectos deste design pattern, também será feita uma comparação com outro padrão, o MVP (que foi abordado na primeira parte deste artigo).
Para que serve
Os designs patterns ajudam os desenvolvedores a manterem um padrão de qualidade em suas criações, tornando o processo de criação mais regular e organizado. O foco do padrão MVVM é a separação completa da regra de negócio da camada de apresentação. Quando aplicado corretamente, nenhum código, além do padrão gerado pelo Visual Studio (que serão vistos nos próximos tópicos) será encontrado dentro do code behind das janelas do projeto.
Model View ViewModel
Dentre os designs patterns que estão à disposição dos desenvolvedores da plataforma .NET, o que tem recebido mais destaque é o MVVM. O objetivo do mesmo é separar a camada de apresentação da camada de regras de negócios. Assim como o MVP e MVC, incorpora práticas e padrões para o desenvolvimento do projeto visando atingir um objetivo específico. Uma das grandes vantagens deste padrão é abolir completamente o código escrito em C# nas classes responsáveis pela apresentação.
Este padrão está intimamente ligado com a linguagem XAML que foi introduzida no framework .NET para compor a interface de aplicações WPF, Silverlight e recentemente Windows Phone. Esta proximidade acontece principalmente pela flexibilidade desta linguagem de marcação - permite definir interfaces ricas para o usuário, evitando que você tenha que utilizar muito código em C#.
No primeiro artigo desta série procuramos colocar uma justificativa sobre a necessidade de utilizar design patterns na criação de aplicações. Esta necessidade baseia-se nos dias atuais, já que anteriormente não havia, principalmente por existirem linguagens como o Object Pascal e o Visual Basic. Essas começaram a despontar com o surgimento de IDE´s como o Delphi e o Visual Studio, que aceleravam o processo de desenvolvimento.
O que ninguém esperava era a explosão das plataformas de computação como aconteceu com a Internet, que de um tímido início (contendo apenas sites/páginas estáticas), evoluiu para uma plataforma muito mais robusta, tendo inclusive ultrapassado as aplicações desktop.
Assim, hoje é impossível (ou totalmente incorreto) desenvolver software utilizando as práticas da época do Delphi e do Visual Studio. Na prática, aquela história de arrastar componentes em uma janela, definir suas propriedades utilizando uma janela editora de propriedades e, escrever manipuladores de eventos para os controles da tela, está com os dias contados.
Para ter uma ideia, essas mesmas ferramentas (em suas atualizações e/ou novas versões) já possuem formas de você aliar o recurso de arrasta e solta com boas práticas de programação.
Inicialmente, é necessário programas com qualidade no maior nível possível. Qualidade que deve ser percebida na eficiência ao realizar o trabalho, na facilidade de utilizar e também no pequeno número de bugs que espera encontrar na aplicação.
Em segundo lugar, para que esta qualidade seja adquirida, muitos testes precisam ser feitos e se possível, testes automatizados para que situações como carga de uso e situações de stress da aplicação, possam ser simuladas antes que a aplicação seja colocada em produção. Procurando utilizar estes padrões, você abre espaço para aplicar, por exemplo, o TDD.
TDD (Test Driven Development) é um método para desenvolvimento de software que prioriza, através de uma série de recomendações propostas por metodologias ágeis, a construção de soluções em um modo no qual as mesmas poderão ser facilmente integradas a ferramentas de execução automatizada de testes unitários. A adoção desta prática está condicionada à escrita de tais testes antes mesmo da codificação das partes da aplicação que serão submetidas aos mesmos.
Uma das principais vantagens em se atuar desta maneira é, sem sombra de dúvidas, assegurar um grau mínimo de testes na aplicação que está sendo elaborada.
Design Paterns
Como é possível gerar valor ao seu produto atendendo as necessidades do cliente, entregando dentro do prazo e ao mesmo tempo, permitindo que o produto possa evoluir (futuramente)?
A resposta foi dada no início do século XX por Henry Ford: padronização do processo de construção.
Mesmo que você não possa ter uma “linha de montagem” para um software, como existe para produtos como automóveis, é possível padronizar a elaboração destes fazendo a separação em camadas, estabelecendo fases e milestones que precisam ser atingido em cada uma destas.
A adoção de design patterns é hoje uma questão de sobrevivência. Até projetos pequenos podem se beneficiar de práticas como separação de regras de negócio, persistência de dados e apresentação destes (UI).
Na sua essência, os três designs patterns que estão sendo vistos nesta série de artigos tem em comum a prática de separar dados, apresentação e, a conexão entre os mesmos. Assim, é provável que mesmo que você não possua conhecimento do MVC, MVP ou MVVM, sua equipe use práticas que estão enraizadas na base destes.
É importante salientar que o MVP é na verdade uma evolução da separação em camadas e do MVC.
Milestone é uma técnica de gerência de projetos que permite o teste da funcionalidade de um novo produto ao longo do projeto, não é uma atividade e não possui duração.
Confira outros conteúdos:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,00
Total: R$ 708,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 64,00 /mês
Total: R$ 768,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.