The goal of this project is to enable .NET programmers to learn the new ASP.NET Core stack from the ground up directly from code. There is so much power in the underlying ASP.NET Core stack. Don't miss them!
I highly recommend using Visual Studio Code to play around with these samples but it is not required. You can use Visual Studio 2019 as well.
You can access .NET 6 Preview 3 (nightly builds) specific samples here.
Section | |||
---|---|---|---|
Blazor Client Side (Web Assembly) (Components, Data Binding) | (20) | Mini Apps | (1) |
Blazor Server Side (Localization) | (15) | MVC (Localization, Routing, Razor Class Library, Tag Helpers, View Component, etc) | (46) |
Caching | (5) | Orchard Core | (4) |
Configurations | (7) | Path String (HttpContext.Request.Path) | (1) |
CoreWCF | (1) | Razor Pages | (9) |
Dependency Injection | (4) | Request (Form, Cookies, Query String, Headers) | (14) |
Diagnostics | (6) | Response | (4) |
Endpoint Routing | (32) | Single File Application | (1) |
Features | (10) | Static Files and File Provider | (9) |
Generic Hosting | (9) | System.Text.Json | (11) |
gRPC (including grpc-Web) | (12) | Startup | (12) |
Health Check | (6) | Syndications | (3) |
IHttpClientFactory | (4) | URL Redirect/Rewrite | (6) |
IHostedService | (2) | Uri Helper | (5) |
Logging | (3) | Web Sockets | (5) |
Localization and Globalization | (6) | Web Utilities | (3) |
Middleware | (14) | Orleans | (12) |
For Data Access samples, go to the excellent ORM Cookbook.
To run these samples, simply open your command line console, go to each folder and execute dotnet watch run
.
-
This is the simplest ASP.NET Core application you can create. An ASP.NET Core application includes a super fast web server called Kestrel. In a few lines of code we set up the web server and a simple app.
In this sample we use a
Startup
class to configure your application. This is the canonical way of doing thing. -
This is the equivalent of the previous Hello World sample except that in this case we don't use a
Startup
class. This way of configuring things is not common. -
This sample uses C# 9 top level statements.
-
This sample demonstrates the usage of
IWebHostEnvironment
fromConfigure
method. -
This sample shows how to access
IHostEnvironment
fromConfigureServices
. -
This sample demonstrates the usage of
IConfiguration
from `Configure' method.
-
This sample shows how to obtain application environment information (target framework, etc).
-
Enumerate the connection information of a HTTP request.
-
Keeping track of anonymous users
Keep track of anonymous user in your ASP.NET Core (useful in scenario such as keeping track of shopping cart) using
ReturnTrue.AspNetCore.Identity.Anonymous
library. -
Give it a string and it will generate a secure hash for you, e.g.
localhost:5000?password=mypassword
. -
Integrate Newtonsoft.Json back
ASP.NET Core has a new built in JSON Serializer/Deserializer. This sample shows how to integrate Newtonsoft.Json back to your project.
-
Show various version info of the framework your system is running on.
-
Responds to application startup and shutdown.
We are using
IApplicationLifetime
that trigger events during application startup and shutdown. -
This project shows a simple integration between
System.CommandLine
, a command line parsing library with ASP.NET Core app.
-
This server will send a 'hello world' greeting forever.
-
Serve markdown file as html file. You will see how you can create useful app using a few basic facilities in aspnetcore.
We take
"Markdig"
as dependency. -
Markdown server - implemented as middleware component
Serve markdown file as html file. It has the same exact functionality as Markdown server but implemented using middleware component.
We take
"Markdig"
as dependency.
-
Here we contrast between the usage of
Microsoft.AspNetCore.Http.StatusCodes
andSystem.Net.HttpStatusCode
. -
This class provides convenient constants for some common MIME types. It's not extensive by any means however
MediaTypeNames.Text.Html
andMediaTypeNames.Application.Json
come handy. -
Using
FileExtensionContentTypeProvider
to obtain the correct MIME type of a filename extension.
The samples in this section rely on Wangkanai.Detection library.
-
This is the most basic device detection. You will be able to detect whether the client is a desktop or a mobile client.
All these samples require SixLabors.ImageSharp.Web
middleware package. This middleware is an excelent tool to process your day to day image processing need.
-
This example shows how to enable image resizing functionality to your site. It's super easy and the middleware takes care of caching, etc.