O desenvolvimento de aplicações web mudou muito ao longo dos anos, antes tinhamos o Perl, PHP e ASP. Depois vieram o Java e o .NET com o ASP.NET e suas aplicações Web Forms, facilitando o desenvolvimento de sistemas web, se utilizando de uma IDE RAD (Rapid Application Development) para aplicações web, com o ASP.NET Web Forms; onde podemos arrastar controles web e colocar nos nossos formulários, como fazemos em aplicações windows forms. Mas o que isso traz de bom para o nosso desenvolvimento? Velocidade !

As aplicações asp.net web que rodam hoje, em sua maioria ainda faz uso de web forms. Isso se dá ao que já mencionamos aqui: Velocidade ! Contudo, fazer escolha de aplicações Web Forms não é a melhor escolha a se fazer. Porquê? Em se tratando desse tipo de aplicação, nós temos um mecanimos de armazenamento das informações dos controles, em aplicações web, chamado de: ViewState. Mas o que é isso e o que ele faz?

O ViewState é uma classe de gerenciamento de Estado, ou seja, é por meio dessa classe estática, que temos a gerência do controle de Estado do nosso Web Form. É com ela que as informações dos nossos controles sempre são apresentadas no browser, quando executamos um Postback em nossa página. Mas como isso é possível? O ViewState guarda, dentro da sua estrutura, campos Hidden, correspondentes aos controles da tela em questão, e com isso armazena as informações dos controles originais, nos campos hidden, trazendo com isso um maior peso na carga da tela no browser.

Mas o que tudo isso explicado, acima tem a ver com o MVC? Mais uma vez a palavra: Velocidade! Resume o que queremos falar. Mas porque isso não acontece no padrão MVC? Em aplicações ASP.NET MVC não temos a classe ViewState gerenciando o estado da tela web. E quem faz isso? Você como desenvolvedor, programando corretamente o seu Controlador. Além disso tudo, temos um melhor gerenciamento do HTML gerado pelas nossas Views MVC, o que facilita bastante o trabalho com JavaScript e JQuery (Nenhum desses assuntos serão tratados dentro deste artigo), pois não temos mais que configurar o ClientIDMode, propriedade das aplicações web forms, que configura como o ID dos controles serão gerenciados. O que dificulta bastante quando queremos trabalhar com JavaScript e JQuery.

As aplicações MVC são divididas em 3 partes:

Model (Modelo): Esta parte da estrutura do MVC, trata do seu modelo de dados, modelo de domínio, repositórios, e afins. Em se tratando de Entity Framework 4.0, seriam nossas classes POCO em uso com nossos repositórios.

View (Apresentação): Essa parte trata das apáginas .aspx - Calma! Pois não se trata de páginas webform, apenas tem a mesma extensão. É na view que iremos fazer uso do nosso Model e renderizar as informações da nossa tela web, para o usuário, fazendo uso do HtmlHelper nativo do ASP.NET MVC.

Controller (Controlador): O Controlador, é a classe que vai gerenciar as ações das views. É por meio do Controlador que os nossos métodos serão executados e que as nossas Views serão chamadas. Mas como os nossos controladores serão chamados e executam os métodos? É pura mágica da Microsoft? a resposta é: NÃO.

Os controladores são classes que irão gerenciar nossas views, como já falamos anteriormente. Porém, existe um outro mecanismo dentro do MVC chamado: Routing. O Routing, ou roteamento de URL, é um recurso de configuração, que fica localizado no Global.asax, para nossas aplicações ASP.NET MVC, o qual nos possibilita a configuração das nossas URLs, afim de que o sistema reconheça nossos controladores e os parâmetros que serão passados para os mesmos, e possa executar o controlador corretamente, bem como seus respecitvos métodos.

Abaixo segue uma figura explicando como funciona a arquitetura ASP.NET MVC:


Como você pode ver, na figura acima. É por meio do routing (roteamento de rotas para páginas asp.net), chama o controlador, que faz uso do modelo - o qual vai ao banco de dados, trata as os dados, transformando-os em informação pertinente. O Controlador trata esses dados, e retorna para a View renderizar as informações no browser.


