Solution Architecture with .NET

Book description

Learn about the responsibilities of a .NET solution architect and explore solution architecture principles, DevOps solutions, and design techniques and standards with hands-on examples of design patterns

Key Features

  • Find out what are the essential personality traits and responsibilities of a solution architect
  • Become well-versed with architecture principles and modern design patterns with hands-on examples
  • Design modern web solutions and make the most of Azure DevOps to automate your development life cycle

Book Description

Understanding solution architecture is a must to build and integrate robust systems to meet your client's needs. This makes it crucial for a professional .NET software engineer to learn the key skills of a .NET solution architect to create a unique digital journey and build solutions for a wide range of industries, from strategy and design to implementation. With this handbook, developers working with the .NET technology will be able to put their knowledge to work.

The book takes a hands-on approach to help you become an effective solution architect. You'll start by learning the principles of the software development life cycle (SDLC), the roles and responsibilities of a .NET solution architect, and what makes a great .NET solution architect. As you make progress through the chapters, you'll understand the principles of solution architecture and how to design a solution, and explore designing layers and microservices. You'll complete your learning journey by uncovering modern design patterns and techniques for designing and building digital solutions.

By the end of this book, you'll have learned how to architect your modern web solutions with ASP.NET Core and Microsoft Azure and be ready to automate your development life cycle with Azure DevOps.

What you will learn

  • Understand the role and core responsibilities of a .NET solution architect
  • Study popular UML (Unified Modeling Language) diagrams for solution architecture
  • Work with modern design patterns with the help of hands-on examples
  • Become familiar with microservices and designing layers
  • Discover how to design modern web solutions
  • Automate your development life cycle with Azure DevOps

Who this book is for

This book is for intermediate and advanced .NET developers and software engineers who want to advance their careers and expand their knowledge of solution architecture and design principles. Beginner or intermediate-level solution architects looking for tips and tricks to build large-scale .NET solutions will find this book useful.

Table of contents

  1. Solution Architecture with .NET
  2. Contributors
  3. About the author
  4. About the reviewer
  5. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Download the color images
    5. Conventions used
    6. Get in touch
    7. Share Your Thoughts
  6. Section 1: Understanding the Responsibilities of a Solution Architect
  7. Chapter 1: Principles of the Software Development Life Cycle
    1. Understanding the software development life cycle
    2. Exploring the different SDLC stages
      1. Planning and requirement analysis
      2. Defining requirements
      3. Architectural design
      4. Software development
      5. Testing
      6. Deployment and maintenance
    3. Getting familiar with the popular SDLC models
      1. The Waterfall model
      2. The Agile model
      3. The Spiral model
      4. The DevOps model
      5. Choosing the right model
    4. Summary
  8. Chapter 2: Team Roles and Responsibilities
    1. Exploring the development team hierarchy
      1. The project manager – the godfather
      2. The functional analyst – the explorer
      3. The solution architect – the game changer
      4. The development lead – the tech-savvy one
      5. Software developers – the masters of magic
      6. Quality assurance – the quality guards
    2. Highlighting the five key attributes to consider when assembling a team
      1. Building a great team culture
      2. Establishing development standards and best practices
      3. Equipping the team with the right tools
      4. Maintaining continuous communication
      5. Helping developers grow professionally
    3. Summary
  9. Chapter 3: What Makes an Effective Solution Architect?
    1. What is solution architecture?
    2. Exploring the personality traits and skills of an effective architect
      1. Leading by example
      2. Displaying outstanding communication skills
      3. Possessing deep analytical skills
      4. Showcasing brilliant project and resource management skills
      5. Exhibiting patience with others
      6. Working collaboratively
      7. Demonstrating influencing and negotiation skills
      8. Possessing a wide range of technical expertise
      9. Breaking down problems efficiently
      10. Being pragmatic
    3. Taking a look at the common pitfalls for architects
    4. The enterprise architect versus the technical architect versus the solution architect
    5. Summary
  10. Section 2: Designing a Solution Architecture
  11. Chapter 4: Designing a Solution Architecture
    1. Exploring the key principles of solution architecture
      1. Business principles
      2. Data principles
      3. Application principles
      4. Technology principles
    2. Learning to model software architecture using UML
      1. Component diagrams
      2. Class diagrams
      3. Sequence diagrams
      4. State diagrams
      5. Activity diagrams
      6. Package diagrams
      7. Use case diagrams
    3. Designing architecture with UML
    4. Summary
  12. Chapter 5: Exploring Architecture Design Patterns
    1. Introducing the architectural patterns
    2. Popular architecture patterns
      1. Layered architecture
      2. Presentation architecture
      3. Clean architecture
      4. Microservices architecture
      5. Service-oriented architecture
    3. Exploring additional architecture patterns
      1. The serverless pattern
      2. The client-server pattern
      3. The event-driven pattern
      4. The pipe-filter pattern
    4. Choosing the right patterns
    5. Summary
  13. Chapter 6: Architecture Considerations
    1. Learning about quality attributes
    2. Exploring design quality attributes
      1. Maintainability
      2. Flexibility
      3. Reusability
      4. Integrability
      5. Testability
    3. Understanding runtime quality attributes
      1. Performance
      2. Security
      3. Reliability
      4. Usability
      5. Interoperability
    4. Caching in web applications
      1. Implementing caching in ASP.NET Core
    5. Unified solution for logging and tracing
    6. Planning for deployment and monitoring
    7. Summary
  14. Chapter 7: Securing ASP.NET Web Applications
    1. Introducing key security practices
      1. Authentication
      2. Authorization
      3. Anti-XSS
      4. Cross-Site Request Forgery (CSRF)
      5. Cookie stealing
      6. Overposting
      7. Preventing open redirection attacks
      8. Blocking brute-force attacks
      9. File-upload protection
      10. Preventing SQL injection in ADO.NET and Entity Framework
      11. General security recommendations
    2. Web API security recommendations
    3. Protecting web apps and APIs hosted on Azure
    4. Summary
  15. Chapter 8: Testing in Solution Architecture
    1. Highlighting key testing principles
    2. Exploring the main types of software testing
      1. Unit testing
      2. Integration testing
      3. Regression testing
      4. Smoke testing
      5. End-to-end testing
      6. User interface testing
      7. Acceptance testing
      8. Performance testing
      9. Stress testing
      10. Compliance testing
      11. Disaster recovery testing
    3. Exploring testing in Azure
    4. Summary
  16. Section 3: Architecting Modern Web Solutions with DevOps Solutions
  17. Chapter 9: Architecting Modern Web Solutions with ASP.NET Core and Azure
    1. Exploring the characteristics of modern web solutions
      1. Scalable and cloud-hosted solutions
      2. Modular and loosely-coupled architecture
      3. Automated testing
      4. Traditional and single-page application support
      5. Fast deployment
      6. Progressive web apps with Blazor
    2. Choosing between traditional web apps and single-page apps
      1. Selecting traditional web applications
      2. Choosing single-page applications
    3. Understanding the structure of SPAs with ASP.NET Core
      1. Angular SPAs
      2. React SPAs
      3. Vue SPAs
    4. Exploring Azure hosting recommendations
    5. Summary
  18. Chapter 10: Designing and Implementing Microsoft DevOps Solutions
    1. Exploring Agile planning with Azure Boards
      1. Introducing Work Items
      2. Exploring Boards, Backlogs, and Sprints
    2. Getting started with source control
    3. Scaling Git for enterprise DevOps
      1. Structuring Git repos
      2. Branching strategy with Git
      3. Collaborating with pull requests in Azure repos
    4. Managing packages with Azure Artifacts
    5. Exploring CI/CD with Azure pipelines
    6. Summary
    7. Why subscribe?
  19. Other Books You May Enjoy
    1. Packt is searching for authors like you
    2. Share Your Thoughts

Product information

  • Title: Solution Architecture with .NET
  • Author(s): Jamil Hallal
  • Release date: August 2021
  • Publisher(s): Packt Publishing
  • ISBN: 9781801075626