top of page

Right tools for the Job

  • gs9074
  • Sep 2, 2024
  • 2 min read

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.


2. Cost Efficiency:


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


3. Maintainability and Code Simplification:


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


4. Contextual Suitability:


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


5. 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



 
 
 

Comentários


Bagh Co Logo

Bagh Co Ltd

  • LinkedIn
  • X
  • Threads

©2025 by Bagh Co Ltd.

bottom of page