Tidy up - Unused Project and Nuget package reference using Visual Studio 2019

If you are a Developer/Architect using Visual Studio as IDE for your development activities, this blog post will be of your interest. During the Ignite 2021 conference, Microsoft released Visual Studio 2019 v16.9 and v16.10 Preview 1. As part of version 16.10 Preview 1, one of the cool features they introduced is to "Remove Unused References..." for any Projects and Nuget packages that are not in use. At the time of writing this blog post, we have Visual Studio Version 16.10.0 (official release) which includes this new feature.  As part of development, we generally get carried away and introduce new Nuget package references to your project and add new references to your Projects. By the end of development, you will not be 100% sure which are not being referenced and unused which means you will leave those unused project references in your application. Now you might be wondering what's the big deal in it since it doesn't harm. The advantage of removing unused project r

Azure Function v3 with DI (Dependency Injection)

Azure Functions allows you to run small pieces of code (called "functions") without worrying about application infrastructure. Few key benefits of Azure function usage are like Serverless applications we can develop using Azure Function, can develop application with several languages like C#, Java, Python, Powershell. It supports pay per pricing model,integration with several Azure Services etc.

As of today, Azure Functions 3.0 is now go-live and ready for production.One of the major benefits of this release is Azure Functions v3 targeting netcoreapp3.1. If you want to develop using .NET Core 3.1, you must use Visual Studio 2019 16.4 or newer.Upgrading a v2 app to v3 can be found here

Just a brief history about version of Azure function with .NET frameworks
  1. Azure Function v1 - .NET framework 4.61
  2. Azure Function v2 - .NET Core app 2.1
  3. Azure Function v3 - .NET Core app 3.1
Support for dependency injection begins with Azure Functions 2.x. Having Dependency Injection eases things like DBContext, Http client usage (Httpclienfactory), Iloggerfactory, cache support etc.

In-spite of having latest version of Azure function v3 for Dependency Injection to enable few steps are manual as shown below. Hope coming release will incorporate changes or support for the same.

Prerequisites

Before you can use dependency injection, you must install the following NuGet packages:
  • Microsoft.Azure.Functions.Extensions
  • Microsoft.NET.Sdk.Functions


1. Open Visual Studio and select to create a new Azure Functions project ensure you choose v3.


2. To support DI following task need to be done manually.Create the Startup class
  • Configure(IFunctionsHostBuilder builder) method is where we register all services. IFunctionHostBuilder.Services is the IoC Container
  • The Startup class must extend the FunctionsStartup class
  • Registering services is exactly the same way we do in other .NET Core applications by using AddScoped, AddSingleton or AddTransient methods 
3. Removal of Static keyword in Function class and method level


References

Comments

Popular posts from this blog

Tidy up - Unused Project and Nuget package reference using Visual Studio 2019

Swagger UI for Azure Function v2 & v3 APIs

Authenticate Azure Functions - API Keys