Overview
Syllabus
Intro
SETTING THE STAGE "We need a new SPA "We need a new REST API
ZERO TO "MAKE MAGIC HAPPEN"
THE EMPLOYEE OBJECT • Is part of payroll software • Contains sensitive data (SSN)
A WILD EmployeesController APPEARED
The reality SCAFFOLDING IS A LIE
Route the request Validate Run service for request Return data
NO SEPARATION OF CONCERNS
CONTROLLER SHOULD ONLY Route the request Return data
CQRS Command Query Responsibility Segregation
Problem? ENTITY BEING USED FOR REQUESTS MODEL/MODEL VALIDATION ARE NOT SEPARATE
SEPARATE ENTITY FROM MODEL So let's refactor
SEPARATE VALIDATION FROM MODEL INTRODUCING FLUENT VALIDATION
ISOLATE VALIDATION FUNCTIONALITY
SEPARATE REQUEST HANDLER FROM CONTROLLER INTRODUCING MEDIATR
PUTTING IT ALL TOGETHER 1. Dependency injection handles... dependencies 2. Mediat will handle request/responses 3. Controller will route HTTP requests
USE BETTER DI CONTAINER INTRODUCING AUTOFAC
USE AUTOFAC TO • Scan assemblies for services/validators • Add them to service pipeline
TIPS
CREATE REPEATABLE PATTERNS more complete example
WRITE TESTS FOR EVERYTHING
KEEP VERSIONS SEPARATE
CONCERNS May be unnecessary complexity • Bigger learning curve
Taught by
NDC Conferences