Início » ASP.NET MVC

Arquivo da categoria: ASP.NET MVC

Programando com ASP.NET MVC – Alfredo Lotar

Meses atrás recebi o livro Programando com ASP.NET MVC, do autor Alfredo Lotar e, particularmente, achei o livro dinâmico e perfeito para quem for iniciar os estudos do ASP.NET MVC.

O que me chama a atenção em um livro técnico é a sua praticidade. Vários livros técnicos que eu já estudei focam muito a parte teórica, e acabam deixando a prática, a implementação dos códigos sem alguma explicação e relevância. Quero ressaltar que sim, teoria é importante, assim como a prática também é importante, mas ambas só tem a relevância suficiente para um aprendizado quando caminham juntas.

No livro Programando com ASP.NET MVC esse é um ponto positivo, pois o autor explica o porque usa alguns códigos nos exemplos. O porquê é importante tal diretório e porque está usando certos atributos e propriedades, apresentando, logo após sua explicação, os exemplos.

No Capítulo 1 – Introdução ao ASP.NET MVC o livro apresenta uma comparação sucinta entre ASP.NET Web Forms e ASP.NET MVC, o que é importante para o desenvolvedor entender os prós e contras de cada linguagem, e saber qual a melhor para ser aplicada num determinado projeto. Explica como criar uma nova aplicação e ressalta quais são os principais diretórios da aplicação ASP.NET MVC, descrevendo cada um. Assim, entra na parte dos Controladores (Controllers), como cria-los e usa-los. Trata, também, das Master Pages e como configurá-la no padrão MVC. E ainda trata das Views e dos Models, de uma forma breve.

No Capítulo 2 – Controladores, temos todas as informações necessárias para trabalhar com os Controllers, como parâmetros, atributos, métodos, formas de armazenamento, tipos de retorno, cache e controladores assíncronos.

No Capítulo 3 – View, o autor ensina como adicionar uma view e trabalhar com view tipados, predefinidos e partial view.

No Capítulo 4 – Model, o livro tem informações sobre ADO.NET e como utilizá-lo, camada de dados e repositório genérico.

No Capítulo 5 – Razor, aprendemos usar a sintaxe Razor.

No Capítulo 6 – Roteamento de URLs, temos modelos de URLs, suas restrições e como defini-las.

No Capítulo 7 – HTML Helpers, que são métodos que exibem no navegador elementos HTML num formulário.

No Capítulo 8 – Verificações e validações, vê-se os atributos relacionados a verificações e validações via cliente, exibição de mensagens de erro, dentre outros.

No Capítulo 9 – Filtros de ação, que são atributos anexados a uma classe ou método de controlador injetando código extra antes ou após o método de controlador ser executado, ou antes, e após o resultado da ação ser retornado.

No Capítulo 10 – Ajax, utilização do Ajax no ASP.NET MVC.

No Capítulo 11 – Segurança de aplicações em ASP.NET MVC, fala sobre a importância da segurança de uma aplicação e como aplica-la no padrão MVC.

No Capítulo 12 – Desenvolvendo um website com ASP.NET MVC, o autor ensina como desenvolver um website em ASP.NET MVC desde o início ressaltando questões como as especificações e recursos que devem ser usados, até as telas, o layout, a camada de dados, menu, incluindo sua validação, mecanismo de busca, formulário de contato, cadastro de usuários e login da aplicação, dentre outros.

Através de uma resenha é muito restrito falar sobre um livro tão completo e prático como este. E, com certeza, o livro está me ajudando bastante com a programação em ASP.NET MVC, mas vale lembrar que é interessante já ter um conhecimento em ASP.NET Web Forms para ter um melhor aproveitamento do conteúdo do livro.

Adquira o livro no site da Novatec.

Download com exemplos do livro.

Visão Geral do ASP.NET MVC

O conteúdo desta página resulta da tradução do artigo ASP.NET MVC Overview originalmente presente no site do MSDN. A página correspondente pode ser conferida aqui.

Neste artigo vamos aprender sobre as diferenças entre uma aplicação ASP.NET MVC e uma aplicação ASP.NET Web Forms. Vamos aprender, também, sobre como decidir quando construir uma aplicação ASP.NET MVC.

