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# 10 and .NET 6 – Third Edition

You're reading from   Software Architecture with C# 10 and .NET 6 – Third Edition Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure

Arrow left icon
Product type Paperback
Published in Mar 2022
Publisher Packt
ISBN-13 9781803235257
Length 714 pages
Edition 3rd Edition
Languages
Tools
Arrow right icon
Authors (2):
Arrow left icon
Francesco Abbruzzese Francesco Abbruzzese
Author Profile Icon Francesco Abbruzzese
Francesco Abbruzzese
Gabriel Baptista Gabriel Baptista
Author Profile Icon Gabriel Baptista
Gabriel Baptista
Arrow right icon
View More author details
Toc

Table of Contents (27) Chapters Close

Preface 1. Understanding the Importance of Software Architecture 2. Non-Functional Requirements FREE CHAPTER 3. Documenting Requirements with Azure DevOps 4. Deciding on the Best Cloud-Based Solution 5. Applying a Microservice Architecture to Your Enterprise Application 6. Azure Kubernetes Service 7. Interacting with Data in C# – Entity Framework Core 8. How to Choose Your Data Storage in the Cloud 9. Working with Azure Functions 10. Design Patterns and .NET 6 Implementation 11. Understanding the Different Domains in Software Solutions 12. Implementing Code Reusability in C# 10 13. Applying Service-Oriented Architectures with .NET 14. Implementing Microservices with .NET 15. Presenting ASP.NET Core MVC 16. Implementing Frontend Microservices with ASP.NET Core 17. Blazor WebAssembly 18. Native versus Web Clients 19. Artificial Intelligence and Machine Learning 20. Best Practices in Coding C# 10 21. Understanding DevOps Principles 22. Challenges of Applying CI & CD Scenarios 23. Testing Your Enterprise Application 24. Answers
25. Other Books You May Enjoy
26. Index

Case study – introducing World Wild Travel Club

As we mentioned at the beginning of this chapter, the case study of this book will take you on a journey of creating the software architecture for a travel agency called World Wild Travel Club (WWTravelClub). For this edition, we brought new requirements for the WWTravelClub platform, considering the new scenarios we will cover in the book.

WWTravelClub is a travel agency that was created to change the way people make decisions about their vacations and other trips around the world. To do so, they are developing an online service where every detail of a trip experience will be assisted by a club of experts specifically selected for each destination.

The concept of this platform is that you can be both a visitor and a destination expert at the same time. The more you participate as an expert in a destination, the more points you score. These points can be exchanged for tickets that people buy online using the platform.

The customer came with the following requirements for the platform. It is important to know that, in general, customers do not bring the requirements ready for development. That is why the requirements gathering process is so important:

  • Common user view:
    • Promotional packages on the home page
    • Get a recommendation!
    • Search for packages
    • Details for each package:
      • Buy a package
      • Buy a package with a club of experts included
      • Comment on your experience
      • Ask an expert
      • Evaluate an expert
      • Register as a common user
  • Destination expert view:
    • The same view as the common user view
    • Answer the questions asking for your destination expertise
    • Manage the points you scored by answering questions
    • Exchange points for tickets
  • Administrator view:
    • Manage packages
    • Manage common users
    • Manage destination experts

To finish this, it is important to note that WWTravelClub intends to have more than 100 destination experts per package and will offer around 1,000 different packages all over the world.

Understanding user needs and system requirements

To summarize the user needs of WWTravelClub, you can read the following user stories:

  • US_001: As a common user, I want to view promotional packages on the home page, so that I can easily find my next vacation
  • US_002: As a common user, I want to search for packages I cannot find on the home page so that I can explore other trip opportunities
  • US_003: As a common user, I want to see the details of a package, so that I can decide which package to buy
  • US_004: As a common user, I want to register myself, so that I can start buying the package
  • US_005: As a registered user, I want to process the payment, so that I can buy a package
  • US_006: As a registered user, I want to buy a package with an expert recommendation included, so that I can have an exclusive trip experience
  • US_007: As a registered user, I want to ask for an expert, so that I can find out the best things to do on my trip
  • US_008: As a registered user, I want to comment on my experience, so that I can give feedback on my trip
  • US_009: As a registered user, I want to review an expert who has helped me, so that I can share with others how fantastic he was
  • US_010: As a registered user, I want to register as a destination expert view, so that I can help people who travel to my city
  • US_011: As an expert user, I want to answer questions about my city, so that I can score points to be exchanged in the future
  • US_012: As an expert user, I want to exchange points for tickets, so that I can travel around the world more
  • US_013: As an administrator user, I want to manage packages, so that users can have fantastic opportunities to travel
  • US_014: As an administrator user, I want to manage registered users, so that WWTravelClub can guarantee good service quality
  • US_015: As an administrator user, I want to manage expert users, so that all the questions regarding our destinations are answered
  • US_016: As an administrator user, I want to offer more than 1,000 packages around the world, so that different countries can experience the WWTravelClub service
  • US_017: As the CEO, I want to have more than 1,000 users simultaneously accessing the website, so that the business can scale effectively
  • US_018: As a user, I want to access WWTravelClub in my native language, so that I can easily understand the package offered
  • US_019: As a user, I want to access WWTravelClub in the Chrome, Firefox, and Edge web browsers, so that I can use the web browser of my preference
  • US_020: As a user, I want to know my credit card information is stored securely, so I can buy packages safely
  • US_021: As a user, I want to get a recommendation of a good place to visit according to other people from my city, so I can find out about new places that fit my style

Notice that while you start writing the stories, information related to non-functional requirements such as security, environment, performance, and scalability can be included.

However, some system requirements may be omitted when you write user stories and need to be included in the software specification. These requirements can be related to legal aspects, hardware, and software prerequisites, or even points of attention for the correct system delivery. They need to be mapped and listed as well as the user stories. The WWTravelClub system requirements are presented in the following list. Notice that requirements are written in the future because the system does not exist yet:

  • SR_001: The system shall use Microsoft Azure components to deliver the scalability required
  • SR_002: The system shall respect General Data Protection Regulation (GDPR) requirements
  • SR_003: The system shall run on the Windows, Linux, iOS, and Android platforms
  • SR_004: Any web page of this system shall respond in at least 2 seconds with 1,000 users accessing it concurrently

The idea of having this list of user stories and system requirements is to help you understand how complex the development of a platform might be if you think about it from an architectural perspective.

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