segunda-feira, 21 de dezembro de 2009

Model View Controller - MVC

O Natal está a aproximar-se e, como em todos os anos nesta época, nos reunimos em mais um jantar de confraternização Agapiano. Lá, estava presente a Equipa* que está a desenvolver o Portal Corporativo Agap2 e, é em homenagem a eles –da Equipa- que escolhi o tema deste post!

O Model-View-Controller, padrão de arquitectura adoptado pelo ASP.NET MVC não é novo. Pelo contrário, existe, pelo menos, desde a década de 70.

Essencialmente, este padrão está assente no conceito de separação em camadas. Com responsabilidades claras para cada componente. O Model representa a camada de dados, o View, a camada de apresentação(UI) e o Controller, a camada de negócio. Este último, pode ser comparado em parte, ao ‘Code Behind’ do ASP.NET Web Forms uma vez que, gere e responde aos inputs do utilizador.
Tem como diferencial, também, o facto de não utilizar View State e nem Web Forms.
Dos benefícios do ASP.NET MVC, eu gosto particularmente de dois:

URLs ‘roteáveis’ (amigáveis)
Uma vez mais, no ASP.NET Web Forms as URLs ‘apontam’ para ficheiros localizados no disco rígido do Web Server.

Por exemplo:
http://www.agap2.pt/home.aspx pode corresponder a x:\webroot\home.aspx

No ASP.NET MVC não é assim. URLs não esperam nenhuma correspondência com ficheiros sobre o Web Server. Elas são manipuladas no Controller.

O desenho de uma URL routing pode se parecer como isso:
http://www.agap2.pt/rdc { controller = “Competencia”, action= “Rdc” }

TDD - Test-Driven Development
Uma abordagem na qual criamos uma unidade de teste e, então, escrevemos código para satisfazer o teste.
A unidade de teste deve representar o comportamento esperado do código que está a ser escrito.

É importante destacar que, neste momento, o ASP.NET MVC não é o substituto do ASP.NET Web Forms mas, sim, uma alternativa.

Fica aqui, então, a sugestão para que todos dêem uma espreitadela mais atenta nisto.

Um abraço e um Feliz Natal!


*Equipa do Portal Agap2
André Oliveira; Joana Paes; Marco Delgado; Michael Castro; Ricardo Peixeiro; Ricardo Pereira; Rui Raimundo; Vitor Catarino; Vitor Sezefredo.



Até ao próximo post!

Fernando Oliveira
Agap2 Developer
MCTS - .NET Framework 2.0
Web Applications

Sem comentários: