Types of AWS Lambda .NET Projects

Distinguish between different types of AWS Lambda .NET project types.

There are three distinct types of AWS Lambda .NET projects:

  • Standard class library

  • .NET runtime (also known as top-level statements project)

  • AWS-hosted ASP.NET Core application (also known as a serverless application project)

Standard class library

This is perhaps the most common AWS Lambda .NET project. The project is represented by a standard class library, which cannot be executed on its own. It needs a hosting environment with an appropriate runner (such as the AWS environment) or a local emulator (such as Lambda Test Tool).

This type of project is designed to host a single function handler. It’s possible to have more than one function handler, but each handler will need its own JSON config file so the hosting environment can correctly map it.

.NET runtime

This project is represented by an executable file and can be launched by itself. Typically, the function handler is mapped in the application startup code and may be represented by an anonymous function instead of a strongly typed method.

Serverless application

This project template represents a hosted ASP.NET Core application. It’s called a serverless application because it represents a complete application and not just a single function handler like the other project types. The project type is not very different from a standard ASP.NET Core application; the main difference is that it has some dependencies that allow it to be hosted within AWS.