A arquitetura MVC (Model-View-Controller) separa uma aplicação em três componentes principais: o modelo, a visão e o controle. O framework ASP.NET MVC fornece uma alternativa ao ASP.NET Web Forms criando aplicações Web baseadas no MVC. O framework ASP.NET MVC é leve, e é um framework altamente testado que (assim como aplicações baseadas em Web Forms) é integrado com características existentes do ASP.NET, tais como master pages e autenticação baseada em filiação. O framework MVC é definido no namespace System.Web.Mvc e é fundamental, e tem parte suportado no namespace System.Web.

MVC é um padrão de design que muitos desenvolvedores estão familiarizados. Alguns tipos de aplicações Web serão beneficiados pelo framework MVC. Outros continuarão a usar aplicações ASP.NET tradicionais que é baseado em Web Forms e postbacks. Outros tipos de aplicações Web combinarão as duas abordagens; nenhuma abordagem exclui a outra.

O framework MVC inclui os seguintes componentes:

MVC

Figura 1: Invocando uma ação do controller que espera um valor como parâmetro

* Models: objetos do modelo são as partes da aplicação que implementa a lógica para a aplicação. Frequentemente, objetos do modelo recuperam e armazena estados do modelo numa base de dados. Por exemplo, um objeto Produto pode recuperar informação de uma base de dados, operar sobre ele, e então redigir informações atualizadas de volta numa tabela Produtos no SQL Server.

Em pequenas aplicações, o modelo é frequentemente um conceito separado ao invés de físico. Por exemplo, se a aplicação só lê um data set e envia-o para a view (visão), a aplicação não tem uma camada de modelo físico e classes associadas. Nesse caso, o data set assume o papel de um objeto do modelo.

* Views: visões são os componentes que mostram as UI (User Interface – Interface com o Usuário). Tipicamente, esse UI é criado a partir dos dados do modelo (model). Um exemplo seria uma visão editada de uma tabela de Produtos que mostra Text Boxes, Drop-Down Lists e Check Boxes baseados no estado atual dos objetos relacionados a Produtos.

* Controllers: controladores são os componentes que manipula a interação com o usuário, trabalha com o modelo (model), e, por último, seleciona uma visão (view) para exibir a UI. Numa aplicação MVC, a visão só exibe informações; o controlador manipula e replica ao usuário entrada e interação. Por exemplo, o controlador manipula valores de query e/ou string, e passa esses valores para o modelo, que, por sua vez consulta a base de dados usando esses valores.

O padrão MVC ajuda você a criar aplicações que separa diferentes aspectos da aplicação (lógica de entrada, regras de negócios e lógica da UI), enquanto fornece um acoplamento entre esses elementos. O padrão especifica onde cada tipo de lógica deverá estar na aplicação. A lógica da UI pertence a visão. A lógica de entrada pertence ao controlador. Regras de negócios pertencem ao modelo. Essa separação ajuda você a gerenciar a complexidade quando você construir uma aplicação, que permite a você focar em um aspecto da implementação numa hora. Por exemplo, você pode focar na visão sem depender da regra de negócios.

As aplicações feitas no padrão ASP.NET MVC são mais fáceis de serem testadas do que aplicações baseadas em ASP.NET Web Forms. Por exemplo, numa aplicação ASP.NET baseada em Web Forms, uma única classe é usada para mostrar a saída e para responder ao usuário. Testes automáticos para aplicações ASP.NET baseadas em Web Forms podem ser complexos, porque para testar uma página individual, você deve instanciar classes da página, todos seus controles, e classes dependentes na aplicação. Pelo fato de muitas classes serem instanciadas para rodar a página, pode ser difícil escrever testes que foquem exclusivamente em partes individuais da aplicação. Testes para aplicações ASP.NET baseadas em Web Forms podem, portanto, serem mais difícil para implementar do que testes de uma aplicação MVC. Além disso, testes para uma aplicação baseada em Web Forms requerem um servidor Web (Web server). O framework MVC desacopla os componentes e faz grande uso das interfaces, que fazem possível testar componentes individualmente, isolados do resto do framework.

O não-acoplamento entre os três componentes principais de uma aplicação MVC também promove desenvolvimento paralelo. Por exemplo, um desenvolvedor pode trabalhar na view, um segundo desenvolvedor pode trabalhar na lógica do controller, e um terceiro pode focar nas regras de negócios do model.

Decidindo quando criar uma aplicação MVC

Você deve considerar cuidadosamente se deve implementar uma aplicação Web utilizando ASP.NET MVC ou ASP.NET Web Forms. O framework MVC não substitui o modelo Web Forms; você pode usar outro framework para aplicações Web.

Antes de você decidir se deve usar o framework MVC ou Web Forms para um Web Site específico, pese as vantagens de cada um.

Vantagens de uma aplicação Web baseada no modelo MVC

O framework ASP.NET MVC oferece as seguintes vantagens:

  • Torna-se fácil gerenciar a complexidade da aplicação dividindo-a entre Model, View e Controller.
  • Não utiliza view state ou formulários baseados em servidor. Isso faz com que o framework MVC seja ideal para desenvolvedores que querem total controle sobre o comportamento da aplicação.

  • Utiliza o Front Controller que processa pedidos de uma aplicação Web através de um único controller. Isso permite que você projete uma aplicação que suporte uma infra-estrutura rica. Para mais informações, veja sobre Front Controller no site do MSDN.

  • Fornece melhor suporte para TDD (Test-Driven Development).
  • Funciona bem em aplicações Web que são suportadas por grandes times de desenvolvedores e Web Designers que precisam de um alto grau de controle sobre o comportamento da aplicação.

Vantagens de uma aplicação Web baseada em Web Forms

O framework baseado em Web Forms oferece as seguintes vantagens:

  • Suportam eventos que preservam o estado da aplicação sobre o HTTP, que beneficia os ramos de negócios no desenvolvimento de aplicações Web. As aplicações baseadas em Web Forms fornecem dezenas de eventos que são suportados em milhares de server controls.

  • Utiliza o padrão de Page Controller que adiciona funcionalidades individuais às páginas. Para mais informações, veja Page Controller no site do MSDN.

  • Utiliza view state ou formulários baseados em servidor, que pode tornar o gerenciamento do estado da informação mais fácil.

  • Funciona bem para pequenos times de desenvolvedores Web e designers que querem levar vantagem do grande número de componentes disponíveis para o rápido desenvolvimento de aplicações.

  • Em geral, é menos complexo para o desenvolvimento de aplicações, porque os componentes (classes da página, controles, etc.) são hermeticamente integrados e usualmente requerem menos código do que o modelo MVC.

Características do framework MVC

O framework MVC apresenta as seguintes características:

  • Separação das tarefas da aplicação (lógica de entrada, regras de negócios e lógica da UI), testes, e TDD por padrão. Todos os contratos do núcleo do framework MVC são baseados pela interface e podem ser testados usando objetos simulados, que imitam o comportamento dos objetos atuais na aplicação. Você pode testar unidade por unidade da aplicação sem ter que rodar os controladores de um processo ASP.NET, que faz testes unitários rápidos e flexíveis. Você pode usar algum framework de teste unitário que seja compatível com o .NET Framework.

  • Um framework extensível e conectável. Os componentes do framework ASP.NET MVC são projetados de forma que podem ser facilmente substituídos ou personalizados. Você pode ligar no seu próprio mecanismo de exibição, política de roteamento URL, ação e/ou método de serialização de parâmetros, e outros componentes. O framework ASP.NET MVC também suporta o uso de DI (Dependency Injection) e IOC (Inversion of Control), que são modelos de containers. DI permite que você “injete” objetos numa classe, ao invés de confiar numa classe para criar seus próprios objetos. IOC especifica que se um objeto requere outro objeto, os primeiros objetos devem obter o segundo objeto de uma fonte externa tal como um arquivo de configuração. Isso faz com que os testes sejam fáceis.

  • Um poderoso componente de mapeamento URL que deixa você construir aplicações que tem compreensíveis URLs. URLs não tem que incluir extensões de nomes de arquivos, e são projetados para suportar padrões de nomeação de URL que trabalha bem com abordagens SEO (Search Engine Optimization) e REST (Representational State Transfer).

  • Suporte ao usar markup existente em páginas ASP.NET (arquivos .aspx), user control (arquivos .ascx), e master pages (arquivos .master). você pode usar características existentes no ASP.NET com o framework ASP.NET MVC, aninhadas em master pages, expressões inlines (), server controls, templates, data-binding, localization e etc.

  • Suporte a características existentes no ASP.NET. ASP.NET MVC permite que você use características tais como Forms Authentication e Windows Authentication, autorização de URL, membership e roles, output e data caching, session e gerenciamento de profile state, health monitoring, configuração de sistema, e provider architecture.

Andrielle Azevedo de Paula