Introducción a ASP.NET CoreIntroduction to ASP.NET Core

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

ASP.NET Core es un marco multiplataforma de código abierto y de alto rendimiento que tiene como finalidad compilar modernas aplicaciones conectadas a Internet y basadas en la nube.ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. Con ASP.NET Core puede hacer lo siguiente:With ASP.NET Core, you can:

  • Compilar servicios y aplicaciones web, aplicaciones de IoT y back-ends móviles.Build web apps and services, IoT apps, and mobile backends.
  • Usar sus herramientas de desarrollo favoritas en Windows, macOS y Linux.Use your favorite development tools on Windows, macOS, and Linux.
  • Efectuar implementaciones locales y en la nube.Deploy to the cloud or on-premises.
  • Ejecutarlo en .NET Core o en .NET Framework.Run on .NET Core or .NET Framework.

¿Por qué elegir ASP.NET Core?Why choose ASP.NET Core?

Millones de desarrolladores han usado ASP.NET 4.x (y siguen usándolo) para crear aplicaciones web.Millions of developers have used (and continue to use) ASP.NET 4.x to create web apps. ASP.NET Core es un nuevo diseño de ASP.NET 4.x que cuenta con cambios en la arquitectura que dan como resultado un marco más sencillo y modular.ASP.NET Core is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework.

ASP.NET Core ofrece las siguientes ventajas:ASP.NET Core provides the following benefits:

Creación de API web e interfaces de usuario web mediante ASP.NET Core MVCBuild web APIs and web UI using ASP.NET Core MVC

ASP.NET Core MVC proporciona características para crear API web y aplicaciones web:ASP.NET Core MVC provides features to build web APIs and web apps:

Desarrollo del lado del clienteClient-side development

ASP.NET Core se integra perfectamente con bibliotecas y plataformas de trabajo populares del lado cliente, que incluyen Blazor, Angular, React y Bootstrap.ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap. Para más información, consulte Introducción a ASP.NET Core Blazor y los temas relacionados en Client-side development (Desarrollo del lado cliente).For more information, see Introducción a ASP.NET Core Blazor and related topics under Client-side development.

ASP.NET Core con .NET Framework como destinoASP.NET Core targeting .NET Framework

ASP.NET Core 2.x puede tener como destino .NET Core o .NET Framework.ASP.NET Core 2.x can target .NET Core or .NET Framework. Las aplicaciones de ASP.NET Core que tienen como destino .NET Framework no son multiplataforma, sino que solo se ejecutan en Windows.ASP.NET Core apps targeting .NET Framework aren't cross-platform—they run on Windows only. Por lo general, ASP.NET Core 2.x está formado por bibliotecas de .NET Standard.Generally, ASP.NET Core 2.x is made up of .NET Standard libraries. Las bibliotecas escritas con .NET Standard 2.0 se ejecutan en cualquier plataforma .NET que implementa .NET Standard 2.0.Libraries written with .NET Standard 2.0 run on any .NET platform that implements .NET Standard 2.0.

ASP.NET Core 2.x se admite en las versiones de .NET Framework que implementan .NET Standard 2.0:ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0:

  • Se recomienda la versión más reciente de .NET Framework..NET Framework latest version is strongly recommended.
  • .NET Framework 4.6.1 y posterior..NET Framework 4.6.1 and later.

ASP.NET Core 3.0 y versiones posteriores solo se ejecutan en .NET Core.ASP.NET Core 3.0 and later will only run on .NET Core. Para obtener más información sobre este cambio, vea A first look at changes coming in ASP.NET Core 3.0 (Descripción general de los cambios que se aplicarán a ASP.NET Core 3.0).For more details regarding this change, see A first look at changes coming in ASP.NET Core 3.0.

El uso de .NET Core como destino cuenta con varias ventajas que van en aumento con cada versión.There are several advantages to targeting .NET Core, and these advantages increase with each release. Entre las ventajas del uso de .NET Core en vez de .NET Framework se incluyen las siguientes:Some advantages of .NET Core over .NET Framework include:

Estamos trabajando intensamente para cerrar la brecha de API entre .NET Framework y .NET Core.We're working hard to close the API gap from .NET Framework to .NET Core. El paquete de compatibilidad de Windows ha permitido que miles de API solo de Windows estén disponibles en .NET Core.The Windows Compatibility Pack made thousands of Windows-only APIs available in .NET Core. Estas API no estaban disponibles en .NET Core 1.x.These APIs weren't available in .NET Core 1.x.

