Negocio

ASP.NET MVC: Melhores Práticas e Ciclo de Vida

ASP.Net MVC

A única coisa que um bom programador deve evitar é espaguete. Não a comida, mas o tipo de código de programação que mais parece uma confusão de jargões sem sentido do que algo que realmente produzirá um programa funcional. Na indústria, isso não é tão afetuosamente chamado de "código espaguete" e é muito difícil de trabalhar e testar.

ASP.NET é uma estrutura de aplicativo da Web usada para construir sites e aplicativos da Web; ele se integra às principais tecnologias da web, como HTML e JavaScript. Ele é usado para construir sites dinâmicos e interativos. ASP.NET MVC é um tipo diferente de ASP.NET.

A estrutura MVC do ASP.NET fornece uma opção sem glúten para o espaguete que assola muitos programas. Não é perfeito, mas é uma opção mais limpa. Como esta lição irá mostrar, MVC facilita o melhor design e entrega de aplicativos da web; os métodos são separados de forma clara e limpa, e o código é organizado e mais fácil de testar.

Ao dividir os segmentos do aplicativo em três componentes, o framework MVC cria um processo muito mais gerenciável. Esses três componentes são: M = Modelo (os dados e a lógica de negócios); V = Exibir (a camada de apresentação / interface do usuário); C = Controlador (o renderizador da visão apropriada do usuário).

No entanto, uma ferramenta ou estrutura é tão boa quanto seu uso. Os componentes do MVC não evitam que um programador insira código lixo neles ou duplique o mesmo código em todos os três componentes. Portanto, existem algumas diretrizes que você deve seguir ao implementar aplicativos ASP.NET na estrutura MVC.

ASP.NET MVC: Diretrizes

As diretrizes a seguir são organizadas por cada segmento da estrutura, M = Modelo; V = Exibir; C = controlador. Observe que esta não é uma lista exaustiva, mas deve ajudá-lo a começar a usar a ASP.NET MVC.

Modelo

1) Coloque todas as regras de negócios (como IDs de cliente começarão com 9 ) no modelo.

Isso reduz a duplicação e torna a visualização muito mais fácil de ler / depurar; você isola o teste dessas regras para o modelo (em vez de visualização ou controlador). Ele também protege a Visualização e o Controlador de tomar decisões de negócios.

Exemplo:

amostra asp

Quando você chega à Visualização, pode ser parecido com:

<% Usuário atual, <% = Model.employeeFullName%>%>

2) Incluir toda a lógica de validação no modelo.

Isso realmente significa toda a validação, incluindo a verificação de erro do lado do cliente - o método preferido para validação é o método System.ComponentModel.DataAnnotations . O exemplo de código a seguir mostra como essas anotações podem ser anexadas às propriedades de uma classe de modelo:

informações do usuário de amostra de código asp

3) Definir interfaces para acessar dados.

Em vez de acesso direto aos dados, como consultas SQL, você deve usar interfaces para obter os dados. Uma interface como LINQ to SQL pode ser usada para criar wrappers em torno de chamadas de banco de dados; Entity Framework e LINQ to SQL também permitem procedimentos armazenados. Seguindo esta diretriz, você pode evitar confundir o modelo ou o aplicativo com linhas e linhas de SQL (que podem ser potencialmente hackeadas).

Visão

A Visualização é a exibição ou apresentação do modelo, e o Controlador escolhe a visualização. As regras de negócios não pertencem aqui (lembre-se, nós as colocamos no modelo). Para aplicativos ASP.NET MVC, esta é a parte mais flexível da estrutura; por exemplo, pode-se usar HTML para renderizar a visualização de uma página da web. Outra visão, mesmo dos mesmos dados, pode ser mostrada usando XML como parte de um serviço da web.

Algumas práticas recomendadas para a parte View da estrutura:

1) O HTML pertence à Visualização, não ao Controlador!

Além disso, o JavaScript não deve ser incluído aqui: Coloque o script em arquivos separados e chame-os em vez de incorporar o código na Visualização.

2) Acesse os dados usando o comando ViewData .

Enquanto o ASP.NET fornece duas opções para acessar dados de modelos de exibição ( ViewData.Model e ViewData ), ViewData.Model é o mais seguro dos dois e deve ser usado.

3) Ative a validação do lado do cliente.

Já falamos sobre o fato de que a validação de dados pertence à camada de modelo, mas ainda precisa haver uma atualização feita no componente View para aproveitar ao máximo a validação do lado do cliente.

Primeiro, os seguintes arquivos JavaScript precisam estar no diretório do projeto: MicrosoftAjax.js e MicrosoftMvcValidation.js . Em seguida, adicione este código à página de envio do formulário:

validação js de amostra de código asp

Adicione o seguinte antes da tag do formulário:

<% Html.EnableClientValidation (); %>

Isso fornecerá feedback imediato ao usuário, caso o campo do formulário não corresponda às restrições de dados.

4) Use métodos de extensão HTMLHelper.

System.Web.Mvc.Html é uma classe muito útil que possui ótimos métodos de extensão HTML.

Isso inclui construção de formulário, criação de campo de entrada, criação de link e proteção XSS. Eles devem ser usados ​​cedo e frequentemente; por exemplo, o código a seguir cria um link inicial de volta para o controlador:

<% = Html.ActionLink ('Página inicial', 'Padrão')%>

Controlador

O controlador é o driver - destina-se a gerar a visualização apropriada com base nas condições da interface do usuário.

1) Use enviar / redirecionar / obter no formulário de envio.

É um fato triste da nossa cultura, mas os usuários ficam impacientes. Eles clicam em um botão Enviar, esperam o necessário um oitavo de segundo e, em seguida, clicam em atualizar se nada estiver acontecendo. Isso pode criar uma situação perigosa de uma solicitação duplicada (incluindo pagamentos!). Este problema é resolvido no MVC usando Post-Redirect-Get. Por exemplo, retorne RedirectToAction (<actionName>).

2) Use os handleError e HandleUnknownAction comandos.

Para evitar o temido erro '404 (não encontrado)' em seu aplicativo, use HandleUnknownAction em um controlador para criar uma visualização personalizada neste caso. HandleError pode ser usado para fornecer uma visão de erro para fins de depuração.

3) Lembre-se: mantenha seu acesso aos dados longe do controlador!

Ciclo de Vida ASP.NET MVC

O diagrama de alto nível a seguir mostra o ciclo de vida de um aplicativo ASP.NET MVC.

ciclo de vida asp

Primeiro, a solicitação HTTP é criada e roteada para o aplicativo por meio de um manipulador. O Controlador então assume, determinando as visualizações a serem usadas, disparando a resposta de volta para o usuário final. Aninhado por trás desse processo está o Modelo. Esta é uma visão geral de alto nível, mas dá uma ideia de como os aplicativos usam a ASP.NET MVC.

Resumo da lição

Esta lição cobriu a estrutura ASP.NET MVC e as práticas recomendadas para programação nela; os principais temas giram em torno de manter os elementos adequados em cada parte do framework (Model, View, Controller). Também vimos uma visão geral do ciclo de vida de um aplicativo ASP.NET MVC típico.

Artículos relacionados