I give lots of talks all over the world about AWS and primarily I give them to those that come from the Microsoft ecosystem. Here are the five things I tell every .NET dev about AWS
1. AWS has great Tooling Support
For .net developers, we support Visual Studio, VS Code and JetBrains Rider.
For Visual Studio 2017 and 2019; You can install the AWS tooling as a VSIX (Pronounced V Six) which is the extension mechanism for Visual studio. You can find the instructions here, and if you are using Visual Studio 2013-2015, the instructions are here.
The tooling puts numerous AWS services right at your fingertips. For example, you can create and interact with Amazon EC2 instances (your virtual Machines) right from within Visual Studio. Upload files to Amazon S3 buckets, even interact with and create Amazon DynamoDB tables.
For VS Code, the tooling support is more around building serverless applications. The AWS Toolkit for Visual Studio Code is an open-source plug-in that makes it easier to create, debug, and deploy applications. The toolkit provides an integrated experience for developing serverless applications, including assistance for getting started, step-through debugging, and deploying from the IDE. You can install using the following instructions.
The JetBrains Rider tooling can be found here: https://aws.amazon.com/rider/.
2. The .net SDK covers all of AWS services
The .net SDK means that you can interact with all 165+ AWS services from within your application. So if you want to add an item to Amazon DynamoDB or upload a file to Amazon S3 or Sign-In a user using Amazon Cognito you can.
The AWS SDK for .NET is distributed as multiple service-specific packages on NuGet. Example package names include AWSSDK.EC2, AWSSDK.S3, and AWSSDK.DynamoDB. Each of these depends on the AWSSDK.Core, which gets automatically installed in your project if you reference any of the service packages in the NuGet Package Manager.
3. You can create infrastructure using the CDK
In AWS, one way to define the infrastructure required by your application is to use AWS CloudFormation. You write a Cloud Formation definition file using YAML or JSON. However, the Cloud Development Kit allows me to use a programming language to generate and deploy Cloud Formation Templates.
Now that .NET is supported, you can use C# and other CLR-based languages to construct your cloud infrastructure. The libraries target .NET Standard 2.0, so it works cross-platform.
You can follow the Get Started guide.
If we wanted to create an S3 bucket using the CDK we would do something like:
4. C# is a first-class citizen in Lambda
AWS Lambda is a service that lets you run code without provisioning or managing servers. AWS Lambda executes your code only when needed and scales automatically, from a few requests per day to thousands per second.
You pay only for the compute time you consume – there is no charge when your code is not running. AWS Lambda runs your code on a high-availability compute infrastructure and performs all of the administration of the compute resources, including server and operating system maintenance, capacity provisioning and automatic scaling, code monitoring and logging. All you need to do is supply your code and C# is one of the supported runtimes.
If you installed the Visual Studio Toolkit for AWS earlier, getting started is as simple as creating a new project using the Lambda template. You can even deploy and test your Lambda function right from within Visual Studio.
Here is what a C# function looks like that upper cases any parameter that is passed into the function.
5. AWS has a managed SQL service
We have a service at AWS called Amazon Relational Database Service (RDS), and it allows you to create a database in AWS quickly and easily. It can be used to create a managed Microsoft SQL Server. AWS will take care of the maintenance and patching, and you get a database server that you can use in your applications.
It supports all the different types of Microsoft SQL Server, (2008 R2, 2012, 2014, 2016, and 2017) including Express, Web, Standard and Enterprise.
If you want to see how your database would run in AWS, one of the easiest ways to get started is to take a back up of your existing database and do a restore on to the RDS service. Check the docs for more information. If you’d like to compare our pricing you can check it out here: https://aws.amazon.com/rds/sqlserver/pricing/