Se recomienda la siguiente secuencia de tutoriales y artículos para obtener una introducción para desarrollar aplicaciones de ASP.NET Core:We recommend the following sequence of tutorials and articles for an introduction to developing ASP.NET Core apps:

  1. Siga un tutorial para el tipo de aplicación que quiere desarrollar o mantener:Follow a tutorial for the type of app you want to develop or maintain:

    Tipo de aplicaciónApp type EscenarioScenario TutorialTutorial
    Aplicación webWeb app Para un nuevo desarrolloFor new development Introducción a las páginas de RazorGet started with Razor Pages
    Aplicación webWeb app Para mantener una aplicación MVCFor maintaining an MVC app Introducción a MVCGet started with MVC
    Web APIWeb API Creación de una API web*Create a web API*
    Aplicación en tiempo realReal-time app Introducción a SignalRGet started with SignalR
    Aplicación de BlazorBlazor app Introducción a BlazorGet started with Blazor
    Aplicación de llamada a procedimiento remotoRemote Procedure Call app Introducción a un servicio gRPCGet started with a gRPC service
  2. Siga un tutorial que muestra cómo realizar el acceso a datos básicos:Follow a tutorial that shows how to do basic data access:

    EscenarioScenario TutorialTutorial
    Para un nuevo desarrolloFor new development Razor Pages con Entity Framework CoreRazor Pages with Entity Framework Core
    Para mantener una aplicación MVCFor maintaining an MVC app MVC con Entity Framework CoreMVC with Entity Framework Core
  3. Lea una introducción a las características de ASP.NET Core que se aplican a todos los tipos de aplicaciones:Read an overview of ASP.NET Core features that apply to all app types:

  4. Examine la tabla de contenido para ver otros temas de interés.Browse the Table of Contents for other topics of interest.

* Hay un nuevo tutorial de API web que sigue completamente en el explorador, no es necesaria una instalación del IDE local.* There is a new web API tutorial that you follow entirely in the browser, no local IDE installation required. El código se ejecuta en un Azure Cloud Shell y se usa curl para realizar pruebas.The code runs in an Azure Cloud Shell, and curl is used for testing.

Migración desde .NET FrameworkMigration from the .NET Framework

Para obtener una guía de referencia para migrar aplicaciones de ASP.NET a ASP.NET Core, vea <migration/proper-to-2x/index>.For a reference guide to migrating ASP.NET apps to ASP.NET Core, see <migration/proper-to-2x/index>.

Cómo descargar un ejemploHow to download a sample

En muchos de los artículos y tutoriales se incluyen vínculos a código de ejemplo.Many of the articles and tutorials include links to sample code.

  1. Descargue el archivo ZIP del repositorio de ASP.NET.Download the ASP.NET repository zip file.
  2. Descomprima el archivo Docs-master.zip.Unzip the Docs-master.zip file.
  3. Use la dirección URL del vínculo de ejemplo para ir al directorio de ejemplo.Use the URL in the sample link to help you navigate to the sample directory.

Directivas de preprocesador en código de ejemploPreprocessor directives in sample code

Para mostrar varios escenarios, las aplicaciones de ejemplo usan las directivas de preprocesador #define y #if-#else/#elif-#endif para compilar de forma selectiva y ejecutar secciones distintas de código de ejemplo.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 los ejemplos que usan este enfoque, establezca la directiva #define en la parte superior de los archivos C# para definir el símbolo asociado con el escenario que quiera ejecutar.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. Algunos ejemplos requieren la definición del símbolo en la parte superior de varios archivos para ejecutar un escenario.Some samples require defining the symbol at the top of multiple files in order to run a scenario.

Por ejemplo, la siguiente lista de símbolos de #define indica que hay cuatro escenarios disponibles (un escenario por símbolo).For example, the following #define symbol list indicates that four scenarios are available (one scenario per symbol). La configuración de ejemplo actual ejecuta el escenario TemplateCode:The current sample configuration runs the TemplateCode scenario:

#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode

Para cambiar el ejemplo el escenario ExpandDefault, defina el símbolo ExpandDefault y deje los símbolos restantes comentados: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 obtener información sobre cómo usar directivas de preprocesador de C# para compilar selectivamente secciones de código, vea #define (Referencia de C#) e #if (Referencia de C#).For more information on using C# preprocessor directives to selectively compile sections of code, see #define (C# Reference) and #if (C# Reference).

Regiones en código de ejemploRegions in sample code

Algunas aplicaciones de ejemplo contienen secciones de código rodeadas de las directivas #region y #end-region de C#.Some sample apps contain sections of code surrounded by #region and #endregion C# directives. El sistema de creación de documentación inserta estas regiones en los temas de documentación representados.The documentation build system injects these regions into the rendered documentation topics.

Normalmente, los nombres de región contienen la palabra "snippet".Region names usually contain the word "snippet." En el ejemplo siguiente se muestra una región denominada snippet_WebHostDefaults:The following example shows a region named snippet_WebHostDefaults:

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

En el archivo Markdown del tema se hace referencia al fragmento de código de C# anterior con la siguiente línea: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)]

Puede ignorar sin problemas (o incluso quitar) las directivas #region y #endregion que rodean el código.You may safely ignore (or remove) the #region and #endregion directives that surround the code. No altere el código de estas directivas si tiene planeado ejecutar los escenarios de ejemplo descritos en el tema.Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. Puede alterarlo si quiere experimentar con otros escenarios.Feel free to alter the code when experimenting with other scenarios.

Para obtener más información, consulte Contribute to the ASP.NET documentation: Code snippets (Contribución a la documentación de ASP.NET: fragmentos de código).For more information, see Contribute to the ASP.NET documentation: Code snippets.

Pasos siguientesNext steps

Para obtener más información, vea los siguientes recursos:For more information, see the following resources: