Qqodorsinqodors.hashnode.dev·Sep 23 · 7 min readPagination in ASP.NET Core With EF Core: When Skip and Take Stop ScalingPagination is easy to add when an application has a small amount of data. Returning every record from an API may even work during early development. As the dataset grows, though, the database has more00
SStepOneinsteponeit.hashnode.dev·Sep 21 · 8 min readHow I Built a Programming Language in C#: HydraScriptMost backend developers spend more time moving JSON than designing languages. I wanted a project that forced me below the framework layer, so I built the HydraScript programming language in vanilla C#00
SStepOneinsteponeit.hashnode.dev·Sep 21 · 11 min readTop 10 Unexpected NuGet Packages for .NET DevelopersThe NuGet packages that save the most time are often not general-purpose frameworks. They solve one awkward production problem—geospatial formats, filesystem testability, regular-expression data gener00
SStepOneinsteponeit.hashnode.dev·Sep 16 · 10 min readHow to Mock gRPC in .NET with WireMock.Net and ProtobufTL;DR WireMock.Net can mock gRPC, but its built-in mechanism requires .proto definitions at runtime and routes body matching through dynamically shaped JSON. That weakens compile-time checks and separ00
SStepOneinsteponeit.hashnode.dev·Sep 16 · 12 min readVisitor Pattern in C#: acyclic, type-safe, no downcasts, no runtime checks with Visitor.NETVisitor becomes painful when a design gains type checks, downcasts, and boilerplate faster than it gains useful behavior. Those costs are especially visible in compilers, static analyzers, and other s00
SStepOneinsteponeit.hashnode.dev·Sep 15 · 13 min readSystem.Text.Json Polymorphism with Swagger in .NET 7Polymorphic JSON is not finished when System.Text.Json can serialize a derived type. The same discriminator contract must survive OpenAPI generation, server validation, client generation, and every se00
SStepOneinsteponeit.hashnode.dev·Sep 15 · 14 min readC# DIY Compiler with DDD and Clean ArchitectureCompiler projects are often presented as pipelines of algorithms: lexing, parsing, analysis, and code generation. Once the project grows, however, the harder problem is deciding which concepts own whi00
SStepOneinsteponeit.hashnode.dev·Sep 12 · 7 min readJava vs. C#: Four Java Features C# Handles DifferentlyLanguage comparisons are most useful when they expose different design choices, not when they try to declare a winner. Java has several features that make certain modeling and one-off implementation t00
SStepOneinsteponeit.hashnode.dev·Sep 12 · 8 min readC# Generic Math: A Convex Hull with Static InterfacesStatic abstract interface members let a C# algorithm depend on operations instead of concrete numeric types. A convex-hull implementation is a good stress test: its coordinate type must support compar00
SStepOneinsteponeit.hashnode.dev·Sep 11 · 13 min readAutoFixture and AutoData: Reduce .NET Test SetupA unit test can spend more lines constructing irrelevant objects and mocks than expressing the behavior it protects. That Arrange boilerplate slows reviews, obscures the important inputs, and becomes 00