๐”– Scriptorium
โœฆ   LIBER   โœฆ

๐Ÿ“

Clean Architecture with .NET (Developer Reference)

โœ Scribed by Dino Esposito


Publisher
Microsoft Press
Year
2024
Tongue
English
Leaves
337
Edition
1
Category
Library

โฌ‡  Acquire This Volume

No coin nor oath required. For personal study only.

โœฆ Synopsis


Understand what to do at any point in developing a clean .NET architecture

Master advanced .NET techniques with a focus on actual value delivered by working within a modular, clean architecture. Microsoft Data Platform MVP Dino Esposito explains key clean architecture concepts with a mix of pragmatism and design discipline and helps you solidify your knowledge through a real-world project. Starting with an explanation of the quest for modular software architecture continuing through the methodology of domain-driven design (DDD), Esposito emphasizes the role that modularization plays in managing complexity in software development. Breaking down the layers of an architecture that is modular and maintainable, he presents a sample project that is not simply another to-do list, but an actual tool for the reader. Ultimately, an exploration of common dilemmas for both developers and operations brings together historical developments with real solutions for today.

Microsoft Data Platform MVP Dino Esposito helps you:

ยท Understand the relevance of modular software architecture in the history of software

ยท Review domain-driven design concepts both, strategic and practical

ยท Apply modular analysis techniques to your development

ยท Make the most of layered architecture

ยท Make the most of layered architecture that is modular and maintainable

ยท Explore in detail the individual layersโ€•presentation, application, domain and infrastructure

ยท Make sense of domain services to separate raw persistence from persistence-related business tasks

ยท Make your way through a series of C# best-practices for modeling classes from real-world entities

ยท Understand the benefits of microservices versus modular monoliths

ยท Understand the analysis of technical shortcuts and benefits of long-term technical investment

ยท Understand client-side, server-side and other common deployment dilemmas

ยท Set up your architecture, test your conclusions, and find even more help

โœฆ Table of Contents


Cover
Title Page
Copyright Page
Contents at a Glance
Contents
Acknowledgments
Introduction
PART I THE HOLY GRAIL OF MODULARITY
Chapter 1 The quest for modular software architecture
In the beginning, it was three-tier
Core facts of a three-tier system
Layers, tiers, and modularization
The DDD canonical architecture
The proposed supporting architecture
Adding more to the recipe
Different flavors of layers
Hexagonal architecture
Clean architecture
Feature-driven architecture
Summary
Chapter 2 The ultimate gist of DDD
Design driven by the domain
Strategic analysis
Tactical design
DDD misconceptions
Tools for strategic design
Ubiquitous language
A domain-specific language vocabulary
Building the glossary
Keeping business and code in sync
The bounded context
Making sense of ambiguity
Devising bounded contexts
The context map
Upstream and downstream
An example context map
An example deployment map
Summary
Chapter 3 Laying the ground for modularity
Aspects and principles of modularization
Separation of concerns
Loose coupling
Reusability
Dependency management
Documentation
Testability
Applying modularization
The presentation layer: interacting with the outside world
The application layer: processing received commands
The domain layer: representing domain entities
The data/infrastructure layer: persisting data
Achieving modularity
More modularity in monoliths
Introducing microservices
The simplest solution ever
Maintainability
Designing for testability
Summary
PART II ARCHITECTURE CLEANUP
Chapter 4 The presentation layer
Project Renoir: the final destination
Introducing the application
The abstract context map
Designing the physical context map
Business requirements engineering
Breakdown of software projects
Event-based storyboards
Fundamental tasks of Project Renoir
Boundaries and deployment of the presentation layer
Knocking at the web serverโ€™s door
ASP.NET application endpoints
Presentation layer development
Connecting to business workflows
Front-end and related technologies
API-only presentation
Summary
Chapter 5 The application layer
An architectural view of Project Renoir
The access control subsystem
The document-management subsystem
Project Renoir in Visual Studio
Task orchestration
What is a task, anyway?
An example distributed task
An example task in Project Renoir
Data transfer
From the presentation layer to the application layer
From the application layer to the persistence layer
Implementation facts
Outline of an application layer
Propagating application settings
Logging
Handling and throwing exceptions
Caching and caching patterns
Injecting SignalR connection hubs
Boundaries and deployment of the application layer
The dependency list
Deployment options
Summary
Chapter 6 The domain layer
Decomposition of the domain layer
The business domain model
Helper domain services
Devising a domain model
Shifting focus from data to behavior
Life forms in a domain model
The domain model in Project Renoir
The hitchhikerโ€™s guide to the domain
Treating software anemia
Common traits of an entity class
Rules of etiquette
Style conventions
Writing truly readable code
Summary
Chapter 7 Domain services
What is a domain service, anyway?
The stateless nature of domain services
Marking domain service classes
Domain services and ubiquitous language
Data access in domain services
Data injection in domain services
Common scenarios for domain services
Determining the loyalty status of a customer
Blinking at domain events
Sending business emails
Service to hash passwords
Implementation facts
Building a sample domain service
Useful and related patterns
The REPR pattern adapted
Open points
Are domain services really necessary?
Additional scenarios for domain services
Summary
Chapter 8 The infrastructure layer
Responsibilities of the infrastructure layer
Data persistence and storage
Communication with external services
Communication with internal services
Implementing the persistence layer
Repository classes
Using Entity Framework Core
Using Dapper
Hosting business logic in the database
Data storage architecture
Introducing command/query separation
An executive summary of event sourcing
Summary
PART III COMMON DILEMMAS
Chapter 9 Microservices versus modular monoliths
Moving away from legacy monoliths
Not all monoliths are equal
Potential downsides of monoliths
Facts about microservices
Early adopters
Tenets of a microservices architecture and SOA
How big or small is โ€œmicroโ€?
The benefits of microservices
The gray areas
Can microservices fit all applications?
The big misconception of big companies
SOA and microservices
Are microservices a good fit for your scenario?
Planning and deployment
Modular monoliths
The delicate case of greenfield projects
Outlining a modular monolith strategy for new projects
From modules to microservices
Summary
Chapter 10 Client-side versus server-side
A brief history of web applications
The prehistoric era
The server-scripting era
The client-scripting era
Client-side rendering
The HTML layer
The API layer
Toward a modern prehistoric era
Server-side rendering
Front-endโ€“back-end separation
ASP.NET front-end options
ASP.NET Core versus Node.js
The blocking/non-blocking saga
Summary
Chapter 11 Technical debt and credit
The hidden cost of technical debt
Dealing with technical debt
Ways to address debt
Debt amplifiers
The hidden profit of technical credit
The theory of broken windows
The power of refactoring
Do things right, right away
Summary
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z


