Solution Architecture with .NET: Learn solution architecture principles and design techniques to build modern .NET solutions

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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.

Author(s): Jamil Hallal
Publisher: Packt Publishing
Year: 2021

Language: English
Pages: 238

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