6.1 KiB
title | author | description | ms.author | ms.custom | ms.date | uid |
---|---|---|---|---|---|---|
Introduction to ASP.NET Core | rick-anderson | Get an introduction to ASP.NET Core, a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. | riande | mvc | 11/10/2018 | index |
Introduction to ASP.NET Core
By Daniel Roth, Rick Anderson, and Shaun Luttin
ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. With ASP.NET Core, you can:
- Build web apps and services, IoT apps, and mobile backends.
- Use your favorite development tools on Windows, macOS, and Linux.
- Deploy to the cloud or on-premises.
- Run on .NET Core or .NET Framework.
Why use ASP.NET Core?
Millions of developers have used (and continue to use) ASP.NET 4.x to create web apps. ASP.NET Core is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework.
Build web APIs and web UI using ASP.NET Core MVC
ASP.NET Core MVC provides features to build web APIs and web apps:
- The Model-View-Controller (MVC) pattern helps make your web APIs and web apps testable.
- Razor Pages (new in ASP.NET Core 2.0) is a page-based programming model that makes building web UI easier and more productive.
- Razor markup provides a productive syntax for Razor Pages and MVC views.
- Tag Helpers enable server-side code to participate in creating and rendering HTML elements in Razor files.
- Built-in support for multiple data formats and content negotiation lets your web APIs reach a broad range of clients, including browsers and mobile devices.
- Model binding automatically maps data from HTTP requests to action method parameters.
- Model validation automatically performs client-side and server-side validation.
Client-side development
ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Angular, React, and Bootstrap. For more information, see Client-side development.
ASP.NET Core targeting .NET Framework
ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core apps targeting .NET Framework aren't cross-platform—they run on Windows only. Generally, ASP.NET Core 2.x is made up of .NET Standard libraries. Apps written with .NET Standard 2.0 run anywhere that .NET Standard 2.0 is supported.
ASP.NET Core 2.x is supported on .NET Framework versions compatible with .NET Standard 2.0:
- .NET Framework 4.7.1 and later is strongly recommended.
- .NET Framework 4.6.1 and later.
ASP.NET Core 3.0 and later will only run on .NET Core. For more details regarding this change, see A first look at changes coming in ASP.NET Core 3.0.
There are several advantages to targeting .NET Core, and these advantages increase with each release. Some advantages of .NET Core over .NET Framework include:
- Cross-platform. Runs on macOS, Linux, and Windows.
- Improved performance
- Side-by-side versioning
- New APIs
- Open source
We're working hard to close the API gap from .NET Framework to .NET Core. The Windows Compatibility Pack made thousands of Windows-only APIs available in .NET Core. These APIs weren't available in .NET Core 1.x.
How to download a sample
Many of the articles and tutorials include links to sample code.
- Download the ASP.NET repository zip file.
- Unzip the Docs-master.zip file.
- Use the URL in the sample link to help you navigate to the sample directory.
To demonstrate multiple scenarios, sample apps make use of the #define
and #if-#else/#elif-#endif
C# statements to selectively compile and run different sections of sample code. For those samples that make use of this approach, set the #define
statement at the top of the C# files to the symbol associated with the scenario that you want to run. A sample may require you to set the symbol at the top of multiple files in order to run a scenario.
For example, the following #define
symbol list indicates that four scenarios are available (one scenario per symbol). The current sample configuration runs the TemplateCode
scenario:
#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode
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
For more information on using C# preprocessor directives to selectively compile sections of code, see #define (C# Reference) and #if (C# Reference).
Next steps
For more information, see the following resources:
- Get started with Razor Pages
- xref:tutorials/publish-to-azure-webapp-using-vs
- ASP.NET Core fundamentals
- The weekly ASP.NET community standup covers the team's progress and plans. It features new blogs and third-party software.