ASP .NET MVC – Introdução

Antes de falarmos da tecnologia propriamente dita, é salutar entender como surgiu o conceito do MVC.

O termo MVC (Model – View – Controller) foi, originalmente, proposto por TrTrygve Reenskaugygve Reenskaug, que era desenvolvedor Smalltalk, enquanto participava de um projeto para desenvolver um computador portátil que conteria todos os dados de interesse para seu usuário ou dono (Dynabook). Além disso, esses dados também deveriam incluir os programas utilizados para manipulação deles e o usuário/dono deveria ter a possibilidade de entender e escrever programas, aumentando seu domínio sobre o sistema.  Reenskaug mantém um site, onde explica com suas próprias palavas o conceito MVC, que ele desenvolveu em 1978. No site também é possível encontrar um artigo através do qual Reenskaug apresenta sua teoria para a comunidade internacional.

Se você quiser acessar uma breve descrição do significado dos termos Model, View e Controller, por favor, acesse este post no meu blog ou então aguarde o desenvolvimento deste séria de posts sobre ASP.NET. Ao longo dos posts estes conceitos ficarão mais claros e você poderá associá-los facilmente com a parte tecnológica, que coloca isso tudo para funcionar! Alegre

O ASP.NET MVC, por sua vez, é um Framework de desenvolvimento Web que segue as linhas do padrão de arquitetura MVC, o que nos permite aproveitar ao máxico a eficácia do padrão [MVC] e as idéias mais recentes de desenvolvimento ágil, sem perter todo o poder da plataforma ASP.NET.

Para entender por quê o ASP.NET MVC têm ganhado tanta importância, vamos fazer uma breve análise da evolução do Desenvolvimento Web com a plataforma Microsoft:

 

1993

  • CGI – Common Gateway Interface
    • Era uma maneira flexível de gerar conteúdo dinâmico. No início era a única alternativa para gerar conteúdo mais elaborado ou interativo. Trata-se de uma forma de comunicação entre o servidor Web e um programa executável arbitrário que retorna um conteúdo dinâmico. Foi inicialmente proposto pela NCSA – National Center of Supercomputing Applications, mas não é mais mantido pela entidade.
      (Não era mantido pela Microsoft, mas merece destaque por ser o precursor da Web Dinâmica)

1996

  • ASP – Active Server Pages
    • Na época representou um avanço para o desenvolvimento web, permitindo a criação de conteúdos dinâmicos de propósito geral. Entretanto, era interpretada em tempo de execução (e com todos os problemas a que isso tem direito) e tornava resultava em um código emaranhado, que misturava a lógica da apresentação com sua apresentação (código HTML). Essa mistura e comumente conhecida como código espaguetti. Fica difícil seguir uma linha de raciocínio quando se têm um código tão emaranhado.

2002 – 2003

  • ASP.NET Web Forms 1.0/1.1
    • Representou uma mudança radical nos paradigmas de desenvolvimento Web. O código era compilado, a interface de usuário permitia a preservação do estado (o valor/estado dos objetos da interface se mantinha entre as várias requisições/post-postback nas páginas). Foi a primeira tentativa de oferecer um padrão com divisão em camadas e um “encapsulamento” do Desenvolvimento Web. Entretanto, a maneira como o funcionamento dos Web Forms foram projetados levava a um aumento no consumo de banda (tanto por parte dos servidores quanto por parte dos clientes), pois para que os controles pudessem manter a seu estado, uma quantidade extra de informação era gerada e enviada para o cliente e, depois, novamente enviada para o servidor, causando um overhead na comunicação entre os dois. Além disso, os projetos ASP.NET Web Forms são extremamente difíceis de testar e geravam (até a versão 4.0 do Web Forms) um resultado HTML extremamente complexo e difícil de integrar com JavaScript.

      Por encapsulamento do Desenvolvimento Web, refiro-me à preservação do estado, já que o funcionamento das resições Web são, por natureza, sem preservação de estado e pelo mecanismo utilizado pelo ASP.NET Web Forms para associar os eventos de interface à execução do código compilado no lado servidor. Muitas vezes, quando era necessário manipular os controles dinamicamente essa “amarração” entre o evento na interface do usuário (por exemplo o clique em um botão) e a execução do código correspondente àquela ação no lado servidor simplesmente não funcionava, além dos famosos erros de View State.

2005

  • ASP.NET Web Forms 2.0
    • Foram introduzidos vários controles/componentes que reduziam a quantidade de código que os desenvolvedores precisavam construir. Veja mais sobre as novidades do ASP.NET 2.0 neste artigo da MSDN Magazine.

2007

  • ASP.NET AJAX
    • Foi a resposta da Microsoft ao aumento da popularidade do AJAX, permitindo uma melhor interatividade no lado cliente das aplicações.

2008

  • ASP.NET Web Forms 3.5
    • Foram incluídos novos controles, como o ListView e o LinqDataSource. Veja mais sobre as novidades do ASP.NET 3.5 aqui.

2009

ASP.NET MVC 1.0

2010

  • ASP.NET MVC 2.0
  • ASP.NET Web Forms 4.0
    • Pela primeira vez o ASP.NET Web Forms começa a respeitar mais seriamente os padrões Web.

2011

  • ASP.NET MVC 3.0

2012

  • ASP.NET MVC 4.0
  • ASP.NET Web Forms 4.5

 

É importante entender que o ASP.NET Web Forms é um conjunto de componentes de interface dotados de um modelo de programação com preservação de estado e orientado à objetos. Esses compoentes são construídos e rodam sobre uma base, que é o ASP.NET.

image

 

O ASP.NET, por sua vez, roda sobre a base do .NET Framework, que fornece uma série de recursos e ferramentas para desenvolvimento, teste, deploy, execução e depuração de aplicações.