Validatie Flashcards

1
Q

Wat is data validatie?

A

Voorwaarden waaraan de datastructuren van een applicatie moeten voldoen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wat is het verschil tussen validatie-definitie en validatie-logica?

A

validatie-definitie: Het definiëren van een voorwaarde

validatie-logica: het al dan niet geldig verklaren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wat is “bad practice” in data validatie

A

Op property niveau binnen de set-accessor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wat is “good practice” in data validatie

A

Via metadata (attributen) op type, veld, property

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Waarom is data validatie via metadata good practice?

A

Zorgt ineens voor de opsplitsing van validatie-definitie en validatie-logica

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wat is het Validation Framework?

A

Functionaliteit in .NET om validaties te definiëren en te controleren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Van waar installeren we packages en hoe doen we dat

A

NuGet en via CLI

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Geef 5 predefined validation-attributes

A
KeyAttribute
RequiredAttribute
MinLengthAttribute
MaxLengthAttribute
StringLengthAttribute
RangeAttribute
RegularExpressionAttribute
EmailAdressAttribute
...
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wat is het KeyAttribute?

A

Unieke identifier van een entiteit

Cfr. PK in een databank

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

RequiredAttribute?

A

Attribuut moet verplicht een waarde hebben, dwz dat het niet null mag zijn (!=null)

Bij string waarden mag het ook niet leeg zijn of enkel spaties bevatten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Waarbij moeten we opletten bij RequiredAttribute?

A

Value type zijn standaard verplicht dus heeft Required geen meerwaarde

Indien je deze niet verplicht wil maken dan moet je de value-type nullable maken (int?, byte?,…)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

RangeAttribute(int n,int m)?

A

De waarde van de property moet tussen n en m liggen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

MinLengthAttribute(int n)?

A

De waarde van de property die als datatype een array moet zijn moet minimaal n elementen bevatten

String = Array van chars

Werkt NIET op List

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

MaxLentghtAttribute(int n)?

A

De waarde van de property die als datatype een array moet zijn mag maximaal n elementen bevatten

String = array van chars

Werkt NIET op List

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

StringLengthAttribute(int max[, int min])?

A

De waarde van de property die als datatype een string moet zijn, mag maximaal max tekens hebben, en optioneel minimum min tekens bevatten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

RegularExpressionAttribute(string Regex)?

A

De waarde van de property moet voldoen aan de opgegeven regular expression. Indien ^ en $ aan respectievelijk aan begin en eind niet opgegeven worden, dan worden deze automatisch toegevoegd

17
Q

EmailAdressAttribute?

A

De waarde van de property moet een geldig email bevatten

18
Q

Wat is de validatorklasse?

A

Statische klasse die de mogelijkheid geeft om gedefinieerde validatie-definities uit te voeren

19
Q

Welke 2 methodes bevinden zich in de validatorklasse?

A

ValidateObject(Object, ValidationContext)

TryValidateObject(Object, ValidationContext, IEnumerable)

20
Q

Welke mogelijke parameters zijn er in de validatorklasse?

A

Object, ValidationContext, IEnumerable, ValidateAllProperties

21
Q

Object?

A

Het te valideren object

22
Q

ValidationContext?

A

Extra info mbt de validatie-definitie

23
Q

IEnumerable

A

lijst waarin de validatieerrors worden bijgehouden

24
Q

ValidateAllProperties?

A

Boolean, om te bepalen of enkel de required attributes gecontroleerd moeten worden of ook andere validaties

25
Q

ValidateObject(Object, ValidationContext)?

A

Gooit een ‘ ValidationException ‘ bij de eerste
validatie definitie waaraan niet voldaan wordt

Bevat op zich één ‘ ValidationResult

Message geeft ook de foutboodschap

26
Q

TryValidateObject(Object, ValidationContext, IEnumerable)?

A

Returnwaarde ( boolean ) geeft aan of aan (alle)
validatie definities voldaan is

Lijst van ‘ ValidationResults ‘ wordt meegegeven
waarin ongeldigheden toegevoegd worden

27
Q

Wat zijn de properties van de ValidationResult klasse?

A

ErrorMessage en MemberNames

28
Q

ErrorMessage?

A

string, info betreffende de ongeldige validatie

29
Q

MemberNames

A

IEnumerable
opsomming van de velden/ properties (als
string waarden) die betrekking hebben op
de uitgevoerde validatie

30
Q

Wat is User-defined validations?

A

Eigen validatie logica inhaken op het Validation Framework

Gebruik je om validatie voorwaarde te definiëren die niet mogelijk zijn via pre defined attributes

Je gebruikt hiervoor de IValidatableObject interface

31
Q

Leg uit Interface ‘IValidatableObject’

A

Namespace : System.ComponentModel.DataAnnotations

Interface bevat één methode die je moet implementeren:
IEnumerable  Validate(ValidationContext context)

Wordt automatisch door het Validation Framework
opgeroepen bij een controle met Validator.ValidateObject of Validator.TryValidateObject

OPGELET:

Er kunnen GEEN criteria waarden gedefinieerd worden, maar is binnen
het type gedeclareerd dus alle members van het type zijn bereikbaar

Bij gebruik in combinatie met ‘validation attributes’, zal deze methode
enkel uitgevoerd worden als alle ‘validation attributes’ geldig

TIP:
Gebruik eventueel ‘explicit interface implementatie’