Image Credits
Thanks go to all those who make their images freely available, and help to brighten up this blog!
- Making authenticated cross-origin requests with ASP.NET Core Identity
- Banner Image - “a-plate-of-chocolate-chip-cookies-with-a-padlock” by Bing Image Creator licensed under CC BY-NC-SA 4.0
- Using Octokit.GraphQL to interact with the GitHub discussions API
- Migrating comments from Disqus to giscus
- Banner Image - “comment-bubbles-with-wings2c-flying-over-a-field” by Bing Image Creator licensed under CC BY-NC-SA 4.0
- Super-charging 'git rebase' with 'git absorb'
- Smoother rebases with auto-squashing Git commits
- Banner Image - “a-machine-squashing-two-colourful-balls-together” by Bing Image Creator licensed under CC BY-NC-SA 4.0
- Adding client-side validation to ASP.NET Core, without jQuery or unobtrusive validation
- Understanding the .NET ecosystem: The introduction of .NET Standard
- Understanding the .NET ecosystem: The evolution of .NET into .NET 7
- Working with Git in JetBrains Rider
- Drawing graphs in GitHub comments with Mermaid diagrams
- Customising the RequestDelegate with filters
- Banner Image - “Sieving Flour” by Peter Roberts licensed under CC BY 2.0
- Building the final RequestDelegate
- Thoughts on 'What is .NET, and why should you choose it?'
- Banner Image - “Thinking about small” by Freddie Alequin licensed under CC BY-SA 2.0
- Generating the response writing expression for RequestDelegate
- Banner Image - “2017-04-05_07-10-31” by Jernej Furman licensed under CC BY 2.0
- Generating argument expressions for minimal APIs (continued)
- Generating argument expressions for minimal APIs
- Exploring the model-binding logic of minimal APIs
- Extracting metadata from a minimal API handler
- Banner Image - “Tweezers 2” by Pogrebnoj-Alexandroff licensed under CC BY 3.0
- A first look behind the scenes of minimal API endpoints
- ASP.NET Core in Action, Version 3 update
- 5 new MVC features in .NET 7
- The dangers and gotchas of using scoped services in OptionsBuilder
- Banner image - “Sign” by eltpics licensed under CC BY-NC 2.0
- Working with stacked branches in Git is easier with --update-refs
- Fighting with nullable reference types in Razor Pages
- Banner image - “Fighting Kangaroo” by Lucy Takakura licensed under CC BY-SA 2.0
- Adding validation to strongly typed configuration objects using FluentValidation
- Adding validation to strongly typed configuration objects in .NET 6
- ASP.NET Core in Action, version 3, is now available
- Counting the leading zeroes in a binary number with C#
- Working with System.Random and threads safely in .NET Core and .NET Framework
- Banner image - “sewing thread” by In Memoriam: Christopher Bulle licensed under CC BY 2.0
- Using CancellationTokens in ASP.NET Core minimal APIs
- Banner image - “cancelled” by Alachua County licensed under CC BY 2.0
- Handling concurrent merges to master in multi-stage Azure DevOps pipelines
- Replacing Disqus with GitHub discussions using giscus
- Considering replacing Disqus with Giscus
- Adding content negotiation to minimal APIs with Carter
- Returning XML from minimal APIs in .NET 6
- Understanding your middleware pipeline in .NET 6 with the Middleware Analysis package
- Consuming anonymous types with DiagnosticListener in .NET 6
- Banner image - “man, blank, clouds” by Piqsels licensed under CC0
- A brief introduction to DiagnosticSource
- Banner image - “Stainless Steel Stethoscope” by Piqsels licensed under CC0
- Using PathBase with .NET 6's WebApplicationBuilder
- Understanding PathBase in ASP.NET Core
- Reducing the size of a git repository with git-replace
- Rewriting git history simply with git-filter-repo
- Banner Image - “Writer's Block” by Sharon Drummond licensed under CC BY-NC-SA 2.0
- Testing ASP.NET Core gRPC services in JetBrains Rider
- Generating sortable Guids using NewId
- Banner Image - “Snowflakes” by Peter Stenzel licensed under CC BY-ND 2.0
- Why isn't my ASP.NET Core app in Docker working?
- Running JavaScript inside a .NET app with JavaScriptEngineSwitcher
- Keeping up with .NET: learning about new features and APIs
- Working on two git branches at once with git worktree
- Tracking down a hanging xUnit test in CI: building a custom Test Framework
- Just because you stopped waiting for it, doesn't mean the Task stopped running
- Banner Image - “NO WAITING” by Leo Reynolds licensed under CC BY-NC-SA 2.0
- A deep-dive into the new Task.WaitAsync() API in .NET 6
- Banner Image - “wait !!” by mat_n licensed under CC BY-NC 2.0
- Cancelling await calls in .NET 6 with Task.WaitAsync()
- Banner Image - “cancelled” by vfutscher licensed under CC BY-NC 2.0
- Please stop lying about .NET Standard 2.0 support!
- Waiting for your ASP.NET Core app to be ready from an IHostedService in .NET 6
- NetEscapades.EnumGenerators: a source generator for enum performance
- Solving the source generator 'marker attribute' problem - Part 2
- Solving the source generator 'marker attribute' problem - Part 1
- Saving source generator output in source control
- Finding a type declaration's namespace and type hierarchy
- Customising generated code with marker attributes
- Integration testing and NuGet packaging
- Testing an incremental generator with snapshot testing
- Creating an incremental generator
- Upgrading a .NET 5 "Startup-based" app to .NET 6
- [CallerArgumentExpression] and throw helpers
- New dependency injection features in .NET 6
- Source generator updates: incremental generators
- Improving logging performance with source generators
- Analyzers for ASP.NET Core in .NET 6
- Supporting integration tests with WebApplicationFactory in .NET 6
- Supporting EF Core migrations with WebApplicationBuilder
- Building a middleware pipeline with WebApplication
- Exploring the code behind WebApplicationBuilder
- Comparing WebApplicationBuilder to the Generic Host
- Looking inside ConfigurationManager in .NET 6
- Using Source Generators with Blazor components in .NET 6
- Downloading artifacts from Azure DevOps using .NET
- Rebuilding StronglyTypedId as a source generator - 1.0.0-beta release
- Banner image - “arm-exercise-fist-flex-health-2029406” by OpenClipart-Vectors licensed under Pixabay license
- ValueStringBuilder: a stack-based string-builder
- Banner image - “Twine” by jev55 licensed under CC BY-NC 2.0
- Reducing allocations by caching with StringBuilderCache
- Inserting and removing characters
- Converting chunks to a string with ToString()
- Appending strings, built-in types, and lists
- The overall design and a first look at the internals
- Adding authentication to a Blazor Server app using Auth0
- Conditional compilation for ignoring method calls with the ConditionalAttribute
- Using SSH and localhost.run to test GitHub webhooks locally
- Creating Docker multi-arch images for ARM64 from Windows
- Exploring .NET interactive notebooks with VS Code
- Benchmarking 4 reflection methods for calling a constructor in .NET
- Banner image - “Twemoji12 1f3d7” by Thomas Linard licensed under CC BY 4.0
- Banner image - “BenchmarkDotNet Logo” by AndreyAkinshin licensed under MIT
- How to stop Visual Studio from creating launchsettings.json
- Extending the calculator implementation
- Making the calculator thread-safe
- A Simple Moving Average calculator
- Trying out the open-source eCommerce platform nopCommerce using Docker
- Fixing build warning NETSSDK1138 when building projects with end-of-life .NET frameworks
- Viewing overwritten configuration values in ASP.NET Core
- ASP.NET Core in Action, Second Edition is available now!
- Viewing app configuration using Oakton's Describe command and Spectre.Console
- Debugging configuration values in ASP.NET Core
- Running Kubernetes and the dashboard with Docker Desktop
- Installing Docker Desktop for Windows and WSL 2
- Configuring HTTPS using a custom TLS certificate with Netlify and Cloudflare
- Using source generators with a custom attribute to generate a menu component in a Blazor app
- Using source generators to generate a menu component in a Blazor app
- Using source generators to find all routable components in a Blazor WebAssembly app
- Finding all routable components in a Blazor App
- Prerendering a Blazor WebAssembly app to static files, without an ASP.NET Core host app
- Enabling prerendering for Blazor WebAssembly apps
- An introduction to the Data Protection system in ASP.NET Core
- Auto-assigning issues using a GitHub Action
- Should I use self-contained or framework-dependent publishing in Docker images?
- Using action results and content negotiation with "route-to-code" APIs
- Banner Image - “Negotiation” by Felip1 licensed under CC BY-NC 2.0
- Using Quartz.NET with ASP.NET Core and worker services
- Banner Image - “clear crystals” by Jason D licensed under Unsplash
- Applying the MVC design pattern to Razor Pages
- Tips, tricks, and edge cases
- Banner image - “Lightbulb” by Free-Photos licensed under Pixabay License
- Avoiding downtime in rolling deployments by blocking SIGTERM
- Creating an 'exec-host' deployment for running one-off commands
- Monitoring Helm releases that use jobs and init containers
- Running database migrations using jobs and init containers
- Running database migrations when deploying to Kubernetes
- Adding health checks with Liveness, Readiness, and Startup probes
- Setting environment variables for ASP.NET Core apps in a Helm chart
- Creating a Helm chart for an ASP.NET Core app
- An introduction to deploying applications with Helm
- Configuring resources with YAML manifests
- Banner Image - “head-human-person-man-scratch” by OpenClipart-Vectors licensed under Pixabay license
- An Introduction to Kubernetes
- Should you unit-test API/MVC controllers in ASP.NET Core?
- Banner Image - “Test In Progress Danger” by Paul licensed under CC BY-NC-ND 2.0
- Controlling IHostedService execution order in ASP.NET Core 3.x
- Banner Image - “In the Queue” by Ozzy Delaney licensed under CC BY 2.0
- DI scopes in IHttpClientFactory message handlers don't work like you think they do
- Exploring the code behind IHttpClientFactory in depth
- Detecting duplicate routes in ASP.NET Core
- Creating a custom endpoint visualization graph
- Creating a custom DfaGraphWriter using ImpromptuInterface for easier reflection
- Adding an endpoint graph to your ASP.NET Core application
- Visualizing endpoints using the DOT language
- Getting started with ASP.NET Core
- Adding host filtering to Kestrel in ASP.NET Core
- Setting global authorization policies using the DefaultPolicy and the FallbackPolicy in ASP.NET Core 3.x
- Banner image - “world map with padlock digital paper” by PickPik licensed under PickPik License
- Customising the ASP.NET Core default UI without editing the PageModels
- Strongly-typed ID update 0.2.1
- Banner image - “arm-exercise-fist-flex-health-2029406” by OpenClipart-Vectors licensed under Pixabay license
- Handling Web API Exceptions with ProblemDetails middleware
- Banner image - “problem-logo” by Rflor from Noun project licensed under MIT
- Extending the shutdown timeout setting to ensure graceful IHostedService shutdown
- Banner image - “TIME” by becosky... licensed under CC BY-SA 2.0
- Using jQuery and Bootstrap from a CDN with fallback scripts in ASP.NET Core 3.0
- Banner Image - “A red British postbox” by pxfuel licensed under CC0 1.0
- Preventing mass assignment or over posting with Razor Pages in ASP.NET Core
- Banner Image - “A red British postbox” by Petr Kratochvil licensed under CC0 1.0
- Adding simple email address obfuscation for your blog like Cloudflare Scrape Shield
- Banner Image - “Internet1” by Rock1997 licensed under CC BY-SA 4.0
- How to automatically choose a free port in ASP.NET Core 3.0
- Banner Image - “roll-the-dice-craps-board-game” by 955169 licensed under Pixabay license
- 5 ways to set the URLs for an ASP.NET Core app
- Banner Image - “Internet1” by Rock1997 licensed under CC BY-SA 4.0
- Accessing route values in endpoint middleware in ASP.NET Core 3.0
- Replacing AJAX calls in Razor Pages with Razor Components and Blazor
- Don't replace your View Components with Razor Components
- How to fix the order of commits in GitHub Pull Requests
- Creating a custom ErrorHandlerMiddleware function
- When ASP.NET Core can't find your controller: debugging application parts
- Exploring the new rollForward and allowPrerelease settings in global.json
- Creating an endpoint from multiple middleware in ASP.NET Core 3.x
- Inserting middleware between UseRouting() and UseEndpoints() as a library author - Part 2
- Inserting middleware between UseRouting() and UseEndpoints() as a library author - Part 1
- Excluding health check endpoints from Serilog request logging
- Logging MVC properties with Serilog.AspNetCore
- Logging the selected Endpoint Name with Serilog
- Reducing log verbosity with Serilog RequestLogging
- A Quantum Random Number Generator for .NET: The quantum measurement problem and many-worlds approach
- Banner image - “Schroedingers cat film” by Christian Schirm licensed under CC0 1.0
- .NET Core, Docker, and Cultures - Solving a culture issue porting a .NET Core app from Windows to Linux
- Banner image - “Alpine Panorama” by Theo Crazzolara licensed under CC BY 2.0
- Converting integration tests to .NET Core 3.0
- Banner image - “Exam” by Alberto G licensed under CC BY 2.0
- Converting a terminal middleware to endpoint routing in ASP.NET Core 3.0
- Avoiding Startup service injection in ASP.NET Core 3
- Banner image - “Syringe Medical Finger Disposable Syringe Needle” by jochenpippir licensed under Pixabay
- IHostingEnvironment vs IHostEnvironment - obsolete types in .NET Core 3.0
- Banner image - “Obsolete” by Scott Ashkenaz licensed under CC BY-NC-ND 2.0
- Converting a .NET Standard 2.0 library to .NET Core 3.0
- Simplifying the Cake global tool bootstrapper scripts with .NET Core 3 local tools
- Banner image - “New boots!” by sharyn morrow licensed under CC BY-NC-ND 2.0
- New in .NET Core 3.0: local tools
- Banner image - “Tool cart” by Brian Timmermeister licensed under CC BY-SA 2.0
- Running .NET Core global tools in non-sdk Docker images
- Banner image - “tools” by Julien Dumont licensed under CC BY 2.0
- Packaging CLI programs into Docker images to avoid dependency hell
- Banner image - “knife-portable-swiss-blade-army” by Clker-Free-Vector-Images licensed under Pixabay
- New in ASP.NET Core 3.0: structured logging for startup messages
- Banner image - “logs” by Greg Lobinski licensed under CC BY 2.0
- Introducing IHostLifetime and untangling the Generic Host startup interactions
- Running async tasks on app startup in ASP.NET Core 3.0
- Banner image - “Checklist Man People Box Hand Goals Pen Notebook” by Vormingplus Gent-Eeklo vzw licensed under CC BY-NC 2.0
- New in ASP.NET Core 3: Service provider validation
- Comparing Startup.cs between the ASP.NET Core 3.0 templates
- Banner image - “Comparing...” by ericaxel licensed under CC BY 2.0
- Exploring the new project file, Program.cs, and the generic host
- Banner image - “Never lost” by Bryan Minear licensed under Unsplash
- Making my first contribution on SourceForge using Mercurial
- Banner image - “New Mercurial logo design” by Cali Mastny and Matt Mackall licensed under GPLv2
- A bootstrapper script for the Cake .NET Core Global Tool on Alpine using ash
- A bootstrapper script for the Cake .NET Core Global Tool on Windows
- How to build with Cake on Linux using Cake.CoreCLR or the Cake global tool
- Using the ReferenceAssemblies NuGet package to build .NET Framework libraries on Linux, without installing Mono
- Alternatives to Microsoft.FeatureManagement
- Banner image - “Flags” by Herr Herrner licensed under CC BY-NC 2.0
- Generating strongly-typed IDs at build-time with Roslyn
- Banner image - “arm-exercise-fist-flex-health-2029406” by OpenClipart-Vectors licensed under Pixabay license
- Exploring Raygun's new application performance monitoring tool for .NET Core
- Verifying phone number ownership with Twilio Verify API v2 using ASP.NET Core Identity and Razor Pages
- Ensuring consistent feature flags across requests
- Banner image - “Murfreesboro 2011 Flags of Remembrance” by Brent Moore licensed under CC BY-NC 2.0
- Creating a custom feature filter
- Banner image - “Fly the Flag” by Andreas-photography licensed under CC BY-NC 2.0
- Creating dynamic feature flags with feature filters
- Filtering action methods with feature flags
- Banner image - “2009-07-13T14-05-58 -- DSC_0126” by CGP Grey licensed under CC BY 2.0
- Introducing Microsoft.FeatureManagement
- Banner image - “140620-N-PX557-652” by U.S. Naval War College licensed under CC BY 2.0
- Serializing a PascalCase Newtonsoft.Json JObject to camelCase
- Banner Image - “Longleat Camel” by khaosproductions licensed under CC BY-NC-ND 2.0
- Using scoped services inside a Quartz.NET hosted service with ASP.NET Core
- Banner Image - “Quarzo” by Santiago Rodríguez licensed under CC BY 2.0
- Creating a Quartz.NET hosted service with ASP.NET Core
- Banner Image - “clear crystals” by Jason D licensed under Unsplash
- Verifying phone number ownership with Twilio using ASP.NET Core Identity and Razor Pages
- Safely migrating passwords in ASP.NET Core Identity with a custom PasswordHasher
- Banner Image - “Migration” by ❅❅Frosty Morning!❅❅ licensed under CC BY-NC-ND 2.0
- Validating phone numbers with Twilio using ASP.NET Core Identity and Razor Pages
- Banner Image - “checklist-check-list-marker” by TeroVesalainen licensed under CC0
- Strongly-typed IDs in EF Core (Revisited)
- Banner image - “Study for Obsession MET DP-13617-015” by Metropolitan Museum of Art licensed under CC0 1.0 Universal
- Using strongly-typed entity IDs with EF Core
- Banner image - “Study for Obsession MET DP-13617-015” by Metropolitan Museum of Art licensed under CC0 1.0 Universal
- Adding JSON converters to strongly typed IDs
- Banner image - “Study for Obsession MET DP-13617-015” by Metropolitan Museum of Art licensed under CC0 1.0 Universal
- An introduction to strongly-typed entity IDs
- Banner image - “Study for Obsession MET DP-13617-015” by Metropolitan Museum of Art licensed under CC0 1.0 Universal
- Using [email protected] to handle Angular client-side routing with S3 and CloudFront
- Exploring the .NET Core MCR Docker files (updated): runtime vs aspnet vs sdk
- Creating my first Azure Functions v2.0 app: a WebHook and a timer
- Creating a not-empty GUID validation attribute and a not-default validation attribute
- Banner image - “glass-cup-drink-empty-empty-glass” by nicolaticola licensed under Pixabay License
- Why isn't my session state working in ASP.NET Core? Session state, GDPR, and non-essential cookies
- Banner image - cookies - “Cookies Two Chocolate Cookie” by Pezibear licensed under Pixabay License
- Banner image - flag - “Regulation GDPR europe privacy” by TheDigitalArtist licensed under Pixabay License
- Deploying a GitHub app to Glitch
- Creating the auto-assign-issues bot
- Creating a GitHub app with create-probot-app
- An introduction to ASP.NET Core Razor Pages
- Reducing initial request latency by pre-building services in a startup task in ASP.NET Core
- Using health checks to run async tasks in ASP.NET Core
- Banner Image - “Woman Person Desktop Work Aerial” by rawpixel licensed under Pixabay license
- Feedback on async task examples and another possible solution
- Banner Image - “Wooden Tile Feedback Image” by Alpha Stock Images licensed under CC BY-SA 3.0
- Two approaches for running async tasks
- Built in options for running async tasks
- Banner image - “Checklist Man People Box Hand Goals Pen Notebook” by Vormingplus Gent-Eeklo vzw licensed under CC BY-NC 2.0
- Using dependency injection with Twilio SMS and ASP.NET Core 2.1
- Creating an AWS policy for calling the SES mailbox simulator from CodeBuild
- Creating a git repo with Azure Repos and trying out Git LFS
- Dark mode now available!
- Why is string.GetHashCode() different each time I run my program in .NET Core?
- Secure secrets storage for ASP.NET Core with AWS Secrets Manager (Part 2)
- Secure secrets storage for ASP.NET Core with AWS Secrets Manager (Part 1)
- Caching Docker layers on serverless build hosts with multi-stage builds, --target, and --cache-from
- Generating .editorconfig files automatically using IntelliCode
- Creating singleton named options with IOptionsMonitor
- Banner image - “Highlander Poster” by Steve Troughton licensed under No Copyright
- Simplifying dependency injection for IConfigureOptions with the ConfigureOptions() helper
- Banner image - “art cogs colorful colourful creativity gears machine machinery.” by SM-N910G licensed under CC0 1.0
- Delaying strongly-typed options configuration using PostConfigure in ASP.NET Core
- Banner image - “Industrial teeth.” by Bernard Spragg. NZ licensed under CC0 1.0
- Configuring named options using IConfigureNamedOptions and ConfigureAll
- Banner image - “Cogs 4” by Gillie Rhodes licensed under CC BY-NC 2.0
- The dangers and gotchas of using scoped services in IConfigureOptions
- Banner image - “Sign” by eltpics licensed under CC BY-NC 2.0
- Using multiple instances of strongly-typed settings with named options in .NET Core 2.x
- Banner image - “Gears” by Thomas Claveirole licensed under CC BY-SA 2.0
- Building an open source GitHub project using Azure DevOps
- Creating an ASCII-art tree in C#
- Adding decorated classes to the ASP.NET Core DI container using Scrutor
- Banner image - “Decorated Easter Eggs” by Vera Kratochvil licensed under CC0 1.0
- Using Scrutor to automatically register your services with the ASP.NET Core DI container
- Banner image - “magnifying glass” by OpenClipart-Vectors licensed under CC0 1.0
- How to register a service with multiple interfaces in ASP.NET Core DI
- Banner image - “84/366” by misschristi1972 licensed under CC BY-NC-ND 2.0
- The difference between GetService() and GetRequiredService() in ASP.NET Core
- Banner image - “Compare Comparison Scale Balance” by Tumisu licensed under CC0 1.0
- Why isn't my ASP.NET Core environment-specific configuration loading?
- Banner image - “School Lost and Confused Signpost” by Wonder woman0731 licensed under CC BY 2.0
- Running smoke tests for ASP.NET Core apps in CI using Docker
- Banner image - “Smoke Dragon” by Paul Bence licensed under CC BY-SA 2.5
- Adding Segment client-side analytics to an ASP.NET Core application
- Banner Image - “Facebook Analytics Graphs” by kuya_clay licensed under CC0
- Using snake case column names with Dapper and PostgreSQL
- Adding Serilog to the ASP.NET Core Generic Host
- The ASP.NET Core Generic Host: namespace clashes and extension methods
- Banner Image - “Two Bulls Clash Antlers” by USFWS Mountain-Prairie licensed under CC BY 2.0
- Creating an If Tag Helper to conditionally render content
- Converting web.config files to appsettings.json with a .NET Core global tool
- Adding validation to strongly typed configuration objects in ASP.NET Core
- Building .NET Framework ASP.NET Core apps on Linux using Mono and the .NET CLI
- Building ASP.NET Core apps on both Windows and Linux using AppVeyor
- Writing logs to Elasticsearch with Fluentd using Serilog in ASP.NET Core
- Suppressing the startup and shutdown messages in ASP.NET Core
- Exploring the .NET Core 2.1 Docker files (updated): dotnet:runtime vs aspnetcore-runtime vs sdk
- Pushing NuGet packages built in Docker by running the container
- Setting ASP.NET Core version numbers for a Docker ONBUILD builder image
- Creating NuGet packages in Docker using the .NET Core CLI
- Version vs VersionSuffix vs PackageVersion: What do they all mean?
- Creating a generalised Docker image for building ASP.NET Core apps using ONBUILD
- Optimising ASP.NET Core apps in Docker - avoiding manually copying csproj files (Part 2)
- Using an IActionFilter to read action method parameter values in ASP.NET Core MVC
- Implementing custom token providers for passwordless authentication in ASP.NET Core Identity
- Banner Image - “Subway token” by Travis Goodspeed licensed under CC BY 2.0
- Creating a .NET Core global CLI tool for squashing images with the TinyPNG API
- Banner Image - “tools” by royalty free licensed under CC BY 2.0
- How to create a Helm chart repository using Amazon S3
- Banner Image - “Different medieval helmets J1” by Jamain licensed under CC BY-SA 4.0
- Exploring the Microsoft.AspNetCore.App shared framework in ASP.NET Core 2.1 (preview 1)
- Fixing Nginx "upstream sent too big header" error when running an ingress controller in Kubernetes
- ASP.NET Core in Action - Filters
- Coming in ASP.NET Core 2.1 - top-level MVC parameter validation
- Banner Image - “dotnetCoreLogoPack” by Pablo Iglesias licensed under CC BY-SA 4.0
- Gotchas upgrading from IdentityServer 3 to IdentityServer 4
- Optimising ASP.NET Core apps in Docker - avoiding manually copying csproj files
- Sharing appsettings.json configuration files between projects in ASP.NET Core
- ASP.NET Core in Action - MVC in ASP.NET Core
- Including linked files from outside the project directory in ASP.NET Core
- Creating GitHub pull requests from the command-line with Hub
- Handy Docker commands for local development - Part 2
- Handy Docker commands for local development - Part 1
- Exploring the .NET Core Docker files: dotnet vs aspnetcore vs aspnetcore-build
- ASP.NET Core in Action - What is middleware?
- Building ASP.NET Core apps using Cake in Docker
- Creating a .NET Standard Roslyn Analyzer in Visual Studio 2017
- Using Docker Hub to automatically build a Docker image for ASP.NET Core apps
- Home, home on the range: Installing Kubernetes using Rancher 2.0
- Creating strongly typed xUnit theory test data with TheoryData
- Banner Image - “Data” by Nick Youngson licensed under CC BY-SA 3.0
- Creating a custom xUnit theory test DataAttribute to load data from JSON files
- Creating parameterised tests in xUnit with [InlineData], [ClassData], and [MemberData]
- Banner Image - “data (scrabble)” by Justgrimes licensed under CC BY-SA 2.0
- Fixing the error "Program has more than one entry point defined" for console apps containing xUnit tests
- Migrating passwords in ASP.NET Core Identity with a custom PasswordHasher
- Exploring the ASP.NET Core Identity PasswordHasher
- Free .NET Core eBook, including ASP.NET Core and EF Core
- Running tests with dotnet xunit using Cake
- Debugging JWT validation problems between an OWIN app and IdentityServer4
- Creating and trusting a self-signed certificate on Linux for use in Kestrel and ASP.NET Core
- Using anonymous types and tuples to attach correlation IDs to scope state with Serilog and Seq in ASP.NET Core
- Creating an extension method for attaching key-value pairs to scope state using ASP.NET Core
- Banner Image - “Value Key” by GotCredit licensed under CC BY 2.0
- How to include scopes when logging exceptions in ASP.NET Core
- Banner Image - “Historic Log Structures” by J. Stephen Conn licensed under CC BY-NC 2.0
- Creating a rolling file logging provider for ASP.NET Core 2.0
- Aligning strings within string.Format and interpolated strings
- Using CancellationTokens in ASP.NET Core MVC controllers
- Banner image - “cancelled” by Alachua County licensed under CC BY 2.0
- The SDK 'Microsoft.Net.Sdk.Web' specified could not be found
- Introduction to the ApiExplorer in ASP.NET Core
- How to format response data as XML or JSON, based on the request URL in ASP.NET Core
- Customising ASP.NET Core Identity EF Core naming conventions for PostgreSQL
- Building ASP.NET Core 2.0 preview 2 packages on AppVeyor
- Creating a validator to check for common passwords in ASP.NET Core Identity
- Banner Image - “password-keyword-codeword-solution” by geralt licensed under CC0
- Creating custom password validators for ASP.NET Core Identity
- Banner Image - “Steal password” by Psyomjesus licensed under CC BY-SA 4.0
- Localising the DisplayAttribute in ASP.NET Core 1.1
- When you use the Polly circuit-breaker, make sure you share your Policy instances!
- Controller activation and dependency injection in ASP.NET Core MVC
- Four ways to dispose IDisposables in ASP.NET Core
- Automatically validating anti-forgery tokens in ASP.NET Core with the AutoValidateAntiforgeryTokenAttribute
- Defining custom logging messages with LoggerMessage.Define in ASP.NET Core
- Using ImageSharp to resize images in ASP.NET Core - Part 4: saving to disk
- The Microsoft.AspNetCore.All metapackage is huge, and that's awesome, thanks to the .NET Core runtime store
- How to use multiple hosting environments on the same machine in ASP.NET Core
- Banner Image - “Tree shadows on moss” by Sven Schlager licensed under Unsplash License
- Using Razor Pages to simplify basic actions in ASP.NET Core 2.0 preview 1
- Exploring Program.cs, Startup.cs and CreateDefaultBuilder in ASP.NET Core 2 preview 1
- The .NET Core 2.0 Preview 1, version numbers and global.json
- Using ImageSharp to resize images in ASP.NET Core - Part 3: caching
- Using ImageSharp to resize images in ASP.NET Core - Part 2
- Using ImageSharp to resize images in ASP.NET Core - a comparison with CoreCompat.System.Drawing
- Banner image - “Head To Head Longhorn Cattle At Brockholes” by Rude Heath licensed under CC BY-SA 2.0
- Creating a basic Web API template using dotnet new custom templates
- Removing the MVC Razor dependencies from the Web API template in ASP.NET Core
- Creating and editing solution files with the .NET CLI
- Getting started with ASP.NET Core
- Adding favicons to your ASP.NET Core website with Real Favicon Generator
- Retrieving the path that generated an error with the StatusCodePages Middleware
- Re-execute the middleware pipeline with the StatusCodePages Middleware to create custom error pages
- Deconstructors for non-tuple types in C# 7.0
- Banner Image - “Dalek - Exploded View” by TJJohn12 licensed under CC BY-NC-SA 2.0
- Preventing mass assignment or over posting in ASP.NET Core
- Git integration improvements in Visual Studio 2017 - git-hooks
- What is the NETStandard.Library metapackage?
- What is the Microsoft.AspNetCore metapackage?
- Supporting both LTS and Current releases for ASP.NET Core
- Using routing DataTokens in ASP.NET Core
- Banner Image - “MTA tokens” by K.L. licensed under CC BY-NC-SA 2.0
- Under the hood of the Middleware Analysis package
- Understanding your middleware pipeline with the Middleware Analysis package
- Exploring IStartupFilter in ASP.NET Core
- Logging using DiagnosticSource in ASP.NET Core
- Banner Image - “Laboratory Medical Lab Diagnostics” by kropekk_pl licensed under CC0
- Reloading strongly typed options in ASP.NET Core 1.1.0
- How to pass parameters to a view component
- An introduction to ViewComponents - a login status view component
- Banner image - “HK Caine Road Honor Villa 18C Window view Central Sept-2011” by MWilton Wings licensed under CC BY-SA 3.0
- Understanding and updating package versions for .NET Core 1.0.3
- Redirecting unknown cultures when using the url culture provider
- Banner Image - “question mark sign” by PeteLinforth licensed under CC0
- Banner Image - “world globe earth planet blue” by gimono licensed under CC0
- Using a culture constraint and redirecting 404s with the url culture provider
- Applying the RouteDataRequest CultureProvider globally with middleware as filters
- Url culture provider using middleware as filters in ASP.NET Core 1.1.0
- Exploring Middleware as MVC Filters in ASP.NET Core 1.1
- Troubleshooting ASP.NET Core 1.1.0 install problems
- Making ConcurrentDictionary GetOrAdd thread safe using Lazy
- Banner Image - “thread embroidery sewing craft” by bluemorphos licensed under CC0
- Fixing a bug: when concatenated strings turn into numbers in JavaScript
- Using dependency injection in a .Net Core console application
- Adding Cache-Control headers to Static Files in ASP.NET Core
- Accessing services when configuring MvcOptions in ASP.NET Core
- Resource-based authorisation in ASP.NET Core
- Modifying the UI based on user authorisation in ASP.NET Core
- Banner Image - “No Entry” by Desmond Bowles licensed under CC BY-NC-ND 2.0
- Custom authorisation policies and requirements in ASP.NET Core
- Banner Image - “SUMAQ VIP Lounge - Lima Airport” by TravelingOtter licensed under CC BY-SA 2.0
- Introduction to Authorisation in ASP.NET Core
- Injecting services into ValidationAttributes in ASP.NET Core
- Localising the DisplayAttribute and avoiding magic strings in ASP.NET Core
- Banner Image - “hand fire rosetta stone fingers” by smilingpixel licensed under CC0
- How to use machine-specific configuration with ASP.NET Core
- Adding Localisation to an ASP.NET Core application
- Viewing what's changed in ASP.NET Core 1.0.1
- HTML minification using WebMarkupMin in ASP.NET Core
- Banner Image - “Vice” by Will Jackson licensed under CC BY 2.0
- Configuring environment specific services in ASP.NET Core - Part 2
- Configuring environment specific services for dependency injection in ASP.NET Core
- Banner Image - “Watch Cogs Wheels Parts” by Alex Borland licensed under CC0
- An introduction to OpenID Connect in ASP.NET Core
- POST-REDIRECT-GET using TempData in ASP.NET Core
- An introduction to OAuth 2.0 using Facebook in ASP.NET Core
- An introduction to Session storage in ASP.NET Core
- Banner Image - “Big Data” by DARPA licensed under Public Domain work
- A look behind the JWT bearer authentication middleware in ASP.NET Core
- How to set the hosting environment in ASP.NET Core
- Banner Image - “Tree shadows on moss” by Sven Schlager licensed under Unsplash License
- Access services inside ConfigureServices using IConfigureOptions in ASP.NET Core
- Exploring the cookie authentication middleware in ASP.NET Core
- Banner Image - “Chocolate Chip Cookies - kimberlykv.jpg” by Lobo licensed under CC BY 2.0
- Introduction to Authentication with ASP.NET Core
- Banner Image - “45153624.jpg” by MoD licensed under OGL
- Forking the pipeline - adding tenant-specific files with SaasKit in ASP.NET Core
- Loading tenants from the database with SaasKit - Part 2, Caching
- Loading tenants from the database with SaasKit in ASP.NET Core
- Adding EF Core and PostgreSQL to an ASP.NET Core project on OS X
- How to configure urls for Kestrel, WebListener and IIS express in ASP.NET Core
- Banner Image - “Internet1” by Rock1997 licensed under CC BY-SA 4.0
- Getting started with StructureMap in ASP.NET Core
- Reloading strongly typed Options on file changes in ASP.NET Core RC2
- Creating a custom ConfigurationProvider in ASP.NET Core to parse YAML
- Banner Image - “Cogs” by Kristi Herbert licensed under CC BY 2.0
- Adding Travis CI builds to a .NET Core app
- Publishing your first .NET Core NuGet package with AppVeyor and MyGet
- Introduction to integration testing with xUnit and TestServer in ASP.NET Core
- Use project.lock.json to troubleshoot dotnet restore problems
- Banner Image - “Attackfoto - In the photostudio” by Susanne Nilsson licensed under CC BY-SA 2.0
- A deep dive into the ASP.NET Core CORS library
- Banner Image - “Crater Lake” by Andy Spearing licensed under CC BY 2.0
- How to use the IOptions pattern for configuration in ASP.NET Core RC2
- Banner image - “Clock Cogs” by SomeDriftwood licensed under CC BY 3.0
- How to add default security headers in ASP.NET Core using custom middleware
- Banner image - “System Lock” by Yuri Samoilov licensed under CC BY 2.0
- Model binding JSON POSTs in ASP.NET Core
- Banner image - “Pêche DSC03035” by Daplaza licensed under CC BY-SA 2.5
- Understanding .NET Core, NETStandard, .NET Core applications and ASP.NET Core
- Starting a blog to get yourself noticed