Tutorial ASP.NET MVC para iniciantes: o que é, Archiarquitetura

⚡ Resumo Inteligente

ASP.NET MVC é de código aberto. Microsoft Framework que separa uma aplicação web em camadas de Modelo, Visão e Controlador, dando aos desenvolvedores controle total sobre o HTML, código testável, roteamento limpo e uma alternativa leve aos Web Forms clássicos.

  • 🏛️ Architextura: O Modelo armazena os dados do domínio, a Visualização renderiza a interface do usuário com Razor e o Controlador intermedia cada requisição entre os dois.
  • Por que usar MVC: Ele corrige a sobrecarga de ViewState e desempenho dos Web Forms e permite roteamento limpo, além do Desenvolvimento Orientado a Testes (TDD).
  • 🔀 Roteamento: Baseado em rota URLs mapeia solicitações recebidas para ações do controlador, substituindo arquivos .aspx. URLcom caminhos otimizados para SEO.
  • 🧪 Testabilidade: O Controller e o Model podem ser testados unitariamente de forma isolada, pois as Views não contêm lógica de negócios.
  • ⚖️ Comparação de formulários web: Web Forms utiliza controles de servidor orientados a eventos; MVC utiliza ações orientadas a requisições com gerenciamento de estado manual.
  • 🛠️ Melhor Prática: Mantenha a lógica de negócios no Modelo, mantenha os Controladores enxutos e use Visualizações parciais ou layouts para reutilizar a marcação.

Curso ASP.NET MVC

O que é ASP.NET MVC?

ASP.NET MVC é uma estrutura de desenvolvimento web de código aberto da Microsoft que fornece uma arquitetura Modelo-Visão-Controlador (MVC). O ASP.NET MVC oferece uma alternativa ao ASP.NET Web Forms para a criação de aplicações web. Faz parte da plataforma .NET para criar, implantar e executar aplicações web. Você pode desenvolver aplicações web e websites com a ajuda de HTML, CSS, jQuery, JavaRoteiro, etc.

Aprenda MVC com este tutorial ASP.NET MVC que cobre todos os conceitos básicos de MVC para iniciantes:

Por que usar ASP.NET MVC?

Embora os formulários da web tenham tido muito sucesso, Microsoft pensamento de desenvolvimentoping ASP.NET MVC. O principal problema com o ASP.NET WebForms é o desempenho.

Em um artigo do aplicação web, existem quatro aspectos principais que definem o desempenho: -

  • Problemas de tempo de resposta
  • Problema de teste unitário
  • Personalização de HTML
  • Reutilização da classe code-behind

O ASP.NET MVC se destaca nos parâmetros acima.

Histórico de versões do MVC

ASP.NET MVC1

  • Lançado em 13 de março de 2009
  • Ele funciona no .NET 3.5.
  • Visual Studio 2008
  • Arquitetura de padrão MVC com WebForm Engine
  • Os principais recursos incluem HTML e Teste de Unidade, Ajudantes Ajax, Roteamento, etc.

ASP.NET MVC2

  • Esta versão foi lançada em 10 de março de 2010
  • Funciona em .NET 3.5, 4.0 e com Microsoft Visual Studio 2008
  • Inclui funcionalidades como auxiliares com modelos, auxiliares de interface do usuário com estrutura automática e modelos personalizáveis.
  • Ele suporta atributos DataAnnotations para aplicar validação de modelo nos lados do cliente e do servidor

ASP.NET MVC3

  • Foi lançado em 13 de janeiro de 2011
  • Funciona em .NET 4.0 e com Microsoft Visual Studio 2010
  • Uso de NuGet para entregar software e permite gerenciar dependências em toda a plataforma
  • Melhor JavaSuporte a scripts com validação jQuery e vinculação JSON.
  • Oferece recursos como o mecanismo de visualização Razor e atributos de anotações de dados aprimorados para validação de modelos tanto no lado do cliente quanto no servidor.

ASP.NET MVC4

  • Esta versão foi lançada em agosto de 2012
  • Ele roda em .NET 4.0, 4.5 e com Visual Studio 2010 e Visual Studio 2012
  • Melhorias nos modelos de projeto padrão
  • Oferece recursos como modelo de projeto móvel usando jQuery Mobile, suporte a tarefas para controladores assíncronos, agrupamento, minificação, etc.

ASP.NET MVC5

  • Lançado em 17 de outubro de 2013
  • Funciona no .NET 4.5, 4.5.1 e com o Visual Studio 2012 e Visual Studio 2013.
  • Suporta roteamento de atributos em MVC