Um pouco mais acima, foi mencionado sobre HTMLHelper. O que é? e Para que serve? Bom, quando estamos trabalhando com sistemas ASP.NET MVC, falamos que não mais usaremos controles ASP.NET, como nos webforms. Então, foram desenvolvidos HTMLHelper, que são funções as quais são configuradas na View para renderizar os devidos controles nas páginas web.


O ASP.NET MVC foi desenvolvido com suporte aos seguintes Helpers:


Elementos HTML:

  • Html.TextBoxFor()
  • Html.TextAreaFor()
  • Html.DropDownListFor()
  • Html.CheckboxFor()
  • Html.RadioButtonFor()
  • Html.ListBoxFor()
  • Html.PasswordFor()
  • Html.HiddenFor()
  • Html.LabelFor()
  • Html.BeginForm()
Outros Métodos:
  • Html.EditorFor()
  • Html.DisplayFor()
  • Html.DisplayTextFor()
  • Html.ValidationMessageFor()
Ao longo dos posts sobre ASP.NET MVC iremos mostrando o uso desses Helpers, tendo em vista que este é um artigo introdutório sobre a tecnologia, para que você possa ter um embasamento inicial sobre a arquitetura.

Concluindo nosso artigo, podemos perceber que as nossas aplicações, fazendo uso da tecnologia ASP.NET e padrão MVC, nos dão um ganho de produtividade no desenvolvimento da camada de apresentação com as nossas Views, performance na execução das nossas páginas web - tendo em vista que não possuimos mais o objeto ViewState para controlar o estado de nossas páginas e, melhoria na legibilidade do código HTML desenvolvido e gerado, melhorando a manutenção das nossas aplicações. Além disso, temos a facilidade de utilizar JQuery, pois o HTML gerado é limpo de códigos extras, os quais são gerados pelas aplicações WebForms.

Para aprofundar um pouco mais seus conhecimentos em ASP.NET MVC você pode acessar o link e ver alguns videos sobre o assunto:

Link:

Exibições: 318

Comentar

Você precisa ser um membro de DevBrasil para adicionar comentários!

Entrar em DevBrasil

Comentário de Michaell Dantas em 14 novembro 2010 às 21:08
Valew Brother, parabéns pelo post !!!
Comentário de José Roberto Araújo em 10 novembro 2010 às 16:50
Emilio,
Para que você possa iniciar, seria interessante que você tomasse conhecimento de algumas premissas básicas do desenvolvimento para WEB utilizando-se do ASP.NET. Aqui no forum, você poderá encontrar alguns assuntos básicos sobre como você pode desenvolver sistemas para WEB.
Porém, seria interessante você obter livros para iniciantes ASP.NET.

Sobre a plataforma de desenvolvimento, em se tratando de webforms, você terá bastante proximidade do que você hoje já faz com aplicações Windows Forms, porém terá algumas particularidades que terás que se atentar, como por exemplo: Session, ViewState, Ciclo de vida desses objetos no ambiente web.

Então, a recomentação é começar a ler um livro para iniciantes ASP.NET 3.5 ou 4.0
Qualquer dúvida pode nos contatar.

Boa Sorte nos estudos !
Comentário de Emilio Avila em 10 novembro 2010 às 13:28
Boa tarde:
Sou desenvolvedor de aplicações Desktop Windows, estou querendo desenvolver para web como complemento de meus sistemas. Estou indeciso quanto a usar php ou asp, visto que estou acostumado a desenvolver para windows, usando alguma IDE. O que tenho que fazer para iniciar?
Comentário de José Roberto Araújo em 1 novembro 2010 às 23:57
Muito obrigado Thom !
Por esses dias estou um pouco atarefado, mas logo estarei postando mais artigos.
Vamos que vamos :D
Comentário de Thom Marques em 1 novembro 2010 às 19:35
Muito massa cara, parabéns!
Comentário de Flávio dos Santos Cardoso em 29 outubro 2010 às 7:06
Excelente post,
Mas gosto sempre de comentar que o ViewState não é o problema dos WebForms. Com pouco trabalho você pode persistí-lo em banco, session, entre outros, e não trafegá-lo. É um recurso excelente, desde que bem utilizado.

Em relação à motivos sobre qual usar WebForms ou MVC, gostei bastante deste texto do Alexandre Tarifa:
http://www.alexandretarifa.com.br/?p=9
abraços
Comentário de newton rocha em 24 outubro 2010 às 20:13
muito bom seu post...

© 2018   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço