Mikor egy alkalmazásban különféle komponenseket dobálunk egymásra, szembe kell néznünk azzal, hogy ezeknek gyakran nem az unióját, hanem a metszetét tudjuk csak kiaknázni: hiába lenne képes az alkalmazás rétegünk OO kódja csodálatos leszármazási gráfokat létrehozni, ezt nagyon nehéz relációs modellben ábrázolni. Létezik rá ugyan megoldás, de a való életben általában inkább eltekintünk az örökléstől, amúgy sem tartozik a kedvenc eszközeink közé ("Favor containment over inheritance"). Hasonlóan bánunk el az xml, a relációs és a objektum orientált modell minden "kilógó részével", amire nincs életbevágóan szükségünk. Ami a végére marad, az kicsit mindegyikre hasonlít, de igazából egyik sem. Kígyófejű oroszlán. Polipkarú kutya.
Ezzel kapcsolatos problémáinkat a felére tudjuk redukálni, ha nem próbálunk meg a különféle modellek között navigálni, hanem magunkhoz öleljük valamelyik modellt, és azt vezetjük végig az alkalmazáson. Vietnénk végig az xml-t, hiszen léteznek már xml adatbázisok, a Linq to xml pedig viszonylag fájdalommentes lehetőség a xml adatok kezelésére. Megtehetnénk, hogy az objektumainkat próbáljuk adatbázisba menteni (db4o és társai), de azért ez sem valami jól kitaposott ösvény.
Amire viszont komoly támogatást kapunk a Visual Studio szinte mindegyik életképes verziójában, az a relációs modell objektum szinten terelése. Típusos DataSet-nek hívják a burkoló osztályt, és jó néhány éve velünk van már, csak néha hajlamosak vagyunk róla megfeledkezni, mert olyan sok érdekesség jelent meg mostanában: LinQ To SQL. Entity Framework. A jó öreg DataSet pedig feledésbe merül, pedig a .NET alkalmazások jelentős része remekül megülne a tetején.
Nincsenek megjegyzések:
Megjegyzés küldése