Book Image

Hands-On Software Architecture with C# 8 and .NET Core 3

By : Francesco Abbruzzese, Gabriel Baptista
Book Image

Hands-On Software Architecture with C# 8 and .NET Core 3

By: Francesco Abbruzzese, Gabriel Baptista

Overview of this book

<p>Software architecture is the practice of implementing structures and systems that streamline the software development process and improve the quality of an app. With this software architecture book, you’ll follow a hands-on approach to learning various architectural methods that will help you develop and deliver high-quality products. </p><p>You’ll begin by understanding how to transform user requirements into architectural needs and exploring the differences between functional and non-functional requirements. Next, you’ll explore how to carefully choose a cloud solution for your infrastructure, along with covering dos and don’ts that will help you manage your app in a cloud-based environment. Later chapters will cover techniques and processes such as DevOps, microservices, and continuous integration, along with providing insights into implementing them using Microsoft technologies such as ASP.NET Core, the Entity Framework, Cosmos DB, and Azure DevOps. You will also learn about testing frameworks and automation tools that will help you through the development process. Finally, you’ll discover design patterns and various software approaches that will allow you to solve common problems faced during development. </p><p>By the end of this book, you’ll be able to develop and deliver highly scalable enterprise-ready apps that meet customers’ business needs.</p>
Table of Contents (28 chapters)
Free Chapter
1
Section 1: Transforming Customer Needs in Real-World Applications
5
Section 2: Architecting Software Solutions in a Cloud-Based Environment
11
Section 3: Applying Design Principles for Software Delivered in the 21st Century
17
Section 4: Programming Solutions for an Unavoidable Future Evolution
21
Section 5: Delivering Software Continuously and at a High Quality Level

Understanding what serverless means

The word explains itself: a serverless solution means a solution without a server. But how can this be possible in a cloud architecture? It is pretty simple. You do not have to worry about anything related to the server in such a solution. 

You may now be thinking that serverless is just another option—of course, this is true as this architecture does not deliver a complete solution. But the key point here is that, in a serverless solution, you have a very fast, simple, and agile application life cycle since all serverless code is stateless and loosely coupled with the remainder of the system. Some authors refer to this as Function as a Service (FaaS)

Of course, the server runs somewhere. The key point here is that you don't need to worry about this, or even scalability. This will enable you to focus completely...