Updated: Aug 19, 2025

I was in a discussion with a client who had adopted a distinct approach to their app.

Knowing their app was solely for Azure, they opted for native C# features like async programming, ASP.NET's identity framework, and various logging libraries.

This made me wonder: Is their decision rooted in viewing programming as an art form, to express creativity in solving problems? I understand that; I too find satisfaction in crafting elegant solutions.

Setting that personal enjoyment aside, I wondered whether this approach is worthwhile, especially when Azure provides similar capabilities.

For example:

Async Operations:

In C#:

Using async and await offers a direct way to handle concurrency, enhancing the application's responsiveness.

On Azure:

Azure Functions provide a larger-scale solution for async processing, in a serverless environment.

Security & Identity Management:

In C#: ASP.NET Core Identity allows for a hands-on approach to managing authentication and security, tailored to specific application needs.

On Azure: Azure Entra Id (Active Directory) offers a more comprehensive and scalable solution.

Logging and Monitoring:

In C#: Using libraries like NLog or Serilog provides control over application logging, allowing for detailed tracking of events and issues.

In Azure: Azure Monitor and App Insights extend logging capabilities, offering broader insights including performance metrics and cloud-specific diagnostics. A holistic, end to end approach.

Scalability:

In C#: Scalability in C# requires careful design and planning, focusing on resource management and application architecture.

On Azure: Features, such as auto-scaling in Azure App Service/ Function Apps, offer a more automated and dynamic approach to handling varying loads.

Ok, Azure can replace many of the features we can handle with C#, but should it, and why?

This question is central when deciding how Azure fits into our development approach.

  1. Time and Implementation Quality:

Azure's pre-built services can speed up development, but assess if they provide more efficient or better-quality solutions than custom C# implementations.

  1. Cost Efficiency:

Consider the cost. Does Azure's convenience and scalability justify its costs compared to C# solutions?

  1. Maintainability and Code Simplification:

Azure can lead to less complex code, potentially simplifying maintenance. Determine if this benefit aligns with your long-term goals.

  1. Contextual Suitability:

Will Azure add value or if it’s being used where native C# is sufficient.

  1. Benefits and Dependencies:

Azure introduces a reliance on a specific cloud platform. Weigh this against the benefits it offers your application.

Given the time efficiency, cost, maintainability, and overall impact, should an app primarily leverage its native C# features, or should it embrace the capabilities available through Azure?

What's your take on this decision in app development?

I'd love to hear your perspectives and experiences