๐Ÿ“œ SIMILAR VOLUMES


Clean Architecture with .NET (Developer
โœ Dino Esposito ๐Ÿ“‚ Library ๐Ÿ“… 2024 ๐Ÿ› Microsoft Press ๐ŸŒ English

<p><span>Understand what to do at any point in developing a clean .NET architecture</span></p><p><span>Master advanced .NET techniques with a focus on actual value delivered by working within a modular, clean architecture. Microsoft Data Platform MVP Dino Esposito explains key clean architecture con

Clean Architecture with .NET
โœ Dino Esposito ๐Ÿ“‚ Library ๐Ÿ“… 2024 ๐Ÿ› Microsoft ๐ŸŒ English

Master advanced .NET techniques with a focus on actual value delivered by working within a modular, clean architecture. Microsoft Data Platform MVP Dino Esposito explains key clean architecture concepts with a mix of pragmatism and design discipline and helps you solidify your knowledge through a re

The Shred Power Cleanse: Eat Clean. Get
โœ Ian K. Smith, M.D. ๐Ÿ“‚ Library ๐Ÿ“… 2015 ๐Ÿ› St. Martin's Publishing Group ๐ŸŒ English

<p>Dr. Ian is answering Shredder Nation's call for a short-term, fast-acting cleanse that will help you reset and power through to your new weight loss goal!<br><i>The SHRED Power Cleanse</i> takes the classic detox plan to a new level. You won't find any fiberless, anemic juices on this regimen! Dr

Programming ML.NET (Developer Reference)
โœ Dino Esposito, Francesco Esposito ๐Ÿ“‚ Library ๐Ÿ“… 2022 ๐Ÿ› Microsoft Press ๐ŸŒ English

<span><div> With .NET 5โ€™s ML.NET and <i><b>Programming ML.NET</b></i>, any Microsoft .NET developer can solve serious machine learning problems, increasing their value and competitiveness in some of todayโ€™s fastest-growing areas of software development. World-renowned Microsoft development expert Di

Programming ML.NET (Developer Reference)
โœ Dino Esposito, Francesco Esposito ๐Ÿ“‚ Library ๐Ÿ“… 2022 ๐Ÿ› Microsoft Press ๐ŸŒ English

<span><div> With .NET 5โ€™s ML.NET and <i><b>Programming ML.NET</b></i>, any Microsoft .NET developer can solve serious machine learning problems, increasing their value and competitiveness in some of todayโ€™s fastest-growing areas of software development. World-renowned Microsoft development expert Di

Coding Clean, Reliable, and Safe REST AP
โœ Anthony Giretti ๐Ÿ“‚ Library ๐Ÿ“… 2023 ๐Ÿ› Apress ๐ŸŒ English

<p><span>Learn ASP.NET Core APIs delivered in its latest version of the Microsoft Framework: .NET 8. This book will show you how to develop APIs with ASP.NET Core 8. Author Anthony Giretti will reveal all you need to know about HTTP protocol, REST architecture style, and ASP.NET Core 8.</span></p><p