Por diversas vezes pude perceber como a maioria dos profissionais ou admiradores do desenvolvimento de sistemas não sabem ou nunca ouviram falar em MVC.
Existem diversos artigos na web demonstrando como criar aplicações em MVC entre outros e, por este motivo, decidi elaborar este artigo com uma visão mais básica, justamente para viabilizar o aprendizado e entendimento de quando utilizar este modelo de desenvolvimento. Irei explicar o que é o MVC, quais são as vantagens e por que utilizá-lo no desenvolvimento de seu projeto.
Atualmente, a maioria dos projetos web, até mesmo pela alta sustentabilidade e aceitação no mercado, são realizados utilizando ASP.NET clássico com WebForms. Agora você me pergunta, “E por que eu deveria MUDAR minha forma de desenvolver sistemas web, se o WebForms é o mais conhecido no mercado e utilizado até hoje ?“. Bem, para responder a pergunta vou falar o que é o MVC e quais suas vantagens.
O ASP.NET MVC
MVC são as siglas para Model-View-Controller, o MVC é um padrão de arquitetura para o desenvolvimento de software, onde visa separar as regras e lógicas do negócio da apresentação em si, permitindo um maior controle sobre a aplicação, possibilitando uma manutenção isolada de ambos e uma maior segurança na aplicação.
Com o Webforms possuímos diversas vantagens como:
- Facilidade e rapidez;
- Possui controles ricos;
- Fácil de trabalhar;
Porém, suas desvantagens com certeza são superiores:
- O controle é muito difícil referente ao HTML gerado;
- A arquitetura por ser tecnicamente fácil, não visa a utilização de padrões arquiteturais, mesmo suportando-os;
- O último estado da página do servidor é armazenado dentro da página do cliente como um campo oculto, o famoso e conhecido Viewstate;
- Dificuldades de compatibilidade e integração com bibliotecas de JavaScript;
- Geralmente a lógica de negócio e a apresentação da página ficam no mesmo arquivo;
Analisando algumas vantagens e desvantagens do Webforms, podemos agora sim entender por que utilizar o ASP.NET MVC, a figura 1.0 demonstra a sequência de uma solicitação no ASP.NET MVC.
Como podemos perceber, o Browser faz uma solicitação e as Rotas são responsáveis por redirecionar a requisição para um determinado Controller, assim possuímos um controle sobre a URL da requisição e podemos customizar o endereçamento da solicitação. Com o modelo de desenvolvimento ASP.NET MVC uma URL corresponde a uma Action de um Controller e não a uma página física. O Controller por sua vez é o principal elemento, pois realiza justamente o controle entre o Modelo de Dados (Model) e a apresentação da página (View).
Com isto podemos perceber as seguintes vantagens:
- Separação das regras e lógicas do negócio da apresentação em si;
- Maior controle sobre a aplicação;
- Viabiliza a manutenção isolada de ambas as partes;
- Facilidade de integração com bibliotecas JavaScript como jQuery;
- O HTML atendido para o navegador é gerado por um mecanismo separado e substituível;
- Não há nenhuma dependência em arquivos físicos aspx;
- Arquivos aspx ainda podem ser parte de seu projeto, mas agora eles servem como modelos HTML simples;
- Controle sobre as requisições (URL).
O ASP.NET MVC não visa substituir o Webforms mas sim ser uma nova opção de desenvolvimento em cima do ASP.NET, com muitas vantagens e algumas desvantagens como, sua curva de aprendizado, que é um pouco grande para quem esta condicionado a usar Webforms, e a necessidade de um conhecimento médio/elevado de HTML e JavaScript.
O ASP.NET MVC esta cada vez mais atuante no mercado e uma coisa eu garanto, podem testar sem medo que irão utilizar para sempre o MVC.