Baze podataka na STC-u

thumb image

Svaka moderna aplikacija zahtijeva neki tip pohrane podataka a najčešće su to relacijske baze podataka. Kad netko spomene baze obično se sjetimo geekova u prljavim majicama koji pišu SQL upit za upitom. To ne mora biti tako, za većinu malih projekata sasvim su dovoljni alati koje ćemo pokazati u sklopu Student Tech Club predavanja a koji su besplatno dostupni iz Microsofta. Kao primjer proći ćemo kroz bazu iza STC Windows Phone 7 aplikacije. Uz malo iskustva rad s bazama može biti zabavan i bezbolan, dođite na predavanje i uvjerite se u to sami.

Entity Framework

Studente na fakultetima uče da pisanju koda trebaju pristupati sistematično, kreirati modele prije pisanja koda i po mogućnosti definirati testove prije nego što krenu sa samom izradom. Realno, jednom kad završe faks i izađu na surovo tržište rada te se nekim čudom zaposle stvarnost će im biti prilično drugačija. Poslodavci traže rezultate u čim kraćem vremenu i biti dobar programer znači pronaći tu finu granicu između brzine i kvalitete.

Ako govorimo o bazama podataka, Entity Framework nam poušava ponuditi baš taj omjer. Radi se o ORM alatu koji apstrahira funkcije baze podataka i programeru maksimalno olakšava korištenje entiteta i podataka iz baze, nebitno koji zapravo DBMS koristili (Microsoft SQL Server, SQL Server Compact, MySQL, itd.).

Recimo da smo odabrali SQL Server i želimo dohvatiti podatke u kodu iz svemoguće razvojne okoline Visual Studio 2010. Da bi koristili bazu podataka imamo tri opcije:

  1. Drag&dropati gotovu bazu iz Server Explorera te prepustiti EF dizajneru da napravi posao za nas (database-first pristup)
  2. Napraviti novi ER model u dizajneru i generirati SQL/bazu iz tog modela (model-first pristup)
  3. Napisati kompletnu bazu u kodu koristeći POCO C# klase (code-first pristup)

Svaki od tih načina je tema sam za sebe i kao takav bude obrađen u nekom od kasnijih članaka no ovaj puta ćemo se fokusirati na prvi način odnosno kada je baza već dizajnirana. Prilično je čest slučaj da se developeru predstavi gotova baza jer praksa je da različiti članovi tima rade na različitim dijelovima aplikacije.

ER dijagram za STC bazu podataka

Jednom kada je baza generirana najjednostavniji način za dohvatiti entitete je sljedeći komad koda koji dohvaća sve korisnike te ih ispisuje u konzolu.

Link na snippet

ASP.NET MVC 4 Web API

U prošlosti su se baze podataka koristile pretežno unutar samih aplikacija. U slučaju da su aplikacije trebale komunicirati s klijentima trebalo je koristiti neke zatvorene protokole no u zadnje vrijeme je sve raširenija opcija izrade REST API-eva. Ideja je da se podacima pristupa koristeći URL te da se ti podaci vraćaju u nekom od formata pogodnih za rad s mobilnim klijentima (XML , JSON ).

Nikola je u svom članku izvrsno predstavio osnove ASP.NET MVC 3 frameworka. U međuvremenu se pojavilo beta izdanje nove verzije koja uvodi razne novosti kao što je između ostalog podrška za laku izradu WEB API-eva. Ideja je da se ne pokušava na neki način „zamaskirati“ funkcija HTTP protokola nego da se radi uz njega te time ne stvara bilo kakav nepoželjan overhead. Web api ćemo u detalje proučiti nekom drugom prilikom no kako bi se čim prije bacili na posao evo snippeta koji vraća podatke iz baze podataka koristeći klijentov preferirani format.

Link na Web API snippet

Čisto kao napomena, prilikom svakog HTTP zahtjeva klijent u HTTP zaglavlje upisuje koji tip podataka želi primiti. Ukoliko se u to zaglavlje upiše Accept: application/json MVC 3 web api serijalizira odgovor u JSON format a ukoliko se u zaglavlju nalazi: Accept: text/xml, povratna je vrijednost XML.

Link na HTTP snippet

Ukoliko imate bilo kakvih pitanja slobodno ostavite komentar ispod članka. Vidimo se na predavanju!

Pin It