Posts

Showing posts from November, 2015

Web API over WCF REST

 Web API Controller vs MVC Controller ApiControllers are specialized in returning data. For example, they take care of transparently serializing the data into the format requested by the client. Also, they follow a different routing scheme by default (as in: mapping URLs to actions), providing a REST-ful API by convention. You could probably do anything using a Controller instead of an ApiController with the some(?) manual coding. In the end, both controllers build upon the ASP.NET foundation. But having a REST-ful API is such a common requirement today that WebAPI was created to simplify the implementation of a such an API. It's fairly simple to decide between the two: if you're writing an HTML based web/internet/intranet application - maybe with the occasional AJAX call returning json here and there - stick with MVC/Controller. If you want to provide a data driven/REST-ful interface to a system, go with WebAPI. You can combine both, of course, having an ...

Asynchronous Methods using Wait and Async

Image
Thread Pool and Requests In IIS Web server  .Net Framework maintains a pool of Threads to serve incoming requests. When a request arrives a thread from the pool is dispatched to process that request. If the request is processed synchronously, the thread that processes the request is busy while the request is being processed, and that thread cannot service another request. This might not be a problem, because the thread pool can be made large enough to accommodate many busy threads. However, the number of threads in the thread pool is limited (the default maximum for .NET 4.5 is 5,000). In large applications with high concurrency of  long-running requests, all available threads might be busy. This condition is known as thread starvation. When this condition is reached, the web server queues requests. If the request queue becomes full, the web server rejects requests with an HTTP 503 status (Server Too Busy). The CLR thread pool has limitations on new thread i...

Multi Tenant Architecture vs Single Tenant Software Architecture

First, lets talk about What exactly Multi-tenant and Single Tenants Architecture, As name suggest, Multi-tenant Software as a Service (SaaS) is an architecture where multiple companies share the same instance to store their data.  This instance is typically divided (or partitioned) to prevent the companies from accessing each other’s information. This is like high-rise building where the floor plans are generally set but minor cosmetic changes can be made to the individual units. Significant change comes at a much higher cost, On the Other hand, Single-tenant (or hosted) Software as a Service (SaaS) is an architecture where each company has their own instance of the software application and supporting infrastructure. Think of it like a neighborhood community developed by the same architect and engineer where each household has the ability to change and customize their property as desired. By having a single hosted instance the purchaser can tweak and customize the ...

CLOUD-NATIVE ARCHITECTURES: Innovations in .NET and Azure: Enhancing Scalability and Security in Cloud-Based Software Architecture

CLOUD-NATIVE ARCHITECTURES Innovations in .NET and Azure: Enhancing Scalability and Security in Cloud-Based Software Architecture   Abstract: As the demand for scalable, secure, and efficient cloud solutions grows, leveraging advanced software architecture becomes essential. This paper explores innovative approaches in using .NET and Azure to build robust, cloud-native applications that meet modern enterprise environments' challenges. By integrating microservices architecture, serverless computing, and enhanced security protocols, this study demonstrates how Azure’s platform services and .NET’s versatility enables scalable solutions for businesses requiring flexibility and high availability. Additionally, the paper examines the role of React.js in optimizing front-end performance for seamless user interactions in cloud applications. Real-world case studies and performance benchmarks illustrate the significant improvements in application resilience, cost efficiency, and re...