Εκτός και αν πρόκειται για sample, prototype ή throw-away project τότε η αρχιτεκτονική μιας ASP.NET εφαρμογής είναι αυτή που φαίνεται στο παρακάτω σχήμα.

Τα επίπεδα (layers) μπορούν να διαμορφωθούν ανάλογα με το μέγεθος της εφαρμογής. Για παράδειγμα, πιθανόν να υπάρχει χωριστό presentation layer (ανάμεσα στα Services και το UI) αρκεί η σχεδίαση να μην αποτελεί overkill για την κλίματα του έργου.
Τα παραπάνω ακούγονται πολύ ωραία και ταιριάζουν με τις επιταγές της DDD μεθοδολογίας αλλά τι γίνεται όταν για το persistence επιλέγεται η LINQ-to-SQL; Στην συγκεκριμένη περίπτωση όχι μόνο έχουμε ένα ORM που λειτουργεί ως Repository αλλά γεννάται το ερώτημα αν πρέπει να εκμεταλλευτούμε το Object Model που παράγεται αυτόματα. Φαίνεται πως οι partial classes μπορούν να λειτουργήσουν και ως Domain Model.
Για παράδειγμα, αν στο DataContext έχουμε το Customer entity, η εφαρμογή business logic κανόνων μπορεί να γίνει γράφοντας:
1: public partial class Customer
2: {
3: partial void OnValidate(ChangeAction action)
4: {
5: if (action == ChangeAction.Insert)
6: {
7: if (string.IsNullOrEmpty(LastName))
8: throw new CustomerInvalidException("Το επώνυμο του πελάτη είναι υποχρεωτικό.");
9: }
10: }
11: }