AWS Developer Blog

10 years of building .NET on AWS

This week is my 10 year anniversary at AWS and what a ride it has been. Somewhere along the road they gave me the keys to publish blog posts so I thought I would take over for a bit and look back on my journey at AWS. My journey also maps very closely with .NET's journey on AWS as well since I have spent these 10 years focusing on building our .NET experience.

I have been a .NET developer since the beginning of .NET and my career before AWS was building your typical .NET 3 tier applications. In 2010 my current company was shutting down and I was interested in trying new technology. I had just heard of cloud computing back then but I figured what better place to learn then AWS so I went and applied and landed on the AWS SDK team focusing on .NET.

AWS SDK for .NET

When I started at AWS the first version of the AWS SDK for .NET had been released just a few months before. The only other official SDK was Java and PHP was in development. The developer who had been working on it was in the process of changing teams so I had to quickly come up to speed on everything and get ready for the next release. Since being the lone .NET developer the .NET team has grown and expanded its role to help define the .NET experience at AWS. I have had been very lucky to work with many amazing developers throughout the years. Some have come and gone or joined other AWS teams. The current team we have for .NET is very strong and ready to continue building our .NET experience.

Back in 2010 we released new versions of the SDK about once or twice a month and the SDK contained about a dozen services. It was a single .NET assembly containing all of the AWS service clients at that time. Looking back on how much the SDK has changed from that beginning to what it is today, which is made of over 200 NuGet packages, is quite the contrast. Many things in the SDK today that we take as basic didn't even exist back then like credential profiles. In fact the Identity and Access Management (IAM) service didn't exist yet. With AWS having over 200 services and most services having a few releases every year that has meant we now release new versions of the .NET SDK just about every weekday. Automation is critical in a daily operation like the SDK is today. If you have never seen it before here is the SDK's massive change log since the current 3.0 major version came out in 2015. https://github.com/aws/aws-sdk-net/blob/master/SDK.CHANGELOG.md

In 2011 .NET developers got our own package management system NuGet. Can you imagine developing .NET application today's without NuGet? When it first came out not everybody could start publishing right away. I remember having to email the folks at NuGet to see about getting an account for AWS which I imagine is one of the oldest accounts on NuGet.

AWS Toolkit for Visual Studio

Also in 2011 we released the first version of the AWS Toolkit for Visual Studio. At that time it targeted versions 2008 and 2010 of Visual Studio. Since then the toolkit has been updated many times to support Visual Studio versions 2012, 2013, 2015, 2017 and 2019. The service coverage has expanded to include Elastic Beanstalk for web applications, AWS Lambda for serverless computing and Elastic Container Service for building container based applications.

The toolkit will always hold a special place for me. It is a prime example of what is great at working at AWS because the motto that AWS is a place for builders is so true. The toolkit started as a side project thinking we should have a place inside Visual Studio. I wanted to make AWS services accessible to .NET developers by making it easy to deploy .NET applications to AWS or see your data like in a S3 bucket. I got enough core functionality working and then demoed in a team meeting. The team gave me their full support and a few months later we shipped the first version. So if you are a developer that likes to build things AWS can be a great place to be at.

.NET Core

Around 2015 I was getting worried that .NET developers would not be able take full advantage of the cloud and where technologies were going. I loved .NET but I didn't want to be left out of containers and serverless computing like AWS Lambda. I even flirted with the idea of jumping ship for Go. Luckily we had a future with .NET Core in development. I felt like .NET Core was giving .NET developers a rebirth. We quickly jumped onto the new platform and had our SDK adding support during the earlier betas of .NET Core, before .NET Core was even named that. Anybody remember the previous project names K and DNX?

Once we had the SDK working in .NET Core we meet up with the Lambda team to introduce them to .NET Core. The Lambda team was excited about the opportunities of .NET Core and we quickly started collaborating to bring .NET Core to Lambda.

One of the most exciting things in all of my career was in 2016 when we announced .NET Core 1.0 support for Lambda at re:Invent 2016. I remember when Steve Roberts and I gave our breakout session that year introducing our brand new Lambda support. We had to pause several times for the cheers. Looking back at this moment I believe many .NET developers had the same worries about .NET as I did and were so excited for the future combination of AWS and .NET Core.

AWS re:Invent

Speaking of re:Invent, one of the most surprising things to happen in my career was being a speaker at conferences. I have always been a shy person very content to spend my days either puzzling the next problem on a computer or getting lost deep in the mountains of the Pacific Northwest. So when the first re:Invent occurred in 2012 I was drafted to give a .NET session. The idea terrified me to standup and talk in front of a few hundred developers but I did it. Since then I have spoken at every re:Invent about .NET and although I still get nervous it has been so great to go and talk to you all that have been depending on our sdk and tooling all these years. I also believe that speaking at conferences has made me a much better developer and leader being able to communicate my ideas. I highly recommend getting out of your comfort zone and give talks either internally in your company or at conferences. It has really help me communicate my ideas and be more comfortable presenting ideas in those big meetings we all have in our career.

Conclusion

Looking back on the last 10 years I'm really proud of what we have accomplished with .NET on AWS. I have the fun job of having all of AWS to play with and building .NET SDK and Tools for AWS. With 10 years done I'm still excited for the future of .NET and AWS. If you haven't seen what all we have built for .NET developers checkout out this GitHub repository. .NET developers have a lot to look forward to with AWS and .NET 5 and 6 and Blazor WebAssembly coming along. It has been great making so many connections across the world with people using the tooling I have helped create. Thank you to all of my colleagues I have had the pleasure to work with over the years and thank you all for the feedback and support you have given over years.

— Norm