Introdução ao ASP.NET CoreIntroduction to ASP.NET Core

Por Daniel Roth, Rick Anderson e Shaun LuttinBy Daniel Roth, Rick Anderson, and Shaun Luttin

ASP.NET Core é uma estrutura de software livre de plataforma cruzada, de alto desempenho para a criação de aplicativos modernos conectados à Internet, em nuvem.ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. Com o ASP.NET Core, você pode:With ASP.NET Core, you can:

  • Crie aplicativos Web e serviços, Internet das coisas (IOT) e back-ends móveis.Build web apps and services, Internet of Things (IoT) apps, and mobile backends.
  • Usar suas ferramentas de desenvolvimento favoritas no Windows, macOS e Linux.Use your favorite development tools on Windows, macOS, and Linux.
  • Implantar na nuvem ou local.Deploy to the cloud or on-premises.
  • Executar no .NET Core.Run on .NET Core.

Por que escolher o ASP.NET Core?Why choose ASP.NET Core?

Milhões de desenvolvedores usam ou usaram o ASP.NET 4. x para criar aplicativos Web.Millions of developers use or have used ASP.NET 4.x to create web apps. ASP.NET Core é um redesign de ASP.NET 4. x, incluindo alterações arquitetônicas que resultam em uma estrutura mais Lean e mais modular.ASP.NET Core is a redesign of ASP.NET 4.x, including architectural changes that result in a leaner, more modular framework.

O ASP.NET Core oferece os seguintes benefícios:ASP.NET Core provides the following benefits:

Compilar APIs Web e uma interface do usuário da Web usando o ASP.NET Core MVCBuild web APIs and web UI using ASP.NET Core MVC

O ASP.NET Core MVC fornece recursos que ajudam você a compilar APIs Web e aplicativos Web:ASP.NET Core MVC provides features to build web APIs and web apps:

Desenvolvimento do lado do clienteClient-side development

O ASP.NET Core integra-se perfeitamente com estruturas e bibliotecas populares do lado do cliente, Blazor incluindo , angular, reagire Bootstrap.ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap. Para obter mais informações, confira Introdução ao ASP.NET CoreBlazor e os tópicos relacionados em Desenvolvimento do lado do cliente.For more information, see Introdução ao ASP.NET CoreBlazor and related topics under Client-side development.

ASP.NET Core estruturas de destinoASP.NET Core target frameworks

ASP.NET Core 3. x e posterior só podem ter como destino o .NET Core.ASP.NET Core 3.x and later can only target .NET Core. Em geral, ASP.NET Core é composta de bibliotecas de .net Standard .Generally, ASP.NET Core is composed of .NET Standard libraries. As bibliotecas gravadas com .NET Standard 2.0 podem ser executadas em qualquer plataforma .NET que implemente o .NET Standard 2.0.Libraries written with .NET Standard 2.0 run on any .NET platform that implements .NET Standard 2.0.

Há várias vantagens em direcionar para o .NET Core, e essas vantagens aumentam com cada versão.There are several advantages to targeting .NET Core, and these advantages increase with each release. Algumas vantagens do .NET Core em relação ao .NET Framework incluem:Some advantages of .NET Core over .NET Framework include:

Recomendamos a seguinte sequência de tutoriais para uma introdução ao desenvolvimento de ASP.NET Core aplicativos:We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps:

  1. Siga um tutorial para o tipo de aplicativo que você deseja desenvolver ou manter.Follow a tutorial for the app type you want to develop or maintain.

    Tipo de aplicativoApp type CenárioScenario TutorialTutorial
    Aplicativo WebWeb app Novo desenvolvimento de interface do usuário na Web do lado do servidorNew server-side web UI development Introdução às Razor páginasGet started with Razor Pages
    Aplicativo WebWeb app Mantendo um aplicativo MVCMaintaining an MVC app Introdução ao MVCGet started with MVC
    Aplicativo WebWeb app Desenvolvimento de interface do usuário na Web do lado do clienteClient-side web UI development Introdução aoBlazorGet started with Blazor
    API WebWeb API Serviços HTTP RESTfulRESTful HTTP services Criar uma API WebCreate a web API
    Aplicativo de chamada de procedimento remotoRemote Procedure Call app Serviços de primeiro contrato usando buffers de protocoloContract-first services using Protocol Buffers Introdução a um serviço gRPCGet started with a gRPC service
    Aplicativo em tempo realReal-time app Comunicação bidirecional entre servidores e clientes conectadosBidirectional communication between servers and connected clients Introdução aoSignalRGet started with SignalR
  2. Siga um tutorial que mostra como fazer o acesso a dados básico.Follow a tutorial that shows how to do basic data access.

    CenárioScenario TutorialTutorial
    Novo desenvolvimentoNew development RazorPáginas com Entity Framework CoreRazor Pages with Entity Framework Core
    Mantendo um aplicativo MVCMaintaining an MVC app MVC com o Entity Framework CoreMVC with Entity Framework Core
  3. Leia uma visão geral de ASP.NET Core conceitos básicos que se aplicam a todos os tipos de aplicativos.Read an overview of ASP.NET Core fundamentals that apply to all app types.

  4. Procure outros tópicos de interesse no sumário.Browse the table of contents for other topics of interest.

