This series will show you how to build a file sharing web application with ASP.NET Core 3.1 (using Blazor) and hosting it on AWS. The application will allow users to upload a file, their email address and a friend’s or colleague’s email address, and deliver the file to the desired person.

The purpose of the series is to teach you how to develop real applications with ASP.NET, deploy them to the cloud, and use the existing AWS services to enrich the functionality of your application.

Prerequisites

To follow the series, you will need:

Visual Studio, or Visual Studio Code (although you might need to install certain extensions to follow the series);

An AWS account;

A bit of knowledge about C#/programming in general, as basic concepts will not be explained in the series.

Content

The series contains the following articles/tutorials:

Creating the basic form – this touches project creation, structure, as well as building the basic features: being able to enter data and save it for later use; Integrating with AWS – this article goes over integrating our application with different AWS services, such as the RDS and the Parameter Store; Integrating with S3 – in this part, we will go over saving and downloading files from AWS S3; Adding background tasks – this is more of a transition article, which will add some functionality to the existing project, as well as prepare for the final article; Sending emails and creating download links – finally, we will send emails to users and let them download the files that were sent to them.

Project features

For those of you who are interested on what exactly is going to be built, here is a more detailed list about the features of the application:

The users should be able to enter their data and upload the file in a form; the data should be saved in the database, while the files should be stored in AWS S3;

An email should be sent to the recipient, containing a message from the sender and a download link for the files;

Once the user downloaded the file, it should be deleted from S3, to preserve space; otherwise, if the user doesn’t download the data after 24 hours, it will also get deleted.

Other reading material

If you are interested in getting a bit of background knowledge on what we are going to do before actually diving into the series, here are some articles that touch on the isolated subjects:

Also, if you want to learn more about ASP.NET development, consider buying the Full-stack web development with ASP.NET Core e-book.

Code and community

You can find the code for this series on GitHub – which you can star and fork if you find it helpful; you can also join the Slack community if you have any question or want to discuss related matters.

