| 5. 11. 2024 | Recent updates for NetEscapades.EnumGenerators: interceptors! – andrewlock.net
|
| 29. 10. 2024 | Is the result pattern worth it?: Working with the result pattern - Part 4 – andrewlock.net
|
| 22. 10. 2024 | Adding more extensions to Result: Working with the result pattern - Part 3 – andrewlock.net
|
| 15. 10. 2024 | Safety and simplicity with LINQ: Working with the result pattern - Part 2 – andrewlock.net
|
| 8. 10. 2024 | Replacing Exceptions-as-flow-control with the result pattern: Working with the result pattern - Part 1 – andrewlock.net
|
| 1. 10. 2024 | Major updates to NetEscapades.AspNetCore.SecurityHeaders – andrewlock.net
|
| 17. 9. 2024 | Fixing MAX_PATH issues in GitLab – andrewlock.net
|
| 10. 9. 2024 | Preventing breaking changes in public APIs with PublicApiGenerator – andrewlock.net
|
| 3. 9. 2024 | Working with tar files in .NET 8 – andrewlock.net
|
| 27. 8. 2024 | Using Azure Storage Queue messages with Azure Functions and [QueueTrigger] – andrewlock.net
|
| 20. 8. 2024 | Avoiding CDN supply-chain attacks with Subresource Integrity (SRI) – andrewlock.net
|
| 13. 8. 2024 | Combining multiple docker images into a multi-arch image – andrewlock.net
|
| 6. 8. 2024 | Simplifying [Theory] test data with Xunit.Combinatorial – andrewlock.net
|
| 30. 7. 2024 | Creating source-only NuGet packages – andrewlock.net
|
| 16. 7. 2024 | Disambiguating types with the same name with extern alias – andrewlock.net
|
| 9. 7. 2024 | Adding support for collection expressions to your own types: Behind the scenes of collection expressions - Part 5 – andrewlock.net
|
| 2. 7. 2024 | Exploring the generated code: the spread element: Behind the scenes of collection expressions - Part 4 – andrewlock.net
|
| 25. 6. 2024 | Exploring the generated code: T[], Span, and Immutable collections: Behind the scenes of collection expressions - Part 3 – andrewlock.net
|
| 18. 6. 2024 | Exploring the generated code: List and fallback cases: Behind the scenes of collection expressions - Part 2 – andrewlock.net
|
| 11. 6. 2024 | Introducing collection expressions in C#12: Behind the scenes of collection expressions - Part 1 – andrewlock.net
|
| 4. 6. 2024 | Conditionally skipping a trigger job in GitLab based on a previous job – andrewlock.net
|
| 28. 5. 2024 | Blocking primary constructor member capture using a Roslyn Analyzer – andrewlock.net
|
| 21. 5. 2024 | Thoughts about primary constructors: 3 pros and 5 cons – andrewlock.net
|
| 14. 5. 2024 | An introduction to primary constructors in C#12 – andrewlock.net
|
| 30. 4. 2024 | Creating a .NET AsciiMath parser and using it in a Markdig extension – andrewlock.net
|
| 23. 4. 2024 | Hacking together an AsciiMath parser for .NET – andrewlock.net
|
| 16. 4. 2024 | Rendering Math in HTML: MathML, MathML Core, and AsciiMath – andrewlock.net
|
| 2. 4. 2024 | Syncing a git branch between Windows and WSL filesystems – andrewlock.net
|
| 26. 3. 2024 | Implementing Dijkstra's algorithm for finding the shortest path between two nodes using PriorityQueue in .NET 9 – andrewlock.net
|
| 12. 3. 2024 | Behind the implementation of .NET's PriorityQueue – andrewlock.net
|
| 5. 3. 2024 | An introduction to the heap data structure and .NET's priority queue – andrewlock.net
|
| 27. 2. 2024 | Using Unix domain sockets with ASP.NET Core and HttpClient – andrewlock.net
|
| 20. 2. 2024 | Using named pipes with ASP.NET Core and HttpClient – andrewlock.net
|
| 13. 2. 2024 | 8 ways to set the URLs for an ASP.NET Core app – andrewlock.net
|
| 6. 2. 2024 | Using default interface methods for performance gains in IHeaderDictionary – andrewlock.net
|
| 30. 1. 2024 | Understanding C# 8 default interface methods – andrewlock.net
|
| 23. 1. 2024 | Testing your incremental generator pipeline outputs are cacheable: Creating a source generator - Part 10 – andrewlock.net
|
| 16. 1. 2024 | Avoiding performance pitfalls in incremental generators: Creating a source generator - Part 9 – andrewlock.net
|
| 9. 1. 2024 | A brief look at StringValues – andrewlock.net
|
| 2. 1. 2024 | Backing up files to Azure blob storage with azcopy – andrewlock.net
|
| 19. 12. 2023 | Updates to the StronglyTypedId library - simplification, templating, and CodeFixes: Using strongly-typed entity IDs to avoid primitive obsession - Part 8 – andrewlock.net
|
| 12. 12. 2023 | Redacting sensitive data in logs with Microsoft.Extensions.Compliance.Redaction – andrewlock.net
|
| 5. 12. 2023 | Enriching logs with [TagProvider] and ILogEnricher – andrewlock.net
|
| 28. 11. 2023 | Behind [LogProperties] and the new telemetry logging source generator – andrewlock.net
|
| 21. 11. 2023 | A failed experiment with interceptors in C# 12 and .NET 8 – andrewlock.net
|
| 7. 11. 2023 | Reading JSON and binary data from multipart/form-data sections in ASP.NET Core – andrewlock.net
|
| 31. 10. 2023 | Avoiding flaky tests with TimeProvider and ITimer: Exploring the .NET 8 preview - Part 12 – andrewlock.net
|
| 24. 10. 2023 | Short-circuit routing in .NET 8: Exploring the .NET 8 preview - Part 11 – andrewlock.net
|
| 17. 10. 2023 | Updates to Docker images in .NET 8: Exploring the .NET 8 preview - Part 10 – andrewlock.net
|
| 10. 10. 2023 | Rendering Blazor components to a string: Exploring the .NET 8 preview - Part 9 – andrewlock.net
|
| 3. 10. 2023 | Can you use the .NET 8 Identity API endpoints with IdentityServer? – andrewlock.net
|
| 19. 9. 2023 | Should you use the .NET 8 Identity API endpoints? – andrewlock.net
|
| 5. 9. 2023 | Introducing the Identity API endpoints: Exploring the .NET 8 preview - Part 8 – andrewlock.net
|
| 29. 8. 2023 | Form binding in minimal APIs: Exploring the .NET 8 preview - Part 7 – andrewlock.net
|
| 22. 8. 2023 | Last chance to win a ticket to APIDays London with my new book! – andrewlock.net
|
| 15. 8. 2023 | Keyed service dependency injection container support: Exploring the .NET 8 preview - Part 6 – andrewlock.net
|
| 8. 8. 2023 | ASP.NET Core in Action, Third Edition is now in print – andrewlock.net
|
| 25. 7. 2023 | Replacing method calls with Interceptors: Exploring the .NET 8 preview - Part 5 – andrewlock.net
|
| 18. 7. 2023 | Exploring the new minimal API source generator: Exploring the .NET 8 preview - Part 4 – andrewlock.net
|
| 11. 7. 2023 | Comparing WebApplication.CreateBuilder() to the new CreateSlimBuilder() method: Exploring the .NET 8 preview - Part 3 – andrewlock.net
|
| 4. 7. 2023 | The minimal API AOT compilation template: Exploring the .NET 8 preview - Part 2 – andrewlock.net
|
| 27. 6. 2023 | Using the new configuration binder source generator: Exploring the .NET 8 preview - Part 1 – andrewlock.net
|
| 20. 6. 2023 | Validating nested DataAnnotation IOptions recursively with MiniValidation – andrewlock.net
|
| 13. 6. 2023 | Supporting legacy browsers and SameSite cookies without UserAgent sniffing in ASP.NET Core. – andrewlock.net
|
| 6. 6. 2023 | Understanding SameSite cookies – andrewlock.net
|
| 23. 5. 2023 | Making authenticated cross-origin requests with ASP.NET Core Identity – andrewlock.net
|
| 16. 5. 2023 | Using Octokit.GraphQL to interact with the GitHub discussions API – andrewlock.net
|
| 9. 5. 2023 | Migrating comments from Disqus to giscus – andrewlock.net
|
| 25. 4. 2023 | Super-charging 'git rebase' with 'git absorb' – andrewlock.net
|
| 18. 4. 2023 | Smoother rebases with auto-squashing Git commits – andrewlock.net
|
| 4. 4. 2023 | Adding client-side validation to ASP.NET Core, without jQuery or unobtrusive validation – andrewlock.net
|
| 28. 3. 2023 | Understanding the .NET ecosystem: The introduction of .NET Standard – andrewlock.net
|
| 21. 3. 2023 | Understanding the .NET ecosystem: The evolution of .NET into .NET 7 – andrewlock.net
|
| 14. 3. 2023 | Working with Git in JetBrains Rider – andrewlock.net
|
| 7. 3. 2023 | Drawing graphs in GitHub comments with Mermaid diagrams – andrewlock.net
|
| 28. 2. 2023 | Customising the RequestDelegate with filters: Behind the scenes of minimal APIs - Part 8 – andrewlock.net
|
| 21. 2. 2023 | Building the final RequestDelegate: Behind the scenes of minimal APIs - Part 7 – andrewlock.net
|
| 14. 2. 2023 | Thoughts on 'What is .NET, and why should you choose it?' – andrewlock.net
|
| 7. 2. 2023 | Generating the response writing expression for RequestDelegate: Behind the scenes of minimal APIs - Part 6 – andrewlock.net
|
| 31. 1. 2023 | Generating argument expressions for minimal APIs (continued): Behind the scenes of minimal APIs - Part 5 – andrewlock.net
|
| 24. 1. 2023 | Generating argument expressions for minimal APIs: Behind the scenes of minimal APIs - Part 4 – andrewlock.net
|
| 17. 1. 2023 | Exploring the model-binding logic of minimal APIs: Behind the scenes of minimal APIs - Part 3 – andrewlock.net
|
| 10. 1. 2023 | Extracting metadata from a minimal API handler: Behind the scenes of minimal APIs - Part 2 – andrewlock.net
|
| 3. 1. 2023 | A first look behind the scenes of minimal API endpoints: Behind the scenes of minimal APIs - Part 1 – andrewlock.net
|
| 20. 12. 2022 | ASP.NET Core in Action, Version 3 update – andrewlock.net
|
| 6. 12. 2022 | 5 new MVC features in .NET 7 – andrewlock.net
|
| 22. 11. 2022 | The dangers and gotchas of using scoped services in OptionsBuilder – andrewlock.net
|
| 8. 11. 2022 | Working with stacked branches in Git is easier with --update-refs – andrewlock.net
|
| 25. 10. 2022 | Fighting with nullable reference types in Razor Pages – andrewlock.net
|
| 11. 10. 2022 | Adding validation to strongly typed configuration objects using FluentValidation – andrewlock.net
|
| 4. 10. 2022 | Adding validation to strongly typed configuration objects in .NET 6 – andrewlock.net
|
| 29. 9. 2022 | ASP.NET Core in Action, version 3, is now available – andrewlock.net
|
| 20. 9. 2022 | Counting the leading zeroes in a binary number with C# – andrewlock.net
|
| 6. 9. 2022 | Working with System.Random and threads safely in .NET Core and .NET Framework – andrewlock.net
|
| 23. 8. 2022 | Using CancellationTokens in ASP.NET Core minimal APIs – andrewlock.net
|
| 9. 8. 2022 | Handling concurrent merges to master in multi-stage Azure DevOps pipelines – andrewlock.net
|
| 2. 8. 2022 | Replacing Disqus with GitHub discussions using giscus – andrewlock.net
|
| 26. 7. 2022 | Considering replacing Disqus with Giscus – andrewlock.net
|
| 12. 7. 2022 | Adding content negotiation to minimal APIs with Carter – andrewlock.net
|
| 5. 7. 2022 | Returning XML from minimal APIs in .NET 6 – andrewlock.net
|
| 28. 6. 2022 | Understanding your middleware pipeline in .NET 6 with the Middleware Analysis package – andrewlock.net
|
| 21. 6. 2022 | Consuming anonymous types with DiagnosticListener in .NET 6 – andrewlock.net
|
| 14. 6. 2022 | A brief introduction to DiagnosticSource – andrewlock.net
|
| 7. 6. 2022 | Using PathBase with .NET 6's WebApplicationBuilder – andrewlock.net
|
| 31. 5. 2022 | Understanding PathBase in ASP.NET Core – andrewlock.net
|
| 24. 5. 2022 | Reducing the size of a git repository with git-replace – andrewlock.net
|
| 17. 5. 2022 | Rewriting git history simply with git-filter-repo – andrewlock.net
|
| 10. 5. 2022 | Testing ASP.NET Core gRPC services in JetBrains Rider – andrewlock.net
|
| 3. 5. 2022 | Generating sortable Guids using NewId – andrewlock.net
|
| 26. 4. 2022 | Why isn't my ASP.NET Core app in Docker working? – andrewlock.net
|
| 19. 4. 2022 | Running JavaScript inside a .NET app with JavaScriptEngineSwitcher – andrewlock.net
|
| 12. 4. 2022 | Keeping up with .NET: learning about new features and APIs – andrewlock.net
|
| 5. 4. 2022 | Working on two git branches at once with git worktree – andrewlock.net
|
| 29. 3. 2022 | Tracking down a hanging xUnit test in CI: building a custom Test Framework – andrewlock.net
|
| 22. 3. 2022 | Just because you stopped waiting for it, doesn't mean the Task stopped running – andrewlock.net
|
| 15. 3. 2022 | A deep-dive into the new Task.WaitAsync() API in .NET 6 – andrewlock.net
|
| 8. 3. 2022 | Cancelling await calls in .NET 6 with Task.WaitAsync() – andrewlock.net
|
| 22. 2. 2022 | Please stop lying about .NET Standard 2.0 support! – andrewlock.net
|
| 15. 2. 2022 | Waiting for your ASP.NET Core app to be ready from an IHostedService in .NET 6 – andrewlock.net
|
| 8. 2. 2022 | NetEscapades.EnumGenerators: a source generator for enum performance – andrewlock.net
|
| 1. 2. 2022 | Solving the source generator 'marker attribute' problem - Part 2: Creating a source generator - Part 8 – andrewlock.net
|
| 25. 1. 2022 | Solving the source generator 'marker attribute' problem - Part 1: Creating a source generator - Part 7 – andrewlock.net
|
| 18. 1. 2022 | Saving source generator output in source control: Creating a source generator - Part 6 – andrewlock.net
|
| 11. 1. 2022 | Finding a type declaration's namespace and type hierarchy: Creating a source generator - Part 5 – andrewlock.net
|
| 4. 1. 2022 | Customising generated code with marker attributes: Creating a source generator - Part 4 – andrewlock.net
|
| 21. 12. 2021 | Integration testing and NuGet packaging: Creating a source generator - Part 3 – andrewlock.net
|
| 14. 12. 2021 | Testing an incremental generator with snapshot testing: Creating a source generator - Part 2 – andrewlock.net
|
| 9. 12. 2021 | Creating an incremental generator: Creating a source generator - Part 1 – andrewlock.net
|
| 30. 11. 2021 | Upgrading a .NET 5 "Startup-based" app to .NET 6: Exploring .NET Core 6 - Part 12 – andrewlock.net
|
| 23. 11. 2021 | [CallerArgumentExpression] and throw helpers: Exploring .NET Core 6 - Part 11 – andrewlock.net
|
| 16. 11. 2021 | New dependency injection features in .NET 6: Exploring .NET Core 6 - Part 10 – andrewlock.net
|
| 9. 11. 2021 | Source generator updates: incremental generators: Exploring .NET Core 6 - Part 9 – andrewlock.net
|
| 2. 11. 2021 | Improving logging performance with source generators: Exploring .NET Core 6 - Part 8 – andrewlock.net
|
| 26. 10. 2021 | Analyzers for ASP.NET Core in .NET 6: Exploring .NET Core 6 - Part 7 – andrewlock.net
|
| 19. 10. 2021 | Supporting integration tests with WebApplicationFactory in .NET 6: Exploring .NET Core 6 - Part 6 – andrewlock.net
|
| 12. 10. 2021 | Supporting EF Core migrations with WebApplicationBuilder: Exploring .NET Core 6 - Part 5 – andrewlock.net
|
| 5. 10. 2021 | Building a middleware pipeline with WebApplication: Exploring .NET Core 6 - Part 4 – andrewlock.net
|
| 28. 9. 2021 | Exploring the code behind WebApplicationBuilder: Exploring .NET Core 6 - Part 3 – andrewlock.net
|
| 21. 9. 2021 | Comparing WebApplicationBuilder to the Generic Host: Exploring .NET Core 6 - Part 2 – andrewlock.net
|
| 14. 9. 2021 | Looking inside ConfigurationManager in .NET 6: Exploring .NET Core 6 - Part 1 – andrewlock.net
|
| 7. 9. 2021 | Using Source Generators with Blazor components in .NET 6 – andrewlock.net
|
| 31. 8. 2021 | Downloading artifacts from Azure DevOps using .NET – andrewlock.net
|
| 24. 8. 2021 | Rebuilding StronglyTypedId as a source generator - 1.0.0-beta release: Using strongly-typed entity IDs to avoid primitive obsession - Part 7 – andrewlock.net
|
| 17. 8. 2021 | ValueStringBuilder: a stack-based string-builder: A deep dive on StringBuilder - Part 6 – andrewlock.net
|
| 17. 8. 2021 | ValueStringBuilder: a stack-based string-builder: A deep dive on StringBuilder - Part 6 – andrewlock.net
|
| 10. 8. 2021 | Reducing allocations by caching with StringBuilderCache: A deep dive on StringBuilder - Part 5 – andrewlock.net
|
| 3. 8. 2021 | Inserting and removing characters: A deep dive on StringBuilder - Part 4 – andrewlock.net
|
| 27. 7. 2021 | Converting chunks to a string with ToString(): A deep dive on StringBuilder - Part 3 – andrewlock.net
|
| 20. 7. 2021 | Appending strings, built-in types, and lists: A deep dive on StringBuilder - Part 2 – andrewlock.net
|
| 13. 7. 2021 | The overall design and a first look at the internals: A deep dive on StringBuilder - Part 1 – andrewlock.net
|
| 6. 7. 2021 | Adding authentication to a Blazor Server app using Auth0 – andrewlock.net
|
| 29. 6. 2021 | Conditional compilation for ignoring method calls with the ConditionalAttribute – andrewlock.net
|
| 23. 6. 2021 | Using SSH and localhost.run to test GitHub webhooks locally – andrewlock.net
|
| 15. 6. 2021 | Creating Docker multi-arch images for ARM64 from Windows – andrewlock.net
|
| 8. 6. 2021 | Exploring .NET interactive notebooks with VS Code – andrewlock.net
|
| 1. 6. 2021 | Benchmarking 4 reflection methods for calling a constructor in .NET – andrewlock.net
|
| 25. 5. 2021 | How to stop Visual Studio from creating launchsettings.json – andrewlock.net
|
| 18. 5. 2021 | Extending the calculator implementation: Creating a Simple Moving Average calculator in C# - Part 3 – andrewlock.net
|
| 18. 5. 2021 | Extending the calculator implementation: Creating a Simple Moving Average calculator in C# - Part 3 – andrewlock.net
|
| 11. 5. 2021 | Making the calculator thread-safe: Creating a Simple Moving Average calculator in C# - Part 2 – andrewlock.net
|
| 4. 5. 2021 | A Simple Moving Average calculator: Creating a Simple Moving Average calculator in C# - Part 1 – andrewlock.net
|
| 27. 4. 2021 | Trying out the open-source eCommerce platform nopCommerce using Docker – andrewlock.net
|
| 20. 4. 2021 | Fixing build warning NETSSDK1138 when building projects with end-of-life .NET frameworks – andrewlock.net
|
| 13. 4. 2021 | Viewing overwritten configuration values in ASP.NET Core – andrewlock.net
|
| 6. 4. 2021 | ASP.NET Core in Action, Second Edition is available now! – andrewlock.net
|
| 30. 3. 2021 | Viewing app configuration using Oakton's Describe command and Spectre.Console – andrewlock.net
|
| 23. 3. 2021 | Debugging configuration values in ASP.NET Core – andrewlock.net
|
| 16. 3. 2021 | Running Kubernetes and the dashboard with Docker Desktop – andrewlock.net
|
| 9. 3. 2021 | Installing Docker Desktop for Windows and WSL 2 – andrewlock.net
|
| 2. 3. 2021 | Configuring HTTPS using a custom TLS certificate with Netlify and Cloudflare – andrewlock.net
|
| 23. 2. 2021 | Using source generators with a custom attribute to generate a menu component in a Blazor app – andrewlock.net
|
| 16. 2. 2021 | Using source generators to generate a menu component in a Blazor app – andrewlock.net
|
| 9. 2. 2021 | Using source generators to find all routable components in a Blazor WebAssembly app – andrewlock.net
|
| 2. 2. 2021 | Finding all routable components in a Blazor App – andrewlock.net
|
| 26. 1. 2021 | Prerendering a Blazor WebAssembly app to static files, without an ASP.NET Core host app – andrewlock.net
|
| 19. 1. 2021 | Enabling prerendering for Blazor WebAssembly apps – andrewlock.net
|
| 12. 1. 2021 | An introduction to the Data Protection system in ASP.NET Core – andrewlock.net
|
| 5. 1. 2021 | Auto-assigning issues using a GitHub Action: Creating my first GitHub app with Probot - Part 4 – andrewlock.net
|
| 15. 12. 2020 | Should I use self-contained or framework-dependent publishing in Docker images? – andrewlock.net
|
| 8. 12. 2020 | Using action results and content negotiation with "route-to-code" APIs – andrewlock.net
|
| 1. 12. 2020 | Using Quartz.NET with ASP.NET Core and worker services – andrewlock.net
|
| 24. 11. 2020 | Applying the MVC design pattern to Razor Pages – andrewlock.net
|
| 17. 11. 2020 | Tips, tricks, and edge cases: Deploying ASP.NET Core applications to Kubernetes - Part 12 – andrewlock.net
|
| 10. 11. 2020 | Avoiding downtime in rolling deployments by blocking SIGTERM: Deploying ASP.NET Core applications to Kubernetes - Part 11 – andrewlock.net
|
| 3. 11. 2020 | Creating an 'exec-host' deployment for running one-off commands: Deploying ASP.NET Core applications to Kubernetes - Part 10 – andrewlock.net
|
| 27. 10. 2020 | Monitoring Helm releases that use jobs and init containers: Deploying ASP.NET Core applications to Kubernetes - Part 9 – andrewlock.net
|
| 20. 10. 2020 | Running database migrations using jobs and init containers: Deploying ASP.NET Core applications to Kubernetes - Part 8 – andrewlock.net
|
| 13. 10. 2020 | Running database migrations when deploying to Kubernetes: Deploying ASP.NET Core applications to Kubernetes - Part 7 – andrewlock.net
|
| 6. 10. 2020 | Adding health checks with Liveness, Readiness, and Startup probes: Deploying ASP.NET Core applications to Kubernetes - Part 6 – andrewlock.net
|
| 29. 9. 2020 | Setting environment variables for ASP.NET Core apps in a Helm chart: Deploying ASP.NET Core applications to Kubernetes - Part 5 – andrewlock.net
|
| 22. 9. 2020 | Creating a Helm chart for an ASP.NET Core app: Deploying ASP.NET Core applications to Kubernetes - Part 4 – andrewlock.net
|
| 15. 9. 2020 | An introduction to deploying applications with Helm: Deploying ASP.NET Core applications to Kubernetes - Part 3 – andrewlock.net
|
| 8. 9. 2020 | Configuring resources with YAML manifests: Deploying ASP.NET Core applications to Kubernetes - Part 2 – andrewlock.net
|
| 1. 9. 2020 | An Introduction to Kubernetes: Deploying ASP.NET Core applications to Kubernetes - Part 1 – andrewlock.net
|
| 25. 8. 2020 | Should you unit-test API/MVC controllers in ASP.NET Core? – andrewlock.net
|
| 18. 8. 2020 | Controlling IHostedService execution order in ASP.NET Core 3.x – andrewlock.net
|
| 11. 8. 2020 | DI scopes in IHttpClientFactory message handlers don't work like you think they do – andrewlock.net
|
| 4. 8. 2020 | Exploring the code behind IHttpClientFactory in depth – andrewlock.net
|
| 28. 7. 2020 | Detecting duplicate routes in ASP.NET Core: Visualizing ASP.NET Core 3.0 endpoints using GraphvizOnline - Part 5 – andrewlock.net
|
| 21. 7. 2020 | Creating a custom endpoint visualization graph: Visualizing ASP.NET Core 3.0 endpoints using GraphvizOnline - Part 4 – andrewlock.net
|
| 14. 7. 2020 | Creating a custom DfaGraphWriter using ImpromptuInterface for easier reflection: Visualizing ASP.NET Core 3.0 endpoints using GraphvizOnline - Part 3 – andrewlock.net
|
| 7. 7. 2020 | Adding an endpoint graph to your ASP.NET Core application: Visualizing ASP.NET Core 3.0 endpoints using GraphvizOnline - Part 2 – andrewlock.net
|
| 30. 6. 2020 | Visualizing endpoints using the DOT language: Visualizing ASP.NET Core 3.0 endpoints using GraphvizOnline - Part 1 – andrewlock.net
|
| 23. 6. 2020 | Getting started with ASP.NET Core – andrewlock.net
|
| 16. 6. 2020 | Adding host filtering to Kestrel in ASP.NET Core – andrewlock.net
|
| 9. 6. 2020 | Setting global authorization policies using the DefaultPolicy and the FallbackPolicy in ASP.NET Core 3.x – andrewlock.net
|
| 2. 6. 2020 | Customising the ASP.NET Core default UI without editing the PageModels – andrewlock.net
|
| 26. 5. 2020 | Strongly-typed ID update 0.2.1: Using strongly-typed entity IDs to avoid primitive obsession - Part 6 – andrewlock.net
|
| 19. 5. 2020 | Handling Web API Exceptions with ProblemDetails middleware – andrewlock.net
|
| 12. 5. 2020 | Extending the shutdown timeout setting to ensure graceful IHostedService shutdown – andrewlock.net
|
| 5. 5. 2020 | Using jQuery and Bootstrap from a CDN with fallback scripts in ASP.NET Core 3.0 – andrewlock.net
|
| 28. 4. 2020 | Preventing mass assignment or over posting with Razor Pages in ASP.NET Core – andrewlock.net
|
| 21. 4. 2020 | Adding simple email address obfuscation for your blog like Cloudflare Scrape Shield – andrewlock.net
|
| 14. 4. 2020 | How to automatically choose a free port in ASP.NET Core 3.0 – andrewlock.net
|
| 7. 4. 2020 | 5 ways to set the URLs for an ASP.NET Core app – andrewlock.net
|
| 31. 3. 2020 | Accessing route values in endpoint middleware in ASP.NET Core 3.0 – andrewlock.net
|
| 24. 3. 2020 | Replacing AJAX calls in Razor Pages with Razor Components and Blazor – andrewlock.net
|
| 17. 3. 2020 | Don't replace your View Components with Razor Components – andrewlock.net
|
| 10. 3. 2020 | How to fix the order of commits in GitHub Pull Requests – andrewlock.net
|
| 3. 3. 2020 | Creating a custom ErrorHandlerMiddleware function – andrewlock.net
|
| 25. 2. 2020 | When ASP.NET Core can't find your controller: debugging application parts – andrewlock.net
|
| 18. 2. 2020 | Exploring the new rollForward and allowPrerelease settings in global.json: Exploring ASP.NET Core 3.0 - Part 8 – andrewlock.net
|
| 11. 2. 2020 | Creating an endpoint from multiple middleware in ASP.NET Core 3.x – andrewlock.net
|
| 4. 2. 2020 | Inserting middleware between UseRouting() and UseEndpoints() as a library author - Part 2 – andrewlock.net
|
| 28. 1. 2020 | Inserting middleware between UseRouting() and UseEndpoints() as a library author - Part 1 – andrewlock.net
|
| 21. 1. 2020 | Excluding health check endpoints from Serilog request logging: Using Serilog.AspNetCore in ASP.NET Core 3.0 - Part 4 – andrewlock.net
|
| 14. 1. 2020 | Logging MVC properties with Serilog.AspNetCore: Using Serilog.AspNetCore in ASP.NET Core 3.0 - Part 3 – andrewlock.net
|
| 7. 1. 2020 | Logging the selected Endpoint Name with Serilog: Using Serilog.AspNetCore in ASP.NET Core 3.0 - Part 2 – andrewlock.net
|
| 31. 12. 2019 | Reducing log verbosity with Serilog RequestLogging: Using Serilog.AspNetCore in ASP.NET Core 3.0 - Part 1 – andrewlock.net
|
| 17. 12. 2019 | A Quantum Random Number Generator for .NET: The quantum measurement problem and many-worlds approach – andrewlock.net
|
| 10. 12. 2019 | .NET Core, Docker, and Cultures - Solving a culture issue porting a .NET Core app from Windows to Linux – andrewlock.net
|
| 3. 12. 2019 | Converting integration tests to .NET Core 3.0: Upgrading to ASP.NET Core 3.0 - Part 5 – andrewlock.net
|
| 26. 11. 2019 | Converting a terminal middleware to endpoint routing in ASP.NET Core 3.0: Upgrading to ASP.NET Core 3.0 - Part 4 – andrewlock.net
|
| 19. 11. 2019 | Avoiding Startup service injection in ASP.NET Core 3: Upgrading to ASP.NET Core 3.0 - Part 3 – andrewlock.net
|
| 12. 11. 2019 | IHostingEnvironment vs IHostEnvironment - obsolete types in .NET Core 3.0: Upgrading to ASP.NET Core 3.0 - Part 2 – andrewlock.net
|
| 5. 11. 2019 | Converting a .NET Standard 2.0 library to .NET Core 3.0: Upgrading to ASP.NET Core 3.0 - Part 1 – andrewlock.net
|
| 24. 10. 2019 | Simplifying the Cake global tool bootstrapper scripts with .NET Core 3 local tools – andrewlock.net
|
| 22. 10. 2019 | New in .NET Core 3.0: local tools: Exploring ASP.NET Core 3.0 - Part 7 – andrewlock.net
|
| 15. 10. 2019 | Running .NET Core global tools in non-sdk Docker images – andrewlock.net
|
| 8. 10. 2019 | Packaging CLI programs into Docker images to avoid dependency hell – andrewlock.net
|
| 1. 10. 2019 | New in ASP.NET Core 3.0: structured logging for startup messages: Exploring ASP.NET Core 3.0 - Part 6 – andrewlock.net
|
| 26. 9. 2019 | Introducing IHostLifetime and untangling the Generic Host startup interactions: Exploring ASP.NET Core 3.0 - Part 5 – andrewlock.net
|
| 17. 9. 2019 | Running async tasks on app startup in ASP.NET Core 3.0: Exploring ASP.NET Core 3.0 - Part 4 – andrewlock.net
|
| 10. 9. 2019 | New in ASP.NET Core 3: Service provider validation: Exploring ASP.NET Core 3.0 - Part 3 – andrewlock.net
|
| 3. 9. 2019 | Comparing Startup.cs between the ASP.NET Core 3.0 templates: Exploring ASP.NET Core 3.0 - Part 2 – andrewlock.net
|
| 27. 8. 2019 | Exploring the new project file, Program.cs, and the generic host: Exploring ASP.NET Core 3.0 - Part 1 – andrewlock.net
|
| 20. 8. 2019 | Making my first contribution on SourceForge using Mercurial – andrewlock.net
|
| 15. 8. 2019 | A bootstrapper script for the Cake .NET Core Global Tool on Alpine using ash – andrewlock.net
|
| 13. 8. 2019 | A bootstrapper script for the Cake .NET Core Global Tool on Windows – andrewlock.net
|
| 6. 8. 2019 | How to build with Cake on Linux using Cake.CoreCLR or the Cake global tool – andrewlock.net
|
| 30. 7. 2019 | Using the ReferenceAssemblies NuGet package to build .NET Framework libraries on Linux, without installing Mono – andrewlock.net
|
| 23. 7. 2019 | Alternatives to Microsoft.FeatureManagement: Adding feature flags to an ASP.NET Core app - Part 6 – andrewlock.net
|
| 16. 7. 2019 | Generating strongly-typed IDs at build-time with Roslyn: Using strongly-typed entity IDs to avoid primitive obsession - Part 5 – andrewlock.net
|
| 9. 7. 2019 | Exploring Raygun's new application performance monitoring tool for .NET Core – andrewlock.net
|
| 2. 7. 2019 | Verifying phone number ownership with Twilio Verify API v2 using ASP.NET Core Identity and Razor Pages – andrewlock.net
|
| 25. 6. 2019 | Ensuring consistent feature flags across requests: Adding feature flags to an ASP.NET Core app - Part 5 – andrewlock.net
|
| 20. 6. 2019 | Creating a custom feature filter: Adding feature flags to an ASP.NET Core app - Part 4 – andrewlock.net
|
| 18. 6. 2019 | Creating dynamic feature flags with feature filters: Adding feature flags to an ASP.NET Core app - Part 3 – andrewlock.net
|
| 13. 6. 2019 | Filtering action methods with feature flags: Adding feature flags to an ASP.NET Core app - Part 2 – andrewlock.net
|
| 11. 6. 2019 | Introducing Microsoft.FeatureManagement: Adding feature flags to an ASP.NET Core app - Part 1 – andrewlock.net
|
| 4. 6. 2019 | Serializing a PascalCase Newtonsoft.Json JObject to camelCase – andrewlock.net
|
| 28. 5. 2019 | Using scoped services inside a Quartz.NET hosted service with ASP.NET Core – andrewlock.net
|
| 21. 5. 2019 | Creating a Quartz.NET hosted service with ASP.NET Core – andrewlock.net
|
| 14. 5. 2019 | Verifying phone number ownership with Twilio using ASP.NET Core Identity and Razor Pages – andrewlock.net
|
| 7. 5. 2019 | Safely migrating passwords in ASP.NET Core Identity with a custom PasswordHasher – andrewlock.net
|
| 30. 4. 2019 | Validating phone numbers with Twilio using ASP.NET Core Identity and Razor Pages – andrewlock.net
|
| 23. 4. 2019 | Strongly-typed IDs in EF Core (Revisited): Using strongly-typed entity IDs to avoid primitive obsession - Part 4 – andrewlock.net
|
| 16. 4. 2019 | Using strongly-typed entity IDs with EF Core: Using strongly-typed entity IDs to avoid primitive obsession - Part 3 – andrewlock.net
|
| 11. 4. 2019 | Adding JSON converters to strongly typed IDs: Using strongly-typed entity IDs to avoid primitive obsession - Part 2 – andrewlock.net
|
| 9. 4. 2019 | An introduction to strongly-typed entity IDs: Using strongly-typed entity IDs to avoid primitive obsession - Part 1 – andrewlock.net
|
| 2. 4. 2019 | Using Lambda@Edge to handle Angular client-side routing with S3 and CloudFront – andrewlock.net
|
| 26. 3. 2019 | Exploring the .NET Core MCR Docker files (updated): runtime vs aspnet vs sdk – andrewlock.net
|
| 19. 3. 2019 | Creating my first Azure Functions v2.0 app: a WebHook and a timer – andrewlock.net
|
| 14. 3. 2019 | Creating a not-empty GUID validation attribute and a not-default validation attribute – andrewlock.net
|
| 12. 3. 2019 | Why isn't my session state working in ASP.NET Core? Session state, GDPR, and non-essential cookies – andrewlock.net
|
| 5. 3. 2019 | Deploying a GitHub app to Glitch: Creating my first GitHub app with Probot - Part 3 – andrewlock.net
|
| 26. 2. 2019 | Creating the auto-assign-issues bot: Creating my first GitHub app with Probot - Part 2 – andrewlock.net
|
| 19. 2. 2019 | Creating a GitHub app with create-probot-app: Creating my first GitHub app with Probot - Part 1 – andrewlock.net
|
| 12. 2. 2019 | An introduction to ASP.NET Core Razor Pages – andrewlock.net
|
| 5. 2. 2019 | Reducing initial request latency by pre-building services in a startup task in ASP.NET Core – andrewlock.net
|
| 29. 1. 2019 | Using health checks to run async tasks in ASP.NET Core: Running async tasks on app startup in ASP.NET Core - Part 4 – andrewlock.net
|
| 22. 1. 2019 | Feedback on async task examples and another possible solution: Running async tasks on app startup in ASP.NET Core - Part 3 – andrewlock.net
|
| 15. 1. 2019 | Two approaches for running async tasks: Running async tasks on app startup in ASP.NET Core - Part 2 – andrewlock.net
|
| 8. 1. 2019 | Built in options for running async tasks: Running async tasks on app startup in ASP.NET Core - Part 1 – andrewlock.net
|
| 2. 1. 2019 | Using dependency injection with Twilio SMS and ASP.NET Core 2.1 – andrewlock.net
|
| 20. 12. 2018 | Creating an AWS policy for calling the SES mailbox simulator from CodeBuild – andrewlock.net
|
| 18. 12. 2018 | Creating a git repo with Azure Repos and trying out Git LFS – andrewlock.net
|
| 13. 12. 2018 | Dark mode now available! – andrewlock.net
|
| 11. 12. 2018 | Why is string.GetHashCode() different each time I run my program in .NET Core? – andrewlock.net
|
| 6. 12. 2018 | Secure secrets storage for ASP.NET Core with AWS Secrets Manager (Part 2) – andrewlock.net
|
| 4. 12. 2018 | Secure secrets storage for ASP.NET Core with AWS Secrets Manager (Part 1) – andrewlock.net
|
| 27. 11. 2018 | Caching Docker layers on serverless build hosts with multi-stage builds, --target, and --cache-from – andrewlock.net
|
| 22. 11. 2018 | Generating .editorconfig files automatically using IntelliCode – andrewlock.net
|
| 20. 11. 2018 | Creating singleton named options with IOptionsMonitor – andrewlock.net
|
| 13. 11. 2018 | Simplifying dependency injection for IConfigureOptions with the ConfigureOptions() helper – andrewlock.net
|
| 6. 11. 2018 | Delaying strongly-typed options configuration using PostConfigure in ASP.NET Core – andrewlock.net
|
| 30. 10. 2018 | Configuring named options using IConfigureNamedOptions and ConfigureAll – andrewlock.net
|
| 23. 10. 2018 | The dangers and gotchas of using scoped services in IConfigureOptions – andrewlock.net
|
| 16. 10. 2018 | Using multiple instances of strongly-typed settings with named options in .NET Core 2.x – andrewlock.net
|
| 11. 10. 2018 | Building an open source GitHub project using Azure DevOps – andrewlock.net
|
| 9. 10. 2018 | Creating an ASCII-art tree in C# – andrewlock.net
|
| 2. 10. 2018 | Adding decorated classes to the ASP.NET Core DI container using Scrutor – andrewlock.net
|
| 25. 9. 2018 | Using Scrutor to automatically register your services with the ASP.NET Core DI container – andrewlock.net
|
| 18. 9. 2018 | How to register a service with multiple interfaces in ASP.NET Core DI – andrewlock.net
|
| 11. 9. 2018 | The difference between GetService() and GetRequiredService() in ASP.NET Core – andrewlock.net
|
| 4. 9. 2018 | Why isn't my ASP.NET Core environment-specific configuration loading? – andrewlock.net
|
| 28. 8. 2018 | Running smoke tests for ASP.NET Core apps in CI using Docker – andrewlock.net
|
| 21. 8. 2018 | Adding Segment client-side analytics to an ASP.NET Core application – andrewlock.net
|
| 14. 8. 2018 | Using snake case column names with Dapper and PostgreSQL – andrewlock.net
|
| 7. 8. 2018 | Adding Serilog to the ASP.NET Core Generic Host – andrewlock.net
|
| 31. 7. 2018 | The ASP.NET Core Generic Host: namespace clashes and extension methods – andrewlock.net
|
| 24. 7. 2018 | Creating an If Tag Helper to conditionally render content – andrewlock.net
|
| 16. 7. 2018 | Converting web.config files to appsettings.json with a .NET Core global tool – andrewlock.net
|
| 10. 7. 2018 | Adding validation to strongly typed configuration objects in ASP.NET Core – andrewlock.net
|
| 3. 7. 2018 | Building .NET Framework ASP.NET Core apps on Linux using Mono and the .NET CLI – andrewlock.net
|
| 26. 6. 2018 | Building ASP.NET Core apps on both Windows and Linux using AppVeyor – andrewlock.net
|
| 20. 6. 2018 | Writing logs to Elasticsearch with Fluentd using Serilog in ASP.NET Core – andrewlock.net
|
| 12. 6. 2018 | Suppressing the startup and shutdown messages in ASP.NET Core – andrewlock.net
|
| 5. 6. 2018 | Exploring the .NET Core 2.1 Docker files (updated): dotnet:runtime vs aspnetcore-runtime vs sdk – andrewlock.net
|
| 29. 5. 2018 | Pushing NuGet packages built in Docker by running the container – andrewlock.net
|
| 22. 5. 2018 | Setting ASP.NET Core version numbers for a Docker ONBUILD builder image – andrewlock.net
|
| 15. 5. 2018 | Creating NuGet packages in Docker using the .NET Core CLI – andrewlock.net
|
| 8. 5. 2018 | Version vs VersionSuffix vs PackageVersion: What do they all mean? – andrewlock.net
|
| 30. 4. 2018 | Creating a generalised Docker image for building ASP.NET Core apps using ONBUILD – andrewlock.net
|
| 24. 4. 2018 | Optimising ASP.NET Core apps in Docker - avoiding manually copying csproj files (Part 2) – andrewlock.net
|
| 17. 4. 2018 | Using an IActionFilter to read action method parameter values in ASP.NET Core MVC – andrewlock.net
|
| 10. 4. 2018 | Implementing custom token providers for passwordless authentication in ASP.NET Core Identity – andrewlock.net
|
| 3. 4. 2018 | Creating a .NET Core global CLI tool for squashing images with the TinyPNG API – andrewlock.net
|
| 27. 3. 2018 | How to create a Helm chart repository using Amazon S3 – andrewlock.net
|
| 20. 3. 2018 | Exploring the Microsoft.AspNetCore.App shared framework in ASP.NET Core 2.1 (preview 1) – andrewlock.net
|
| 13. 3. 2018 | Fixing Nginx "upstream sent too big header" error when running an ingress controller in Kubernetes – andrewlock.net
|
| 6. 3. 2018 | ASP.NET Core in Action - Filters – andrewlock.net
|
| 27. 2. 2018 | Coming in ASP.NET Core 2.1 - top-level MVC parameter validation – andrewlock.net
|
| 20. 2. 2018 | Gotchas upgrading from IdentityServer 3 to IdentityServer 4 – andrewlock.net
|
| 13. 2. 2018 | Optimising ASP.NET Core apps in Docker - avoiding manually copying csproj files – andrewlock.net
|
| 6. 2. 2018 | Sharing appsettings.json configuration files between projects in ASP.NET Core – andrewlock.net
|
| 30. 1. 2018 | ASP.NET Core in Action - MVC in ASP.NET Core – andrewlock.net
|
| 30. 1. 2018 | Including linked files from outside the project directory in ASP.NET Core – andrewlock.net
|
| 23. 1. 2018 | Creating GitHub pull requests from the command-line with Hub – andrewlock.net
|
| 16. 1. 2018 | Handy Docker commands for local development - Part 2 – andrewlock.net
|
| 8. 1. 2018 | Handy Docker commands for local development - Part 1 – andrewlock.net
|
| 2. 1. 2018 | Exploring the .NET Core Docker files: dotnet vs aspnetcore vs aspnetcore-build – andrewlock.net
|
| 28. 12. 2017 | ASP.NET Core in Action - What is middleware? – andrewlock.net
|
| 19. 12. 2017 | Building ASP.NET Core apps using Cake in Docker – andrewlock.net
|
| 12. 12. 2017 | Creating a .NET Standard Roslyn Analyzer in Visual Studio 2017 – andrewlock.net
|
| 5. 12. 2017 | Using Docker Hub to automatically build a Docker image for ASP.NET Core apps – andrewlock.net
|
| 28. 11. 2017 | Home, home on the range: Installing Kubernetes using Rancher 2.0 – andrewlock.net
|
| 21. 11. 2017 | Creating strongly typed xUnit theory test data with TheoryData – andrewlock.net
|
| 14. 11. 2017 | Creating a custom xUnit theory test DataAttribute to load data from JSON files – andrewlock.net
|
| 7. 11. 2017 | Creating parameterised tests in xUnit with [InlineData], [ClassData], and [MemberData] – andrewlock.net
|
| 31. 10. 2017 | Fixing the error "Program has more than one entry point defined" for console apps containing xUnit tests – andrewlock.net
|
| 26. 10. 2017 | Migrating passwords in ASP.NET Core Identity with a custom PasswordHasher – andrewlock.net
|
| 24. 10. 2017 | Exploring the ASP.NET Core Identity PasswordHasher – andrewlock.net
|
| 19. 10. 2017 | Free .NET Core eBook, including ASP.NET Core and EF Core – andrewlock.net
|
| 17. 10. 2017 | Running tests with dotnet xunit using Cake – andrewlock.net
|
| 10. 10. 2017 | Debugging JWT validation problems between an OWIN app and IdentityServer4 – andrewlock.net
|
| 3. 10. 2017 | Creating and trusting a self-signed certificate on Linux for use in Kestrel and ASP.NET Core – andrewlock.net
|
| 26. 9. 2017 | Using anonymous types and tuples to attach correlation IDs to scope state with Serilog and Seq in ASP.NET Core – andrewlock.net
|
| 19. 9. 2017 | Creating an extension method for attaching key-value pairs to scope state using ASP.NET Core – andrewlock.net
|
| 12. 9. 2017 | How to include scopes when logging exceptions in ASP.NET Core – andrewlock.net
|
| 5. 9. 2017 | Creating a rolling file logging provider for ASP.NET Core 2.0 – andrewlock.net
|
| 29. 8. 2017 | Aligning strings within string.Format and interpolated strings – andrewlock.net
|
| 22. 8. 2017 | Using CancellationTokens in ASP.NET Core MVC controllers – andrewlock.net
|
| 15. 8. 2017 | The SDK 'Microsoft.Net.Sdk.Web' specified could not be found – andrewlock.net
|
| 8. 8. 2017 | Introduction to the ApiExplorer in ASP.NET Core – andrewlock.net
|
| 1. 8. 2017 | How to format response data as XML or JSON, based on the request URL in ASP.NET Core – andrewlock.net
|
| 25. 7. 2017 | Customising ASP.NET Core Identity EF Core naming conventions for PostgreSQL – andrewlock.net
|
| 20. 7. 2017 | Building ASP.NET Core 2.0 preview 2 packages on AppVeyor – andrewlock.net
|
| 18. 7. 2017 | Creating a validator to check for common passwords in ASP.NET Core Identity – andrewlock.net
|
| 13. 7. 2017 | Creating custom password validators for ASP.NET Core Identity – andrewlock.net
|
| 10. 7. 2017 | Localising the DisplayAttribute in ASP.NET Core 1.1 – andrewlock.net
|
| 4. 7. 2017 | When you use the Polly circuit-breaker, make sure you share your Policy instances! – andrewlock.net
|
| 27. 6. 2017 | Controller activation and dependency injection in ASP.NET Core MVC – andrewlock.net
|
| 20. 6. 2017 | Four ways to dispose IDisposables in ASP.NET Core – andrewlock.net
|
| 12. 6. 2017 | Automatically validating anti-forgery tokens in ASP.NET Core with the AutoValidateAntiforgeryTokenAttribute – andrewlock.net
|
| 6. 6. 2017 | Defining custom logging messages with LoggerMessage.Define in ASP.NET Core – andrewlock.net
|
| 1. 6. 2017 | Using ImageSharp to resize images in ASP.NET Core - Part 4: saving to disk – andrewlock.net
|
| 30. 5. 2017 | The Microsoft.AspNetCore.All metapackage is huge, and that's awesome, thanks to the .NET Core runtime store – andrewlock.net
|
| 25. 5. 2017 | How to use multiple hosting environments on the same machine in ASP.NET Core – andrewlock.net
|
| 23. 5. 2017 | Using Razor Pages to simplify basic actions in ASP.NET Core 2.0 preview 1 – andrewlock.net
|
| 16. 5. 2017 | Exploring Program.cs, Startup.cs and CreateDefaultBuilder in ASP.NET Core 2 preview 1 – andrewlock.net
|
| 13. 5. 2017 | The .NET Core 2.0 Preview 1, version numbers and global.json – andrewlock.net
|
| 9. 5. 2017 | Using ImageSharp to resize images in ASP.NET Core - Part 3: caching – andrewlock.net
|
| 30. 4. 2017 | Using ImageSharp to resize images in ASP.NET Core - Part 2 – andrewlock.net
|
| 25. 4. 2017 | Using ImageSharp to resize images in ASP.NET Core - a comparison with CoreCompat.System.Drawing – andrewlock.net
|
| 20. 4. 2017 | Creating a basic Web API template using dotnet new custom templates – andrewlock.net
|
| 18. 4. 2017 | Removing the MVC Razor dependencies from the Web API template in ASP.NET Core – andrewlock.net
|
| 11. 4. 2017 | Creating and editing solution files with the .NET CLI – andrewlock.net
|
| 6. 4. 2017 | Getting started with ASP.NET Core – andrewlock.net
|
| 4. 4. 2017 | Adding favicons to your ASP.NET Core website with Real Favicon Generator – andrewlock.net
|
| 30. 3. 2017 | Retrieving the path that generated an error with the StatusCodePages Middleware – andrewlock.net
|
| 27. 3. 2017 | Re-execute the middleware pipeline with the StatusCodePages Middleware to create custom error pages – andrewlock.net
|
| 23. 3. 2017 | Deconstructors for non-tuple types in C# 7.0 – andrewlock.net
|
| 21. 3. 2017 | Preventing mass assignment or over posting in ASP.NET Core – andrewlock.net
|
| 16. 3. 2017 | Git integration improvements in Visual Studio 2017 - git-hooks – andrewlock.net
|
| 14. 3. 2017 | What is the NETStandard.Library metapackage? – andrewlock.net
|
| 9. 3. 2017 | What is the Microsoft.AspNetCore metapackage? – andrewlock.net
|
| 7. 3. 2017 | Supporting both LTS and Current releases for ASP.NET Core – andrewlock.net
|
| 28. 2. 2017 | Using routing DataTokens in ASP.NET Core – andrewlock.net
|
| 21. 2. 2017 | Under the hood of the Middleware Analysis package – andrewlock.net
|
| 10. 2. 2017 | Understanding your middleware pipeline with the Middleware Analysis package – andrewlock.net
|
| 7. 2. 2017 | Exploring IStartupFilter in ASP.NET Core – andrewlock.net
|
| 31. 1. 2017 | Logging using DiagnosticSource in ASP.NET Core – andrewlock.net
|
| 24. 1. 2017 | Reloading strongly typed options in ASP.NET Core 1.1.0 – andrewlock.net
|
| 17. 1. 2017 | How to pass parameters to a view component – andrewlock.net
|
| 10. 1. 2017 | An introduction to ViewComponents - a login status view component – andrewlock.net
|
| 3. 1. 2017 | Understanding and updating package versions for .NET Core 1.0.3 – andrewlock.net
|
| 20. 12. 2016 | Redirecting unknown cultures when using the url culture provider: Adding a URL culture provider using middleware as filters - Part 5 – andrewlock.net
|
| 13. 12. 2016 | Using a culture constraint and redirecting 404s with the url culture provider: Adding a URL culture provider using middleware as filters - Part 4 – andrewlock.net
|
| 6. 12. 2016 | Applying the RouteDataRequest CultureProvider globally with middleware as filters: Adding a URL culture provider using middleware as filters - Part 3 – andrewlock.net
|
| 29. 11. 2016 | Url culture provider using middleware as filters in ASP.NET Core 1.1.0: Adding a URL culture provider using middleware as filters - Part 2 – andrewlock.net
|
| 22. 11. 2016 | Exploring Middleware as MVC Filters in ASP.NET Core 1.1: Adding a URL culture provider using middleware as filters - Part 1 – andrewlock.net
|
| 17. 11. 2016 | Troubleshooting ASP.NET Core 1.1.0 install problems – andrewlock.net
|
| 15. 11. 2016 | Making ConcurrentDictionary GetOrAdd thread safe using Lazy – andrewlock.net
|
| 11. 11. 2016 | Fixing a bug: when concatenated strings turn into numbers in JavaScript – andrewlock.net
|
| 8. 11. 2016 | Using dependency injection in a .Net Core console application – andrewlock.net
|
| 1. 11. 2016 | Adding Cache-Control headers to Static Files in ASP.NET Core – andrewlock.net
|
| 27. 10. 2016 | Accessing services when configuring MvcOptions in ASP.NET Core – andrewlock.net
|
| 25. 10. 2016 | Resource-based authorisation in ASP.NET Core – andrewlock.net
|
| 18. 10. 2016 | Modifying the UI based on user authorisation in ASP.NET Core – andrewlock.net
|
| 11. 10. 2016 | Custom authorisation policies and requirements in ASP.NET Core – andrewlock.net
|
| 4. 10. 2016 | Introduction to Authorisation in ASP.NET Core – andrewlock.net
|
| 29. 9. 2016 | Injecting services into ValidationAttributes in ASP.NET Core – andrewlock.net
|
| 27. 9. 2016 | Localising the DisplayAttribute and avoiding magic strings in ASP.NET Core – andrewlock.net
|
| 22. 9. 2016 | How to use machine-specific configuration with ASP.NET Core – andrewlock.net
|
| 20. 9. 2016 | Adding Localisation to an ASP.NET Core application – andrewlock.net
|
| 14. 9. 2016 | Viewing what's changed in ASP.NET Core 1.0.1 – andrewlock.net
|
| 14. 9. 2016 | HTML minification using WebMarkupMin in ASP.NET Core – andrewlock.net
|
| 12. 9. 2016 | Configuring environment specific services in ASP.NET Core - Part 2 – andrewlock.net
|
| 8. 9. 2016 | Configuring environment specific services for dependency injection in ASP.NET Core – andrewlock.net
|
| 3. 9. 2016 | An introduction to OpenID Connect in ASP.NET Core – andrewlock.net
|
| 1. 9. 2016 | POST-REDIRECT-GET using TempData in ASP.NET Core – andrewlock.net
|
| 27. 8. 2016 | An introduction to OAuth 2.0 using Facebook in ASP.NET Core – andrewlock.net
|
| 25. 8. 2016 | An introduction to Session storage in ASP.NET Core – andrewlock.net
|
| 23. 8. 2016 | A look behind the JWT bearer authentication middleware in ASP.NET Core – andrewlock.net
|
| 18. 8. 2016 | How to set the hosting environment in ASP.NET Core – andrewlock.net
|
| 11. 8. 2016 | Access services inside ConfigureServices using IConfigureOptions in ASP.NET Core – andrewlock.net
|
| 7. 8. 2016 | Exploring the cookie authentication middleware in ASP.NET Core – andrewlock.net
|
| 7. 8. 2016 | Introduction to Authentication with ASP.NET Core – andrewlock.net
|
| 24. 7. 2016 | Forking the pipeline - adding tenant-specific files with SaasKit in ASP.NET Core – andrewlock.net
|
| 24. 7. 2016 | Loading tenants from the database with SaasKit - Part 2, Caching – andrewlock.net
|
| 14. 7. 2016 | Loading tenants from the database with SaasKit in ASP.NET Core – andrewlock.net
|
| 12. 7. 2016 | Adding EF Core and PostgreSQL to an ASP.NET Core project on OS X – andrewlock.net
|
| 3. 7. 2016 | How to configure urls for Kestrel, WebListener and IIS express in ASP.NET Core – andrewlock.net
|
| 28. 6. 2016 | Getting started with StructureMap in ASP.NET Core – andrewlock.net
|
| 23. 6. 2016 | Reloading strongly typed Options on file changes in ASP.NET Core RC2 – andrewlock.net
|
| 16. 6. 2016 | Creating a custom ConfigurationProvider in ASP.NET Core to parse YAML – andrewlock.net
|
| 12. 6. 2016 | Adding Travis CI builds to a .NET Core app – andrewlock.net
|
| 9. 6. 2016 | Publishing your first .NET Core NuGet package with AppVeyor and MyGet – andrewlock.net
|
| 4. 6. 2016 | Introduction to integration testing with xUnit and TestServer in ASP.NET Core – andrewlock.net
|
| 30. 5. 2016 | Use project.lock.json to troubleshoot dotnet restore problems – andrewlock.net
|
| 27. 5. 2016 | A deep dive into the ASP.NET Core CORS library – andrewlock.net
|
| 21. 5. 2016 | How to use the IOptions pattern for configuration in ASP.NET Core RC2 – andrewlock.net
|
| 19. 5. 2016 | How to add default security headers in ASP.NET Core using custom middleware – andrewlock.net
|
| 14. 5. 2016 | Model binding JSON POSTs in ASP.NET Core – andrewlock.net
|
| 11. 5. 2016 | Understanding .NET Core, NETStandard, .NET Core applications and ASP.NET Core – andrewlock.net
|
| 5. 5. 2016 | Starting a blog to get yourself noticed – andrewlock.net |