DDC Framework – databáze

Veškeré možnosti DDCF nelze ošetřit pouze v kódu frameworku. Je nutné implementovat i řadu kontrolních mechanismů přímo v databázi. DDCF je využitelný v rámci databází, které umožňují pracovat s uloženými procedurami nebo minimálně s parametrizovanými dotazy. Proto se vývojový tým neobejde bez znalostí konkrétní databáze, což může znalec ORM frameworků považovat za nevýhodu. Pozitiva převládají v okamžiku vývoje rozsáhlých databázových systémů, kdy potřebujeme mít řadu věcí pod kontrolou. Lze tak plně využít všech možností databáze - schémata databáze, vracet počítané sloupce, provádět validace vstupně – výstupních operací přímo v databázi a pod. Samozřejmě rychlost odezvy je, oproti jiným frameworkům, nesrovnatelná.

DDCF nepodporuje tvorbu dotazů přímo v kódu aplikace (např. pomocí LINQ2SQL a pod.), neboť se jedná o nejčastější příčinu vzniku chyb. To proto, že v aplikacích nejsou vytvářeny pouze triviální dotazy typu „podej záznam podle ID“, ale i dotazy složitější. Je-li tvořen složitý dotaz, spojující více tabulek, včetně použití agregovaných funkcí, dochází k větší pravděpodobnosti vzniku chyby. Chybný výsledek dotazu může být zapříčiněn jak omezenou množinou testovaných dat, na níž se dotaz ladí, tak i znalostmi a zkušenostmi vývojáře. Nepříjemný problém může nastat v okamžiku ostrého nasazení, kdy je nutné zpracovávat již obsáhlé množiny. Pak jakákoliv banální chyba v konstrukci dotazu, který vrací nesprávné výsledky, vede k nutnosti opravy zdrojového kódu, k nové kompilaci a novým instalacím, což je nepřijatelné. Z pohledu DDCF jsou tyto situace řešeny právě na straně databáze.

DDCF komunikuje s datovými zdroji prostřednictvím poskytovatelů dat (data providers) a to jak v rámci VPN (prostřednictvím connection stringu), tak v rámci webových služeb. Součástí dodávaného řešení je MSSQL data provider a WebService data provider. Vývojáři si ale mohou snadno odvodit jakéhokoliv data providera dle svých potřeb.

Zdrojový kód aplikace je pomocí specializovaných funkcí DDCF odstíněn od konkrétní syntaxe použité databáze. Tím je docíleno, že zdrojový kód aplikace je nezávislý na použité databázi. Nezávislost je docílena tak, že jednotlivé objekty vysílají žádosti o požadovaná data. Žádosti zachytává vrstva Data Access Layer a předává je konkrétnímu providerovi (respektive webové službě). Zpracováním požadavků je pak pověřen konkrétní data provider, který již ví, jak data zpracovat a v jakém formátu je vrátit. Výsledná aplikace tak může být napojena na různé databáze a i samotný vývoj může probíhat simultálně. Jedna skupina vývojářů píše kód aplikace, druhá skupina vyvíjí databázi např. pro MSSQL a třetí vyvíjí souběžně databázi pro Oracle či nějakou jinou databázi.