DDD
Domän Driven Design
2009-01-27 10:52
Validering och entiteter
Jag har funderat en del runt hur man skall validera inmatat data på ett smidigt sätt i ASP.NET MVC. Det finns massor med bloggar att läsa i ämnet samt ett och annat ramverk som kan generera klientvalidering med javascript. Dessa ramverk förutsätter att man använder attribut på entiteternas egenskaper för att beskriva vilka regler som gäller för den specifika egenskapen.
Men vad är det man vill åstadkomma med reglerna för en egenskap? Som jag ser det så vill man skydda sin domän mot att felaktig data kommer in i systemet. Då behöver man antingen använda aspekter för att validera tilldelningen av data eller skriva valideringen i tilldelningskoden vilket ger duplicering. Som jag ser det är det bästa sättet att skydda domänen mot felaktigt data är att använda Value Objects i stället för Value Types. Tex: Ett UserName objekt i stället för attributen [Required][MinLength(8)][MaxLength(20)] på en egenskap av typen String. Mer om Value Objects här.
I mitt tycke är det denna väg man vill gå för att så tidigt som möjligt detektera felaktigt data samt att skydda domänen mot det. Återstår "bara" att få det att fungera smidigt i ASP.NET MVC controllerna.
Postad av Håkan Alexander
Kommentarer (2)
Kategorier:
ASP.NET MVC
DDD