Recursos do MVC

  • Testabilidade fácil e sem atrito
  • Controle total sobre seu HTML, JavaRoteiro, e URLs
  • Aproveite o existente ASP.NET Diferenciais
  • Uma nova opção de apresentação para ASP.NET
  • Uma maneira mais simples de programar em ASP.NET.
  • Separação clara de lógica: Modelo, Visualização, Controlador
  • Desenvolvimento Orientado a Testes
  • Suporte para desenvolvimento paralelo

Coisas para lembrar ao criar um aplicativo MVC

Aqui estão algumas coisas úteis neste tutorial ASP.NET MVC que você precisa lembrar ao criar um aplicativo MVC:

  • É importante lembrar que o ASP.NET MVC NÃO substitui as aplicações baseadas em ASP.NET Web Forms.
  • A abordagem para o desenvolvimento de aplicativos MVC deve ser definida com base nos requisitos da aplicação e nos recursos oferecidos pelo ASP.NET MVC para atender às necessidades específicas de desenvolvimento.
  • O processo de desenvolvimento de aplicações com ASP.NET MVC é mais complexo em comparação com aplicações baseadas em Web Forms.
  • A capacidade de manutenção do aplicativo sempre será maior com a separação das tarefas do aplicativo.

Padrão arquitetônico MVC

Padrão arquitetônico MVC

MVC é um padrão de arquitetura de software que segue o princípio da separação de responsabilidades. Nesse modelo, as aplicações .NET são divididas em três partes interconectadas chamadas Modelo, Visão e Controlador.

O objetivo do padrão MVC é que cada uma dessas partes possa ser desenvolvida, testada em relativo isolamento e também combinada para criar uma aplicação muito robusta.

Vejamos todos eles em detalhe:

Modelos

Objetos de modelo são partes do aplicativo que implementam a lógica para o aplicativo domínio de dados. Ele recupera e armazena o estado do modelo em um banco de dados. Por exemplo, o objeto produto pode recuperar informações de um banco de dados, opere-o. Em seguida, grave as informações na tabela de produtos no servidor SQL.

Visualizações

As views são os componentes usados ​​para exibir a interface do usuário (UI) do aplicativo, também chamada de viewmodel no MVC. Elas exibem a interface do aplicativo .NET MVC criada a partir dos dados do modelo.

O exemplo comum seria uma visualização de edição de uma tabela Item. Ele exibe caixas de texto, pop-ups e caixas de seleção com base no estado atual dos produtos e objetos.

Responsável pelo Tratamento

Os controladores lidam com a interação do usuário, trabalham com o modelo e selecionam uma visualização para renderizar a interface do usuário. Em um aplicativo .NET MVC, a visualização apenas exibe informações; o controlador gerencia e responde à entrada e interação do usuário usando filtros de ação no MVC.

Por exemplo, o controlador gerencia valores de string de consulta e passa esses valores para o modelo.

Formulários Web x MVC

Parâmetros Técnicos Formulários Web MVC
Modelo Os formulários Web ASP.NET seguem um modelo de desenvolvimento orientado a eventos. O ASP.NET MVC utiliza um modelo de desenvolvimento baseado no padrão MVC.
Usado desde Existe desde 2002 Foi lançado pela primeira vez em 2009
Suporte para estado de visualização O ASP.NET Web Forms oferece suporte ao ViewState para gerenciamento de estado no lado do cliente. O .NET MVC não suporta estado de visualização.
URL tipo O ASP.NET Web Forms possui recursos baseados em arquivos. URLs. Significa que o nome do arquivo existe no URLe eles devem existir fisicamente. O ASP.NET MVC possui arquitetura baseada em rotas. URLs que significa URLque são redirecionados para controladores e ações.
Sintaxe Os formulários Web do ASP.NET seguem a sintaxe de formulários Web. O ASP.NET MVC segue uma sintaxe personalizável.
Tipo de vista Formulários web, as visualizações estão fortemente acopladas a Code por trás (ASPX-CS), ou seja, a lógica. MVC, visualizações e lógica são sempre mantidos separadamente.
Aparência e sensação consistentes Possui páginas mestras para uma aparência consistente. O ASP.NET MVC possui layouts para uma aparência consistente.
Code Reutilização O Web Form oferece controles de usuário para reutilização de código. O ASP.NET MVC oferece visualizações parciais para reutilização de código.
Controle para HTML Less controle sobre HTML renderizado. Controle total sobre HTML
Gestão do estado Gerenciamento automático de estado de controles. Gerenciamento manual de estado.
Suporte TDD É necessário um TDD fraco ou personalizado. Incentiva e inclui o TDD (Desenvolvimento Orientado a Testes).

