Visão geral do ASP.NET Core
Por Daniel Roth, Rick Anderson e Shaun Luttin
Observação
Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 9 deste artigo.
Aviso
Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, confira .NET e a Política de Suporte do .NET Core. Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.
Importante
Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.
Para a versão atual, consulte a versão .NET 9 deste artigo.
O ASP.NET Core é uma estrutura de código aberto, multiplaforma e alto desempenho para a criação de aplicativos modernos conectados à Internet e habilitados para a nuvem.
Com o ASP.NET Core, você pode:
- Compilar aplicativos e serviços Web, aplicativos IoT (Internet das Coisas) e back-ends móveis.
- Usar suas ferramentas de desenvolvimento favoritas no Windows, macOS e Linux.
- Implantar na nuvem ou local.
- Execute no .NET.
Por que escolher o ASP.NET Core?
Milhões de desenvolvedores usam ou já usaram o ASP.NET 4.x para criar aplicativos Web. O ASP.NET Core é uma reformulação do ASP.NET 4.x, incluindo alterações de arquitetura que resultam em uma estrutura mais enxuta e modular.
O ASP.NET Core oferece os seguintes benefícios:
- Uma história unificada para a criação da interface do usuário da Web e das APIs Web.
- Projetado para capacidade de teste.
- O Páginas Razor torna a codificação de cenários focados em página mais fácil e produtiva.
- O Blazor permite que você use C# no navegador junto com o JavaScript. Compartilhe a lógica de aplicativo do lado do cliente e do servidor toda escrita com o .NET.
- Capacidade de desenvolver e executar no Windows, macOS e Linux.
- De software livre e voltado para a comunidade.
- Integração de estruturas modernas do lado do cliente e fluxos de trabalho de desenvolvimento.
- Suporte para hospedagem de serviços RPC (chamada de procedimento remoto) usando gRPC.
- Um sistema de configuração pronto para a nuvem, baseado no ambiente.
- Injeção de dependência interna.
- Um pipeline de solicitação HTTP leve, modular e de alto desempenho.
- Capacidade de hospedar no seguinte:
- Controle de versão lado a lado.
- Ferramentas que simplificam o moderno desenvolvimento para a Web.
Compilar APIs Web e uma interface do usuário da Web usando o ASP.NET Core MVC
O ASP.NET Core MVC fornece recursos que ajudam você a compilar APIs Web e aplicativos Web:
- O padrão MVC (Model-View-Controller) ajuda a tornar as APIs Web e os aplicativos Web testáveis.
- O Razor Pages é um modelo de programação baseado em página que torna mais fácil e produtiva a criação da interface do usuário da Web.
- A marcação Razor fornece uma sintaxe produtiva para Razor Pages e as exibições do MVC.
- Os Auxiliares de Marcação permitem que o código do servidor participe da criação e renderização de elementos HTML em arquivos do Razor.
- O suporte interno para vários formatos de dados e negociação de conteúdo permite que as APIs Web alcancem uma ampla gama de clientes, incluindo navegadores e dispositivos móveis.
- O model binding mapeia automaticamente os dados de solicitações HTTP para os parâmetros de método de ação.
- A Validação de Modelos executa automaticamente a validação no lado do cliente e do servidor.
Desenvolvimento do lado do cliente
O ASP.NET Core inclui o Blazor para a criação de interfaces do usuário da Web altamente interativas e também se integra a outras estruturas JavaScript de front-end populares, como Angular, React, Vue e Bootstrap. Para obter mais informações, confira ASP.NET Core Blazor e os tópicos relacionados em Desenvolvimento do lado do cliente.
Estrutura de destino do ASP.NET Core
O ASP.NET Core 3.x ou posterior só pode ter como destino o .NET Core.
Há várias vantagens em direcionar para o .NET Core, e essas vantagens aumentam a cada versão. Algumas vantagens do .NET Core em relação ao .NET Framework incluem:
- Multiplataforma. Ele pode ser executado no Windows, no macOS e no Linux.
- desempenho aprimorado
- Controle de versão lado a lado
- Novas APIs
- Software livre
Caminho de aprendizado recomendado
Recomendamos a seguinte sequência de tutoriais para obter uma introdução ao desenvolvimento de aplicativos ASP.NET Core:
Siga um tutorial do tipo de aplicativo que você deseja desenvolver ou manter.
Tipo de aplicativo Cenário Tutorial Aplicativo Web Novo desenvolvimento de interface do usuário da Web do lado do servidor Introdução ao Razor Pages Aplicativo Web Manter um aplicativo MVC Introdução ao MVC Aplicativo Web Desenvolvimento de interface do usuário da Web do lado do cliente Introdução ao Blazor API Web Serviços de HTTP RESTful Criar uma API Web† Aplicativo de Chamada de Procedimento Remoto Serviços Contract-First usando Buffers de Protocolo Introdução a um serviço gRPC Aplicativo em tempo real Comunicação bidirecional entre servidores e clientes conectados Introdução a SignalR Siga um tutorial que mostra como fazer o acesso a dados básicos.
Cenário Tutorial Novo desenvolvimento Razor Pages com o Entity Framework Core Manter um aplicativo MVC MVC com o Entity Framework Core Leia uma visão geral dos conceitos básicos do ASP.NET Core que se aplicam a todos os tipos de aplicativo.
Pesquise no sumário outros tópicos de interesse.
†Também há um tutorial interativo da API Web. Nenhuma instalação local de ferramentas de desenvolvimento é necessária. O código é executado no Azure Cloud Shell no seu navegador e o curl é usado para teste.
Migrar do .NET Framework
Para obter um guia de referência para migrar aplicativos do ASP.NET 4.x para ASP.NET Core, consulte Atualizar de ASP.NET para ASP.NET Core.
O ASP.NET Core é uma estrutura de código aberto, multiplaforma e alto desempenho para a criação de aplicativos modernos conectados à Internet e habilitados para a nuvem. Com o ASP.NET Core, você pode:
- Compilar aplicativos e serviços Web, aplicativos IoT (Internet das Coisas) e back-ends móveis.
- Usar suas ferramentas de desenvolvimento favoritas no Windows, macOS e Linux.
- Implantar na nuvem ou local.
- Executar no .NET Core ou no .NET Framework.
Por que escolher o ASP.NET Core?
Milhões de desenvolvedores usam ou já usaram o ASP.NET 4.x para criar aplicativos Web. O ASP.NET Core é uma reformulação do ASP.NET 4.x, com alterações de arquitetura que resultam em uma estrutura mais enxuta e modular.
O ASP.NET Core oferece os seguintes benefícios:
- Uma história unificada para a criação da interface do usuário da Web e das APIs Web.
- Projetado para capacidade de teste.
- O Páginas Razor torna a codificação de cenários focados em página mais fácil e produtiva.
- O Blazor permite que você use C# no navegador junto com o JavaScript. Compartilhe a lógica de aplicativo do lado do cliente e do servidor toda escrita com o .NET.
- Capacidade de desenvolver e executar no Windows, macOS e Linux.
- De software livre e voltado para a comunidade.
- Integração de estruturas modernas do lado do cliente e fluxos de trabalho de desenvolvimento.
- Suporte para hospedagem de serviços RPC (chamada de procedimento remoto) usando gRPC.
- Um sistema de configuração pronto para a nuvem, baseado no ambiente.
- Injeção de dependência interna.
- Um pipeline de solicitação HTTP leve, modular e de alto desempenho.
- Capacidade de hospedar no seguinte:
- Controle de versão lado a lado.
- Ferramentas que simplificam o moderno desenvolvimento para a Web.
Compilar APIs Web e uma interface do usuário da Web usando o ASP.NET Core MVC
O ASP.NET Core MVC fornece recursos que ajudam você a compilar APIs Web e aplicativos Web:
- O padrão MVC (Model-View-Controller) ajuda a tornar as APIs Web e os aplicativos Web testáveis.
- O Razor Pages é um modelo de programação baseado em página que torna mais fácil e produtiva a criação da interface do usuário da Web.
- A marcação Razor fornece uma sintaxe produtiva para Razor Pages e as exibições do MVC.
- Os Auxiliares de Marcação permitem que o código do servidor participe da criação e renderização de elementos HTML em arquivos do Razor.
- O suporte interno para vários formatos de dados e negociação de conteúdo permite que as APIs Web alcancem uma ampla gama de clientes, incluindo navegadores e dispositivos móveis.
- O model binding mapeia automaticamente os dados de solicitações HTTP para os parâmetros de método de ação.
- A Validação de Modelos executa automaticamente a validação no lado do cliente e do servidor.
Desenvolvimento do lado do cliente
O ASP.NET Core integra-se perfeitamente com estruturas e bibliotecas conhecidas do lado do cliente, incluindo Blazor, Angular, React, Vue e Bootstrap. Para obter mais informações, confira ASP.NET Core Blazor e os tópicos relacionados em Desenvolvimento do lado do cliente.
ASP.NET Core direcionado para o .NET Framework
O ASP.NET Core 2.x pode ser direcionado para o .NET Core ou ao .NET Framework. Os aplicativos ASP.NET Core direcionados ao .NET Framework não são multiplataforma. Eles são executados somente no Windows. Em geral, o ASP.NET Core 2.x é composto de bibliotecas do .NET Standard. As bibliotecas gravadas com .NET Standard 2.0 podem ser executadas em qualquer plataforma .NET que implemente o .NET Standard 2.0.
O ASP.NET Core 2.x dá suporte para as versões do .NET Framework que implementam o .NET Standard 2.0:
- É recomendável usar a versão mais recente do .NET framework.
- .NET Framework 4.6.1 ou versões posteriores.
O ASP.NET Core 3.0 ou posterior é executado somente no .NET Core. Para obter mais detalhes sobre essa alteração, confira A first look at changes coming in ASP.NET Core 3.0 (Uma primeira análise das alterações no ASP.NET Core 3.0).
Há várias vantagens em direcionar para o .NET Core, e essas vantagens aumentam com cada versão. Algumas vantagens do .NET Core em relação ao .NET Framework incluem:
- Multiplataforma. É executado no Windows, no Linux e no macOS.
- desempenho aprimorado
- Controle de versão lado a lado
- Novas APIs
- Software livre
Para ajudar a fechar a lacuna de API de .NET Framework para o .NET Core, o Pacote de Compatibilidade do Windows disponibilizou milhares de APIs somente para Windows no .NET Core. Essas APIs não estavam disponíveis no .NET Core 1.x.
Caminho de aprendizado recomendado
Recomendamos a seguinte sequência de tutoriais e artigos para obter uma introdução ao desenvolvimento de aplicativos ASP.NET Core:
Siga um tutorial do tipo de aplicativo que você deseja desenvolver ou manter.
Tipo de aplicativo Cenário Tutorial Aplicativo Web Para novo desenvolvimento Introdução ao Razor Pages Aplicativo Web Para manter um aplicativo MVC Introdução ao MVC API Web Criar uma API Web† Aplicativo em tempo real Introdução a SignalR Siga um tutorial que mostra como fazer o acesso a dados básicos.
Cenário Tutorial Para novo desenvolvimento Razor Pages com o Entity Framework Core Para manter um aplicativo MVC MVC com o Entity Framework Core Leia uma visão geral dos conceitos básicos do ASP.NET Core que se aplicam a todos os tipos de aplicativo.
Pesquise no Sumário outros tópicos de interesse.
†Também há um tutorial de API Web que você segue totalmente no navegador, sem necessidade de instalação local do IDE. O código é executado em um Azure Cloud Shell e curl é usado para teste.
Migrar do .NET Framework
Para obter um guia de referência para migrar aplicativos do ASP.NET para ASP.NET Core, consulte Atualizar de ASP.NET para ASP.NET Core.
Como baixar uma amostra
Muitos dos artigos e tutoriais incluem links para exemplos de código.
- Baixe o arquivo zip do repositório ASP.NET.
- Descompacte o arquivo
AspNetCore.Docs-main.zip
. - Para acessar o aplicativo de exemplo de um artigo no repositório descompactado, use o URL no link de exemplo do artigo para ajudá-lo a navegar até a pasta do exemplo. Normalmente, o link de exemplo de um artigo aparece na parte superior do artigo com o texto do link Exibir ou baixar o código de exemplo.
Diretivas do pré-processador no código de exemplo
Para demonstrar vários cenários, os aplicativos de exemplo usam as diretivas de pré-processador #define
e #if-#else/#elif-#endif
para compilar e executar diferentes seções de código de exemplo de forma seletiva. Para esses exemplos que usam essa abordagem, defina a diretiva #define
na parte superior dos arquivos em C# para definir o símbolo associado ao cenário que deseja executar. Alguns exemplos podem exigir que você defina o símbolo na parte superior de vários arquivos para executar um cenário.
Por exemplo, a seguinte lista de símbolo #define
indica que quatro cenários estão disponíveis (um cenário por símbolo). A configuração da amostra atual executa o cenário TemplateCode
:
#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode
Para alterar a amostra que executará o cenário ExpandDefault
, defina o símbolo ExpandDefault
e deixe os símbolos restantes comentados de fora:
#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode
Para obter mais informações sobre como usar diretivas de pré-processador C# para compilar seletivamente as seções de código, consulte #define (Referência C#) e #if (Referência C#) .
Alterações interruptivas e avisos de segurança
Alterações interruptivas e avisos de segurança são relatados no repositório Comunicados. Os comunicados podem ser limitados a uma versão específica selecionando um filtro Rótulo.
Próximas etapas
Para saber mais, consulte os recursos a seguir:
- Introdução ao ASP.NET Core
- Publicar um aplicativo ASP.NET Core no Azure com o Visual Studio
- Conceitos básicos do ASP.NET Core
- O Community Standup semanal do ASP.NET aborda o progresso e os planos da equipe. Ele apresenta o novo software de terceiros e blogs.