Migration to ASP.NET Core in .NET 6
- WebApplication and WebApplicationBuilder
- Differences in the hosting model
- Building libraries for ASP.NET Core
- FAQ
- Cheatsheet
using System.Collections.Concurrent; | |
using System.Threading.Channels; | |
var channel = Channel.CreateUnbounded<int>(); | |
var syncContext = new SingleThreadedSyncContext(); | |
syncContext.Post(async _ => | |
{ | |
await foreach (var item in channel.Reader.ReadAllAsync()) |
using Microsoft.Extensions.Configuration.Memory; | |
var builder = WebApplication.CreateBuilder(args); | |
builder.Configuration.AddConfigurationDefaults(new() | |
{ | |
{ "request:timeout", "60" } | |
}); | |
var app = builder.Build(); |
using Microsoft.AspNetCore.Http.Features; | |
using Microsoft.AspNetCore.WebUtilities; | |
using ProtoBuf; | |
var builder = WebApplication.CreateBuilder(args); | |
var app = builder.Build(); | |
app.MapGet("/", () => "POST a protobuf message to the /"); | |
app.MapPost("/", (Proto<Person> p) => Results.Extensions.Protobuf(p.Item)) | |
.Accepts<Person>("application/protobuf"); |
using System.IO.Pipelines; | |
using System.Net; | |
using System.Net.Security; | |
using Microsoft.AspNetCore.Connections; | |
using Microsoft.AspNetCore.Connections.Features; | |
using Microsoft.AspNetCore.Http.Features; | |
using Microsoft.AspNetCore.Server.Kestrel.Core; | |
var builder = WebApplication.CreateBuilder(args); |
using System.ComponentModel.DataAnnotations; | |
using Microsoft.EntityFrameworkCore; | |
var builder = WebApplication.CreateBuilder(args); | |
var app = builder.Build(); | |
app.MapPost("/todos", async (CreateTodo createTodo, TodoDb db) => | |
{ | |
// This is where the implicit conversion comes in | |
db.Todos.Add(createTodo); |
This document now exists on the official ASP.NET core docs page.
using System.Buffers; | |
using System.Net.WebSockets; | |
var builder = WebApplication.CreateBuilder(args); | |
var app = builder.Build(); | |
app.MapGet("/ws", async (HttpContext context) => | |
{ | |
const int MaxMessageSize = 1024 * 1024; |
#!/usr/bin/env dotnet run | |
var builder = WebApplication.CreateBuilder(args); | |
var config = builder.Configuration; | |
var connString = config["connectionString"] ?? "Data Source=todos.db"; | |
builder.AddDbContext<TodoDb>(options => options.UseSqlite(connString)); | |
builder.AddSqlite<Todo>(connString) // Higher level API perhaps? | |
var app = builder.Build(); |
using System; | |
using System.Threading.Tasks; | |
namespace System.Collections.Concurrent | |
{ | |
public static class ConcurrentDictionaryExtensions | |
{ | |
/// <summary> | |
/// Provides an alternative to <see cref="ConcurrentDictionary{TKey, TValue}.GetOrAdd(TKey, Func{TKey, TValue})"/> that disposes values that implement <see cref="IDisposable"/>. | |
/// </summary> |