Kubernetes 1.22: API Removals

Kubernetes 1.22 removed multiple v1beta1 APIs that had been deprecated since 1.16. If your cluster upgraded without deploying updated manifests, things likely broke. Key Removals Old API New API extensions/v1beta1 Ingress networking.k8s.io/v1 Ingress rbac.authorization.k8s.io/v1beta1 rbac.authorization.k8s.io/v1 admissionregistration.k8s.io/v1beta1 admissionregistration.k8s.io/v1 How to Detect Key Takeaways Use **kubent** (kube no trouble) to scan for deprecated APIs before upgrading. Always […]

Read more →

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 →