†Há também um tutorial de API Web interativa.†There's also an interactive web API tutorial. Nenhuma instalação local de ferramentas de desenvolvimento é necessária.No local installation of development tools is required. O código é executado em um Azure cloud Shell no navegador, e a ondulação é usada para teste.The code runs in an Azure Cloud Shell in your browser, and curl is used for testing.

Migrar do .NET FrameworkMigrate from .NET Framework

Para obter um guia de referência para migrar aplicativos ASP.NET 4. x para ASP.NET Core, consulte Migrar do ASP.NET para o ASP.NET Core .For a reference guide to migrating ASP.NET 4.x apps to ASP.NET Core, see Migrar do ASP.NET para o ASP.NET Core.

ASP.NET Core é uma estrutura de software livre de plataforma cruzada, de alto desempenho para a criação de aplicativos modernos conectados à Internet, em nuvem.ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. Com o ASP.NET Core, você pode:With ASP.NET Core, you can:

Por que escolher o ASP.NET Core?Why choose ASP.NET Core?

Milhões de desenvolvedores usam ou usaram o ASP.NET 4. x para criar aplicativos Web.Millions of developers use or have used ASP.NET 4.x to create web apps. 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.ASP.NET Core is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework.

O ASP.NET Core oferece os seguintes benefícios:ASP.NET Core provides the following benefits:

Compilar APIs Web e uma interface do usuário da Web usando o ASP.NET Core MVCBuild web APIs and web UI using ASP.NET Core MVC

O ASP.NET Core MVC fornece recursos que ajudam você a compilar APIs Web e aplicativos Web:ASP.NET Core MVC provides features to build web APIs and web apps:

Desenvolvimento do lado do clienteClient-side development

O ASP.NET Core integra-se perfeitamente com estruturas e bibliotecas populares do lado do cliente, Blazor incluindo , angular, reagire Bootstrap.ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap. Para obter mais informações, confira Introdução ao ASP.NET CoreBlazor e os tópicos relacionados em Desenvolvimento do lado do cliente.For more information, see Introdução ao ASP.NET CoreBlazor and related topics under Client-side development.

ASP.NET Core direcionado para o .NET FrameworkASP.NET Core targeting .NET Framework

O ASP.NET Core 2.x pode ser direcionado para o .NET Core ou ao .NET Framework.ASP.NET Core 2.x can target .NET Core or .NET Framework. Os aplicativos do ASP.NET Core direcionados ao .NET Framework não são multiplataforma,— são executados somente no Windows.ASP.NET Core apps targeting .NET Framework aren't cross-platform—they run on Windows only. Em geral, o ASP.NET Core 2.x é composto de bibliotecas do .NET Standard.Generally, ASP.NET Core 2.x is made up of .NET Standard libraries. As bibliotecas gravadas com .NET Standard 2.0 podem ser executadas em qualquer plataforma .NET que implemente o .NET Standard 2.0.Libraries written with .NET Standard 2.0 run on any .NET platform that implements .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:ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0:

  • .NET Framework versão mais recente é recomendada..NET Framework latest version is recommended.
  • .NET Framework 4.6.1 e versões posteriores..NET Framework 4.6.1 and later.

O ASP.NET Core 3.0 e posterior somente executará no .NET Core.ASP.NET Core 3.0 and later will only run on .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).For more details regarding this change, see A first look at changes coming in ASP.NET Core 3.0.

Há várias vantagens em direcionar para o .NET Core, e essas vantagens aumentam com cada versão.There are several advantages to targeting .NET Core, and these advantages increase with each release. Algumas vantagens do .NET Core em relação ao .NET Framework incluem:Some advantages of .NET Core over .NET Framework include:

Para ajudar a fechar a lacuna da API do .NET Framework para o .NET Core, o pacote de compatibilidade do Windows tornou milhares de APIs somente do Windows disponíveis no .NET Core.To help close the API gap from .NET Framework to .NET Core, the Windows Compatibility Pack made thousands of Windows-only APIs available in .NET Core. Essas APIs não estavam disponíveis no .NET Core 1.x.These APIs weren't available in .NET Core 1.x.

