corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a08795-666b-735f-8492-f3ad03df95a7", "title": "Server-Sent Events in ASP.NET Core and .NET 10", "url": "https://khalidabuhakmeh.com/posts/server-sent-events-in-aspnet-core-and-dotnet-10/", "published_at": "2025-04-22T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbff59329", "title": "Generic C# Methods with Enum Constraints for .NET", "url": "https://khalidabuhakmeh.com/posts/generic-csharp-methods-with-enum-constraints-for-dotnet/", "published_at": "2025-03-04T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad1091f650", "title": "Strongly-Typed Markdown for ASP.NET Core Content Apps", "url": "https://khalidabuhakmeh.com/posts/strongly-typed-markdown-for-aspnet-core-content-apps/", "published_at": "2025-02-25T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad14b2b637", "title": "The Curious Case of .NET ConcurrentDictionary and Closures", "url": "https://khalidabuhakmeh.com/posts/the-curious-case-of-dotnet-concurrentdictionary-and-closures/", "published_at": "2025-02-18T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac80710156", "title": "ASP.NET Core and Chunking HTTP Cookies", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-and-chunking-http-cookies/", "published_at": "2025-02-11T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad26d9ecc4", "title": "Vogen and Value Objects with C# and .NET", "url": "https://khalidabuhakmeh.com/posts/vogen-and-value-objects-with-csharp-and-dotnet/", "published_at": "2025-02-04T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acdca00069", "title": "Initialize ASP.NET Core TagHelpers with Shared Data", "url": "https://khalidabuhakmeh.com/posts/initialize-aspnet-core-taghelpers-with-shared-data/", "published_at": "2025-01-14T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8cee718b8", "title": "Writing a String Numeric Comparer with .NET 9", "url": "https://khalidabuhakmeh.com/posts/writing-a-string-numeric-comparer-with-dotnet-9/", "published_at": "2025-01-07T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc4ea1429", "title": "Great .NET Documentation with Astro, Starlight, and MarkdownSnippets", "url": "https://khalidabuhakmeh.com/posts/great-dotnet-documentation-with-astro-starlight-and-markdownsnippets/", "published_at": "2024-12-31T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7e7950ec", "title": "Alpine.Js Polling ASP.NET Core APIs For Updates", "url": "https://khalidabuhakmeh.com/posts/alpinejs-polling-aspnet-core-apis-for-updates/", "published_at": "2024-12-24T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac9063ee8c", "title": "Building a Persistent Counter with Alpine.Js", "url": "https://khalidabuhakmeh.com/posts/building-a-persistent-counter-with-alpinejs/", "published_at": "2024-12-17T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acacdba836", "title": "Dynamic Htmx Islands with ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/dynamic-htmx-islands-with-aspnet-core/", "published_at": "2024-11-19T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad1b919486", "title": "Update HTML Elements with Htmx Triggers and ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/update-html-elements-with-htmx-triggers-and-aspnet-core/", "published_at": "2024-10-22T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7ab9ffd0", "title": "Add EF Core Migrations to .NET Aspire Solutions", "url": "https://khalidabuhakmeh.com/posts/add-ef-core-migrations-to-dotnet-aspire-solutions/", "published_at": "2024-10-08T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd5608d98", "title": "Htmx and Playwright Tests in C#", "url": "https://khalidabuhakmeh.com/posts/htmx-and-playwright-tests-in-csharp/", "published_at": "2024-09-24T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acde9306f1", "title": "Intersperse Values for Enumerable Collections", "url": "https://khalidabuhakmeh.com/posts/intersperse-values-for-enumerable-collections/", "published_at": "2024-09-10T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac95664361", "title": "Checked and Unchecked Arithmetic Operations in .NET", "url": "https://khalidabuhakmeh.com/posts/checked-and-unchecked-arithmetic-operations-in-dotnet/", "published_at": "2024-08-27T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac9953f179", "title": "Confirmation Dialogs with Htmx and SweetAlert", "url": "https://khalidabuhakmeh.com/posts/confirmation-dialogs-with-htmx-and-sweetalert/", "published_at": "2024-08-20T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acce88ed2d", "title": "How To Pick The Right Constructor When Using ActivatorUtilities In .NET", "url": "https://khalidabuhakmeh.com/posts/how-to-pick-the-right-constructor-when-using-activatorutilities-in-dotnet/", "published_at": "2024-08-13T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7976b1fd", "title": "Add a Property to the Top-level Statements Program class", "url": "https://khalidabuhakmeh.com/posts/add-a-property-to-the-top-level-statements-program-class/", "published_at": "2024-08-06T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb8fd5eb5", "title": "Fix .NET MAUI MissingEntitlement and Provisioning Profiles Issues", "url": "https://khalidabuhakmeh.com/posts/fix-dotnet-maui-missingentitlement-and-provisioning-profiles-issues/", "published_at": "2024-07-30T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc7b60dc7", "title": "Health Checks for ASP.NET Core and Entity Framework Core", "url": "https://khalidabuhakmeh.com/posts/health-checks-for-aspnet-core-and-entity-framework-core/", "published_at": "2024-07-23T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3accbbb87b2", "title": "How To Fix .NET Nullability Warnings For Guarded Members", "url": "https://khalidabuhakmeh.com/posts/how-to-fix-dotnet-nullability-warnings-for-guarded-members/", "published_at": "2024-07-16T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd2a7d039", "title": "HTML Datalist for ASP.NET Core Inputs", "url": "https://khalidabuhakmeh.com/posts/html-datalist-for-aspnet-core-inputs/", "published_at": "2024-07-09T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd38a0562", "title": "HTML Range Inputs with ASP.NET Core TagHelpers", "url": "https://khalidabuhakmeh.com/posts/html-range-inputs-with-aspnet-core-taghelpers/", "published_at": "2024-07-02T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd4573f85", "title": "HTML5 Validation for ASP.NET Core Models and Razor Views", "url": "https://khalidabuhakmeh.com/posts/html5-validation-for-aspnet-core-models-and-razor-views/", "published_at": "2024-06-25T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8ca20117d", "title": "What is HSTS and why is it in my ASP.NET Core app?", "url": "https://khalidabuhakmeh.com/posts/what-is-hsts-and-why-is-it-in-my-aspnet-core-app/", "published_at": "2024-06-18T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3accafa06a6", "title": "How To Encrypt ASP.NET Core Route Parameters", "url": "https://khalidabuhakmeh.com/posts/how-to-encrypt-aspnet-core-route-parameters/", "published_at": "2024-06-11T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad0cc1393e", "title": "State Machines, Light Switches, and Space Travel with Stateless and .NET 8", "url": "https://khalidabuhakmeh.com/posts/state-machines-light-switches-and-space-travel-with-stateless-and-dotnet-8/", "published_at": "2024-06-04T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac8ccd7c24", "title": "Blazor HTML Forms, Submitting, and Antiforgery Tokens", "url": "https://khalidabuhakmeh.com/posts/blazor-html-forms-submitting-and-antiforgery-tokens/", "published_at": "2024-05-28T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb9469564", "title": "Fix Missing OpenAPI Elements From ASP.NET Core Minimal API Apps", "url": "https://khalidabuhakmeh.com/posts/fix-missing-openapi-elements-from-aspnet-core-minimal-api-apps/", "published_at": "2024-05-21T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac8615fc03", "title": "ASP.NET Core, SSR Web Components, and Enhance Wasm", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-ssr-web-components-and-enhance-wasm/", "published_at": "2024-05-14T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc8f834bd", "title": "How to add HTTP headers to Blazor Components with RazorComponentResult", "url": "https://khalidabuhakmeh.com/posts/how-to-add-http-headers-to-blazor-components-with-razorcomponentresult/", "published_at": "2024-05-07T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8cbe7fd69", "title": "Working with Rust Libraries from C# .NET Applications", "url": "https://khalidabuhakmeh.com/posts/working-with-rust-libraries-from-csharp-dotnet-applications/", "published_at": "2024-04-30T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb9e743af", "title": "Fix Unable To Resolve DbContextOptions For EF Core", "url": "https://khalidabuhakmeh.com/posts/fix-unable-to-resolve-dbcontextoptions-for-ef-core/", "published_at": "2024-04-23T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb3fc51b6", "title": "Event Queues and Buffering Functions with JavaScript", "url": "https://khalidabuhakmeh.com/posts/event-queues-and-buffering-functions-with-javascript/", "published_at": "2024-04-16T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acee395428", "title": "Output CSV Results to Console Table in Rust", "url": "https://khalidabuhakmeh.com/posts/output-csv-results-to-console-table-in-rust/", "published_at": "2024-04-09T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acfd172910", "title": "Responsive Images Crash Course for ASP.NET Core Developers", "url": "https://khalidabuhakmeh.com/posts/responsive-images-crash-course-for-aspnet-core-developers/", "published_at": "2024-04-02T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3accf11ddde", "title": "How To SSR Web Components In ASP.NET Core using TagHelpers", "url": "https://khalidabuhakmeh.com/posts/how-to-ssr-web-components-in-aspnet-core-using-taghelpers/", "published_at": "2024-03-26T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac8dcdebac", "title": "Blazor's CSS isolation ::deep issue and solution", "url": "https://khalidabuhakmeh.com/posts/blazors-css-isolation-deep-issue-and-solution/", "published_at": "2024-03-19T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd0eb20a0", "title": "How to use No-Class Frameworks to Move Fast in Style", "url": "https://khalidabuhakmeh.com/posts/how-to-use-no-class-frameworks-to-move-fast-in-style/", "published_at": "2024-03-12T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acccdd2081", "title": "How to Integrate HTMX and Shoelace Web Components", "url": "https://khalidabuhakmeh.com/posts/how-to-integrate-htmx-and-shoelace-web-components/", "published_at": "2024-03-05T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad0542cc9c", "title": "Shoelace Web Components with ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/shoelace-web-components-with-aspnet-core/", "published_at": "2024-02-27T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3accdccf8a6", "title": "How to Map SQL Results To Any Object Using Entity Framework Core 8", "url": "https://khalidabuhakmeh.com/posts/how-to-map-sql-results-to-any-object-using-entity-framework-core-8/", "published_at": "2024-02-20T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acdbd2ccb0", "title": "Increase Performance with Complex Types in Entity Framework Core 8", "url": "https://khalidabuhakmeh.com/posts/increase-performance-with-complex-types-in-entity-framework-core-8/", "published_at": "2024-02-13T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd441be12", "title": "HTML Web Components with Vanilla JavaScript and ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/html-web-components-with-vanilla-javascript-and-aspnet-core/", "published_at": "2024-02-06T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acabd634f7", "title": ".NET Tasks, List's ForEach, and Problems", "url": "https://khalidabuhakmeh.com/posts/dotnet-tasks-lists-foreach-and-problems/", "published_at": "2024-01-30T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3accf46b5aa", "title": "How To Use Blazor Server-Rendered Components with HTMX", "url": "https://khalidabuhakmeh.com/posts/how-to-use-blazor-server-rendered-components-with-htmx/", "published_at": "2024-01-23T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd062e4e0", "title": "How to use IAsyncEnumerable with Blazor Stream Rendering", "url": "https://khalidabuhakmeh.com/posts/how-to-use-iasyncenumerable-with-blazor-stream-rendering/", "published_at": "2024-01-16T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad268eb5c6", "title": "View Transitions API with ASP.NET Core and HTMX", "url": "https://khalidabuhakmeh.com/posts/view-transitions-api-with-aspnet-core-and-htmx/", "published_at": "2024-01-09T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd24438b8", "title": "How to Write a .NET Markdig Extension for Markdown Processing", "url": "https://khalidabuhakmeh.com/posts/how-to-write-a-dotnet-markdig-extension-for-markdown-processing/", "published_at": "2024-01-02T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb4c1e8fb", "title": "Faster .NET Database Integration Tests with Respawn and xUnit", "url": "https://khalidabuhakmeh.com/posts/faster-dotnet-database-integration-tests-with-respawn-and-xunit/", "published_at": "2023-12-26T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace547d4e2", "title": "MemoizR - Declarative Structured Concurrency for C#", "url": "https://khalidabuhakmeh.com/posts/memoizr-declarative-structured-concurrency-for-csharp/", "published_at": "2023-12-19T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad140db622", "title": "Testing Typesense search with Testcontainers and .NET", "url": "https://khalidabuhakmeh.com/posts/testing-typesense-search-with-testcontainers-and-dotnet/", "published_at": "2023-12-12T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd198151a", "title": "How to use Regular Expressions and Match Evaluators in .NET", "url": "https://khalidabuhakmeh.com/posts/how-to-use-regular-expressions-and-match-evaluators-in-dotnet/", "published_at": "2023-12-05T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad0016ed9e", "title": "Scriban for Text and Liquid Templating in .NET", "url": "https://khalidabuhakmeh.com/posts/scriban-for-text-and-liquid-templating-in-dotnet/", "published_at": "2023-11-28T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac84be4377", "title": "ASP.NET Core PDF Previews and Downloads", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-pdf-previews-and-downloads/", "published_at": "2023-11-21T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad25b45ad2", "title": "VestPocket: File-based Data Storage for AOT .NET Applications", "url": "https://khalidabuhakmeh.com/posts/vestpocket-file-based-data-storage-for-aot-dotnet-applications/", "published_at": "2023-11-14T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace8f89e00", "title": "MoonSharp - Running Lua Scripts in .NET", "url": "https://khalidabuhakmeh.com/posts/moonsharp-running-lua-scripts-in-dotnet/", "published_at": "2023-11-07T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8cb32d675", "title": "What Should I Dispose with .NET Database Connections?", "url": "https://khalidabuhakmeh.com/posts/what-should-i-dispose-with-dotnet-database-connections/", "published_at": "2023-10-31T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc34c90e4", "title": "Global Endpoint Filters with ASP.NET Core Minimal APIs", "url": "https://khalidabuhakmeh.com/posts/global-endpoint-filters-with-aspnet-core-minimal-apis/", "published_at": "2023-10-24T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf5745739", "title": "RazorSlices - Razor Views with ASP.NET Core Minimal APIs", "url": "https://khalidabuhakmeh.com/posts/razorslices-razor-views-with-aspnet-core-minimal-apis/", "published_at": "2023-10-17T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3accfc386fb", "title": "How To Use Embedded Resources in .NET", "url": "https://khalidabuhakmeh.com/posts/how-to-use-embedded-resources-in-dotnet/", "published_at": "2023-10-10T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acca68bba8", "title": "How To Display .NET Collections with the Oxford Comma", "url": "https://khalidabuhakmeh.com/posts/how-to-display-dotnet-collections-with-the-oxford-comma/", "published_at": "2023-10-03T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3accc896194", "title": "How To Fix Feature Folders View Errors with JetBrains Annotations (Rider and ReSharper)", "url": "https://khalidabuhakmeh.com/posts/how-to-fix-feature-folders-view-errors-with-jetbrains-annotations-rider-and-resharper/", "published_at": "2023-09-26T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad12056b9e", "title": "System.Text.Json JsonConverter Test Helpers", "url": "https://khalidabuhakmeh.com/posts/systemtextjson-jsonconverter-test-helpers/", "published_at": "2023-09-19T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acacc0b0be", "title": "Dumb Developer Tricks - Fizz Buzz with C# 12 and Polly", "url": "https://khalidabuhakmeh.com/posts/dumb-developer-tricks-fizz-buzz-with-csharp-12-and-polly/", "published_at": "2023-09-12T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aceadce4c4", "title": "Multi-tenancy with ASP.NET Core and FinBuckle.Multitenant", "url": "https://khalidabuhakmeh.com/posts/multi-tenancy-with-aspnet-core-and-finbuckle-multitenant/", "published_at": "2023-09-05T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace4fd1627", "title": "Measuring Unicode String Lengths with C#", "url": "https://khalidabuhakmeh.com/posts/measuring-unicode-string-lengths-with-csharp/", "published_at": "2023-08-29T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace6dcc509", "title": "MiniWord - Microsoft Office Word Templating", "url": "https://khalidabuhakmeh.com/posts/miniword-microsoft-office-word-templating/", "published_at": "2023-08-22T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad06ee6491", "title": "Sisk - An Alternative .NET HTTP Server", "url": "https://khalidabuhakmeh.com/posts/sisk-an-alternative-dotnet-http-server/", "published_at": "2023-08-15T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca5bbf539", "title": ".NET 8 Interceptors", "url": "https://khalidabuhakmeh.com/posts/dotnet-8-interceptors/", "published_at": "2023-08-08T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbe718371", "title": "Generate Sitemaps for All of ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/generate-sitemaps-for-all-of-aspnet-core/", "published_at": "2023-08-01T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca6736bdd", "title": ".NET 8 TimeProvider and Unit Tests", "url": "https://khalidabuhakmeh.com/posts/dotnet-8-timeprovider-and-unit-tests/", "published_at": "2023-07-25T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca163da8c", "title": "C# Records, the With Keyword, and Reference Types", "url": "https://khalidabuhakmeh.com/posts/csharp-records-the-with-keyword-and-reference-types/", "published_at": "2023-07-18T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd634661c", "title": "HTMX, ASP.NET Core, and Bootstrap Modals", "url": "https://khalidabuhakmeh.com/posts/htmx-aspnet-core-and-bootstrap-modals/", "published_at": "2023-07-11T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7c3e9673", "title": "Adding a Readme to NuGet Package Landing Pages", "url": "https://khalidabuhakmeh.com/posts/adding-a-readme-to-nuget-package-landing-pages/", "published_at": "2023-07-04T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd67420c8", "title": "HTMX Boosts and ASP.NET Core Anti-Forgery Tokens", "url": "https://khalidabuhakmeh.com/posts/htmx-boosts-and-aspnet-core-anti-forgery-tokens/", "published_at": "2023-06-27T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad22c90536", "title": "Using StringBuilder To Replace Values", "url": "https://khalidabuhakmeh.com/posts/using-stringbuilder-to-replace-values/", "published_at": "2023-06-20T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad16e0ace3", "title": "The Privilege of .NET Tooling Choices", "url": "https://khalidabuhakmeh.com/posts/the-privilege-of-dotnet-tooling-choices/", "published_at": "2023-06-13T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb2913094", "title": "Entity Framework Core 7: Filtering on JSON Arrays", "url": "https://khalidabuhakmeh.com/posts/entity-framework-core-7-filtering-on-json-arrays/", "published_at": "2023-06-06T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acdf42243c", "title": "JavaScript Import Maps For ASP.NET Core Developers", "url": "https://khalidabuhakmeh.com/posts/javascript-import-maps-for-aspnet-core-developers/", "published_at": "2023-05-30T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8cfbf97e6", "title": "XUnit Tests, JetBrains Rider, and Counting Until Failure", "url": "https://khalidabuhakmeh.com/posts/xunit-tests-jetbrains-rider-and-counting-until-failure/", "published_at": "2023-05-23T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aceec4fbd1", "title": "Override Razor Pages Routes From Razor Class Libraries", "url": "https://khalidabuhakmeh.com/posts/override-razor-pages-routes-from-razor-class-libraries/", "published_at": "2023-05-16T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace4d27cb6", "title": "Manage Vite Assets Like A Pro", "url": "https://khalidabuhakmeh.com/posts/manage-vite-assets-like-a-pro/", "published_at": "2023-05-09T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acff5b1ff9", "title": "Running Vite with ASP.NET Core Web Applications", "url": "https://khalidabuhakmeh.com/posts/running-vite-with-aspnet-core-web-applications/", "published_at": "2023-05-02T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad1ac01d00", "title": "Unit Test 11ty Pages With Vitest and Typescript", "url": "https://khalidabuhakmeh.com/posts/unit-test-11ty-pages-with-vitest-and-typescript/", "published_at": "2023-04-25T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8ce9b6476", "title": "Writing a Cross-Platform Clock App With Avalonia UI and NXUI", "url": "https://khalidabuhakmeh.com/posts/writing-a-cross-platform-clock-app-with-avalonia-ui-and-nxui/", "published_at": "2023-04-18T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca297b3f3", "title": "Dependency Injection with Avalonia UI Apps", "url": "https://khalidabuhakmeh.com/posts/dependency-injection-with-avalonia-ui-apps/", "published_at": "2023-04-11T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace2b5ccef", "title": "Load YouTube Embed Videos When Needed With JavaScript", "url": "https://khalidabuhakmeh.com/posts/load-youtube-embed-videos-with-javascript/", "published_at": "2023-04-04T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca90cf935", "title": ".NET MAUI App Stopped Working -- HELP!", "url": "https://khalidabuhakmeh.com/posts/dotnet-maui-app-stopped-working-help/", "published_at": "2023-03-28T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca90fbf4c", "title": ".NET MAUI Development Environment Set Up Walkthrough", "url": "https://khalidabuhakmeh.com/posts/dotnet-maui-development-environment-set-up-walkthrough/", "published_at": "2023-03-21T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad093c23ea", "title": "Solving .NET JSON Deserialization Issues", "url": "https://khalidabuhakmeh.com/posts/solving-dotnet-json-deserialization-issues/", "published_at": "2023-03-14T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad239fd36d", "title": "Validating Connection Strings on .NET Startup", "url": "https://khalidabuhakmeh.com/posts/validating-connection-strings-on-dotnet-startup/", "published_at": "2023-03-07T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad0b32b7b5", "title": "Speed Up ASP.NET Core JSON APIs with Source Generators", "url": "https://khalidabuhakmeh.com/posts/speed-up-aspnet-core-json-apis-with-source-generators/", "published_at": "2023-02-28T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac96572627", "title": "Combining 11ty Static Site Generator with ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/combining-11ty-static-site-generator-with-aspnet-core/", "published_at": "2023-02-21T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbf84329a", "title": "Generating Bogus HTTP Endpoints with ASP.NET Core Minimal APIs", "url": "https://khalidabuhakmeh.com/posts/generating-bogus-http-endpoints-with-aspnet-core-minimal-apis/", "published_at": "2023-02-14T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd05571a6", "title": "How to use Entity Framework Core in ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/how-to-use-entity-framework-core-in-aspnet-core/", "published_at": "2023-02-07T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acfa973626", "title": "Register MAUI Views and ViewModels with Scrutor", "url": "https://khalidabuhakmeh.com/posts/register-maui-views-and-viewmodels-with-scrutor/", "published_at": "2023-01-31T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf4c0f1c4", "title": "Programming SVGs with C#", "url": "https://khalidabuhakmeh.com/posts/programming-svgs-with-csharp-dotnet/", "published_at": "2023-01-24T00:00:00+00:00" } ] posts
Claim your blog
Back to khalidabuhakmeh.com
Blog · corpus.blog/blogs/khalidabuhakmeh.com/posts
khalidabuhakmeh.com
khalidabuhakmeh.com
2025
Server-Sent Events in ASP.NET Core and .NET 10
original ↗
22 Apr 2025
Generic C# Methods with Enum Constraints for .NET
original ↗
4 Mar 2025
Strongly-Typed Markdown for ASP.NET Core Content Apps
original ↗
25 Feb 2025
The Curious Case of .NET ConcurrentDictionary and Closures
original ↗
18 Feb 2025
ASP.NET Core and Chunking HTTP Cookies
original ↗
11 Feb 2025
Vogen and Value Objects with C# and .NET
original ↗
4 Feb 2025
Initialize ASP.NET Core TagHelpers with Shared Data
original ↗
14 Jan 2025
Writing a String Numeric Comparer with .NET 9
original ↗
7 Jan 2025
2024
Great .NET Documentation with Astro, Starlight, and MarkdownSnippets
original ↗
31 Dec 2024
Alpine.Js Polling ASP.NET Core APIs For Updates
original ↗
24 Dec 2024
Building a Persistent Counter with Alpine.Js
original ↗
17 Dec 2024
Dynamic Htmx Islands with ASP.NET Core
original ↗
19 Nov 2024
Update HTML Elements with Htmx Triggers and ASP.NET Core
original ↗
22 Oct 2024
Add EF Core Migrations to .NET Aspire Solutions
original ↗
8 Oct 2024
Htmx and Playwright Tests in C#
original ↗
24 Sept 2024
Intersperse Values for Enumerable Collections
original ↗
10 Sept 2024
Checked and Unchecked Arithmetic Operations in .NET
original ↗
27 Aug 2024
Confirmation Dialogs with Htmx and SweetAlert
original ↗
20 Aug 2024
How To Pick The Right Constructor When Using ActivatorUtilities In .NET
original ↗
13 Aug 2024
Add a Property to the Top-level Statements Program class
original ↗
6 Aug 2024
Fix .NET MAUI MissingEntitlement and Provisioning Profiles Issues
original ↗
30 Jul 2024
Health Checks for ASP.NET Core and Entity Framework Core
original ↗
23 Jul 2024
How To Fix .NET Nullability Warnings For Guarded Members
original ↗
16 Jul 2024
HTML Datalist for ASP.NET Core Inputs
original ↗
9 Jul 2024
HTML Range Inputs with ASP.NET Core TagHelpers
original ↗
2 Jul 2024
HTML5 Validation for ASP.NET Core Models and Razor Views
original ↗
25 Jun 2024
What is HSTS and why is it in my ASP.NET Core app?
original ↗
18 Jun 2024
How To Encrypt ASP.NET Core Route Parameters
original ↗
11 Jun 2024
State Machines, Light Switches, and Space Travel with Stateless and .NET 8
original ↗
4 Jun 2024
Blazor HTML Forms, Submitting, and Antiforgery Tokens
original ↗
28 May 2024
Fix Missing OpenAPI Elements From ASP.NET Core Minimal API Apps
original ↗
21 May 2024
ASP.NET Core, SSR Web Components, and Enhance Wasm
original ↗
14 May 2024
How to add HTTP headers to Blazor Components with RazorComponentResult
original ↗
7 May 2024
Working with Rust Libraries from C# .NET Applications
original ↗
30 Apr 2024
Fix Unable To Resolve DbContextOptions For EF Core
original ↗
23 Apr 2024
Event Queues and Buffering Functions with JavaScript
original ↗
16 Apr 2024
Output CSV Results to Console Table in Rust
original ↗
9 Apr 2024
Responsive Images Crash Course for ASP.NET Core Developers
original ↗
2 Apr 2024
How To SSR Web Components In ASP.NET Core using TagHelpers
original ↗
26 Mar 2024
Blazor's CSS isolation ::deep issue and solution
original ↗
19 Mar 2024
How to use No-Class Frameworks to Move Fast in Style
original ↗
12 Mar 2024
How to Integrate HTMX and Shoelace Web Components
original ↗
5 Mar 2024
Shoelace Web Components with ASP.NET Core
original ↗
27 Feb 2024
How to Map SQL Results To Any Object Using Entity Framework Core 8
original ↗
20 Feb 2024
Increase Performance with Complex Types in Entity Framework Core 8
original ↗
13 Feb 2024
HTML Web Components with Vanilla JavaScript and ASP.NET Core
original ↗
6 Feb 2024
.NET Tasks, List's ForEach, and Problems
original ↗
30 Jan 2024
How To Use Blazor Server-Rendered Components with HTMX
original ↗
23 Jan 2024
How to use IAsyncEnumerable with Blazor Stream Rendering
original ↗
16 Jan 2024
View Transitions API with ASP.NET Core and HTMX
original ↗
9 Jan 2024
How to Write a .NET Markdig Extension for Markdown Processing
original ↗
2 Jan 2024
2023
Faster .NET Database Integration Tests with Respawn and xUnit
original ↗
26 Dec 2023
MemoizR - Declarative Structured Concurrency for C#
original ↗
19 Dec 2023
Testing Typesense search with Testcontainers and .NET
original ↗
12 Dec 2023
How to use Regular Expressions and Match Evaluators in .NET
original ↗
5 Dec 2023
Scriban for Text and Liquid Templating in .NET
original ↗
28 Nov 2023
ASP.NET Core PDF Previews and Downloads
original ↗
21 Nov 2023
VestPocket: File-based Data Storage for AOT .NET Applications
original ↗
14 Nov 2023
MoonSharp - Running Lua Scripts in .NET
original ↗
7 Nov 2023
What Should I Dispose with .NET Database Connections?
original ↗
31 Oct 2023
Global Endpoint Filters with ASP.NET Core Minimal APIs
original ↗
24 Oct 2023
RazorSlices - Razor Views with ASP.NET Core Minimal APIs
original ↗
17 Oct 2023
How To Use Embedded Resources in .NET
original ↗
10 Oct 2023
How To Display .NET Collections with the Oxford Comma
original ↗
3 Oct 2023
How To Fix Feature Folders View Errors with JetBrains Annotations (Rider and ReSharper)
original ↗
26 Sept 2023
System.Text.Json JsonConverter Test Helpers
original ↗
19 Sept 2023
Dumb Developer Tricks - Fizz Buzz with C# 12 and Polly
original ↗
12 Sept 2023
Multi-tenancy with ASP.NET Core and FinBuckle.Multitenant
original ↗
5 Sept 2023
Measuring Unicode String Lengths with C#
original ↗
29 Aug 2023
MiniWord - Microsoft Office Word Templating
original ↗
22 Aug 2023
Sisk - An Alternative .NET HTTP Server
original ↗
15 Aug 2023
.NET 8 Interceptors
original ↗
8 Aug 2023
Generate Sitemaps for All of ASP.NET Core
original ↗
1 Aug 2023
.NET 8 TimeProvider and Unit Tests
original ↗
25 Jul 2023
C# Records, the With Keyword, and Reference Types
original ↗
18 Jul 2023
HTMX, ASP.NET Core, and Bootstrap Modals
original ↗
11 Jul 2023
Adding a Readme to NuGet Package Landing Pages
original ↗
4 Jul 2023
HTMX Boosts and ASP.NET Core Anti-Forgery Tokens
original ↗
27 Jun 2023
Using StringBuilder To Replace Values
original ↗
20 Jun 2023
The Privilege of .NET Tooling Choices
original ↗
13 Jun 2023
Entity Framework Core 7: Filtering on JSON Arrays
original ↗
6 Jun 2023
JavaScript Import Maps For ASP.NET Core Developers
original ↗
30 May 2023
XUnit Tests, JetBrains Rider, and Counting Until Failure
original ↗
23 May 2023
Override Razor Pages Routes From Razor Class Libraries
original ↗
16 May 2023
Manage Vite Assets Like A Pro
original ↗
9 May 2023
Running Vite with ASP.NET Core Web Applications
original ↗
2 May 2023
Unit Test 11ty Pages With Vitest and Typescript
original ↗
25 Apr 2023
Writing a Cross-Platform Clock App With Avalonia UI and NXUI
original ↗
18 Apr 2023
Dependency Injection with Avalonia UI Apps
original ↗
11 Apr 2023
Load YouTube Embed Videos When Needed With JavaScript
original ↗
4 Apr 2023
.NET MAUI App Stopped Working -- HELP!
original ↗
28 Mar 2023
.NET MAUI Development Environment Set Up Walkthrough
original ↗
21 Mar 2023
Solving .NET JSON Deserialization Issues
original ↗
14 Mar 2023
Validating Connection Strings on .NET Startup
original ↗
7 Mar 2023
Speed Up ASP.NET Core JSON APIs with Source Generators
original ↗
28 Feb 2023
Combining 11ty Static Site Generator with ASP.NET Core
original ↗
21 Feb 2023
Generating Bogus HTTP Endpoints with ASP.NET Core Minimal APIs
original ↗
14 Feb 2023
How to use Entity Framework Core in ASP.NET Core
original ↗
7 Feb 2023
Register MAUI Views and ViewModels with Scrutor
original ↗
31 Jan 2023
Programming SVGs with C#
original ↗
24 Jan 2023
Next