41554 blogs · [ { "id": "01a087e6-3c54-73a8-9557-dff502d7e397", "title": "UUID v7 in .NET 9", "url": "https://steven-giesel.com/blogPost/ea42a518-4d8b-4e08-8f73-e542bdd3b983", "published_at": "2024-07-08T04:02:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff502e408cf", "title": "Codespaces for your open-source project", "url": "https://steven-giesel.com/blogPost/3b993efb-5f70-4d71-8ac9-89f4b85a3dfa", "published_at": "2024-07-02T04:52:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff503595e41", "title": "ReadOnlySet in .NET 9", "url": "https://steven-giesel.com/blogPost/f368c7d3-488e-4bea-92b4-abf176353fa3", "published_at": "2024-06-26T04:52:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5041242e7", "title": "NCronJob - June Edition", "url": "https://steven-giesel.com/blogPost/40647b2f-6efa-4bc2-a7ab-53df460dd6fe", "published_at": "2024-06-21T04:51:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5047023fc", "title": "Are my EF LINQ to SQL queries safe?", "url": "https://steven-giesel.com/blogPost/35ec8819-220a-42bc-9224-a812ec358434", "published_at": "2024-06-17T04:37:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50486b705", "title": "Does an HttpClient await the Header and the body?", "url": "https://steven-giesel.com/blogPost/e2c3bcba-4f81-42b0-9b25-060da5e819fa", "published_at": "2024-06-10T04:36:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5053e4b61", "title": "StringBuilders magic for very large strings", "url": "https://steven-giesel.com/blogPost/c0144fea-0ff8-4638-be01-b62b48ef7188", "published_at": "2024-06-03T18:45:13+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5055a6a36", "title": "Cancel WhenAny - linked CancellationTokenSource", "url": "https://steven-giesel.com/blogPost/cd950c5f-467b-48a3-99fe-e72865460579", "published_at": "2024-05-28T13:35:25+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff505f635d4", "title": "Help my memory dump always shows me some exceptions!", "url": "https://steven-giesel.com/blogPost/fef763ee-d4ef-4379-9dc5-ca6994ba2b70", "published_at": "2024-05-23T10:37:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff506666a16", "title": "MemoryCache, DistributedCache and HybridCache", "url": "https://steven-giesel.com/blogPost/e3ee537a-f70b-43d3-8d13-5cf81bc4406b", "published_at": "2024-05-20T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff506ca9397", "title": "Generate http files from a swagger definition", "url": "https://steven-giesel.com/blogPost/9fa236ef-67da-4113-95e7-99770dc70444", "published_at": "2024-05-16T05:15:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5071c6131", "title": "NCronJob - Big Updates", "url": "https://steven-giesel.com/blogPost/2cb4a908-2dbb-4a9d-9c32-73d094b6670f", "published_at": "2024-05-13T05:23:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5079e22da", "title": ".NET 9 LINQ Performance Edition", "url": "https://steven-giesel.com/blogPost/783a404a-e39e-480f-bc99-a514a75d752d", "published_at": "2024-05-09T05:39:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5083733f6", "title": "Boosting Productivity with Analyzers", "url": "https://steven-giesel.com/blogPost/a5f6f281-1d0c-4b9e-8812-dc84faf41bcf", "published_at": "2024-05-06T04:23:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50901effb", "title": "Checking your solution for NuGet vulnerabilities or deprecated packages", "url": "https://steven-giesel.com/blogPost/a825c041-26dc-4488-8707-17697871d08e", "published_at": "2024-05-02T08:22:11+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5090a8a21", "title": "How does a List know that you changed it while enumerating it?", "url": "https://steven-giesel.com/blogPost/6c39fcc6-2218-44b9-8280-deadb995aac2", "published_at": "2024-04-29T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50911ed58", "title": "Does readonly make your code faster?", "url": "https://steven-giesel.com/blogPost/50b84029-4f1e-4e6d-8fd1-0311b0605562", "published_at": "2024-04-23T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff509a29e65", "title": "AI Hype - Am I out of work in five years?", "url": "https://steven-giesel.com/blogPost/5194faba-28db-4949-9d33-d7c1000b1156", "published_at": "2024-04-19T08:01:34+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff509e8517a", "title": "Fluent API to await multiple calls and get their respective results", "url": "https://steven-giesel.com/blogPost/d55cdae5-7294-40cc-a9d5-7552e092205e", "published_at": "2024-04-15T04:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50a719720", "title": "Equip 3rd party types with a deconstructor", "url": "https://steven-giesel.com/blogPost/0775d3d3-8f90-4546-95d8-71a6b1e7b0e8", "published_at": "2024-04-08T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50abd1790", "title": "Pattern matching and the compiler can be surprising", "url": "https://steven-giesel.com/blogPost/9892bd03-96bf-4ab0-aacc-973a99d5f5e0", "published_at": "2024-04-01T08:36:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50af4e89d", "title": "C# 13: Allow ref and unsafe in iterators and async", "url": "https://steven-giesel.com/blogPost/0d4216e5-4445-48c4-8d9c-3ff5aa1bfdc3", "published_at": "2024-03-25T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50bb4f1f7", "title": "NCronJob - Scheduling made easy", "url": "https://steven-giesel.com/blogPost/f58777b8-e10b-4023-845b-9f5ad3b7e48f", "published_at": "2024-03-18T05:30:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50bc8cfb2", "title": "bUnit v2 - The Blazor unit testing library vNext", "url": "https://steven-giesel.com/blogPost/0827131c-9b33-4c92-a2fa-5dd6616b72f9", "published_at": "2024-03-11T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50c5582ce", "title": "Typesafety in xUnit with TheoryData", "url": "https://steven-giesel.com/blogPost/a8aa3385-8829-444a-b269-7ecb38aeaf2f", "published_at": "2024-03-05T05:05:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50cbf1f0e", "title": "Lock statement patterns", "url": "https://steven-giesel.com/blogPost/4cf6d48a-ec9d-4c68-961c-31fd8d8c1340", "published_at": "2024-02-27T04:04:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50d2b3661", "title": "Avoid multiple boolean parameters", "url": "https://steven-giesel.com/blogPost/9994b00c-8bc2-4794-ae74-80e6ee4cd5e5", "published_at": "2024-02-20T04:35:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50d9dd497", "title": "LINQ MindMap: .NET 9 Edition", "url": "https://steven-giesel.com/blogPost/62049533-001a-46fb-a1da-88effc0183f1", "published_at": "2024-02-14T03:55:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50e24fbab", "title": "Garbage Collector (over)simplified", "url": "https://steven-giesel.com/blogPost/2e23afb8-4dc6-461e-8110-4122c7fefee7", "published_at": "2024-02-11T09:59:57+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50edd4f85", "title": "SearchValues object become better with .NET 9", "url": "https://steven-giesel.com/blogPost/080c8f82-f376-489f-a304-72d419978294", "published_at": "2024-02-02T16:00:50+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff50fae0830", "title": "Three new LINQ methods in .NET 9", "url": "https://steven-giesel.com/blogPost/0594ba85-356b-47f1-89a9-70e9761c582e", "published_at": "2024-01-27T04:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5102ae75f", "title": "A replacement for BinaryFormatter in .NET 8", "url": "https://steven-giesel.com/blogPost/4271d529-5625-4b67-bd59-d121f2d8c8f6", "published_at": "2024-01-20T03:15:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5106cdfe5", "title": "An alternative to AutoMapper", "url": "https://steven-giesel.com/blogPost/3368bf96-648e-4fa2-9c6c-be71e40ac4cc", "published_at": "2024-01-16T04:06:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51163a818", "title": "Const strings are not so const after all", "url": "https://steven-giesel.com/blogPost/544c33da-be2e-4d96-99c9-9313f48548bd", "published_at": "2024-01-10T20:51:59+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff511bab97f", "title": "An asynchronous lock free ring buffer for logging", "url": "https://steven-giesel.com/blogPost/11f0ded8-7119-4cfc-b7cf-317ff73fb671", "published_at": "2024-01-03T04:06:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff511d0201b", "title": "A new lock type in .NET 9", "url": "https://steven-giesel.com/blogPost/d7f923b3-13ff-4ecc-8b8f-d847ae581f68", "published_at": "2023-12-27T18:04:49+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff512a8d427", "title": "The first possible new feature of C# 13: Params collection", "url": "https://steven-giesel.com/blogPost/5f4fef86-d251-4a47-b893-ca4c515ca314", "published_at": "2023-12-20T20:16:11+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff512c6d0d4", "title": "bUnit Generators - Generate your stubs automatically", "url": "https://steven-giesel.com/blogPost/76b40ab1-033b-488e-b11a-a5922fa8a4b7", "published_at": "2023-12-17T19:04:22+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff513308b34", "title": "Entity Framework - Storing complex objects as JSON", "url": "https://steven-giesel.com/blogPost/5bf635cb-3533-4207-905f-81eb86512219", "published_at": "2023-12-14T16:21:18+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5141d4076", "title": "A journey about the new interceptors of .NET 8", "url": "https://steven-giesel.com/blogPost/be1252ac-ba95-41e6-a105-1fdbf3b955a6", "published_at": "2023-11-28T18:53:21+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5149b9206", "title": "Blazor .NET 8 - Enhanced Form Navigation", "url": "https://steven-giesel.com/blogPost/2e87048d-cbf3-4378-8938-efd4648453a1", "published_at": "2023-11-22T21:00:51+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5152e1a25", "title": "A more flexible and enhanced way of logging in .NET 8", "url": "https://steven-giesel.com/blogPost/1add3827-4233-4e31-9ce9-bcc34d64e76f", "published_at": "2023-11-15T04:30:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51590a41d", "title": "Interactive LINQ tutorial, especially for beginners", "url": "https://steven-giesel.com/blogPost/e0a98ec5-6da2-4b89-9ebd-39df175a079c", "published_at": "2023-11-10T20:20:32+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff515f5eaf6", "title": "Redux Pattern in Blazor", "url": "https://steven-giesel.com/blogPost/d62f8d80-ba9b-47c3-9040-8e17affda513", "published_at": "2023-11-04T04:30:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff516552efb", "title": "Yes you can create classes on the stack!", "url": "https://steven-giesel.com/blogPost/74cc8abc-b6e3-4cb0-ba98-9c92f9a5a4d2", "published_at": "2023-11-01T05:37:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5169d71d3", "title": "Interfaces can have private methods", "url": "https://steven-giesel.com/blogPost/03957748-73b3-40f9-a9f7-cc95501a3a8e", "published_at": "2023-10-25T04:30:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5179c864c", "title": "Blazor with TailwindCSS", "url": "https://steven-giesel.com/blogPost/351838ba-e308-4a09-b9f6-75bb95c39610", "published_at": "2023-10-18T05:30:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5181af8b8", "title": "Structured Concurrency in C#", "url": "https://steven-giesel.com/blogPost/59e57336-7c73-472f-a781-b0b79f0d47ad", "published_at": "2023-10-11T04:30:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff518fc0a25", "title": ".NET 8 and Blazor United / Server-side rendering", "url": "https://steven-giesel.com/blogPost/3c71e553-490f-4d52-8104-eb8338c0207f", "published_at": "2023-10-04T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff519bce5d0", "title": "Questions I asked as .NET interviewer", "url": "https://steven-giesel.com/blogPost/d64172d0-6b72-4d60-9935-0159c72997e4", "published_at": "2023-09-29T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51a55e8a0", "title": "Less boilerplate code with the new primary constructor in C# 12", "url": "https://steven-giesel.com/blogPost/1b2a4f18-86da-42d3-9ddc-8b41ed1eba0f", "published_at": "2023-09-24T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51ab7a776", "title": "A new way of doing reflection with .NET 8", "url": "https://steven-giesel.com/blogPost/05ecdd16-8dc4-490f-b1cf-780c994346a4", "published_at": "2023-09-19T06:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51b3802af", "title": "Building a Minimal ASP.NET Core clone", "url": "https://steven-giesel.com/blogPost/e84dec43-51f1-4c70-8b3b-dcdb1c3164ce", "published_at": "2023-09-14T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51b96728b", "title": "Enabling List to store large amounts of elements", "url": "https://steven-giesel.com/blogPost/37b32c2a-245f-4cb9-9e32-73a1091b025b", "published_at": "2023-09-07T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51c53ac35", "title": "Turn on Nullability checks by default", "url": "https://steven-giesel.com/blogPost/f65dee5e-a4eb-44b4-b338-a453acfdd5bd", "published_at": "2023-09-01T05:08:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51c99f1ba", "title": "The \"Weak Event\" Pattern in C#", "url": "https://steven-giesel.com/blogPost/675b75fc-2c1b-43da-9ff8-42962ca8159b", "published_at": "2023-08-27T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51d11280d", "title": "Expression-bodied members in properties", "url": "https://steven-giesel.com/blogPost/a15563a2-257d-469a-a359-830debfba4ce", "published_at": "2023-08-21T09:20:55+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51dee8420", "title": "Enum.TryParse unexpected behavior", "url": "https://steven-giesel.com/blogPost/64d479f1-823f-4fc7-a56a-2b1ff06dcf72", "published_at": "2023-08-17T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51ed88676", "title": "Creating Your Own Fakes Instead of Using Mocking Libraries", "url": "https://steven-giesel.com/blogPost/2ad414c8-273f-4976-a9de-c95f0e791d51", "published_at": "2023-08-12T09:09:28+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51f5d733a", "title": "What's going on with Moq? SponsorLink and burnt soil!", "url": "https://steven-giesel.com/blogPost/1939d20c-2493-4bf7-9636-96436283fb72", "published_at": "2023-08-09T12:20:32+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff51ffdd90f", "title": "Keyed Services in the IServiceProvider in .NET 8 preview 7", "url": "https://steven-giesel.com/blogPost/40dab3bb-d17e-4357-b579-b1d95fb9bfda", "published_at": "2023-08-07T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff52074a911", "title": "The combined power of F# and C#", "url": "https://steven-giesel.com/blogPost/2f70d926-ec92-4dfe-b278-18f78078253d", "published_at": "2023-08-02T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff521649a9c", "title": "How to benchmark different .NET versions", "url": "https://steven-giesel.com/blogPost/59cfb6f8-8b87-4707-a99e-e372541b696a", "published_at": "2023-07-30T07:52:15+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff521fbe861", "title": "Gracefully Handling Entity Framework Exceptions with EntityFramework.Exceptions", "url": "https://steven-giesel.com/blogPost/693e8b9c-4b97-43a4-8bf7-991c633900b4", "published_at": "2023-07-24T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff522aa42f9", "title": ".NET Framework 4.8 to .NET 6 migration", "url": "https://steven-giesel.com/blogPost/f531dded-44af-4341-871c-d54875877900", "published_at": "2023-07-19T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff52351995f", "title": "Three tricks with Dictionary", "url": "https://steven-giesel.com/blogPost/53090b7c-d594-4b55-b513-60bcc7b36f35", "published_at": "2023-07-13T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff5243e92bd", "title": "Overload resolution in C#", "url": "https://steven-giesel.com/blogPost/3ebbefe2-7db7-4d1d-8d81-719009504027", "published_at": "2023-07-08T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff524ef1869", "title": "Why I like and prefer xUnit", "url": "https://steven-giesel.com/blogPost/c24c5326-22f4-4035-9f87-a20e4814121d", "published_at": "2023-07-03T05:52:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff525a135bb", "title": "LINQ: Select.Where or Where.Select?", "url": "https://steven-giesel.com/blogPost/57ed9867-4afd-4d02-9f35-e0941bc6f715", "published_at": "2023-06-29T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff52621e72a", "title": "Missing Stack trace when eliding the await keyword", "url": "https://steven-giesel.com/blogPost/aa63a951-e619-4a31-9baf-5a15eb802b93", "published_at": "2023-06-25T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff52684cfeb", "title": "Create your own Mediator (like Mediatr)", "url": "https://steven-giesel.com/blogPost/dc27bbf9-55c7-4f11-bec5-cf1704df3a21", "published_at": "2023-06-21T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff527742c6b", "title": "C# 12: Collection literals", "url": "https://steven-giesel.com/blogPost/9916410c-0428-4caf-b88e-9fbae72b6a1f", "published_at": "2023-06-17T05:00:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff527911a79", "title": "How does List work under the hood in .NET?", "url": "https://steven-giesel.com/blogPost/06e2c8e8-0119-4e8d-9227-3cb922a8c916", "published_at": "2023-06-13T05:57:21+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff52818f443", "title": "Span / Memory / ReadOnlySequence in C#", "url": "https://steven-giesel.com/blogPost/8bb02704-a113-40a1-9414-fe7b8cb3dda5", "published_at": "2023-06-08T05:21:00+00:00" }, { "id": "01a087e6-3c54-73a8-9557-dff528a6b3df", "title": "Time abstraction in .NET 8", "url": "https://steven-giesel.com/blogPost/4d5b70fe-35c1-43c7-bebe-49194195ffcb", "published_at": "2023-06-04T05:48:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aaa236327", "title": "New Terminal logger for .NET 8", "url": "https://steven-giesel.com/blogPost/f6e0accf-9493-4cc4-8992-e8300e6b0cbc", "published_at": "2023-05-31T05:57:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aaaad0929", "title": "nameof get's a bit better in C# 12", "url": "https://steven-giesel.com/blogPost/5b0bcb83-4508-4cde-9299-80940bf4709a", "published_at": "2023-05-28T05:57:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aab2caeb6", "title": "How does TryGetNonEnumeratedCount work?", "url": "https://steven-giesel.com/blogPost/c341ffbc-d816-49ca-82a7-0e0e3b3e5910", "published_at": "2023-05-26T04:50:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aabe1e363", "title": "6 useful extensions for IEnumerable", "url": "https://steven-giesel.com/blogPost/1b8eaaef-01a3-4799-9a96-f0d37197d175", "published_at": "2023-05-23T06:30:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aac5b0e1e", "title": "Some cool things you can do with ValueTuple", "url": "https://steven-giesel.com/blogPost/bcbb602f-4080-4e89-9929-019bb4e1cb58", "published_at": "2023-05-18T05:11:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aac67110e", "title": "Becoming a Microsoft MVP", "url": "https://steven-giesel.com/blogPost/2809a9a9-66e3-4928-a5fb-6abbdbfdf272", "published_at": "2023-05-13T06:41:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aacc4a8c6", "title": "Entity Framework and ordered indexes", "url": "https://steven-giesel.com/blogPost/12c2926a-cf51-438a-af5a-5d160e9f3844", "published_at": "2023-05-08T06:41:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aad404f92", "title": "Controlling the log level of your application", "url": "https://steven-giesel.com/blogPost/90c41e56-5a68-448a-ae0e-f7476d141c29", "published_at": "2023-05-03T06:40:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aadcb8b35", "title": "Verifying your DI Container", "url": "https://steven-giesel.com/blogPost/ce948083-974a-4c16-877f-246b8909fa6d", "published_at": "2023-04-30T04:30:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aae85b4aa", "title": "Create your own Validationattribute in ASP.NET Core", "url": "https://steven-giesel.com/blogPost/004506a9-4c70-483d-a14f-3a56086fe6f1", "published_at": "2023-04-27T06:30:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aaec75a95", "title": "Domain events and the \"Unit of Work\" pattern", "url": "https://steven-giesel.com/blogPost/ae55581a-9722-4735-8d0e-bfcfe4f6ad5a", "published_at": "2023-04-22T07:00:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aaf054746", "title": "Covariance and Contravariance in C#", "url": "https://steven-giesel.com/blogPost/cda93276-c9ab-42c3-8288-a9b3e5c8aa5c", "published_at": "2023-04-17T06:55:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aaf1e4722", "title": ".NET 8 Performance Edition", "url": "https://steven-giesel.com/blogPost/f6504300-7bf0-48d2-8a14-ba4e2bbea02e", "published_at": "2023-04-13T06:55:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aaf67db77", "title": "5 useful extensions for Task in .NET", "url": "https://steven-giesel.com/blogPost/d38e70b4-6f36-41ff-8011-b0b0d1f54f6e", "published_at": "2023-04-10T10:29:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941aafcb5504", "title": "Source Generators and Regular Expressions", "url": "https://steven-giesel.com/blogPost/667db4f5-d34a-4625-bc3d-aa47187c591a", "published_at": "2023-04-05T08:30:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab03b715f", "title": "LINQ on steroids with SIMD", "url": "https://steven-giesel.com/blogPost/faf06188-bae9-484d-804d-a42d58d18cad", "published_at": "2023-04-01T12:59:54+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab0494759", "title": "Creating a ToolTip Component in Blazor", "url": "https://steven-giesel.com/blogPost/fda6848e-61f6-40d0-95c8-45925712b462", "published_at": "2023-03-31T06:00:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab08508b0", "title": "C# Source Generators: How to get build information?", "url": "https://steven-giesel.com/blogPost/cec8df6e-b271-4b4c-8ff6-e9f3aa5e26a1", "published_at": "2023-03-27T08:00:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab0b36367", "title": "Leverage 'is not' Operator for Exception Filtering!", "url": "https://steven-giesel.com/blogPost/d3b295a1-45d0-4399-8486-c3b67d5bc9e4", "published_at": "2023-03-24T06:44:45+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab13dbdea", "title": "Caching in .NET with MemoryCache", "url": "https://steven-giesel.com/blogPost/b355a042-2c5b-4d96-b1ca-a9dc0fc23509", "published_at": "2023-03-21T06:25:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab1524403", "title": "Write your own AutoMapper in C#", "url": "https://steven-giesel.com/blogPost/16bf84c2-1464-40ab-8ef6-58f225e21c15", "published_at": "2023-03-18T11:35:00+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab1fe6f3d", "title": "LINQ // Skip and Take", "url": "https://steven-giesel.com/blogPost/ce9ba892-bafe-4a62-8806-7ebf91f28a94", "published_at": "2023-03-14T15:39:57+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab29af4c5", "title": "How to write your own cron Job scheduler in ASP.NET Core (like Quartz, Hangfire, ...)", "url": "https://steven-giesel.com/blogPost/fb1ce2ab-dd27-43ed-aaab-077adf2d15cd", "published_at": "2023-03-11T08:06:27+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab2fdf25d", "title": "Benchmarking - A matter of perspective", "url": "https://steven-giesel.com/blogPost/34c613f4-8962-40bc-80ad-ac270d285e75", "published_at": "2023-03-08T19:15:56+00:00" }, { "id": "01a087e6-3c55-70c9-9593-941ab34833e6", "title": "Is a square a rectangle? Liskov substitution principle in action", "url": "https://steven-giesel.com/blogPost/67425427-01cd-4707-8572-991c3f9c5fc2", "published_at": "2023-03-05T09:11:07+00:00" } ] posts Claim your blog
Back to steven-giesel.com
Blog · corpus.blog/blogs/steven-giesel.com/posts

steven-giesel.com

steven-giesel.com

2024

2023