Recomendamos a seguinte sequência de tutoriais e artigos para obter uma introdução ao desenvolvimento de aplicativos ASP.NET Core:We recommend the following sequence of tutorials and articles for an introduction to developing ASP.NET Core apps:

  1. Siga um tutorial para o tipo de aplicativo que você deseja desenvolver ou manter.Follow a tutorial for the type of app you want to develop or maintain.

    Tipo de aplicativoApp type CenárioScenario TutorialTutorial
    Aplicativo WebWeb app Para novo desenvolvimentoFor new development Introdução às Razor páginasGet started with Razor Pages
    Aplicativo WebWeb app Para manter um aplicativo MVCFor maintaining an MVC app Introdução ao MVCGet started with MVC
    API WebWeb API Criar uma API WebCreate a web API
    Aplicativo em tempo realReal-time app Introdução aoSignalRGet started with SignalR
  2. Siga um tutorial que mostra como fazer o acesso a dados básico.Follow a tutorial that shows how to do basic data access.

    CenárioScenario TutorialTutorial
    Para novo desenvolvimentoFor new development RazorPáginas com Entity Framework CoreRazor Pages with Entity Framework Core
    Para manter um aplicativo MVCFor maintaining an MVC app MVC com o Entity Framework CoreMVC with Entity Framework Core
  3. Leia uma visão geral de ASP.NET Core conceitos básicos que se aplicam a todos os tipos de aplicativos.Read an overview of ASP.NET Core fundamentals that apply to all app types.

  4. Pesquise no Sumário outros tópicos de interesse.Browse the Table of Contents for other topics of interest.

†Há também um tutorial da API Web que você segue inteiramente no navegador, nenhuma instalação local do IDE é necessária.†There's also a web API tutorial that you follow entirely in the browser, no local IDE installation required. O código é executado em um Azure Cloud Shell e curl é usado para teste.The code runs in an Azure Cloud Shell, and curl is used for testing.

Migrar do .NET FrameworkMigrate from .NET Framework

Para obter um guia de referência para migrar aplicativos ASP.NET para ASP.NET Core, consulte Migrar do ASP.NET para o ASP.NET Core .For a reference guide to migrating ASP.NET apps to ASP.NET Core, see Migrar do ASP.NET para o ASP.NET Core.

Como baixar uma amostraHow to download a sample

Muitos dos artigos e tutoriais incluem links para exemplos de código.Many of the articles and tutorials include links to sample code.

  1. Baixe o arquivo zip do repositório ASP.NET.Download the ASP.NET repository zip file.
  2. Descompacte o arquivo Docs-master.zip.Unzip the Docs-master.zip file.
  3. Use a URL no link de exemplo para ajudá-lo a navegar até o diretório de exemplo.Use the URL in the sample link to help you navigate to the sample directory.

Diretivas do pré-processador no código de exemploPreprocessor directives in sample code

Para demonstrar vários cenários, aplicativos de exemplo usam #define as #if-#else/#elif-#endif diretivas de pré-processador e para compilar seletivamente e executar diferentes seções de código de exemplo.To demonstrate multiple scenarios, sample apps use the #define and #if-#else/#elif-#endif preprocessor directives to selectively compile and run different sections of sample code. Para os exemplos que fazem uso dessa abordagem, defina a #define diretiva na parte superior dos arquivos C# para definir o símbolo associado ao cenário que você deseja executar.For those samples that make use of this approach, set the #define directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Alguns exemplos exigem a definição do símbolo na parte superior de vários arquivos para executar um cenário.Some samples require defining the symbol at the top of multiple files in order to run a scenario.

Por exemplo, a seguinte lista de símbolo #define indica que quatro cenários estão disponíveis (um cenário por símbolo).For example, the following #define symbol list indicates that four scenarios are available (one scenario per symbol). A configuração da amostra atual executa o cenário TemplateCode:The current sample configuration runs the TemplateCode scenario:

#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:To change the sample to run the ExpandDefault scenario, define the ExpandDefault symbol and leave the remaining symbols commented-out:

#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#) .For more information on using C# preprocessor directives to selectively compile sections of code, see #define (C# Reference) and #if (C# Reference).

Regiões no código de exemploRegions in sample code

Alguns aplicativos de exemplo contêm seções de código circundadas por #region e #endregion diretivas C#.Some sample apps contain sections of code surrounded by #region and #endregion C# directives. O sistema de build de documentação injeta essas regiões nos tópicos renderizados da documentação.The documentation build system injects these regions into the rendered documentation topics.

Os nomes das regiões geralmente contêm a palavra "snippet".Region names usually contain the word "snippet." O exemplo a seguir mostra uma região chamada snippet_WebHostDefaults:The following example shows a region named snippet_WebHostDefaults:

#region snippet_WebHostDefaults
Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    });
#endregion

O snippet de código C# precedente é referenciado no arquivo de markdown do tópico com a seguinte linha:The preceding C# code snippet is referenced in the topic's markdown file with the following line:

[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)]

Você pode ignorar (ou remover) com segurança as #region #endregion diretivas e que envolvem o código.You may safely ignore (or remove) the #region and #endregion directives that surround the code. Não altere o código nessas diretivas se você planeja executar os cenários de exemplo descritos no tópico.Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. Fique à vontade para alterar o código ao experimentar com outros cenários.Feel free to alter the code when experimenting with other scenarios.

Para obter mais informações, veja Contribuir para a documentação do ASP.NET: snippets de código.For more information, see Contribute to the ASP.NET documentation: Code snippets.

Próximas etapasNext steps

Para saber mais, consulte os recursos a seguir:For more information, see the following resources: