In iedere applicatie heb je eigenlijk wel te maken met null waardes. Zo ook in de nieuwe applicatie waar ik nu mee bezig ben. Nu komt het in deze applicatie veelvoudig voor dat met name data uit de database null kan zijn en ik zit met nogal een paar opties om dit op te lossen.
Nu heb ik een aantal mogelijkheden om de null waardes op te vangen:
- in de SQL. (isnull())
- direct bij het vullen van de attributen van mijn object (reader.isDbNull(i))
- bij het vullen van de UI
Dan is er nog de keuze, wat ga ik erin zetten. Ik kan het bijvoorbeeld wel in SQL doen, maar ga ik voor een string dan zeggen isnull(veld1, "") of "geen gegevens". Het laatste is natuurlijk niet netjes omdat de tekst dan hardcoded in mijn DAL zit. Hetzelfde geldt eigenlijk voor de 2 optie, bij het vullen van de attributen.
In dit opzicht blijft de UI dus over. Daar checken op de Null waarde, en dan de gewenste tekst neerzetten (in eventueel gewenste taal, mocht dit in de toekomst nodig zijn). Maar is dit zowiezo wel de beste plek? Wat daar nog bij komt, is dat deze applicatie ook deels beschikbaar komt als webservice, die de objecten doorschuift.
Dit zou dus betekenen dat klanten die de webservice willen gebruiken, zelf moeten checken op null waardes, terwijl ik het ze zo makkelijk mogelijk wil maken. En ze eigenlijk alleen maar de mogelijkheid wil geven om een soort template te bouwen, rondom onze webservice. Maar dit zou dan ook weer betekenen dat integers worden doorgestuurd als string, omdat "geen gegevens" de standaard waarde moet zijn.
Ikzelf neig toch het meest naar de laatste methode, maar ik vroeg mij af of er iemand was die mij op een andere gedachte kan brengen, of juist kunnen 'beamen' dat ik goed zit
Nu heb ik een aantal mogelijkheden om de null waardes op te vangen:
- in de SQL. (isnull())
- direct bij het vullen van de attributen van mijn object (reader.isDbNull(i))
- bij het vullen van de UI
Dan is er nog de keuze, wat ga ik erin zetten. Ik kan het bijvoorbeeld wel in SQL doen, maar ga ik voor een string dan zeggen isnull(veld1, "") of "geen gegevens". Het laatste is natuurlijk niet netjes omdat de tekst dan hardcoded in mijn DAL zit. Hetzelfde geldt eigenlijk voor de 2 optie, bij het vullen van de attributen.
In dit opzicht blijft de UI dus over. Daar checken op de Null waarde, en dan de gewenste tekst neerzetten (in eventueel gewenste taal, mocht dit in de toekomst nodig zijn). Maar is dit zowiezo wel de beste plek? Wat daar nog bij komt, is dat deze applicatie ook deels beschikbaar komt als webservice, die de objecten doorschuift.
Dit zou dus betekenen dat klanten die de webservice willen gebruiken, zelf moeten checken op null waardes, terwijl ik het ze zo makkelijk mogelijk wil maken. En ze eigenlijk alleen maar de mogelijkheid wil geven om een soort template te bouwen, rondom onze webservice. Maar dit zou dan ook weer betekenen dat integers worden doorgestuurd als string, omdat "geen gegevens" de standaard waarde moet zijn.
Ikzelf neig toch het meest naar de laatste methode, maar ik vroeg mij af of er iemand was die mij op een andere gedachte kan brengen, of juist kunnen 'beamen' dat ik goed zit