Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Software Architecture with C# 9 and .NET 5

You're reading from   Software Architecture with C# 9 and .NET 5 Architecting software solutions using microservices, DevOps, and design patterns for Azure

Arrow left icon
Product type Paperback
Published in Dec 2020
Publisher Packt
ISBN-13 9781800566040
Length 700 pages
Edition 2nd Edition
Languages
Tools
Arrow right icon
Authors (2):
Arrow left icon
Gabriel Baptista Gabriel Baptista
Author Profile Icon Gabriel Baptista
Gabriel Baptista
Francesco Abbruzzese Francesco Abbruzzese
Author Profile Icon Francesco Abbruzzese
Francesco Abbruzzese
Arrow right icon
View More author details
Toc

Table of Contents (26) Chapters Close

Preface 1. Understanding the Importance of Software Architecture 2. Non-Functional Requirements FREE CHAPTER 3. Documenting Requirements with Azure DevOps 4. Deciding the Best Cloud-Based Solution 5. Applying a Microservice Architecture to Your Enterprise Application 6. Azure Service Fabric 7. Azure Kubernetes Service 8. Interacting with Data in C# – Entity Framework Core 9. How to Choose Your Data Storage in the Cloud 10. Working with Azure Functions 11. Design Patterns and .NET 5 Implementation 12. Understanding the Different Domains in Software Solutions 13. Implementing Code Reusability in C# 9 14. Applying Service-Oriented Architectures with .NET Core 15. Presenting ASP.NET Core MVC 16. Blazor WebAssembly 17. Best Practices in Coding C# 9 18. Testing Your Code with Unit Test Cases and TDD 19. Using Tools to Write Better Code 20. Understanding DevOps Principles 21. Challenges of Applying CI Scenarios 22. Automation for Functional Tests 23. Answers 24. Another Book You May Enjoy
25. Index

What is software architecture?

If you are reading this book today, you should thank the computer scientists who decided to consider software development as an engineering area. This happened in the last century, more specifically, at the end of the sixties, when they proposed that the way we develop software is quite like the way we construct buildings. That is why we have the name software architecture. Like an architect designs a building and oversees its construction based on that design, the main goal of a software architect is to ensure that the software application is implemented well; and good implementation requires the design of a great solution.

In a professional development project, you must do the following things:

  • Define the customer requirements for the solution
  • Design a great solution to meet those requirements
  • Implement the designed solution
  • Validate the solution with your customer
  • Deliver the solution in the working environment

Software engineering defines these activities as the software development life cycle. All the theoretical software development process models (waterfall, spiral, incremental, agile, and so on) are somehow related to this cycle. No matter which model you use, if you do not work with the essential tasks presented earlier during your project, you will not deliver acceptable software as a solution.

The main point about designing great solutions is foundational to the purpose of this book. You must understand that great real-world solutions bring with them a few fundamental constraints:

  • The solution needs to meet user requirements
  • The solution needs to be delivered on time
  • The solution needs to adhere to the project budget
  • The solution needs to deliver good quality
  • The solution needs to guarantee safe and effective future evolution

Great solutions need to be sustainable, and you must understand that there is no sustainable software without great software architecture. Nowadays, great software architectures depend on both modern tools and modern environments to perfectly fit users' requirements.

For this reason, this book will use some great tools provided by Microsoft. The company has announced .NET 5 as a unified platform for software development, which gives us a great opportunity to create fantastic solutions.

Introducing .NET 5 | .NET Blog

Figure 1.1: .NET 5 platform

NET 5 is delivered together with C# 9. Considering the .NET approach of targeting so many platforms and devices, C# is now one of the most used programming languages in the world and runs on small devices up to huge servers in different operating systems and environments.

The book will also use Azure, which is Microsoft's cloud platform, where you will find all the components the company provides to build advanced software architecture solutions. One of them is Azure DevOps, an application life cycle management environment where you can build solutions using the latest approach for developing software.

Being a software architect means understanding the aforementioned technologies, and a lot of others, too. This book will guide you on a journey where, as a software architect working in a team, you will provide optimal solutions with the tools listed. Let us start this journey by creating your Azure account.

Creating an Azure account

Microsoft Azure is one of the best cloud solutions currently available on the market. It is important to know that, inside Azure, we will find a selection of components that can help us define the architecture of twenty-first-century solutions.

If you want to check the variety of components Microsoft Azure has, just check this incredible website developed by Alexey Polkovnikov: https://azurecharts.com/.

This subsection will guide you in creating an Azure account. If you already have one, you can skip this part.

Start your access into Azure using the website address https://azure.microsoft.com. There, you will find the information you need to start your subscription. Translation to your native language is usually set automatically.

  1. Once you have accessed this portal, it is possible to sign up. If you have never done this before, it is possible to Start free, so you will be able to use some Azure features without spending any money. Please check the options for free plans at https://azure.microsoft.com/en-us/free/.
  2. The process for creating a free account is quite simple, and you will be guided by a form that requires you to have a Microsoft Account or GitHub Account.
  3. During the process you will also be asked for a credit card number, to verify your identity and to keep out spam and bots. However, you will not be charged unless you upgrade the account.
  4. To finish the assignment, you will need to accept the subscription agreement, offer details, and privacy statement.

Once you finish the form, you will be able to access the Azure portal. As you can see in the following screenshot, the panel shows a dashboard that you can customize, and a menu on the left, where you can set up the Azure components you are going to use in your solution. Throughout this book, we will come back to this screenshot to set up the components to help us create modern software architecture. To find the next page, just select the left-menu icon (hamburger menu) and click on All services.

Figure 1.2: The Azure portal

Once you have your Azure account created, you are ready to understand how a software architect can conduct a team to develop software, taking advantage of all the opportunities offered by Azure. However, it is important to keep in mind that a software architect needs to go beyond technologies because this role is played by people who are expected to define how the software will be delivered.

Today, a software architect not only architects the basis of a software, but also determines how the whole software development and deployment process is conducted. The next topic will cover some of the most widely used software development paradigms the world over. We'll start by describing what the community refers to as traditional software engineering. After that, we'll cover the agile models that have changed the way we build software nowadays.

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image