Vantagens do ASP.NET MVC

  • Aplicativos altamente sustentáveis ​​por padrão
  • Ele permite substituir qualquer componente do aplicativo.
  • Melhor suporte para desenvolvimento orientado a testes
  • Aplicativos complexos são fáceis de gerenciar devido às divisões de Modelo, Visualização e Controladores.
  • Oferecendo mecanismo de roteamento robusto com padrão de controlador frontal
  • Oferece melhor controle sobre o comportamento do aplicativo com a eliminação do estado de visualização e dos formulários baseados em servidor
  • Aplicações .NET MVC contam com o suporte de grandes equipes de desenvolvedores e web designers.
  • Oferece mais controle sobre o comportamento do aplicativo. Ele também usa uma largura de banda otimizada para solicitações feitas ao servidor

Desvantagens da ASP.NET MVC

  • Não é possível visualizar a pré-visualização da página de design como acontece na página .aspx.
  • É necessário executar o programa sempre que necessário para visualizar seu design real.
  • Compreender o fluxo do aplicativo pode ser um desafio
  • É bastante complicado de implementar, por isso não é uma opção ideal para aplicações de pequeno nível
  • É difícil aprender MVC para ASP.NET, pois requer um grande entendimento do padrão MVC

Melhores práticas ao usar ASP.NET MVC

  • Crie um assembly separado para o MODELO em caso de código extenso e complexo para evitar situações indesejadas.
  • O modelo deve incluir lógica de negócios, manutenção de sessão, parte de validação e parte de lógica de dados.
  • VIEW não deve conter nenhuma lógica de negócios e manutenção de sessão, use ViewData para acessar dados em View
  • A lógica de negócios e o acesso a dados nunca devem ocorrer no Controller.
  • O controlador deve ser responsável apenas por preparar e retornar uma visualização, chamar o modelo, redirecionar para a ação, etc.
  • Exclua o código de demonstração do aplicativo ao criá-lo (Excluir AccountController).
  • Use apenas um mecanismo de visualização específico para criar marcação HTML a partir de sua visualização, pois é a combinação de HTML e código de programação.

Perguntas Frequentes

Sim. O GitHub Copilot pode gerar uma classe Controller com métodos de ação, atributos de rota e Views Razor correspondentes. RevVerifique o código gerado para garantir a correta vinculação do modelo e autorização antes de adicioná-lo ao projeto.

Assistentes de aprendizado de máquina podem mapear páginas de Web Forms para Controllers e Views, traduzir o código subjacente em métodos de ação e sinalizar o uso do ViewState. O desenvolvedor ainda precisa validar o roteamento, a vinculação de modelos e todas as regras de negócios migradas.

ViewData é um dicionário de objetos indexados por strings que persiste após uma requisição. ViewBag é um wrapper dinâmico sobre ViewData. TempData utiliza o estado da sessão e persiste após um redirecionamento, sendo utilizado para passar dados entre duas requisições consecutivas.

O mecanismo de roteamento corresponde a uma solicitação de entrada. URL em relação aos modelos registrados no RouteConfig. Quando um modelo corresponde, o MVC seleciona o controlador e a ação, vincula quaisquer parâmetros e invoca a ação para retornar um ActionResult.

Razor é uma sintaxe compacta para incorporar C# ou VB.NET em arquivos .cshtml ou .vbhtml. Ela usa o caractere @ para alternar entre HTML e código, mantém os modelos legíveis e compila para classes rápidas e fortemente tipadas em tempo de execução.

O ASP.NET MVC clássico é executado no .NET Framework completo e Windows Somente. O ASP.NET Core MVC é executado no .NET Core em todas as plataformas. Windows, Linux e macOS, utiliza um modelo de controlador unificado com API Web e oferece injeção de dependência integrada.

Use o ASP.NET Identity ou um provedor externo, como... Azure AD para login. Decore um controlador ou ação com o atributo [Authorize] para restringir o acesso e use parâmetros de função ou política para regras mais específicas.

Instancie o Controller em um método de teste, injete serviços falsos ou simulados através do construtor, invoque a ação e verifique se o ActionResult retornado corresponde ao nome da visualização, modelo ou destino de redirecionamento esperado.

Resuma esta postagem com: