Børre Stenseth
Moduler > Databinding

Databinding

En generell problemstilling i all programmering som innebærer brukerkommunikasjon er å finne fornuftige måter å vise dataene på en dynamisk måte. På den enesiden har vi datamodeller av varierende kompleksitet og på den andre siden har et mer eller mindre rikt apparat for å vise data.

Det har vært mange innfallsvinkler til å finne begrepsapparat og mekanismer for å lette, eller halvautomatisere dette for programmerere. Den mest kjente modellen er det som går under navnet MVC (Model View Controller) [1] . Denne modellen har hengt med siden utvikligen av Smalltalk på 80-tallet, og en landsmann, Trygve Reenskaug, har fått sitt navn knyttet til denne modellen [2] . Veldig kort innebærer resonnementer etter denne modellen at vi forsøker å skille mellom Modellen som altså er datamodellen, Viewet som er framstillingen av modellen og Control som er den logikken som styrer valg av framstillingsform og dynamiske endringer.

Microsofts Visual Studio til og med versjon 6 (?) bygget standard C++ programmer etter denne modellen. Vi fikk automatisk en Document-klasse (Data modellen) og en View-klasse (for visning av modellen). Kontrollen av dynamikken var ikke så klart plassert, men i en typisk applikasjon ville denne være plassert delvis i View-klassen (som kunne hente data fra dokumentet) og delvis i selve applikasjonsklassen. Strukturen i en slik "standard"-løsning gjrør det enklere å skille mellom GUI og dataadminstrasjon enn det ville vært uten en slik MVC-modell. Det var også slik at det var lagt til rette for å ha flere Views mot et datasett, men ikke omvendt.

Vi finner ikke igjen denne arkitekturen på en slik klar måte når vi programmerer C# for .Net. Vi kan, og bør, imidlertid bruke det som en mental modell fordi det hjelper oss å desentralisere problemløsning. Grunnen til at denne modellen som eksplisitt arkitektur har kommet i bakgrunnen kan skyldes mange ting. En vurdering er at færre av de programmene vi lager idag er typisk "dokumentbehandlende" i den forstand at vi har et typisk dokument som vi laster, editerer og sparer.

Det vi finner i de omgivelsene vi programmerer er en annen mekanisme, som løser noen de samme problemene teknisk, men som i mindre grad står fram som en tydelig arkitektur. Samlebegrepet er "databinding". Dette innebærer at vi har en fleksibel mekanisme for å binde datasett mot GUI-komponenter. Dette er en svært generell mekanisme og vi skal i denne modulen nøye oss med å se på noen enkle oversiktlige eksempler.

  1. Model View ControllerWikipedia2009Wikipediaen.wikipedia.org/wiki/Model-view-controller14-03-2010
  1. The Model-View-ControllerTrygve Reenskaug2003University of Osloheim.ifi.uio.no/~trygver/2003/javazone-jaoo/MVC_pattern.pdf14-03-2010
(Velkommen) Moduler>Databinding (Enkelt register)