41554 blogs · [ { "id": "01a08795-666b-735f-8492-f3acebdb063b", "title": "Multiple File Drag and Drop Upload with ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/multiple-file-drag-and-drop-upload-with-aspnet-core/", "published_at": "2023-01-17T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca2c59fc9", "title": "Deserialize Mastodon User XML RSS feeds with .NET", "url": "https://khalidabuhakmeh.com/posts/deserialize-mastodon-user-xml-rss-feed/", "published_at": "2023-01-10T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad132e5910", "title": "Testing ASP.NET Core FastEndpoints", "url": "https://khalidabuhakmeh.com/posts/testing-aspnet-core-fastendpoints/", "published_at": "2023-01-03T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbed4acbc", "title": "Generate YouTube Timestamp Links with C# 11", "url": "https://khalidabuhakmeh.com/posts/generate-youtube-timestamp-links-with-csharp-11/", "published_at": "2022-12-27T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac80a054dc", "title": "ASP.NET Core Display Description Tag Helper", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-display-description-tag-helper/", "published_at": "2022-12-20T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb3ed797d", "title": "Entity Framework Core Conversions for Logical Domain Types", "url": "https://khalidabuhakmeh.com/posts/entity-framework-core-conversions-for-logical-domain-types/", "published_at": "2022-12-13T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac99c85f36", "title": "Consuming .NET WebAssembly From JavaScript in the Browser", "url": "https://khalidabuhakmeh.com/posts/consuming-dotnet-webassembly-from-javascript-in-the-browser/", "published_at": "2022-12-06T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb5885507", "title": "Fibonacci Sequences with Kotlin, C#, and F#", "url": "https://khalidabuhakmeh.com/posts/fibonacci-sequences-with-kotlin-csharp-and-fsharp/", "published_at": "2022-11-29T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc81f9c15", "title": "How Many Threads Does My .NET App Have?", "url": "https://khalidabuhakmeh.com/posts/how-many-threads-does-my-dotnet-app-have/", "published_at": "2022-11-22T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac857fadea", "title": "ASP.NET Core Placeholder Images with ImageSharp", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-placeholder-images-with-imagesharp/", "published_at": "2022-11-15T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad0e3cf6b0", "title": "Stop Entity Framework Core Performance Issues With Interceptors", "url": "https://khalidabuhakmeh.com/posts/stop-entity-framework-core-performance-issues-with-interceptors/", "published_at": "2022-11-08T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace95f53e2", "title": "More Efficient Deletes With Entity Framework Core", "url": "https://khalidabuhakmeh.com/posts/more-efficient-deletes-with-entity-framework-core/", "published_at": "2022-11-01T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf84a58f3", "title": "Real-time Charts with ASP.NET Core, SignalR, and Chart.js", "url": "https://khalidabuhakmeh.com/posts/real-time-charts-with-aspnet-core-signalr-and-chartjs/", "published_at": "2022-10-25T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7e0fb04c", "title": "Adding Experimental HTTP Methods To ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/adding-experimental-http-methods-to-aspnet-core/", "published_at": "2022-10-18T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7b539ba2", "title": "Add MS SQL Server JSON Support To Entity Framework Core", "url": "https://khalidabuhakmeh.com/posts/add-ms-sql-server-json-support-to-entity-framework-core/", "published_at": "2022-10-11T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca733a382", "title": ".NET Class Diagrams In JetBrains Rider with PlantUML", "url": "https://khalidabuhakmeh.com/posts/dotnet-class-diagrams-in-jetbrains-rider-with-plantuml/", "published_at": "2022-10-04T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad2351d3cf", "title": "Using XML Documentation With ASP.NET Core Minimal API Apps and OpenAPI", "url": "https://khalidabuhakmeh.com/posts/using-xml-documentation-with-aspnetcore-minimal-api-apps-and-openapi/", "published_at": "2022-09-27T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc150ac26", "title": "Getting Started with EF Core, PostgreSQL, and TimescaleDB", "url": "https://khalidabuhakmeh.com/posts/getting-started-with-ef-core-postgresql-and-timescaledb/", "published_at": "2022-09-20T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca9ab8bf6", "title": ".NET One-line Scoped Initializers with Dependency Injection", "url": "https://khalidabuhakmeh.com/posts/dotnet-one-line-scoped-initializers-with-dependency-injection/", "published_at": "2022-09-13T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca21399f0", "title": "Customize The Authorization Pipeline In ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/customize-the-authorization-pipeline-in-aspnet-core/", "published_at": "2022-09-06T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad18648ed3", "title": "Troubleshooting .NET Blazor WASM Debugging", "url": "https://khalidabuhakmeh.com/posts/troubleshooting-dotnet-blazor-wasm-debugging/", "published_at": "2022-08-30T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad04b19e49", "title": "Sharing Auth Cookies With YARP, IdentityServer, and ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/sharing-auth-cookies-with-yarp-identityserver-and-aspnet-core/", "published_at": "2022-08-23T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc1225fc2", "title": "Using LINQ and Getting Chunky With .NET", "url": "https://khalidabuhakmeh.com/posts/getting-chunky-with-dotnet/", "published_at": "2022-08-16T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbb91b2d4", "title": "Fun With Custom Interpolated String Handlers", "url": "https://khalidabuhakmeh.com/posts/fun-with-custom-interpolated-string-handlers/", "published_at": "2022-08-09T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca0215015", "title": "C# Converting Bytes To Kilobytes and Beyond", "url": "https://khalidabuhakmeh.com/posts/csharp-converting-bytes-to-kb-mb-gb-and-tb/", "published_at": "2022-08-02T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acdd61fcf1", "title": "Installing and Uninstalling .NET Templates", "url": "https://khalidabuhakmeh.com/posts/installing-and-uninstalling-dotnet-templates/", "published_at": "2022-07-26T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad12414fb2", "title": "Taming Your .NET Twitter Bots With Rules", "url": "https://khalidabuhakmeh.com/posts/taming-your-dotnet-twitter-bots-with-rules/", "published_at": "2022-07-19T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca8f5e0d9", "title": ".NET Debugger.Launch for macOS and Linux", "url": "https://khalidabuhakmeh.com/posts/dotnet-debugger-launch-for-macos-and-linux/", "published_at": "2022-07-12T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace615355a", "title": "Minimal API Validation with FluentValidation", "url": "https://khalidabuhakmeh.com/posts/minimal-api-validation-with-fluentvalidation/", "published_at": "2022-07-05T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac83e06b28", "title": "ASP.NET Core Minimal API Endpoint Filters", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-minimal-api-endpoint-filters/", "published_at": "2022-06-28T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb75e7e40", "title": "Five of the Most Common Kinds of NuGet Packages", "url": "https://khalidabuhakmeh.com/posts/five-of-the-most-common-kinds-of-nuget-packages/", "published_at": "2022-06-21T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad0e405b54", "title": "Storing Dynamic User Data With Entity Framework Core", "url": "https://khalidabuhakmeh.com/posts/storing-dynamic-user-data-with-ef-core/", "published_at": "2022-06-14T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbb56e82d", "title": "Fun: Leaderboard Output Using C# Pattern Matching", "url": "https://khalidabuhakmeh.com/posts/fun-leaderboard-output-using-csharp-pattern-matching/", "published_at": "2022-06-07T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac9480955f", "title": "Change C# Record Comparison with Source Generators", "url": "https://khalidabuhakmeh.com/posts/change-csharp-record-comparison-with-source-generators/", "published_at": "2022-05-31T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc0efbc26", "title": "Get Tweet Engagements Using .NET and C#", "url": "https://khalidabuhakmeh.com/posts/get-tweet-engagements-using-dotnet-and-csharp/", "published_at": "2022-05-24T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad22785df7", "title": "Using SQL Server Cursors with Entity Framework Core", "url": "https://khalidabuhakmeh.com/posts/using-sql-server-cursors-with-entity-framework-core/", "published_at": "2022-05-17T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad20f29e5e", "title": "Using ASP.NET Core MVC Value Providers With Minimal APIs", "url": "https://khalidabuhakmeh.com/posts/using-aspnet-core-mvc-value-providers-with-minimal-apis/", "published_at": "2022-05-10T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac82b124a1", "title": "ASP.NET Core JavaScript Collocated TagHelper", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-javascript-collocated-taghelper/", "published_at": "2022-05-03T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac9e8e962a", "title": "Create .NET Objects without Calling The Constructor", "url": "https://khalidabuhakmeh.com/posts/create-dotnet-objects-without-calling-the-constructor/", "published_at": "2022-04-26T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac818ac3e7", "title": "ASP.NET Core Interview Questions and Answers", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-interview-questions-and-answers/", "published_at": "2022-04-19T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7cf45617", "title": "Adding Alt Text To Twitter Images Using C#", "url": "https://khalidabuhakmeh.com/posts/adding-alt-text-to-twitter-images-using-csharp/", "published_at": "2022-04-12T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac95e65b24", "title": "Client-side Image Previews With JavaScript", "url": "https://khalidabuhakmeh.com/posts/client-side-image-previews-with-javascript/", "published_at": "2022-04-05T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad21cf2601", "title": "Using LibMan To Manage Client-Side Dependencies", "url": "https://khalidabuhakmeh.com/posts/using-libman-to-manage-client-side-dependencies/", "published_at": "2022-03-29T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad1b6374e0", "title": "Unit Tests For Legacy Systems with .NET 6", "url": "https://khalidabuhakmeh.com/posts/unit-tests-for-legacy-systems-with-dotnet-6/", "published_at": "2022-03-22T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac8067218e", "title": "ASP.NET Core 6 MVC Upgrade System.Text.Json Serialization Issues", "url": "https://khalidabuhakmeh.com/posts/aspnet-core-6-mvc-upgrade-systemtextjson-serialization-issues/", "published_at": "2022-03-15T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace469a0d0", "title": "Loop Around Index with C# Collections", "url": "https://khalidabuhakmeh.com/posts/loop-around-index-with-csharp-collections/", "published_at": "2022-03-08T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd892d010", "title": "Image Style Transfer With C#, ONNX, and ImageSharp", "url": "https://khalidabuhakmeh.com/posts/image-style-transfer-with-csharp-onnx-and-imagesharp/", "published_at": "2022-03-01T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad12933511", "title": "Testing ASP.NET Core 6 Apps", "url": "https://khalidabuhakmeh.com/posts/testing-aspnet-core-6-apps/", "published_at": "2022-02-22T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace3d63536", "title": "Logging Trace Output Using ILogger in .NET Applications", "url": "https://khalidabuhakmeh.com/posts/logging-trace-output-using-ilogger-in-dotnet-applications/", "published_at": "2022-02-15T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acfed0cf4b", "title": "Running SQL Server Queries In Docker", "url": "https://khalidabuhakmeh.com/posts/running-sql-server-queries-in-docker/", "published_at": "2022-02-08T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad0d81ecef", "title": "Static Abstract Members In C# 11 Interfaces", "url": "https://khalidabuhakmeh.com/posts/static-abstract-members-in-csharp-11-interfaces/", "published_at": "2022-02-01T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acac4ea620", "title": ".NET Watch Launch Setting Profile For ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/dotnet-watch-launchsetting-for-aspnet-core/", "published_at": "2022-01-25T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc05e1fbd", "title": "Get C# Metadata From a Call Site", "url": "https://khalidabuhakmeh.com/posts/get-csharp-metadata-from-a-callsite/", "published_at": "2022-01-18T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7d8d61c1", "title": "Adding Clarity To .NET Minimal Hosting APIs", "url": "https://khalidabuhakmeh.com/posts/adding-clarity-to-dotnet-minimal-hosting/", "published_at": "2022-01-11T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac9d99ad9e", "title": "Create Context-based Programming Models with .NET 6", "url": "https://khalidabuhakmeh.com/posts/create-context-based-programming-models-with-dotnet-6/", "published_at": "2022-01-04T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd5285136", "title": "HTMX and ASP.NET Core Swapping Techniques", "url": "https://khalidabuhakmeh.com/posts/htmx-and-aspnet-core-swapping-techniques/", "published_at": "2021-12-28T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd73b6221", "title": "HTMX Requests with ASP.NET Core Anti-Forgery Tokens", "url": "https://khalidabuhakmeh.com/posts/htmx-requests-with-aspnet-core-anti-forgery-tokens/", "published_at": "2021-12-21T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace06d624b", "title": "JSON in HTML Attributes With ASP.NET Core TagHelpers", "url": "https://khalidabuhakmeh.com/posts/json-in-html-attributes-with-aspnet-core-taghelpers/", "published_at": "2021-12-14T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acd7ec7447", "title": "HTMX With ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/htmx-with-aspnet-core/", "published_at": "2021-12-07T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf2d3e269", "title": "Polymorphic Serialization with .NET System.Text.Json", "url": "https://khalidabuhakmeh.com/posts/polymorphic-serialization-with-dotnet-system-text-json/", "published_at": "2021-11-30T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac791b17f2", "title": "A .NET 5.0 Guide: From Idea To NuGet Package", "url": "https://khalidabuhakmeh.com/posts/a-dotnet-five-guide-from-idea-to-nuget-package/", "published_at": "2021-11-23T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac8664366c", "title": "ASP.NET Docker Gotchas and Workarounds", "url": "https://khalidabuhakmeh.com/posts/aspnet-docker-gotchas-and-workarounds/", "published_at": "2021-11-16T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc1931c6a", "title": "GIFs in Console Output Using ImageSharp and Spectre.Console", "url": "https://khalidabuhakmeh.com/posts/gifs-in-console-output-imagesharp-and-spectreconsole/", "published_at": "2021-11-09T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc260bbdb", "title": "Add GitHub OpenID Auth For ASP.NET Core Apps", "url": "https://khalidabuhakmeh.com/posts/github-openid-auth-aspnet-core-apps/", "published_at": "2021-11-02T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbc5acb41", "title": "Generate ASP.NET Core OpenAPI Spec At Build Time", "url": "https://khalidabuhakmeh.com/posts/generate-aspnet-core-openapi-spec-at-build-time/", "published_at": "2021-10-26T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac9260bda7", "title": "Bulk Import Records Into SQLite With C#", "url": "https://khalidabuhakmeh.com/posts/bulk-import-records-into-sqlite-csharp/", "published_at": "2021-10-19T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca2003246", "title": "Cursor Paging With Entity Framework Core and ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/cursor-paging-with-entity-framework-core-and-aspnet-core/", "published_at": "2021-10-12T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb350a381", "title": "Entity Framework Core ConnectionStrings For .NET Apps", "url": "https://khalidabuhakmeh.com/posts/entity-framework-core-connectionstrings-for-dotnet-apps/", "published_at": "2021-10-05T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac98ea5178", "title": "Compress Strings With .NET and C#", "url": "https://khalidabuhakmeh.com/posts/compress-strings-with-dotnet-and-csharp/", "published_at": "2021-09-28T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acdded76cd", "title": "Interesting Technology Tips - Vol. 1", "url": "https://khalidabuhakmeh.com/posts/interesting-technology-tips-vol-1/", "published_at": "2021-09-21T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad2116bebe", "title": "Using .NET To Validate JSON with JSON Schema", "url": "https://khalidabuhakmeh.com/posts/using-dotnet-to-validate-json-with-json-schema/", "published_at": "2021-09-14T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3accd208a74", "title": "How To Map A Route in an ASP.NET Core MVC application", "url": "https://khalidabuhakmeh.com/posts/how-to-map-a-route-in-an-aspnet-core-mvc-application/", "published_at": "2021-09-07T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac8f8e2bb8", "title": "Build .NET Search Experiences With Lunr-Core", "url": "https://khalidabuhakmeh.com/posts/build-dotnet-search-experiences-with-lunr-core/", "published_at": "2021-08-31T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acaea78a6f", "title": "End-to-End Tests With ASP.NET Core, XUnit, and Playwright", "url": "https://khalidabuhakmeh.com/posts/end-to-end-test-with-aspnet-core-xunit-and-playwright/", "published_at": "2021-08-24T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbff600c5", "title": "Get A Property Name From a .NET Lambda Expression", "url": "https://khalidabuhakmeh.com/posts/get-a-property-name-from-a-dotnet-lambda-expression/", "published_at": "2021-08-17T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad05645df4", "title": "Simple Redirects With ASP.NET Core Endpoints", "url": "https://khalidabuhakmeh.com/posts/simple-redirects-with-aspnet-core-endpoint-routing/", "published_at": "2021-08-10T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acaae8f0ab", "title": ".NET Source Generators: Finding Class Declarations", "url": "https://khalidabuhakmeh.com/posts/dotnet-source-generators-finding-class-declarations/", "published_at": "2021-08-03T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf9c810c4", "title": "Parse Redis-CLI Connection URI To Use With StackExchange.Redis", "url": "https://khalidabuhakmeh.com/posts/redis-cli-connection-uri-with-stackexchangeredis/", "published_at": "2021-07-27T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac8bee14d3", "title": "Blazor and Cancelling Asynchronous Calls With CancellationTokenSource", "url": "https://khalidabuhakmeh.com/posts/blazor-and-cancelling-asynchronous-calls-with-cancellationtokensource/", "published_at": "2021-07-20T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb77f973f", "title": "Fix Blurry Ubuntu Display In A Parallels Virtual Machine", "url": "https://khalidabuhakmeh.com/posts/fix-blurry-ubuntu-display-parallels-vm/", "published_at": "2021-07-13T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca22a7b69", "title": "Decrypt Secrets Into ASP.NET Core MVC Action Arguments Using Action Filters", "url": "https://khalidabuhakmeh.com/posts/decrypt-secrets-into-aspnet-core-mvc-action-arguments-using-action-filters/", "published_at": "2021-07-06T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac8e579fa7", "title": "Boost ASP.NET Core Performance with Static Content", "url": "https://khalidabuhakmeh.com/posts/boost-aspnet-core-performance-with-static-content/", "published_at": "2021-06-29T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf0c6d161", "title": "HTTP Range Requests and Partial Responses With ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/partial-range-http-requests-with-aspnet-core/", "published_at": "2021-06-22T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3aca0b5260a", "title": "C# Pattern Matching Quick Guide And Examples", "url": "https://khalidabuhakmeh.com/posts/csharp-pattern-matching-quick-guide-and-examples/", "published_at": "2021-06-15T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf384d8b7", "title": "Preventing Duplicate Web Requests To ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/preventing-duplicate-web-requests-to-aspnet-core/", "published_at": "2021-06-08T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8cbbde024", "title": "Working With .NET 6's PriorityQueue", "url": "https://khalidabuhakmeh.com/posts/working-with-dotnet-six-priorityqueue/", "published_at": "2021-06-01T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad1624f0bd", "title": "The Difference Between HTML and URL Encode In .NET", "url": "https://khalidabuhakmeh.com/posts/the-difference-between-html-and-url-encode-in-dotnet/", "published_at": "2021-05-25T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8cb852e6d", "title": "Working With .NET Console Host Lifetime Events", "url": "https://khalidabuhakmeh.com/posts/working-with-dotnet-console-host-lifetime-events/", "published_at": "2021-05-18T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ad087a0c32", "title": "Solve For The Next DayOfWeek From DateTime", "url": "https://khalidabuhakmeh.com/posts/solve-for-the-next-dayofweek-from-datetime/", "published_at": "2021-05-11T00:00:00+00:00" }, { "id": "01a08795-666c-7322-baae-2eb8ca519dc8", "title": "What Is Razor - ASP.NET", "url": "https://khalidabuhakmeh.com/posts/what-is-razor-aspnet/", "published_at": "2021-05-04T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac79724293", "title": "Access Background Services From ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/access-background-services-from-aspnet-core/", "published_at": "2021-04-29T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf6d31eca", "title": "Read and Write Excel Spreadsheets With C#", "url": "https://khalidabuhakmeh.com/posts/read-write-excel-spreadsheets-with-csharp/", "published_at": "2021-04-27T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac7bf70c80", "title": "Add Svelte To ASP.NET Core Projects", "url": "https://khalidabuhakmeh.com/posts/add-svelte-to-aspnet-core-projects/", "published_at": "2021-04-22T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acb8c70f6b", "title": "Fix .NET ICU Build Issues In GitHub Actions", "url": "https://khalidabuhakmeh.com/posts/fix-dotnet-icu-build-issues-in-github-actions/", "published_at": "2021-04-20T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc95fc79c", "title": "How To Add Models To ASP.NET Core", "url": "https://khalidabuhakmeh.com/posts/how-to-add-models-to-aspnet-core/", "published_at": "2021-04-15T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acbcb82b55", "title": "Generate Links To ASP.NET Core Map Endpoints", "url": "https://khalidabuhakmeh.com/posts/generate-links-to-aspnet-core-map-endpoints/", "published_at": "2021-04-13T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acf8d1c417", "title": "Recursive Data With Entity Framework Core and SQL Server", "url": "https://khalidabuhakmeh.com/posts/recursive-data-with-entity-framework-core-and-sql-server/", "published_at": "2021-04-08T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ace73cffa0", "title": "Modeling Most SQL Relationships In Entity Framework Core", "url": "https://khalidabuhakmeh.com/posts/modeling-most-sql-relationships-in-entity-framework-core/", "published_at": "2021-04-06T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3ac91ee9260", "title": "Building Mono-Repositories With GitHub Actions", "url": "https://khalidabuhakmeh.com/posts/building-mono-repositories-with-github-actions/", "published_at": "2021-04-01T00:00:00+00:00" }, { "id": "01a08795-666b-735f-8492-f3acc6d2a724", "title": "Handle Exceptions With ASP.NET Core ExceptionHandlerMiddleware", "url": "https://khalidabuhakmeh.com/posts/handling-aspnet-core-exceptions-with-exceptionhandler-middleware/", "published_at": "2021-03-30T00:00:00+00:00" } ] posts Claim your blog
Back to khalidabuhakmeh.com
Blog · corpus.blog/blogs/khalidabuhakmeh.com/posts

khalidabuhakmeh.com

khalidabuhakmeh.com

2023

2022

2021