Klasično načrtovanje aplikacij pomeni razbitje aplikacije na naslednje logične plasti: - PREDSTAVITVENI NIVO (izgled aplikacije kot jo vidi končni uporabnik), - LOGIČNI NIVO (funkcionalnost aplikacije), - PODATKOVNI NIVO ( skrbi za komunikacijo s podatkovnimi viri). Če se osredotočimo na podatkovni nivo, vidimo, da je načrtovanje le-tega močno povezan s tipom podatkovnega skladišča. To je lahko podatkovna baza (MS SQL Server, Oracle, MySQL, Postgre, DB2, ...), spletni servis, XML, programski objekt, ... Vsako izmed naštetih možnih skladišč je pomenilo pisanje novih povpraševalnih funkcij v podatkovnem modelu. Dostop do podatkovnih baz pa je bilo mogoče poenotiti z uporabo SQL povpraševalnih stavkov. Jezikovno vgrajenana povpraševanja (LINQ...