# Daily DevOps & .NET > Opinionated .NET, Azure and DevOps engineering. Hard-won lessons from production, no tutorials. ## About - [Home](https://daily-devops.net/): Opinionated .NET, Azure and DevOps engineering. Hard-won lessons from production, no tutorials. - [Legal notice](https://daily-devops.net/legal-notice/): Legal disclosure for Daily DevOps & .NET including contact details, copyright information, data protection policies, and analytics per § 5 DDG. ## Authors - [Jendrik Brack](https://daily-devops.net/authors/jendrik/): DevOps engineer focused on infrastructure-as-code, Terraform, OpenTofu, and cloud-native operations on Azure and AWS. - [Martin Stühmer](https://daily-devops.net/authors/martin/): CTO and software architect with nearly 20 years of production .NET experience. Specialises in cloud-native Azure architecture, AKS, DevOps, and application security. Microsoft Certified Trainer and open-source NuGet maintainer. ## Topics - [.NET](https://daily-devops.net/tags/dotnet/): Comprehensive .NET coverage including C#, ASP.NET Core, performance optimization, latest framework features, updates, and development best practices. - [C#](https://daily-devops.net/tags/csharp/): Explore C# tips, tricks, latest language features, and practical examples to enhance your .NET development skills, productivity, and code quality. - [Best Practices](https://daily-devops.net/tags/bestpractices/): Learn proven software development methods: Clean Code principles, design patterns, testing strategies, DevOps automation, and security-first standards. - [Software Engineering](https://daily-devops.net/tags/softwareengineering/): Articles about software engineering principles, methodologies, and practices for building professional, maintainable, and scalable software solutions. - [Azure](https://daily-devops.net/tags/azure/): All Azure posts: Microsoft cloud services, deployment strategies, Azure DevOps, infrastructure as code, monitoring, security, and best practices. - [Architecture](https://daily-devops.net/tags/architecture/): All architecture posts: software design patterns, system design principles, scalable architecture, microservices patterns, best practices and more. - [ISO Standards](https://daily-devops.net/tags/iso-standards/): ISO/IEC 27001, 27017, and 27701 translated into .NET engineering: authentication flows, logging, data models, and Azure controls developers own. - [Security](https://daily-devops.net/tags/security/): Practical security practices: secure coding, dependency management, secrets handling, authentication, authorization, compliance, and DevSecOps integration. - [DevOps](https://daily-devops.net/tags/devops/): Pragmatic DevOps strategies: shorten feedback loops, ensure safer releases, automate intelligently, and foster shared ownership across teams. - [Code Quality](https://daily-devops.net/tags/codequality/): Explore articles about code quality, clean code principles, maintainability, and software craftsmanship practices that help teams build better software. - [Technical Debt](https://daily-devops.net/tags/technicaldebt/): Learn to recognize, visualize, manage, and systematically reduce technical debt using proven strategies, tools, and practices for sustainable development. - [Cloud](https://daily-devops.net/tags/cloud/): Explore cloud computing, architectures, Azure, AWS, hybrid strategies, and best practices for building scalable and cost-effective cloud solutions. - [NuGet](https://daily-devops.net/tags/nuget/): Master NuGet package management, package creation, publishing strategies, versioning, and dependency resolution in .NET development projects. - [Kubernetes](https://daily-devops.net/tags/kubernetes/): Learn Kubernetes orchestration, AKS, container management, deployments, services, networking, security, and best practices for K8s clusters. - [Testing](https://daily-devops.net/tags/testing/): All testing posts: unit testing, integration testing, test frameworks, xUnit, NUnit, MSTest, code coverage, mocking, and testing strategies. ## Series - [AKS Architecture & Operations — The Complete Series](https://daily-devops.net/posts/aks-architecture-operations/): Nine articles on production AKS—identity, storage, multi-cluster networking, cost governance, DR, and running 1000-node clusters in practice. - Part 1: [Pod Identity & Access Control in AKS: What Actually Breaks](https://daily-devops.net/posts/pod-identity-access-control-aks/) - Part 2: [AKS Cluster Upgrades: Zero-Downtime Operations That Actually Work](https://daily-devops.net/posts/cluster-upgrades-zero-downtime-aks/) - Part 3: [Storage Architecture & Stateful Workloads in AKS](https://daily-devops.net/posts/storage-architecture-stateful-workloads-aks/) - Part 4: [AKS Cost Optimization: Resource Governance That Actually Works](https://daily-devops.net/posts/cost-optimization-resource-governance-aks/) - Part 5: [Multi-AKS Cluster Networking & Hub-Spoke Topology](https://daily-devops.net/posts/multi-aks-cluster-networking-hub-spoke/) - Part 6: [Container Registry & Image Security in AKS Deployments](https://daily-devops.net/posts/container-registry-image-security-aks/) - Part 7: [AKS Disaster Recovery: Why Your Untested Backup Will Fail](https://daily-devops.net/posts/disaster-recovery-business-continuity-aks/) - Part 8: [Hybrid AKS: Bridging Cloud and On-Prem with Azure Arc](https://daily-devops.net/posts/hybrid-aks-on-prem-azure-arc/) - Part 9: [AKS at Scale: Hard-Won Lessons from 1000+ Node Clusters](https://daily-devops.net/posts/aks-at-scale-mega-cluster-lessons/) - [Why Real Professionals Will Never Be Replaced by AI](https://daily-devops.net/posts/code-sharpens-thinking/): Typing code is trivial now—AI does it instantly. So why will real professionals never be replaced? Because vibe coding collapses under production reality. - Part 1: [The Feedback Loop That AI Can't Replace](https://daily-devops.net/posts/feedback-loop-ai-cant-replace/) - Part 2: [Real Professional Software Engineering in the AI Era](https://daily-devops.net/posts/real-professional-software-engineering-ai-era/) - [.NET Job Scheduling — The Complete Series](https://daily-devops.net/posts/dotnet-job-scheduling/): Seven articles comparing Hangfire, Quartz.NET, Coravel, NCronJob, and TickerQ—match each .NET job scheduler to the workloads it actually fits. - Part 1: [.NET Job Scheduling — The Landscape](https://daily-devops.net/posts/dotnet-job-scheduling-1-landscape/) - Part 2: [.NET Job Scheduling — Hangfire and Persistent Reliability](https://daily-devops.net/posts/dotnet-job-scheduling-2-hangfire/) - Part 3: [.NET Job Scheduling — Quartz.NET for Enterprise Scale](https://daily-devops.net/posts/dotnet-job-scheduling-3-quartznet/) - Part 4: [.NET Job Scheduling — Coravel and Fluent Simplicity](https://daily-devops.net/posts/dotnet-job-scheduling-4-coravel/) - Part 5: [.NET Job Scheduling — NCronJob and Native Minimalism](https://daily-devops.net/posts/dotnet-job-scheduling-5-ncronjob/) - Part 6: [.NET Job Scheduling — TickerQ and Modern Architecture](https://daily-devops.net/posts/dotnet-job-scheduling-6-tickerq/) - Part 7: [.NET Job Scheduling — Choosing the Right Framework](https://daily-devops.net/posts/dotnet-job-scheduling-7-comparative-review/) ## Articles ### ISO Standards (25) - [Your Privacy Docs Are Fiction: Let's Fix That with .NET CLI Tools](https://daily-devops.net/posts/privacy-audit-automation-dotnet-cli/): Quarterly audits can't catch PII added last Tuesday. Build .NET CLI tools that make compliance a build-time fact, not a spreadsheet fantasy. - [Security Tests That Prove Themselves](https://daily-devops.net/posts/cli-security-testing-audit/): Build xUnit and WebApplicationFactory security tests that emit timestamped evidence tied to commit hashes. Retire the SharePoint screenshot folder. - [Certified, Filed, Forgotten: The Compliance Trainwreck](https://daily-devops.net/posts/compliance-verification-dotnet-cli/): Consultants paid. Docs filed. Then compliance becomes a Word doc ritual until an audit exposes the drift. CLI tools fix what checklists never could. - [Security Cosplay: Your Password-Only Admin Panel Isn't Fooling Anyone](https://daily-devops.net/posts/multi-factor-authentication-azure-ad-b2c/): Password-only admin authentication is security cosplay. How Azure AD B2C conditional MFA creates actual protection for privileged operations. - [Who Ran That Migration? Audit Trails for .NET CLI Tools](https://daily-devops.net/posts/audit-trail-dotnet-cli-tools/): dotnet ef database update prints Success and forgets. Add structured logging, user identity, and correlation IDs so privileged CLI runs leave evidence. - [Purpose Limitation in API Design: Leaking Data You Shouldn't](https://daily-devops.net/posts/purpose-limitation-api-design/): Why your API returns too much personal data and how ASP.NET Core resource-based authorization enforces data minimization at the endpoint level. - [247 Strangers Have Root Access to Your Production](https://daily-devops.net/posts/supply-chain-security-github-dependabot/): npm install pulls 247 strangers past your vendor approval gate. Wire up Dependabot, dependency review, and SBOMs to satisfy ISO 27001 A.15 properly. - ["Just Delete the User": Famous Last Words Before the GDPR Audit](https://daily-devops.net/posts/right-to-erasure-implementation-patterns/): That delete request touches 17 systems you'd forgotten existed. Here's how to erase data across distributed systems without nuking your database. - [Why Your Azure Portal Clicks Will Fail the Next Audit](https://daily-devops.net/posts/infrastructure-as-code-compliance-bicep/): Azure Portal clicks fail ISO 27017 Control CLD 6.3.1. Move to Bicep so Git history becomes the audit trail and pull requests the change control. - [Stop Deploying Garbage to Production](https://daily-devops.net/posts/continuous-deployment-security-gates/): Failing tests as warnings, secrets in Git, no approvals. Build GitHub Actions gates that enforce ISO 27001 A.14.2 and A.18.2 before production. - [Privacy Health Checks: Beyond Database Connectivity](https://daily-devops.net/posts/privacy-health-checks-data-access-patterns/): Database connectivity is green, yet 15% of users have expired consents. Add IHealthCheck probes for consent, retention, and access anomalies. - [Green Dashboard, Dead Application](https://daily-devops.net/posts/health-checks-operational-monitoring/): HTTP 200 from /health while users see timeouts. The process runs, but the database pool is exhausted. Check what matters, not if it breathes. - [Your Azure SQL Backups Won't Save You (Here's Why)](https://daily-devops.net/posts/backup-recovery-azure-sql-database/): Azure SQL's seven-day default retention is a compliance time bomb. Configure long-term backup, geo-replication, and tested restores in Bicep. - [Your Stack Traces Are Love Letters to Attackers](https://daily-devops.net/posts/error-handling-security-information-disclosure/): That helpful stack trace in your API response is a roadmap for attackers. Learn secure error handling that logs everything but reveals nothing. - [Nobody Runs Your Cleanup Script (And Regulators Know It)](https://daily-devops.net/posts/data-retention-azure-storage-lifecycle/): Your retention policy wiki page won't survive a GDPR audit. Azure lifecycle policies delete data automatically — no forgotten scripts required. - [Your Logout Button Is Lying: ASP.NET Session Security Done Right](https://daily-devops.net/posts/session-management-aspnet-authentication/): Most ASP.NET session configs pass code review but fail security audits. Learn what actually matters for cookie authentication and JWT tokens. - [Your TLS Config is Probably Wrong: Five Audit Failures I Keep Finding](https://daily-devops.net/posts/encryption-transit-azure-frontdoor/): That TLS 1.0 you kept for backward compatibility? Auditors flag it every time. Here is how Azure Front Door enforces encryption that actually passes. - [Trust Is Not a Control: ISO 27001 Compliance via GitHub](https://daily-devops.net/posts/change-control-github-branch-protection/): "We trust our developers" fails audits. GitHub branch protection makes ISO 27001 change control technically enforceable, not just documented. - [Cookie Banners Won't Save You From ISO 27701](https://daily-devops.net/posts/consent-management-aspnet-identity/): Your "consent management" is probably a boolean column with no audit trail. Here's what ISO 27701 and GDPR Article 7 actually require in .NET. - [NuGet Packages: The Suppliers You Forgot to Audit](https://daily-devops.net/posts/dependency-management-nuget-security/): dotnet add package invites unvetted suppliers into production. Enforce Central Package Management, signature checks, and vulnerability scans. - [Your Azure SQL Is Public Right Now. ISO 27017 Demands You Fix It](https://daily-devops.net/posts/network-isolation-azure-vnet/): Azure defaults expose your database to the internet. ISO 27017 CLD 13.1.4 calls that a compliance failure. VNets and Private Endpoints fix it. - [Your Encryption Is Broken — .NET Data Protection Done Right](https://daily-devops.net/posts/cryptography-dotnet-data-protection/): XOR operations and hardcoded keys fail audits. Learn how .NET Data Protection API with Azure Key Vault delivers real cryptographic compliance. - [Your appsettings.json Is a Compliance Violation](https://daily-devops.net/posts/secrets-management-azure-keyvault/): That connection string in your config file violates ISO 27017. Azure Key Vault is not optional—it is the compliance minimum you have been ignoring. - [Audit Logging That Survives Your Next Security Incident](https://daily-devops.net/posts/audit-logging-azure-app-insights/): Most audit logs fail when incidents happen. Structured logging with Application Insights creates trails auditors accept and engineers actually use. - [Your [Authorize] Attribute Is Compliance Theater](https://daily-devops.net/posts/access-control-aspnet-core/): Your [Authorize] attributes fool developers but not auditors. ISO 27001 A.9 demands actual authorization — not role strings scattered across your codebase. ### .NET (8) - [.NET Job Scheduling — Choosing the Right Framework](https://daily-devops.net/posts/dotnet-job-scheduling-7-comparative-review/): Side-by-side comparison of Hangfire, Quartz.NET, Coravel, NCronJob, and TickerQ with feature matrices and decision heuristics for .NET architects. - [.NET Job Scheduling — TickerQ and Modern Architecture](https://daily-devops.net/posts/dotnet-job-scheduling-6-tickerq/): How TickerQ uses source generation, EF Core, and a real-time dashboard to deliver reflection-free, async-first scheduling for modern cloud-native systems. - [.NET Job Scheduling — NCronJob and Native Minimalism](https://daily-devops.net/posts/dotnet-job-scheduling-5-ncronjob/): NCronJob plugs into ASP.NET Core hosting to deliver zero-dependency, cron-based scheduling for microservices and containerized .NET deployments. - [.NET Job Scheduling — Coravel and Fluent Simplicity](https://daily-devops.net/posts/dotnet-job-scheduling-4-coravel/): How Coravel delivers lightweight, convention-driven scheduling without external dependencies, accelerating development for small to medium applications. - [.NET Job Scheduling — Quartz.NET for Enterprise Scale](https://daily-devops.net/posts/dotnet-job-scheduling-3-quartznet/): Quartz.NET delivers enterprise scheduling with clustering, advanced triggers, job calendars, and multi-datacenter coordination for high-volume workloads. - [.NET Job Scheduling — Hangfire and Persistent Reliability](https://daily-devops.net/posts/dotnet-job-scheduling-2-hangfire/): How Hangfire delivers persistent background processing with built-in dashboards, automatic retries, and distributed job execution for web applications. - [.NET Job Scheduling — The Complete Series](https://daily-devops.net/posts/dotnet-job-scheduling/): Seven articles comparing Hangfire, Quartz.NET, Coravel, NCronJob, and TickerQ—match each .NET job scheduler to the workloads it actually fits. - [.NET Job Scheduling — The Landscape](https://daily-devops.net/posts/dotnet-job-scheduling-1-landscape/): Why background processing matters for cloud-native .NET, and how schedulers evolved from manual timers to robust, distributed orchestration engines. ### C# (8) - [Power of Ten Rules: More Relevant Than Ever for .NET](https://daily-devops.net/posts/dotnet-power-of-ten-rules/): Holzmann's safety-critical coding rules hit harder in modern C#: Roslyn analyzers, nullable types, and the type system enforce what C only wished. - [Your Tests Are Lying — Mutation Testing in .NET](https://daily-devops.net/posts/tests-are-lying/): Stryker.NET exposes the blind spots line coverage hides—real lessons, richer examples, and a sustainable mutation testing flow for .NET DevOps. - [Configuration-First Health Checks for Modern .NET](https://daily-devops.net/posts/netevolve-healthchecks/): Declarative, high-performance health checks for .NET driven by configuration—covers databases, queues, caches, and cloud services, not code. - [Clean Code: A Lip Service, Not a Standard](https://daily-devops.net/posts/clean-code-lip-service-not-a-standard/): How misunderstood Clean Code ideals harm .NET systems. Learn to recognize code quality failures and apply C# best practices for maintainable software. - [Still Waiting for the Final Piece: C# 14 Comes Close](https://daily-devops.net/posts/still-waiting-for-the-final-piece/): C# 14’s new 'Extension Everything' syntax comes close to VB.NET’s ByRef magic—but not quite. A witty look at what’s still missing in modern .NET. - [.NET 10 RC 1: Architectural Impact and C# 14](https://daily-devops.net/posts/dotnet10rc1-is-knocking-at-the-door/): .NET 10 RC 1 brings C# 14 features, major performance improvements, and architectural changes. Explore containerization, NativeAOT, and breaking changes. - [Understanding the C# `StringValues`: A Comprehensive Guide](https://daily-devops.net/posts/understanding-csharp-stringvalues/): Learn about C# StringValues type, its features, usage patterns, and performance benefits in efficiently handling string values in modern .NET applications. - [Introducing Nullability in Legacy .NET Code](https://daily-devops.net/posts/introducing-nullability-in-legacy-code/): Step-by-step guide for implementing nullable reference types in legacy .NET and C# codebases with practical strategies, patterns, and best practices. ### Software Engineering (6) - [My Biggest Enemy Writes My Code](https://daily-devops.net/posts/code-as-legacy-past-self/): Past Self is the most dangerous engineer on your team: skilled, well-intentioned, and gone when the bill comes due. This is about the code he left behind. - [The Code You Write Today Is Someone's Problem Tomorrow](https://daily-devops.net/posts/code-as-legacy/): Code is not just something you write—it is something you leave behind. After nearly two decades in production, here is what treating code as legacy means. - [Real Professional Software Engineering in the AI Era](https://daily-devops.net/posts/real-professional-software-engineering-ai-era/): AI generates code instantly. Professionals spot when it is subtly wrong, debug failures AI cannot reason about, and see through the productivity narrative. - [The Feedback Loop That AI Can't Replace](https://daily-devops.net/posts/feedback-loop-ai-cant-replace/): Compilers validate logic, profilers expose performance lies, and production reveals every deferred decision. AI cannot close that feedback loop for you. - [Why Real Professionals Will Never Be Replaced by AI](https://daily-devops.net/posts/code-sharpens-thinking/): Typing code is trivial now—AI does it instantly. So why will real professionals never be replaced? Because vibe coding collapses under production reality. - [Vibe Coding in .NET: Creative Catalyst or Maintenance Risk?](https://daily-devops.net/posts/vibe-coding-isnt-wrong-its-unfinished/): Explore the balance between intuitive coding and structured development in .NET, examining when vibe coding helps and when it hinders project success. ### AI Code Assistant (5) - [.claudeignore Doesn't Exist. Here's What Does.](https://daily-devops.net/posts/claudeignore-dotnet/): .claudeignore is a hallucination. Claude invented it, the internet spread it, and now Claude keeps recommending it. Here is what actually works in .NET. - [Buzzword-Driven Development vs. Fundamental Software Quality](https://daily-devops.net/posts/buzzword-driven-development/): Why fundamental .NET software quality must never be sacrificed for trendy buzzwords, including recommended analyzers, settings, and practices. - [Instruction by Design: Transforming ADRs into Actionable AI Guidance](https://daily-devops.net/posts/instruction-by-design/): Transform architectural decision records (ADRs) into actionable AI guidance for enhanced team consistency, streamlined onboarding, and automated workflows. - [How to Use Copilot Without Becoming Its Puppet](https://daily-devops.net/posts/copilot-without-becoming-its-puppet/): Master GitHub Copilot as a productivity tool while maintaining your coding skills, critical thinking abilities, and commitment to software craftsmanship. - [Copilot Turns Junior Devs Into Syntax Secretaries](https://daily-devops.net/posts/copilot-turns-junior-devs-into-syntax-secretaries/): Explore how GitHub Copilot and AI assistants impact junior developer growth, focusing on learning fundamentals beyond syntax completion and automation. ### Kubernetes (5) - [AKS at Scale: Hard-Won Lessons from 1000+ Node Clusters](https://daily-devops.net/posts/aks-at-scale-mega-cluster-lessons/): Real-world lessons from operating 1000+ node AKS clusters: etcd limits, network saturation, observability overhead, and cost spirals you need to know. - [Container Registry & Image Security in AKS Deployments](https://daily-devops.net/posts/container-registry-image-security-aks/): ACR security is foundational. Learn practical hardening: image scanning, signing, RBAC, private endpoints, and policy enforcement for AKS clusters. - [AKS Cost Optimization: Resource Governance That Actually Works](https://daily-devops.net/posts/cost-optimization-resource-governance-aks/): How to control AKS costs with pod density, node-pool design, spot VMs, and FinOps tagging—without sacrificing reliability or operational control. - [AKS Architecture & Operations — The Complete Series](https://daily-devops.net/posts/aks-architecture-operations/): Nine articles on production AKS—identity, storage, multi-cluster networking, cost governance, DR, and running 1000-node clusters in practice. - [Kubernetes Is Not a Platform Strategy](https://daily-devops.net/posts/kubernetes-not-platform-strategy/): Kubernetes orchestrates containers brilliantly. But governance, identity, and recovery live elsewhere—and ignoring those boundaries breaks production. ### Architecture (4) - [.NET 10: Boring by Design, Reliable by Default](https://daily-devops.net/posts/dotnet-10-released/): .NET 10 ships JIT physical promotion, AVX 10.2 loop vectorization, and C# 14 with LTS support through November 2028. Boring is finally the feature. - [.NET 10: Timing Is the New Technical Debt](https://daily-devops.net/posts/timing-is-the-new-technical-debt/): Why Q1 2026 .NET 10 migration is the most strategic move: proactive dependency management turns release-cycle timing from debt into advantage. - [Retiring Legacy .NET Projects: Risk, Cost, Forward Motion](https://daily-devops.net/posts/retiring-legacy-dotnet-projects/): Modernize legacy .NET systems with modular architecture, risk reduction, cost efficiency strategies, and practical patterns for measurable impact. - [TUnit — A Pragmatic Evaluation for .NET Teams](https://daily-devops.net/posts/tunit-a-pragmatic-evaluation-for-dotnet-teams/): A pragmatic TUnit evaluation for .NET teams - comparing performance, maintainability, and ecosystem readiness against MSTest, xUnit, and NUnit frameworks. ### Security (4) - ["We Store Secrets in appsettings.json": A Horror Story in Five Acts](https://daily-devops.net/posts/managed-identity-rbac-azure-resources/): That ClientSecret has been in your Git history since 2019. Here's how Azure Managed Identity eliminates credentials from your .NET apps entirely. - [Your Incident Response Plan Is a Lie. Here's How to Fix It.](https://daily-devops.net/posts/incident-response-github-actions/): ISO 27001 demands effective incident response. GitHub Actions transforms your dusty Word doc into automated workflows that actually work at 3 AM. - [ISO/IEC 27001, 27017 & 27701 for .NET Developers — The Complete Series](https://daily-devops.net/posts/iso-standards/): Nearly 30 articles map ISO/IEC 27001, 27017, and 27701 to concrete .NET and Azure: secrets, access control, GDPR erasure, and supply chain security. - [Why ISO Standards Actually Matter for .NET Developers](https://daily-devops.net/posts/iso-standards-intro-dotnet-developers/): ISO/IEC 27001, 27017, and 27701 aren't compliance theater anymore—they're engineering requirements in cloud-native .NET that affect every code decision. ### Technical Debt (4) - [Stoßlüften: The Architecture of Intentional Resets](https://daily-devops.net/posts/stossluften-and-software-systems/): Hidden decay slips past green dashboards: intentional resets, rebuilds, and reproducibility checks expose what monitoring quietly keeps hiding. - [Kehrwoche: What Swabian Cleaning Teaches About Technical Debt](https://daily-devops.net/posts/kehrwoche-technical-debt/): A Swabian tradition reveals why small, routine maintenance beats big cleanup initiatives—and what software teams get wrong about technical debt. - [Most Software Teams Are Lying to Themselves—2026 Needs to Be Different](https://daily-devops.net/posts/happy-new-year-2026/): Stop promising to fix technical debt next quarter. .NET 10, analyzers, and tests are ready in 2026; only the engineering discipline is missing. - [A Tale of Forgotten Pennies and Lost Dollars](https://daily-devops.net/posts/tale-of-forgotten-pennies-and-lost-dollars/): Discover how small technical debts accumulate into major project costs and learn strategies to manage them effectively in software development. ### Certification (3) - [Reimagining the Microsoft Certification Exam UI Experience](https://daily-devops.net/posts/reimagining-the-microsoft-certification-exam-ui/): Experience the revolution in Microsoft Certification Exam UI with streamlined navigation, enhanced accessibility, and interactive design features. - [When Can I Finally Renew My Microsoft Certification](https://daily-devops.net/posts/when-can-i-finally-renew-my-microsoft-certification/): Learn when and how to renew your Microsoft certifications including Azure, Dynamics 365, Microsoft 365, and Power Platform with renewal timelines. - [How to Prepare for Microsoft Certification](https://daily-devops.net/posts/how-to-prepare-for-microsoft-certification/): Comprehensive guide to preparing for Microsoft certifications including Azure, Microsoft 365, Power Platform, and Dynamics 365 exams with study strategies. ### MSBuild (3) - [Stop Breaking Multi-Targeting Builds with String Comparisons](https://daily-devops.net/posts/proper-use-of-targetframework-conditions/): String comparisons in TargetFramework conditions break multi-targeting builds. Here is why IsTargetFrameworkCompatible() exists and saves you hours. - [Managing Errors, Warnings, and Configurations in C# and .NET](https://daily-devops.net/posts/managing-errors-warnings-and-configurations/): Learn strategies for managing static code analysis warnings, improving code quality, configuring analyzers, and integrating into CI/CD pipelines. - [BuildingInsideVisualStudio: .NET Project Properties](https://daily-devops.net/posts/buildinginsidevisualstudio/): Learn how to use the BuildingInsideVisualStudio property in .NET to conditionally include packages, optimize builds, and streamline developer workflows. ### Networking (3) - [Multi-AKS Cluster Networking & Hub-Spoke Topology](https://daily-devops.net/posts/multi-aks-cluster-networking-hub-spoke/): Practical multi-cluster AKS networking with VNet peering, hub-spoke routing, DNS, shared ingress, and clear criteria to keep mesh complexity in check. - [AKS Network Policies: The Security Layer Your Cluster Is Missing](https://daily-devops.net/posts/aks-network-policies-zero-trust/): Learn why AKS Network Policies are essential for Zero Trust, pod isolation, and Kubernetes security—plus how to implement them the right way. - [AKS Networking Clash: kubenet vs. CNI vs. CNI Overlay](https://daily-devops.net/posts/aks-networking-clash/): Azure CNI Overlay beats kubenet's 400-node ceiling and classic CNI's IP exhaustion. Compare all three AKS network models before the cluster locks in. ### Performance (3) - [Stop Parsing the Same String Twice: CompositeFormat in .NET](https://daily-devops.net/posts/compositeformat-performance-boost/): Parse once, format a thousand times. CompositeFormat eliminates redundant parsing overhead and makes your .NET apps faster with one simple change. - [How SearchValues Saved Us From Scaling Hell](https://daily-devops.net/posts/searchvalues-saved-us-from-scaling-hell/): How SearchValues in .NET 8-10 delivered 5x faster string operations, reduced infrastructure costs, and evolved with multi-substring optimization. - [ConstantExpectedAttribute: Compile-Time Performance](https://daily-devops.net/posts/constant-expected-attribute/): How ConstantExpectedAttribute in .NET 7+ enables compile-time optimizations, better IDE support, and improved performance via constant signaling. ### CLI (2) - [.NET CLI 10 – Microsoft Finally Realizes DevOps Exists](https://daily-devops.net/posts/dotnet-10-cli-devops/): .NET 10 CLI finally ships features DevOps teams needed years ago: built-in container builds, ephemeral tools, and machine-readable schemas across the SDK. - [Stop Typing: The .NET CLI Tab Completion You've Been Missing](https://daily-devops.net/posts/dotnet-cli-expanding-scope-autocomplete/): .NET 10 ships native tab completion for the dotnet CLI. One command, no Register-ArgumentCompleter snippets, and your shell finally remembers. ### NetEvolve (2) - [NetEvolve.HealthChecks 5.0: 27+ Targeted Probes, Zero Boilerplate](https://daily-devops.net/posts/healthchecks-5-0/): HealthChecks 5.0 ships 27+ targeted AWS/Azure/GCP, graph, vector, streaming and AI probes and removes inheritance boilerplate via source generation. - [Modern Defensive Programming in .NET 8/9 with Throw Helpers](https://daily-devops.net/posts/modern-defensive-programming/): ArgumentNullException.ThrowIfNull modernizes .NET guard clauses; NetEvolve.Arguments gives a unified API across multi-framework target projects. ### NuGet (2) - [PackageDownload: NuGet's Forgotten Power Tool](https://daily-devops.net/posts/nuget-packagedownload-functionality/): PackageDownload solves a real problem most developers don't know exists. But its painful limitations reveal the cost of evolving mature platforms. - [Manage NuGet Packages Centrally](https://daily-devops.net/posts/manage-nuget-packages-centrally/): Learn how to centrally manage NuGet packages in .NET solutions using Directory.Packages.props for better dependency management and version control. ### Observability (2) - [Observability in AKS CNI Overlay: When Pod IPs Hide Behind Nodes](https://daily-devops.net/posts/observability-logging-aks-cni-overlay/): CNI Overlay hides pod IPs behind nodes, breaking observability. Practical patterns for log aggregation, network flows, and debugging at scale. - [Why Your Logging Strategy Fails in Production](https://daily-devops.net/posts/dotnet-advanced-logging/): Most .NET teams log 50MB per request and still can't diagnose the 3 AM outage. Fix the anti-patterns that turn observability into expensive noise. ### Testing (2) - [Stop Pretending TimeProvider Doesn't Exist](https://daily-devops.net/posts/stop-pretending-timeprovider-doesnt-exist/): DateTime.UtcNow is a hidden dependency that breaks tests at midnight. .NET 8 shipped TimeProvider in 2023; two years on, most codebases still ignore it. - [.NET 10 Testing: Microsoft Finally Fixed the Test Runner (Mostly)](https://daily-devops.net/posts/dotnet-10-testing/): Microsoft.Testing.Platform replaces VSTest in .NET 10. See what improves, what breaks, and why your global.json now matters in IDE and CI reliably. ### AKS (1) - [AKS Cluster Upgrades: Zero-Downtime Operations That Actually Work](https://daily-devops.net/posts/cluster-upgrades-zero-downtime-aks/): Master AKS upgrades with cordon/drain mechanics, Pod Disruption Budgets, multi-node-pool rollouts, and automation for zero-downtime operations. ### Artificial Intelligence (1) - [AI Code Review Is a Sycophant: Why It Always Approves](https://daily-devops.net/posts/ai-code-review-is-a-sycophant/): Copilot and Claude find real bugs, but miss wrong abstractions and bad designs. Understanding that gap matters more than debating the tools. ### Azure DevOps (1) - [Illuminate Technical Debt with .NET Analyzers & Metrics](https://daily-devops.net/posts/illuminate-technical-debt/): Learn how to make technical debt visible, measurable, and manageable using platforms like Azure DevOps with practical tools, metrics, and strategies. ### Best Practices (1) - [.NET 10 and the Release Cycle Paradox](https://daily-devops.net/posts/dotnet-10-release-cycle-paradox/): .NET's predictable yearly cadence delivers stability and pressure at once: migration insights, cultural notes, and recommendations for .NET 10. ### Cloud Storage (1) - [Storage Architecture & Stateful Workloads in AKS](https://daily-devops.net/posts/storage-architecture-stateful-workloads-aks/): PVC/PV patterns, Azure Disk vs Files trade-offs, Velero backup strategies, and cross-cluster replication for production stateful workloads in AKS. ### Code Quality (1) - [Code Metrics and Configuration: Beyond the Numbers Game](https://daily-devops.net/posts/code-metrics-configuration/): A critical look at .NET and Visual Studio code metrics, their configuration, and why context matters infinitely more than arbitrary thresholds. ### Configuration (1) - [Alphabet Soup: The Format Buffet Nobody Ordered](https://daily-devops.net/posts/alphabet-soup-file-formats/): CSV breaks on commas. YAML breaks on spaces. JSON breaks on trailing commas. TOML, TAML, TOON, CCL joined the chaos. Nobody wins. Here's why. ### Dependency Management (1) - [dependamerge-action: Automated Dependency Merging](https://daily-devops.net/posts/dependamerge-action/): Learn how to automate dependency management with the dependamerge GitHub Action for streamlined security updates, maintenance workflows, and automated PRs. ### Disaster Recovery (1) - [AKS Disaster Recovery: Why Your Untested Backup Will Fail](https://daily-devops.net/posts/disaster-recovery-business-continuity-aks/): AKS outages happen. Build a tested DR plan with Velero, realistic RTO/RPO targets, and multi-region failover steps your team can run under pressure. ### Hybrid Cloud (1) - [Hybrid AKS: Bridging Cloud and On-Prem with Azure Arc](https://daily-devops.net/posts/hybrid-aks-on-prem-azure-arc/): Practical patterns for connecting AKS to on-prem: ExpressRoute, VPN connectivity, Azure Arc management, DNS resolution, and identity federation. ### Identity & Access Management (1) - [Pod Identity & Access Control in AKS: What Actually Breaks](https://daily-devops.net/posts/pod-identity-access-control-aks/): Workload Identity Federation changed how AKS handles authentication. Credential leaks, RBAC failures, identity drift: what breaks and how to fix it. ### Logging (1) - [Six Ways ILogger Silently Fails in Production](https://daily-devops.net/posts/your-ilogger-is-lying-to-you/): Half a day lost to BeginScope silently doing nothing in production. ILogger compiles, runs, produces no errors, and fails quietly in six distinct ways. ### Microsoft (1) - [The Generous Gift? Microsoft Extends .NET STS Support to 24 Months](https://daily-devops.net/posts/extended-dotnet-sts-support-timeframe/): Microsoft extended .NET STS support from 18 to 24 months. Examine what this policy change really means for developers, teams, and organizations. ### Open Source (1) - [2025 in Review: The Year .NET Stopped Lying to Itself](https://daily-devops.net/posts/dotnet-2025-year-in-review/): No runtime revolutions—Aspire, TUnit, and Testcontainers won by making distributed systems visible. Plus .NET's open source sustainability crisis. ### Privacy (1) - [Stop Hoarding Personal Data in Entity Framework](https://daily-devops.net/posts/data-minimization-entity-framework/): Monolithic user entities make GDPR deletion impossible. Separate operational from personal data in EF Core with nullable, purpose-documented fields. ### Source Generators (1) - [Source Generators: The Build Performance Killer](https://daily-devops.net/posts/dotnet-source-generators-hidden-costs/): You added a NuGet package and your build jumped from 2 to 8 seconds. That package ships a source generator. Here is what it costs and how to find out. ### Visual Studio (1) - [Visual Studio 2026 - Why AI-Native Tooling Will Matter](https://daily-devops.net/posts/visual-studio-2026/): Visual Studio 2026 brings AI-native tooling. Learn what professional .NET teams should expect and how enterprise architecture adapts to changes. ## Optional - [RSS feed](https://daily-devops.net/feed.rss): Subscribe to new articles (RSS 2.0) - [Atom feed](https://daily-devops.net/feed.atom): Subscribe to new articles (Atom) - [JSON Feed](https://daily-devops.net/feed.json): Subscribe to new articles (JSON Feed) - [Full content for LLMs](https://daily-devops.net/llms-full.txt): Concatenated article text - [Browse all tags](https://daily-devops.net/tags/): Tag index