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.
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.
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.
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:
- Saving basic data in Blazor – to learn about saving data from a Blazor form to a database;
- Sending automatic messages to Slack from ASP.NET Core with Hangfire – to learn about scheduling background tasks from ASP.NET Core;
- Deploying .NET applications to AWS Lambda – we are not using Lambda in this series, but part of the process is the same, and you will learn new stuff;
- Using the AWS Parameter Store in .NET Core – we will be doing this to keep our connection strings and API keys safe, so it’s a good read.
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.