Vodič: Poslovni softver u oblaku

U poslednjih nekoliko godina primetan je trend pojavljivanja Cloud rešenja za mnoge oblasti, a posebno u domenu poslovnog softvera.

Da li je Cloud poslovni softver, rešenje za vašu kompaniju?

MSDN day: Enitity Framework i LINQ umesto SQL upita

Shares
Vreme čitanja: 3 minuta

linq_entity_frameworkLINQ je već tu, a Entity Framework je u završnoj fazi, i trebalo bi da se finalna verzija uskoro nađe u sastavu SP1 za net 3.5 kao i SP1 za Visual Studio 2008.

Obratite pažnu – obe tehnologije će biti u srcu i Visual Studija i DotNeta. Ali zašto je Microsoft odlučio da da baš ove tehnologije dobiju prioritet? Da bi možda bili bliže odgovoru, hajde da probamo da razumemo zašto je SQL postao “loš” momak.

SQL u poslovnim aplikacijama

SQL je nastao u IBM-u još 1970. To znači da je stariji od većine učesnika jučerašnjeg “MSDN day” skupa, a, boga mi, i predavača. SQL ima 300 internet godina, a opet je okosnica celokupnog današnjeg poslovnog softvera. SQL živi iza skoro svakog sajta na internetu, iza gotovo svake poslovne klijent-server aplikacije. Jasno je da će SQL još dugo, dugo biti sa nama.

Sa druge strane, stvari na polju softvera su dosta napredovale. Od C-a se došlo do Jave i C# i Rubija. Internet Explorer, FireFox, Safari su novi terminali. To je upravo taj nesklad – SQL se i u najmodernijim programski jezicima i dalje pojavljuje kao čist tekst, odnosno string. To nije dobro. Prvo zbog sigurnosti; Dovoljno je da neko zlonamerno ubaci svoj SQL string uz vaš, i da vaši podaci postanu nesigurni. Baš ova metoda napada je dosta česta i poznatija je kao SQL Injection.

Sadržaj stringa će vaš kompajler uzeti zdravo za gotovo. Ako ste vi ili neko drugi izmenili naziv nekog polja u bazi, vaš do juče ispravni SQL će prijaviti grešku – ali tek kada taj string stigne do SQL servera. To može biti u test proceduri, a može biti i u produkcionoj verziji kod korisnika.

Ne manje bitna stvar je da sadržaj stringa ne podržava IntelliSense tehnologiju. Ako imate nekoliko stotina tabela, pogleda, procedura, ili ako te tabele i njihova polja razvija neki drugi tim – taj nedostatak će sigurno usporiti razvoj.

LINQ i Entity Framework u pomoć

LINQ, odnosno LINQ to SQL rešava jedan deo problema. Vaš upit nije više string, već postaje ravnopravan dotnet kod. I SQL je tu, ali se generiše i izvršava u pozadini. A Entity Framework ide i korak dalje. On će vam predstaviti model baze kao model objekata sa relacijama. Vi pišete nešto kao Order.Partner.Adress sa tim da posle tačke na Order, dobijete Intellisense listu sa poljima iz Orders tabele, uključujući i objekat Partner sa podacima o partneru. Order je entitet a Orders kolekcija.

Gospodin Dragoslav Ogar je na prezentaciji efektno prikazao i kako se takav kod ponaša kada se samo promeni konekcija na drugu bazu, kako radi Intellisense i kako se brzo mapiraju veze. Takođe smo u SQL profajleru mogli videli kako se entiteti pretvaraju u SQL i kako izgleda SQL koji stiže na SQL server.

Šta koristiti?

datadesignObzirom da je LINQ jedna og udarnih stvari novog dotnet okruženja, i da će Entity Framework biti u srcu verzije 3.5 SP1, jasno je da je postavljen nov pravac kako će aplikacije “razgovarati” sa SQL serverima. Pre svih – poslovne aplikacije.

Sa druge strane Entity Framewok još nije u finalnoj verziji. To se videlo i na prezentaciji, gde je napomenuto da neki tipovi podataka nisu podržani. Dodat je još jedan, ORM sloj između korisnika i podataka. Da bi sve radilo kako treba, neophodna su mapranja, odnosno XML fajlovi u kojima stoji kako se podaci iz baze preslikavaju na entitete i kolekcije. Ta mapiranja imaće svoj dizajner u najnovijem Visual Studiju.

Dakle ostaje da nove tehnologije povlače za sobom prelazak na nove alate.
Najnovije, najnovije, najnovije…

Konačan sud doneće korisnici, odnosno razvojni timovi širom planete. Ja sam lično ubeđen da SQL lagano odlazi putem asemblera i C-a — prisutan ali sakriven od većine.

Trivia za kraj

Imao sam tu sreću da početkom devedesetih budem srednjoškolac u IV Beogradskoj gimnaziji, na matematičko-programerskom smeru. Tada je na neki od računarskih predmeta došao mlad profesor, za koga su svi tvrdili da stvarno nešto zna o programiranju. I ne samo to. Bio je glasan, ali je umeo da debatu vodi tako da nestane klasičan odnos profesor-učenik. Takođe je imao dovoljno neobično prezime koje je odmah postalo i nadimak – Ogar.

MSDN predavanje je, bar za mene, bilo i krajnje simpatičan flashback. I gle, sad imam pred sobom MS papir da ocenim predavača i predavanje. I to ocenom od 1 do 5! Hm, kako život okreće stvari.

Čista petica – naravno. Bilo mi je zadovoljstvo biti prisutan.

About the Author Dušan Majkić

If it wasn't for C, we would be using BASI, PASAL and OBOL! A feature is a bug with seniority. Undetectable errors are always infinite in variety.

>