Compile-time guarantees
A service should only generate valid HTML
The HTML should be consistent with the service logic
- That is, is the service prepared to handle the values entered by the user?
Separating a service into sessions, forms, and templates enables such checking
- The descriptions can be checked against one another
- Most other approaches to generating HTML can’t do this