Directory Image
This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with our Privacy Policy.

Improve your Asp.Net Performance with these 5 Methods

Author: Maulik Shah
by Maulik Shah
Posted: Oct 26, 2020

When we talk about performance, ASP.Net is the first platform that comes in our mind. It is a stable foundation with power pack features for web applications. However, to ensure the smooth working of an application, it is necessary to check the application performance from time to time. Removing the unnecessary codes, updating the latest version and advanced features are the few ways to improve your ASP.Net Core application performance. Let’s find out more!

1. Avoid Blocking Calls

Design your ASP.Net Core application to execute multiple processes simultaneously using an Asynchronous API handling numerous requests without waiting on blocking calls. Instead of waiting for the synchronous tasks to complete, it starts working on another thread.

The common mistake we make is calling Task.Wait or Task.Run that blocks asynchronous execution and results in unnecessary thread pool scheduling. So avoid calling Task.Run as ASP.Net Core already runs the thread in the normal thread pool.

Instead, try using hot code paths, call data access, I/O, and long-running patterns and API asynchronously. Make control/razer page actions asynchronous to benefit from async/await patterns.

2. Use Cache

The common trick to increase the application performance is to reduce the number of server requests sent out. This can be achieved if we store the received response from the server. That means, the next time a call is made for a similar response, instead of requesting the server, the caching feature would first check the stored data and if it matches, retrieve it and send it to the user without calling the server; saving time and improving the overall performance. Usually, there are three types of caching: client-side, server-side, or client/server-side. Talking about ASP.Net Core Development, it provides caching in-memory, response caching, and distributed caching.

3. Optimize Data Access and I/O

Accessing data by interacting with data stores is the slowest part of an ASP.Net Core application. Thus, it is crucial to read and write effectively for good performance.

Recommendations:

  • Call all the data asynchronously
  • Do not retrieve more than the required data
  • Consider caching frequently. Use MemoryCache or a DistributedCache depending on the scenario
  • Minimize the network round trips
  • Try to retrieve the data in a single call rather than multiple calls
  • Use no-tracking queries in Entity Framework Core while accessing read-only data as it returns the results efficiently
  • Filter and aggregate LINQ queries so that database performs filtration
  • Do not use projection queries on collections as they can result in "N+1" SQL queries

Recommendation: Measure the impact of high performing queries before coding.

4. Handle Response-Request Process Asynchronously

We know that a controller and page model can handle most of the app requests by calling the necessary services. So try to complete long-running tasks outside of HTTP requests by handling the requests with background services. Use real-time communication options such as SignalR for communication with clients asynchronously. Completing the work out of the process is beneficial for CPU intensive tasks.

Recommendation: Avoid reading large requests into memory.

5. Use Response Caching Middleware

To fasten your code performance, use middleware components that request processing pipelines, and optimize the frequently-called code paths by storing responses and serving them later through the cache. The common examples include - custom logging, authorization handlers, or initialization of transient services.

Recommendation: Do not use custom middleware components with long-running tasks.

Bonus Tips to Improve ASP.Net Core Development

  • Avoid synchronous read or write on HttpRequest/HttpResponse body
  • Prefer ReadFormAsync over Request.Form
  • Avoid reading large request bodies or response bodies into memory
  • Do not store IHttpContextAccessor.HttpContext in a field
  • Do not access HttpContext from multiple threads

With these tips, you can improve your ASP.Net application performance. Hire ASP.Net Developer or contact your ASP.Net development company to implement these features in your application today.

About the Author

Maulik Shah runs an IT company named BiztechCS which is headquartered in Ahmedabad, India. They offer innovative IT solutions like mobile app development, eCommerce web development, custom solutions, and more.

Rate this Article
Leave a Comment
Author Thumbnail
I Agree:
Comment 
Pictures
Author: Maulik Shah

Maulik Shah

Member since: May 28, 2015
Published articles: 85

Related Articles