Rad s bazom podataka u. Net okruženju Model relacijske baze podataka



Yüklə 57,19 Kb.
tarix17.10.2017
ölçüsü57,19 Kb.
#5501

Ekonomski fakultet u Osijeku, Razvoj poslovnih aplikacija

Marijana Zekić-Sušac, Saša Mitrović







  1. Rad s bazom podataka u .NET okruženju


Model relacijske baze podataka

Danas su u upotrebi najčešće ova dva modela podataka (Barker, 2005):

  • Model ravnih datoteka (flat files)

  • Relacijski model podataka

Ravne datoteke čuvaju podatke samo u jednoj tablici, a kod njih je često ponavljanje podataka (redundancija).

- primjer: kada podatke npr. o ocjenama studenata na ispitu čuvamo u jednoj Excel datoteci
excel114

Slika 5.1. Model ravne datoteke
Karakteristike modela ravnih datoteka su:

  • Redundantni podaci

  • Sklonost greškama

  • Ograničen broj stupaca

  • Ažuriranje podataka je vremenski zahtjevno, jer se mora proći kroz sva redundantna polja kako bi se ispravili podaci i koji se ponavljaju

U prethodnom primjeru svaki put kada neki student izađe na ispit moraju se ponovo unositi podaci o imenu, prezimenu studenta, nazivu predmeta, nastavniku, i sl.
Kod relacijskog modela, podaci su organizirani u više tablica, koje su u međusobnoj vezi (najčešće je u upotrebi tzv. ER (entity-relationship) model. U relacijskom modelu postoje polja (stupci) i slogovi (retci), pri čemu se izdvajaju polja koja su ključevi (po kojima se tablice međusobno povezuju)

Primarni ključ – jedinstveni identifikator entiteta u jednoj tablici (npr.Matični broj studenta, Šifra artikla i dr.). Na Slici 5.2. vidljiv je primjer relacijskog modela jedne baze podataka koja se sastoji od tri tablice koje su međusobno povezane preko zajedničkih polja.

slika10_1

Slika 5.2. Primjer relacijskog modela baze podataka
Pri projektiranju jedne nove relacijske baze podataka, podatke je obično iz ravnog modela potrebno prebaciti u relacijski. Postupak se zove NORMALIZACIJA. Normalizacija je postupak pretvaranja podataka iz nekog nenormaliziranog oblika (npr. ravnih datoteka) u relacijski model. Značajno za postupak normalizacije je:

  • Provodi se postupcima zadovoljavanja 5 normalnih formi (u praksi se najviše koriste 3 normalne forme)

  • Normalizacijom se najprije odvajaju u zasebne tablice podaci koji se ponavljaju u stupcima, zatim se definiraju primarni ključevi za svaku tablicu, odvajaju u zasebne tablice podaci koji ne ovise o ključu itd.

  • Cilj normalizacije: dobiti učinkovit relacijski model podataka koji će svesti redundantnost na najmanju mjeru i povećati učinkovitost rada s bazom



Karakteristike relacijskog modela podataka su:

  • Neredundantnost podataka

  • Manje su podložne greškama

  • Moguć lakši unos gotovo neograničenog broja podataka u retke tablice


Dizajn tablice u relacijskoj bazi čine:

  • Stupci (polja) – u kojima se određuje što će se pohraniti u pojedino polje, npr. Ime, Prezime, i dr.

  • Tipovi podataka u poljima

  • Ostala svojstva (duljina, način zapisa, indeksi, i dr. svojstva prikazana u prozoru Properties)

  • Primarni ključ tablice (identifikator) , npr. Šifra, ID, i dr.


Referencijalni integritet u bazi podataka omogućava integritet povezanih podataka na način:

  • Da se ne dopušta unos podataka za koje ne postoje matični podaci, npr. ne može se unijeti ocjena za studenta koji ne postoji u šifarniku studenata

  • Da omogućava povezano update-iranje slogova u tablicama (ako se ispravi podatak u jednoj tablici, taj isti podatak se ispravi u svim povezanim tablicama)

  • Da omogućava povezano brisanje slogova (ako se obriše podatak u jednoj tablici, taj isti podatak obriše u svim povezanim tablicama)


File-server baze su smještene na nekom poslužitelju, i kada ih aplikacija koristi, svi podaci se “dovlače” putem mreže i obrađuju lokalno na korisničkom računalu.

  • Primjer file-server baze: MS Access.

Klijent-server baze se čuvaju na poslužitelju, a također i obrađuju na poslužitelju, a putem mreže se prenose samo oni podaci koju su trenutno potrebni.

  • Primjer klijent-server baze: MS SQL Server

Kod programskih aplikacija se dio aplikacije koji kontrolira unos i ispis podataka (odnosno komunikaciju s korisnikom) naziva FRONT END, dok se sam izvor podataka naziva BACK END. ASP .NET razvojna okolina sadrži alate za rad sa SQL Server i sa Access bazom, iako se za web aplikacije ne može koristiti Access baza (ona je namijenjena isključivo desktop aplikacijama).
SQL Server baza podataka

SQL Server baza podataka je relacijska baza podataka, odnosno sustav za upravljanje bazom podataka temeljen na relacijskom modelu, čiji je proizvođač Microsoft i namijenjena je pohrani i upravljanju podacima.
Prednosti korištenja:

  • Široko korišten alat za upravljanje bazom

  • Robustan skup korisničkih alata za upravljanje podacima (alati Enterprise Manager i Query Analyzer za analize podataka)

  • Velike mogućnosti manipulacije podacima i prijenos u skladište podataka (DTS alati za transformaciju podataka)

  • Može rukovati velikom količinom podataka

  • Mogućnost rada na Internetu

Nedostaci:

  • Rukovanje samom bazom još uvijek nije jednostavno

  • C# Express sadrži alate koji olakšavaju pristup i obradu podataka iz baze SQL Server, te klase i kontrole za rad s podacima

  • SQL Server je namijenjen za veće tvrtke, iako postoje inačice za manje tvrtke i za edukaciju: MSDE (Microsoft SQL Server Desktop Edition) ili SQL Server Express

Baze u SQL Server-u imaju ekstenziju .mdf.
SQL Server je komercijalna baza, međutim, njegova inačica SQL Server Express je javno raspoloživ

U okviru SQL Server Express-a nalaze se neki alati za rukovanje (Configuration Tools), kao npr:

  • SQL Server Configuration Manager – služi za podešavanje baze sa sistemskim okruženjem na lokalnom računalu na kojem će baza raditi


C# Express razvojna okolina omogućava rad s bazom podataka na dva načina:

  1. Direktno iz programskog koda (pri čemu treba upisati sve naredbe za povezivanje s bazom i korištenje baze)

  2. S pomoću alata za rukovanje bazom, koji se mogu koristiti dok se razvija aplikacija, kako se ne bi moralo stalno prelaziti u samu bazu (SQL Server ili Access) ili pisati sve naredbe.

Glavni alat za rukovanje bazom podataka iz C# Express-a je:

  • Database Explorer (poseban prozor u C# Express-u koji se dobiva klikom na View / Database Explorer)


Database Explorer alat omogućuje:

  • Povezivanje s bazom podataka (konekciju) koja se nalazi na lokalnom računalu

  • Kreiranje baze podataka i dodavanje objekata u bazi (tablice, pogledi i dr.)

  • Održavanje tablica u bazi (dizajniranje strukture tablica)

  • Održavanje pogleda (views)

  • Održavanje uskladištenih procedura (u Transact SQL-u koji se koristi za modifikaciju podataka)




Slika 5.3. Izgled i dijelovi prozora Database Explorer u alatu MS Visual Studio for Web Express (na primjeru aplikacije OnlineVrijednosnice)
U prozoru Solution Explorer, u mapi Tables nalaze se tablice u bazi podataka koja je povezana s aplikacijom, te se otvaranjem te mape može dobiti uvid u podatke u tablici.

ADO.NET (ActiveX Data Objects .NET) je skup klasa koje .NET okolina sadrži za rad s podacima u aplikacijama

  • Razvijen je od strane Microsofta kako bi programerima olakšao pristup podacima iz .NET aplikacija

Prije ADO.NET postojali su ovi skupovi klasa:

  • DAO (Data Access Objects) – za rad s Jet mehanizmom koji se koristi u Access bazi. Za pristup drugim bazama koristila se ODBC (Open Database Connectivity) tehnologija, koja nije omogućavala elegantan rad

  • Kako se pojavila potreba za radom i sa drugim bazama podataka osim Access-a, razvijen je ADO, koji je općenitiji od DAO, i omogućava različitim sustavima baza podataka kreiranje vlastitih sučelja koji se mogu povezati putem tehnologije OLEDB (Object Linking and Embedding).

  • RDO (Remote Data Objects) – skup klasa koji je omogućio lakši pristup udaljenim podacima


ADO .NET – spaja najbolje karakteristike ADO i RDO tehnologija, a sastoji se od višestrukih klasa za pristup podacima
Ukoliko programer želi raditi s ADO .NET-om treba koristiti prostore za nazive ugrađene u .NET, npr. osnovni prostor za nazive za rad s podacima je:

Using System.Data;

  • Ako se koristi baza SQL Server, tada se upotrebljava ovaj prostor:

Using System.Data.SqlClient;

  • Ako se koristi baza Access (ili i Access i SQL Server), tada:

Using System.Data.OleDb;
Za povezivanje aplikacije s bazom koristi se string connection. To je naredba u kojoj je navedena staza do baze podataka, kao i drugi parametri vezani uz korištenje baze podataka u aplikaciji.

Uvid u bazu podataka u .NET okruženju (Database Explorer)
U aplikaciji pod nazivom „Movie“ kreiranoj u prethodnom poglavlju korištena je lokalna baza podataka u okviru Entity Framework-a, na način da je u aplikaciji kreirana klasa DBContext koja je na temelju klase iz Modela kreirala bazu Movie.mdf i tablicu Movie u bazi podataka.
Ako bismo htjeli pogledati gdje se nalazi sama baza za tu aplikaciju „Movie“, potrebno je u prozoru Solution Explorer izabrati komponentu „App_Data“. Ukoliko se u mapi App_Data ne prikazuje ništa, tada treba kliknuti na sličicu „Show All Files“ koja se nalazi u traci s alatima prozora Solution Explorer (vidi donju sliku). Nakon toga, u mapi App_Data bit će vidljiva baza „Movie.mdf“ – datoteka ima extenziju .mdf jer je to SQL Server baza.
http://i1.asp.net/media/3203494/p5_app_data_moviesmdf.png?cdn_id=2013-10-18-001
Slika 5.4. Prikaz datoteke s bazom podataka u Solution Explorer-u
Dvoklikom miša na naziv baze „Movies.mdf“ dobije se novi prozor Database Explorer u kojem se u mapi Data Connections vidi MovieDBContext i u njemu u mapi Tables vidi se tablica pod nazivom „Movies“.
db_explorer

Slika 5.5. Prikaz elemenata baze podataka u prozoru Database Explorer

Desnim klikom na tablicu „Movies“ dobiva se izbornik kao na donjoj slici:



Slika 5.6. Izbornik za prikaz podataka i druge opreracije na tablici baze
Izborom naredbe „Show Table Data“ u lijevom prozoru bit će prikazani podaci koji su do sada pohranjeni u tablicu baze.

http://i2.asp.net/media/3203494/p5_showtabledata.png?cdn_id=2013-10-18-001

Slika 5.7. Prikaz tablice s podacima u slogovima
Vidljivo je da su do sada unesena samo 2 sloga u tablici. Ukoliko se želi pogledati struktura tablice (popis polja i njihovih tipova), tada treba u izborniku na Slici 5.3. izabrati naredbu „Open Table Definition“ koja prikazuje polja tablice kao na donjoj slici:

http://i3.asp.net/media/3203494/tabledesignview.png?cdn_id=2013-10-18-001

Slika 5.8. Prikaz strukture tablice u bazi
Vidljivo je da struktura tablice u bazi odgovara svojstvima klase Movie koja je kreirana u aplikaciji.
Nakon ovog pregleda baze, važno je zatvoriti konekciju s bazom kako bi aplikacija mogla dalje nesmetano raditi. Za zatvaranje konekcije potrebno je u Solution Explorer prozoru označiti „MovieDBContext“ i desnom tipkom miša u iskočnom izborniku izabrati naredbu „Close Connection“.

http://i2.asp.net/media/3203494/closeconnection.png?cdn_id=2013-10-18-001

Slika 5.9. Zatvaranje konekcije s bazom
Kad je konekcija zatvorena, primijetit ćete crveni znak „x“ pored, naziva mape „MovieDBContext“. Ukoliko želite ponovo pregledavati podatke u tablici baze klikom na tablicu konekcija se ponovo otvara, ali ako želite dalje nastaviti raditi na samoj aplikaciji, potrebno je zatvoriti konekciju s bazom.

Entity framework
Glavni zadatak Entity framework-a (EF-a) je olakšati C# kodu rad s podacima u bazi podataka. C# objekti su sasvim različiti od tablica pohranjenih u relacijskoj bazi podataka, a upravljanje tim razlikama i prijenos podataka između C# koda i SQL server baze podataka se zove mapiranje (eng. mapping). Zbog toga se Entity framework naziva Object relational mapper-om (ORM) jer mapira relacijske tablice u objekte razumljive C# jeziku. U nastavku će upotreba Entity Framework okvira biti opisana na primjeru VrijednosniceOnline – aplikacije koja prikazuje i mijenja graf kretanja vrijednosnica i pripadajuće novosti.
e:\fakultet_sem_vjezbe\rpa\predavanja\mapiranje_efa.jpg

Slika 5.10. Mapiranje u Entity Framework-u

Kao što slika 5.7 pokazuje, mapiranje se odvija u oba smjera. Kako se podaci preuzimaju iz baze podataka OnlineVrijednosniceDb, oni se učitavaju u C# objekte Graf i Novost, pa ako se izvršavanjem C# koda promijene navedeni objekti ili izrade novi, baza podataka ažurira tablice u skladu s tim.

Za svaku tablicu/entitet u bazi podataka Entity Framework koristi odgovarajuću C# klasu s uobičajenim svojstvima za svaki atribut/kolonu u SQL tablici. Pored klasa koje prestavljaju tablice u bazi, mora biti definirana i jedna posebna klasa koja predstavlja kontekst baze podataka (DbContext). Koristi se za dobivanje objekata entiteta koji predstavljaju podatke koji se već nalaze u bazi podataka, te se također koristi da kreirane objekte entiteta Graf ili Novost iz aplikacije se pohrane u bazu. Također, ovaj objekt pruža i druge usluge za upravljanje operacijama nad podacima u bazi podataka. Navedena posebna klasa se mora izvesti iz klase DbContext i obično njezina istanca u većini C# aplikacijama se naziva db, dbContext ili samo context. Primjer takve klase je dan u nastavku:

Slika 5.11. Kontekst klasa u aplikaciji OnlineVrijednosnice

U primjeru je vidljivo da je naziv posebne klase OnlineVrijednosniceContext i da je ista izvedena iz klase DbContext. Sama klasa sadrži konstruktor i dva svojstva. Konstruktor, koji se izvršava prilikom instanciranja klase, predaje baznoj klasi DbContext konekciju na bazu, tako što konekciju imena „OnlineVrijednosniceDb“ traži u konfiguracijskoj datoteci aplikacije1 unutar tagova . Takva konekcija je prikazana u sljedećem primjeru:

Slika 5.12. Konekcije u web.config datoteci OnlineVrijednosnice aplikacije


Svojstva u izvedenoj klasi predstavljaju klase Graf i Novost stavljene unutar Entity Framework DbSet klase koja ih mapira kao entitete i s time DbSet omogućava izvršavanje upita na tim klasama.

Relacije

Baze podataka obično imaju definirane relacije između tablica. U primjeru OnlineVrijednosniceDb, tablica Novost ima realciju stranog ključa (eng. foreign key, FK) s tablicom Graf. Obje tablice sadrže stupac GrafID. To je primarni ključ tablice Graf a shema baze podataka uključuje ograničenje koje zahtijeva da stupac GrafID u tablici Novost može sadržavati samo vrijednost za koju postoji odgovarajući redak (slog) u tablici Graf. Drugim riječima, svaki redak (slog) tablice Novost mora biti vezan uz specifičan redak (slog) tablice Graf.

Zbog konvencije pisanja, a to je da u klasi svojstvo s nazivom ID ili NazivKlaseID predstavlja primarni ključ, Entity Framework je prepoznao da su GrafID i NovostID primarni ključevi u svojima klasama, nakon toga je u navedenim klasama Entity Framework tražio prethodno navedeno ograničenje, te ga je pronašao u svojstvu public virtual Graf Graf { get; set; } s kojim se definiralo da Novost može biti isključivo vezana za jedan red u tablici Graf, bez veze s redom iz Graf ne može biti ni reda u tablici Novost. Drugo svojstvo koje ima Entity Framework je public virtual ICollection Novosts { get; set; } u klasi Graf koje definira drugi kraj relacije, odnosno da jedan Graf može imati više redaka (slogova) iz tablice Novost povezanih sa sobom i na taj način je Entity Framework kreirao relaciju jedan-prema-više. Za kraj bitno je napomenuti da svojstva koja definiraju relacije moraju biti virtualna (značenje te ključne riječi objašnjeno je u poglavlju o C#-u).
LINQ i Entity Framework

LINQ (eng. Language Integrated Query) predstavlja dodatak C# programskom jeziku koji sadrži izraze za upite (eng. query expressions) za rad s kolekcijama informacija kroz upotrebu programskog jezika (C# ili drugog programskog jezika u okviru .NET okoline).

Upit (eng. query) je izraz kojim se dohvaćaju podaci iz nekog izvora podataka (najčešće baze podataka). Jezik s pomoću kojih se mogu kreirati upiti za dohvaćanje podataka iz relacijskih baza podataka je SQL (Structured Query Language), dok se za dohvaćanje podataka iz XML datoteka koristi XQuery jezik za upite.

Neke od naredbi SQL jezika za dohvaćanje podataka su:

SELECT – određuje koja polja će se izabrati iz tablice (npr. * znači sva polja iz tablice)

FROM – određuje naziv tablice iz koje će se dohvatiti podaci

WHERE – omogućuje pisanje uvjeta koje podaci trebaju ispunjavati da bi bili dohvaćeni
Primjer SQL naredbe:

SELECT * FROM Movie WHERE Title=“Rocky 4“


Navedena naredba će dohvatiti sva polja (stupce) iz tablice Movie u kojima je naslov „Rocky 4“.
Kako programeri ne bi morali znati naredbe različitih jezika za upite ovisno o tome koji izvor podataka koriste, stvoren je LINQ, koji pojednostavljuje programerima situaciju na način da za dohvaćanje podataka omogućuje korištenje modela i objekata koji se i inače koriste u aplikaciji (klase i metode).
Međutim, ukoliko se u aplikaciji koriste samo SQL naredbe za dohvaćanje podataka iz baze, tada

LINQ se može koristiti s nizovima i popisima koji su se obradili u prethodnim poglavljima, a također postoje i posebni LINQ pružatelji za baze podataka (LINQ to Entities) gdje se putem Entity Framework-a mogu vršiti manipulacije nad podacima u bazi.

Tri glavna koraka u upotrebi upita su (Microsoft, 2013):


  1. Navesti izvor podataka.




  1. Kreirati upit.




  1. Izvršiti upit.

Slika 5.13. Koraci u upotrebi upita za dohvaćanje podataka
U prvom koraku potrebno je navesti koji je izvor podataka – koja baza podataka.

U drugom koraku kreira se sam upit (specifikacija podataka koje treba pronaći u bazi i aktivnosti koje s njima treba napraviti – da li samo prikazati, ili obrisati ili dodati novi slog u bazi).

U trećem koraku upit se izvršava u petlji foreach (za svaki slog u bazi).
Izrazi za upite u LINQ

Izrazi za upite predstavljaju sintaksu LINQ jezika, koji su na neki način vrlo slični SQL upitima, a implementirani su u C# verziji 3.0. Generalni oblik jednostavnog LINQ-a s upitnom sintaksom izgleda ovako:



var upit = from element in kolekcija

where uvjet

orderby element.Polje [ascending|descending]

select element;
Generalni oblik ilustira da element predstavlja jedan redak u tablici/nizu, dok kolekcija predstavlja tablicu u bazi podataka ili niz pa čak i samu kolekciju, s ključnom riječi where se traži ispunjenje određenog uvjeta, zatim te dobivene elemente treba poredati pod određenom polju, a za to postoje dva načina: od najmanjeg prema navjećem (ascending) i obrnuto (descending) i na kraju s ključnom riječju select se prikazuju cijeli dobiveni red/redovi. U slučaju da se želi prikazati samo jedno polje iz dobivenog retka ili više redaka dodaje se u naredbu select element. Polje predstavlja atribut ili stupac u tablici koja se želi prikazati.

LINQ metode i primjeri upita neće biti obrađivani u ovom dokumentu, jer postoji na webu napravljena posebna aplikacija koja uključuje 101 primjer LINQ-a (Microsoft - Visual Studio Platform Team, 101 LINQ Samples http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b/view/SamplePack#content, 2012). Primjere su napravili članovi tima koji rade na Visual Studio platformi u Microsoft-u. Navedena aplikacija prikazuje njihove upite na jednostavan način i bez potrebe za bazom podataka da bi se isti izvršavali.

Osim upitne sintakse, postoji i metodna sintaksa LINQ jezika – njihove razlike prikazane su u nastavku:


  • Upitna sintaksa:



  • Metodna sintaksa:

Iz primjera je vidljivo da upitna sintaksa koristi deklarativni način pozivanja LINQ operatora, također izgleda slično SQL jeziku (from, where i select naredbe izvršavaju u LINQ-u isto što izvršavaju i u SQL jeziku) i ugrađena je u C# jezik. Drugi način pozivanja LINQ-a je metodna sintaksa koja koristi metode za pozivanje LINQ-u operatora i ugrađena je u .NET framework (System.Linq).

Iako je sintaksa drugačija – rezultat izvršavanja oba upita je jednak. Konkretno u primjeru, upotrebom obje metode dobit će se sve novosti u tablici Novosts gdje je predana vrijednost parametra PhotoId jednaka vrijednosti u polju/atributu GrafID tablice Novosts.
LINQ to Entities

LINQ to Entities je LINQ-ov pružatelj za Entity Framework koji podržava sve standardne LINQ operatore, ali radi na malo drugačiji način. Entity Framework u pozadini pretvara LINQ upit u SQL upit koji baza podataka razumije. Trenutak u kojem se poziva izvršavanje LINQ upita je točka na kojoj Entity Framework šalje zahtjev u obliku SQL upita bazi podataka. LINQ upit iz dolje navedenog primjera još ništa ne dobiva iz baze:

Izraz upita iz primjera samo definira upit – comments je objekt koji zna što bi trebao vratiti u slučaju da ga nešto enumerira. Stoga slanje zahtjeva u obliku SQL upita upućuje na sam upit koji nešto vraća i to sprema u objekt comments. SQL kod koji je izvršio Entity Framework prikazan je u nastavku:

NAPOMENA: Prikaz SQL koda koji Entity Framework pošalje može se dobiti s alatom SQL Profiler koji nije dio Microsoftovih Express proizvoda, već dolazi s bazom SQL SERVER Standard i višom verzijom.

Možda je SQL upit duži u odnosu na LINQ upit, ali strukturno je to jednostavni SELECT iskaz. Jedini razlog zašto je tako velik jer zahtijeva svako polje/atribut u tablici Novosts koji je potreban entitetu Novost, a i napisan je na prilično opširan način. Zanimljiv je predzadnji red s klauzulom WHERE koja uspoređuje iz tablice Novosts polje GrafID s imenovanim parametrom. To je nastalo iz klauzule where LINQ-u upita, dok zadnji red pruža vrijednost za imenovani parametar.

Ovaj prijevod LINQ-a u SQL je vrlo koristan jer, u ovom konkretnom primjeru, bolje je da Entity Framework ostavi posao traženja redova u tablici Novosts s GrafID-om 2 nego da preuzme cijelu tablicu i zatim filtrira stavke u kodu. No, iako je LINQ to Entities vrlo praktičan za sastavljanje upita jer se mora napisati puno manje C# koda, te nije potrebno znati ni jedan drug jezik osim C#-a, on je i dalje samo sloj povrh temeljnog sustava za upite Entity Frameworka, koji koristi SQL jezik za upite.

Više informacija o LINQ i upotrebi u C# jeziku može se pronaći na:

Microsoft, Introduction to LINQ, http://msdn.microsoft.com/en-us/library/vstudio/bb397897.aspx, 10.11.2013.


Literatura:





  1. Albahari, J., Albahari, B., C# 5.0 in a Nutshell, Fifth Edition , Sebastopol, O’Reilly Media, Inc., 2012.

  2. Codeproject, Creating a simple application using MVC 4.0, http://www.codeproject.com/Articles/486161/Creating-a-simple-application-using-MVC-4-0, [20.10.2013.]

  3. Griffiths, I., Programming C# 5.0, Sebastopol, O’Reilly Media, Inc., 2013.

  4. Jennings, R., Professional ADO.NET 3.5 with LINQ and the Entity Framework, Indiana, Wiley Publishing, Inc., 2009.

  5. Lerman, J., Miller, R., Programming Entity Framework: Code First, Sebastopol, O’Reilly Media, Inc., 2012.

  6. Microsoft - Visual Studio Platform Team, 101 LINQ Samples http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b/view/SamplePack#content, 2012, [1.11.2013.]

  7. Microsoft, ASP.NET MVC Overview, http://www.asp.net/mvc/tutorials/older-versions/overview/asp-net-mvc-overview, , [09.10.2013]

  8. Microsoft, Introduction to LINQ, http://msdn.microsoft.com/en-us/library/vstudio/bb397897.aspx, 10.11.2013.

  9. Pluralsight, Building Applications with ASP.NET MVC 4,  http://pluralsight.com/training/Player?author=scott-allen&name=mvc4-building-m1-intro&mode=live&clip=0&course=mvc4-building, 2012.

  10. Solis, D., Illustrated C# 2012, New York, Apress Media LLC, 2012.

1 U web projektima konfiguracijska datoteka je web.config, dok je u desktop i ostalim Visual Studio tipovima aplikacija app.config.


Yüklə 57,19 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2022
rəhbərliyinə müraciət

    Ana səhifə