Tools and Libraries for Building Cloud-Ready Apps in .NET
Creating any kind of software application is difficult enough, but in the cloud things only get harder when complexities like microservices, distributed teams and so on are thrown into the mix.
Thankfully, as the cloud has increased development complexity in several ways, there are multiple tools and libraries that have evolved to help developers get a handle on all the moving parts and make considered decisions to simplify the lives of everyone involved, ranging from architects to site reliability engineers (SREs).
Helping cloud developers in the .NET camp wrangle all the cloud complexities is Layla Porter, a developer advocate at VMware who specializes in serving the .NET community, even founding the #WomenOfDotNet Initiative. The Microsoft MVP helps people out by live coding on Twitch and has been adorned a GitHub Star.
She is also a sought-after presenter at developer events, and she's bringing her cloud expertise to .NET developers at the Visual Studio Live! segment of the big umbrella Live! 360 conference in Orlando in November.
In a session titled "Building Cloud-ready Applications in .NET," Porter will focus on tools and libraries to help the .NET cloud developer.
"Libraries such as Steeltoe (based on the ever-popular Spring Boot for Java), YARP, and Polly are just a few and in this demo-rich session, I will show you how, with just a few lines of code, you can greatly improve the cloud-readiness of your application," she said.
Specifically, she will delve into:
- Monitoring and tracing
- Service Discovery
- Circuit Breakers and HTTP resiliency
- API Gateways
We caught up with Porter to learn more about her intermediate-level presentation.
VisualStudioMagazine: What inspired you to present a session on Building Cloud-ready Applications in .NET?
Porter: The inspiration behind presenting a session on Building Cloud-ready Applications in .NET stems from the increasing demand for scalable, flexible and efficient applications in today's digital landscape. As cloud computing forces developers to write more and more complex applications to cover more scenarios, it's crucial for them to grasp the principles and tools needed to simplify this complexity.
Can you provide some examples of the challenges developers often face when dealing with globally distributed microservices and distributed teams? How do these challenges impact application development and maintenance?
Let's say you're working with a team spread out across the world, and your app is made up of lots of tiny services, built by different teams, and they all need to communicate with each other effectively.
"Sounds cool, but it's incredibly complex and fraught with potential issues. Add in the fact that some of your team might be awake when you're asleep, and things can get tricky very quickly."
Layla Porter, MVP, Developer Advocate, VMware
Sounds cool, but it's incredibly complex and fraught with potential issues. Add in the fact that some of your team might be awake when you're asleep, and things can get tricky very quickly. Effective communication, process, and documentation are essential!
In your session, you'll be showcasing the concept of improving cloud readiness with just a few lines of code. Could you give us a glimpse of how developers can utilize these libraries effectively while maintaining code simplicity?
Certainly! The session will demonstrate how developers can leverage purpose-built libraries and frameworks within the .NET ecosystem to enhance their application's cloud-readiness without sacrificing code simplicity. By integrating features like messaging, service discovery and resiliency policies, using concise and well-documented libraries, developers can achieve cloud-readiness with minimal effort. This approach allows developers to focus on their core application logic while abstracting away many of the complexities associated with cloud deployment, resulting in cleaner, maintainable and more efficient codebases.
For developers who might be new to these tools and concepts, what kind of prerequisites or foundational knowledge would you recommend they have before attending your session? Are there any specific skills or understanding of .NET development that would be particularly beneficial?
Attendees should ideally have a basic understanding of modern .NET application development and be familiar with principles such as dependency injection, web development and design patterns.
As the technology landscape is ever-evolving, how do you envision the role of these tools and libraries expanding in the future? Are there any emerging trends or developments that might further enhance their capabilities and their relevance to cloud application development?
I think things will always change and evolve, but the fundamentals of writing concise, resilient and maintainable code will always be at the core of writing effective, cloud-ready applications.
With applications becoming more complex and the rise of distributed microservices, how do developers ensure that their apps remain maintainable and easily monitored?
Thoughtful design, good architecture, and extensive documentation are key. I also advocate for incremental change to a codebase, ensuring that everything is as it should be before moving on.
This way, any issues arise sooner rather than later, with the potential causes kept to a minimum.
Note: Those wishing to attend the conference can save hundreds of dollars by registering early, according to the event's pricing page. "Save up to $400 if you register by September 22!" said the organizer of the event, which is presented by the parent company of Visual Studio Magazine.
David Ramel is an editor and writer for Converge360.