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

Understanding solution architecture is a must to build and integrate robust systems to meet your client's needs. Th

1,306 151 9MB

English Pages 238 Year 2021

Report DMCA / Copyright

DOWNLOAD FILE

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

Table of contents :
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

Polecaj historie