GraphQL vs gRPC vs REST: The 2021 Guide

Choosing the right API paradigm is critical. It’s not about which is “better,” but which fits the consumption model. Decision Matrix Feature REST gRPC GraphQL Protocol HTTP/1.1 HTTP/2 HTTP/1.1 or 2 Data Format JSON Protobuf (Binary) JSON Use Case Public APIs Internal Microservices Mobile/Frontend BFF Browser Support Native Requires Proxy (gRPC-Web) Native Why GraphQL for […]

Read more โ†’

IdentityServer4 is Dead: Long Live OpenIddict

With IdentityServer4 reaching End of Life (and its successor Duende becoming commercial), .NET developers need an open-source alternative for OIDC providers. **OpenIddict** is the answer. Configuration OpenIddict integrates deeply with ASP.NET Core Identity and EF Core. Key Takeaways It’s more “bare metal” than IdentityServer; you build your own UI. Supports the full OAuth2/OIDC test suite.

Read more โ†’

Azure Container Apps: KEDA and Dapr Managed

Azure Container Apps (ACA) is the “Serverless Containers” offering we’ve been waiting for. Built on Kubernetes but hiding the cluster, it integrates **KEDA** (for event-driven scaling) and **Dapr** (for building blocks) natively. Scaling to Zero Unlike App Service, ACA can scale to 0 replicas when no events are processing, saving money. Dapr Integration Enable Dapr […]

Read more โ†’

C# 10: File-Scoped Namespaces

Vertical whitespace is valuable. The “block-scoped” namespace syntax indents every single class in your project, wasting 4 spaces of indentation. C# 10 introduces File-Scoped namespaces to reclaim that space. Comparison Key Takeaways Use `dotnet format` or IDE cleanup to convert your entire solution automatically. You cannot mix file-scoped and block-scoped namespaces in the same file.

Read more โ†’