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

Use case – a hybrid application

If you go back to Chapter 1Understanding the Importance of Software Architecture, you will find a system requirement that describes the system environments where our WWTravelClub example application is supposed to run:

SR_003: The system shall run in Windows, Linux, iOS and Android platforms.

At first sight, any developer would respond by saying: web apps. However, the iOS and Android platforms will also need your attention as a software architect. In this scenario, as in several situations, user experience is the key to the success of the project. The decision needs to be driven not only by development speed but again by the benefits gained by delivering a great user experience.

Another decision that the software architect must make in this project is related to the technology for the mobile application if...