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

3.5 (2 reviews total)
By Francesco Abbruzzese , Gabriel Baptista
  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Section 1: Transforming Customer Needs in Real-World Applications

About this book

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.

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.

By the end of this book, you’ll be able to develop and deliver highly scalable enterprise-ready apps that meet customers’ business needs.

Publication date:
November 2019
Publisher
Packt
Pages
598
ISBN
9781789800937

 

Section 1: Transforming Customer Needs in Real-World Applications

This section includes the first three chapters of the book. The idea is to make sure you understand how to transform user requirements into the actual architectural needs that are essential for project success, using the various architectural aspects and design considerations involved in developing enterprise applications with C# and .NET Core.

In Chapter 1Understanding the Importance of Software Architecture, we will discuss the importance of software architecture and aspects related to .NET Core and C#. The chapter will also discuss the importance of analyzing software requirements and designing for principles such as scalability and robustness. No matter what software development cycle you decide to have in your project, analyzing requirements will help you adhere to the goal of the project. Without this, the success of your project is at risk. This chapter will present some use cases where a lack of understanding of the requirements gathered led to project failures. Besides this, in each case, we will provide practical advice that could help to protect your software from the scenarios presented.

Once you have understood the process of gathering system requirements, in Chapter 2Functional and Nonfunctional Requirements, we will prompt you to think about the impacts that the requirements have on the architectural design. Scalability, performance, multithreading, interoperability, and other subjects will be discussed, both their theory and their practice.

To finish the first section, in Chapter 3, Documenting Requirements with Azure DevOps, we will present Azure DevOps, which is the tool currently being provided by Microsoft to enable an application development life cycle that follows the principles of the DevOps philosophy. There are a variety of good features that can help you document and organize your software, and the purpose of the chapter is to present an overview of those features.

This section includes the following chapters:

  • Chapter 1, Understanding the Importance of Software Architecture
  • Chapter 2, Functional and Nonfunctional Requirements
  • Chapter 3Documenting Requirements with Azure DevOps

About the Authors

  • Francesco Abbruzzese

    Francesco Abbruzzese is an author of the MVC Controls Toolkit. He has also contributed to the diffusion and evangelization of the Microsoft web stack since the first version of ASP.NET MVC through tutorials, articles, and tools. He writes about .NET and client-side technologies in his blog, Dot Net Programming, and various online magazines/blogs. Now, his company, Mvc Controls Toolkit Core, implements and offers web applications, AI software, SAS products, tools, and services for web technologies associated with the Microsoft stack. He moved from AI systems, where he implemented one of the first decision support systems for banks and financial institutions, to the video games arena, with top-ten titles such as Puma Street Soccer.

    Browse publications by this author
  • Gabriel Baptista

    Gabriel Baptista is a Software Architect who technically leads a team in the most diverse projects for retail and industry, using a dozen of varieties of Microsoft products. He has become a specialist in Azure PaaS solutions since the design of a SaaS platform in partnership with Microsoft. Besides, he is a College Computing Professor who has published many papers and teaches different subjects related to Software Engineering, Development, and Architecture. He is also a speaker on Channel 9, one of the most prestigious and active community websites for .NET stack. As well as, he is a co-founder of a startup for developing mobile applications, where Scrum, Design Thinking, and the DevOps philosophy are the key to deliver user's needs.

    Browse publications by this author

Latest Reviews

(2 reviews total)
In some areas this book sways too much to the "I need to teach you the absolute basics" side, but overall it delivers and it is well written.
Good general outline but lacks depth

Recommended For You

Book Title
Unlock this full book FREE 10 day trial
Start Free Trial