DEV Community

Cover image for AWS For .NET
Douglas Minnaar
Douglas Minnaar

Posted on

AWS For .NET

AWS for .NET Developers

I have created a github project that provides a collection of independent .NET projects written in C# .NET 5 that demonstrate how to integrate with various AWS services using the AWS SDK for dotnet.

I summarise the project in the following sections. However, if you prefer going straight to the code then check out the following links:


AWS Services And Projects Summary

So far, projects have been created for the following AWS Services:

  • Amazon S3 - An AWS service that provides authentication, authorization, and user management for your web and mobile apps.
  • Amazon SNS - Amazon Simple Notification Service (Amazon SNS) is a web service that coordinates and manages the delivery or sending of messages to subscribing endpoints or clients.
  • Amazon SQS - Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications.
  • Amazon Cognito - Amazon Simple Notification Service (Amazon SNS) is a web service that coordinates and manages the delivery or sending of messages to subscribing endpoints or clients.
  • Amazon DynamoDb - Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability.

Projects

  • Cognito Mvc - This project demonstrates how to integrate an ASP.NET Core MVC web application with Amazon Cognito using the Amazon SDK.

    The following features have been implemented:

    • Signup for a new account
    • Confirm Signup (using confirmation code)
    • Sign into account
    • Sign out of account

cognito-signup-3

  • Cognito Api - This project demonstrates how to integrate a .NET Core Web Api application with Amazon Cognito using the Amazon SDK.

This Web Api application provides the following endpoints:

  • Signups
    • POST api/signups - Allows an api consumer to signup for a new account
  • Tokens
    • POST api/tokens - Provides JWT access token for valid account credentials
  • Values

    • GET api/values - An unauthorized endpoint that returns a list of values
    • GET api/values/123 - An authorized endpoint (Requires JWT access token) that returns a single value
    • S3 ConsoleApp - This project demonstrates how to integrate a .NET Core Console application with Amazon S3 using the Amazon SDK.

The following features have been implemented:

  • List all S3 buckets
  • Create new S3 bucket
  • Delete S3 bucket

aws-s3-demo

  • DynamoDb ConsoleApp - This project demonstrates how to integrate a .NET Core console application with DynamoDb using the Amazon SDK. This application provides the functionality required to both manage DynamoDb tables, and manage the data stored in a DynamoDB table

    The following features have been implemented:

    • Manage Tables
    • Create table
    • List and find tables
    • Wait for tables to be described (eventually consistent)
    • Delete table
    • Manage Book Table Data
    • Automatically creates Book table
    • Add books to Book table
    • Update books in Book table
    • Delete books from Book table
    • List and find books in Book table

    dynamodb-1

  • SNS ConsoleApp - This project demonstrates how to integrate a .NET Core console application with SNS using the Amazon SDK. This application provides the functionality required to manage SNS topcs, subscriptions, and publications.

    The following features have been implemented:

    • Manage Topics
    • Create topic
    • List and find topics
    • Delete topic
    • Manage Subscriptions
    • Create an email subscription
    • Cancel a subscription
    • List subscriptions
    • Manage Publications
    • An example showing how to publish a 'Game Ranking' to a 'game-ranking' topic

aws-sns-demo

  • SQS ConsoleApp - This project demonstrates how to integrate a .NET Core console application with SQS using the Amazon SDK.

    The following features have been implemented:

    • Manage Queues
    • Create queue
    • List queues
    • Delete queue
    • Get queue url
    • Manage Game Ranking Queue
    • Enqueue game ranking to queue
    • Dequeue game rankings from queue

aws-sqs-overview

-

What's Next

I have plans to extend this project by implementing the following features:

  • Improve existing examples (both code and documentation)
  • Add additional examples for the current services that I have provisioned for (S3, DynamoDB, SQS, SNS, Cognito)
  • Add examples for new services

That's all folks!


Top comments (1)

Collapse
 
sumupo profile image
sumupo

Hi Douglas,

I am currently working on a ecommerce environment . Using Asp.net core web api as back end and react as front end. And planning to use AWS cognito as auth and user management tool

I looked at couple of online tools which state using aws amplify with react and this automatically setup cognito so we don't need to worry about manual coding.

Some says use cognito on the back end. If i am using your method of AWS SDK and setup cognito on back end the do i still need to set up aws amplify and cognito on my front end react.

or if o use your backend cognito process how would i secure my react project.

I also need to add Facebook and google login which is not shown in your process.

Please guide me here you seem like an expert. I am super confused with what step to move forward with. I am using .netcore 5

Thankyou for the Cognito Api template