Take advantage of xUnit and ASP.Net Core’s test host package to run integration tests on your ASP.Net Core web applications
Take advantage of the iterator pattern to traverse aggregate objects without having to expose their underlying data structures
Take advantage of the fast, lightweight, and easy-to-use LiteDB for your desktop, mobile, and simple web applications
Take advantage of the flexible and easy-to-use RestSharp HTTP API client to consume your REST APIs
Take advantage of a DelegatingHandler and the X-HTTP-Method-Override in Web API to overcome browser and firewall constraints
Understand the pros and cons of the .Net Framework's various native classes for working with HTTP requests and responses
Take advantage of ASP.NET Core middleware to customize your application’s handling of HTTP requests and responses.
This article provides a know how on the Interpreter pattern and how it can be implemented. The code examples are provided in C#.
Take advantage of asynchronous web pages in ASP.Net to improve the responsiveness and scalability of your applications
Take advantage of feature toggles to manage application features without having to maintain multiple source code branches
Two approaches to solving temporal coupling, a 'design smell' that results when members of a class must be invoked in a specific sequence
Take advantage of the Memento design pattern to store and restore an object's state to support undo or rollbacks in your application.
Take advantage of custom exception classes to extend error handling or add meaningful information to the errors thrown by your .Net applications
Learn the causes of memory leaks in .Net, how to detect them, and how avoid them in your applications
Take advantage of ASP.Net Web API authorization filters to authorize incoming requests to your web API
It's easy to create a custom logging framework to log your .Net application's errors and events to a flat file, a database, or the event log
Take advantage of ASP.Net Core's flexible, customizable and extendable Logging API to plug in a custom logger with ease
How to use the InMemory provider in Entity Framework Core to test your methods without hitting the database or using fakes and mocks
Take advantage of dependency injection in ASP.NET Core to plug in components and improve code maintenance and testability
Take advantage of in-memory caching in ASP.NET Core to improve the performance and scalability of your application
How to take advantage of the volatile keyword in C# to ensure that concurrent threads get the latest value of an object
Use lazy initialization to save resources and improve performance by deferring the initialization of expensive objects until they're requested
Get started with documents and collections in the popular, open source, NoSQL database using C#
Take advantage of the open source search engine using C# to search and analyze your application’s data in real time
Boost application performance by using the object pool design pattern to recycle objects that are expensive to create
Take advantage of Akka.Net to build concurrent, fault tolerant, event-driven applications using the high-level abstractions of the actor model
Techniques include using cache-friendly structs provides a huge performance gain
Take advantage of the fast and scalable open source message broker to meet high-volume data processing challenges on Windows
Understand why the large object heap in .Net is prone to fragmentation and how to use memory more efficiently
Take advantage of a custom message handler to log request and response metadata in Web API for debugging, tracing, and inspection of the incoming and outgoing calls
Take advantage of NBench to analyze code throughput, memory allocations, and GC overhead in your .NET application
A custom wrapper for your Web API responses can provide meaningful information and ensure consistency regardless of success or failure.
Take advantage of HTTP PATCH to partially update resources and transfer less data over the wire
Take advantage of the mediator design pattern to promote loose coupling and simplify the coding of object interactions
Take advantage of the built-in correlation IDs in Web API to track HTTP requests that flow through multiple back-end services
Knowing how thread injection works in .Net is key to allowing your ASP.Net application to make the best use of system resources
Take advantage of RabbitMQ, an open source, fast message broker to store and retrieve messages in your applications
The template method design pattern allows you to define the skeleton of an algorithm in a base class and defer the details to subclasses
The ASP.Net Core MVC framework enables you to build applications that are loosely-coupled, responsive, fast and easier to test and maintain
Range requests enable you to retrieve partial content in lieu of the entire content for improved performance when working with WebAPI over HTTP.
This article presents a discussion on enums, what they are and why they are useful and the design constraints when using enums in applications and how to implement a type-safe enum pattern with code examples wherever appropriate.
StructureMap can inject the necessary dependencies seamlessly in your WebAPI controllers
This article provides a discussion on how we can send back responses in WebAPI using the IHttpActionResult interface and how things have changed from the way we used the HttpResponseMessage class in the earlier versions of WebAPI.
NInject is a popular IOC container that can be used to inject dependencies in your WebAPI controllers easily
Cache your Task objects to improve performance by preventing the unnecessary expensive operations from being executed
Redis is an open source, fast, feature rich, in-memory caching engine that can be used to store and retrieve data in your applications
The FileSystemWatcher class can be used to monitor changes to file system and trigger events when such changes occur
The DotMemory Unit framework from JetBrains can be used to analyze memory usage, write unit tests, and detect memory issues in .Net apps
PostSharp's AOP capabilities help you profile methods and identify the slow running methods in your application
Local functions enable you to define a function within the scope of another method to help in promoting encapsulation and bring local variables into scope