A practical guide to building and upgrading new and legacy applications on cloud-native platforms using architectural best practices with .NET 5, C# 9, microservices, and ML.NET
▶Book Description
.NET 5 is the unification of all .NET technologies in a single framework that can run on all platforms and provide a consistent experience to developers, regardless of the device, operating system (OS), or cloud platform they choose.
By updating to .NET 5, you can build software that can quickly adapt to the rapidly changing demands of modern consumers and stay up to date on the latest technology trends in .NET.
This book provides a comprehensive overview of all the technologies that will form the future landscape of .NET using practical examples based on real-world scenarios, along with best practices to help you migrate from legacy platforms.
You'll start by learning about Microsoft's vision and rationale for the unification of the platforms. Then, you'll cover all the new language enhancements in C# 9. As you advance, you'll find out how you can align yourself with modern technology trends, focusing on everything from microservices to orchestrated containerized deployments. Finally, you'll learn how to effectively integrate machine learning in .NET code.
By the end of this .NET book, you'll have gained a thorough understanding of the .NET 5 platform, together with a readiness to adapt to future .NET release cycles, and you'll be able to make architectural decisions about porting legacy systems and code bases to a newer platform.
▶What You Will Learn
-Explore the key performance improvement areas when migrating to modern architectures
-Understand app design and development using .NET 5
-Discover how to shift from legacy to modern application design using microservices and cloud-native architecture
-Explore common migration pitfalls and make the right decisions in situations where multiple options are available
-Understand the process of deploying .NET 5 code on serverless and containerized hosts, along with its benefits
-Find out what ML.NET has to offer and build .NET apps that use machine learning services
▶Key Features
-Get up to speed with .NET 5's new improvements and features
-Discover how to improve existing code design and enhance software maintainability
-Explore explanations and techniques for making programs easier to understand and change
▶Who This Book Is For
This book is for experienced developers as well as software architects who are looking to gain knowledge of the new features and capabilities of .NET 5, along with guidance on modern architectural patterns. If you're a developer who has previously worked on .NET, WPF, ASP.NET, Entity Framework, or other popular .NET libraries, this book will help you understand the migration process for their modern counterparts. Although experience with .NET Core is not required, working knowledge of the C# language and .NET framework is assumed.
▶What this book covers
- Chapter 1, Introducing .NET 5 Features and Capabilities, provides a brief history of .NET technology and how .NET 5 fits into the picture. It covers the main new .NET 5 features and different types of applications that can be built using this platform. This chapter compares .NET 5 with its predecessors, which are .NET Framework and .NET Core. It discusses the merits of each of these frameworks and then provides comprehensive coverage of the performance enhancements in the .NET 5 platform.
- Chapter 2, What's New in C# 9?, covers all the new C# language features, including those that have been improved from the recent C# 7 and C# 8 versions, such as pattern matching and text processing. Code-based examples have been provided for all the discussed features.
- Chapter 3, Design and Architectural Patterns, discusses application design strategies using design patterns such as SOLID, messaging protocols, and architectural patterns such as microservices, serverless, and distributed processing.
- Chapter 4, Containerized Microservices Architecture, is full of practical exercises to build microservices-based containerized applications on .NET 5 using technologies such as gRPC, Tye, WSL 2, and Kubernetes.
- Chapter 5, Upgrading Existing .NET Apps to .NET 5, discusses migration approaches to transform .NET Framework applications to the.NET 5 platform. It provides a sample application migration exercise that upgrades a .NET Framework 4.7 application with WPF, Entity Framework, ASP.NET, and third-party libraries such as AutoFac to its .NET 5 equivalents.
- Chapter 6, Upgrading On-Premises Applications to the Cloud with .NET 5, introduces the reader to the cloud services such as Azure SQL Database, Azure Web Apps, Azure Functions, and Azure Container Instances. It provides a practical example to transform an on-premises application and deploy it to the aforementioned cloud services.
- Chapter 7, Integrating Machine Learning in .NET 5 Code, is written for .NET developers who wish to integrate machine learning services into their .NET apps. The chapter covers the ML.NET library along with ML.NET Model Builder and provides an exercise to build an Azure function that integrates with ML.NET.