MSDN day: Enitity Framework i LINQ umesto SQL upita
LINQ 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?
Obzirom 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.
Primena rešenja – najbolje iz prakse?
Ako ste procese ustanovili pre odluke o poslovnom softveru imate problem. Svaki softver ima svoju internu logiku koja je često takva da se ne može suštinski menjati, a napravljena je u skladu sa usvojenim rešenjima koja su se u praksi pokazala najboljim.
Primena rešenja koja su se u praksi pokazala najboljim su subjektivna. Ono što je dobro i primenljivo za jednu vrstu poslovanja ne znači po automatizmu da je primenljivo i na sva ostala poslovanja iz iste oblasti. Pitanja koja se nameću pri promeni poslovnog softvera i primena rešenja najbolje iz prakse su: način na koji se došlo do takvog rešenja; za koga i koji tip organizacije su se takva rešenja pokazala kao najbolja? Firme bi trebalo da utvrde svoje osobenosti i sličnosti sa rešenjima pozitivne poslovne prakse tj. koliko su ta rešenja slična/različita od njihovog načina poslovanja.
Nabavka softvera u skladu sa poslovnim procesima u jednoj firmi je ključni argument uspeha procesa implementacije poslovnog softvera. Ako sotver nije u skladu sa prethodno ustanovljenim poslovnim procedurama dolazi do problema i disonantnog tona celog poslovanja gde sa jedne strane imate procese koji su logični, a sa druge strane softver koji (zbog svoje logike) ne može da isprati procese. Ključna stvar je sinhronizovan redizajn poslovnih procesa i nabavka poslovnog softvera uz pažljivo prilagođavanje pozitivne prakse.
Implementacija – jednokratna operacija
Stara izreka kaže da je svaki početak težak. Kada je u pitanju poslovni softver, kraja nema, a sredina je kamen spoticanja.
Koliko puta vam se desilo da implementirate poslovni softver u svojoj firmi i u početku sve radi odlično? Softver je kvalitetan, poslovni procesi su pokriveni, izveštaje dobijate na vreme i sve radi kao švajcarski sat. Odjednom: katastrofa! Ponovo ste na početku! Ništa ne funkcioniše, ponovo problemi, izveštaji kasne, poslovni procesi su izmakli kontroli. Ne sećate se više zašto ste uopšte uvodili softver kada sve radite ručno i opet počinjete da razmišljate o „novom“ softveru, jer „stari“ ništa ne valja.
Razlog za ovakvo stanje stvari je jednostavan: firma radi, raste, razvija se, poslovanje se proširuje novim poslovnim procesima, a softver je nekako u celom procesu ostao „u knjigovodstvu“, zaboravljen od svih i potpuno ispušten iz cele priče razvoja i širenja.
Često me pitaju: koliko traje implementacija poslovnog softvera? Zapravo nikad ne prestaje. Softver je „živa“ stvar. Raste i razvija se zajedno sa vama.
Rešenje postoji i takođe je jednostavno: najbolji rezultati u promeni poslovnog softvera i redizajnu poslovnih procesa se ne postižu kao jednokratna operacija; ceo proces mora biti konstantno nadgledan i na sve izmene u poslovanju mora se pravovremeno reagovati (kako organizaciono, tako i „softverski“). Procena spremnosti kontinualnog poboljšanja procesa poslovanja kompanije svodi se na davanje odgovora na neka ood sledećih pitanja (nisu jedina):
- Da li zaposleni imaju aktivnu ulogu u procesu implementacije poslovnog softvera i poslovnih procesa unutar firme?
- Da li zaposleni imaju aktivnu ulogu u identifikovanju i rešavanju problema?
- Kako je odnos firme prema novim idejama? Da li ih podržava, pomaže, ohrabruje ili ignoriše?
- Koliko je zapravo ceo tim motivisan da se aktivno uključi u gorepomenute procese?
- …
Problem je jasan. Da je softver bilo koji, a samim tim i poslovni, nešto što se jednom napravi i nikad više ne menja, danas bi svi i dalje koristili windows 3.11. Normalno je i potpuno prirodno, kao i sa svim drugim „živim“ stvarima da se i softver vremenom unapređuje, dorađuje i prilagođava potrebama. Ono što je naročito bitno za poslovni softver je da se te i takve promene konstantno prate i implementiraju, a sve u cilju izbegavanja situacije pomenute u uvodu.
- Na kraju, ljudi čine okosnicu svih pomenutih procesa i najvažnije u celoj priči jeste zainteresovanost i motivisanost svih aktivnih učesnika da se ti i takvi procesi realizuju i konstantno usavršavaju.
5 stavki za vaš CV ako hoćete da se bavite poslovnim softverom
Na prvom mestu je škola. Ne kao dokaz da znate sve, nego jednostavno ne smete sebi dozvoliti da vas odbace a da vas nisu videli. Znam da svi traže kandidate do 24 godine, sa završenim ETF-om i 5 godina iskustva u svim poznatim tehnologijama. Ali takođe znam da je praksa drugačija: Najbolji sa ETF-a ili PMF-a će dobiti vize pre nego diplome, a oni ostali će potražiti visko plaćene poslove u bankama, osiguranjima, vladi… Ovo ostavlja sve ostale firme otovrene za vas i vaš CV. Ako se još dvoumite, pravac www.vets.edu.yu ili www.eposlovanje.org. "Inženjer" zvuči više nego ok i vodi vas u drugi krug.
Na drugom mestu su znanja koja ste stekli mimo škole, a imaju nekakve veze sa konkretnim poslom. Naravno da većinu ljudi koji budu čitali vaš CV neće zanimati da imate veštinu ronjenja iz izviđača. Ali ako se firma bavi opremom za ronjenje, to može da bude nešto što će prevagnuti u vašu korist. Takođe u poslednjih nekoliko godna se razvilo tržište sertifikata za razne softverske pakete (n. pr. Microsoft), a iz pouzdanih izvora se saznaje da slične sertifikate pripremaju i neki domaći proizvođači softvera za svoje pakete. Znate još neki jezik mimo engleskog? Takve stvari su uvek plus u vašem CV-u.
Imate li nešto na šta možete pokazati prstom? Adresar rađen u nekom programskom jeziku? Postavili ste mrežu kod rođaka u firmi? Imate sajt? Preveli ste neki strani softverski alat na srpski? Učestvujete u nekom open source projektu? To je treća stavka. Ako su prve dve stavke odbrana da vas ne odbace, ovo može biti stvar zbog koje će neko hteti da vas vidi. Ovakvim stvarima pokazujete interesovanje i spremnost da aktivno učestvujete.
Odaću vam malu tajnu. Sve firme imaju svoje ustaljne poslovne procese. I jedino što traže od novih ljudi je da ih brzo razumeju, da ih ne kvare i da ih pamentno upotrebe. Probni rad je jedini pravi način da se proveri čovek, ali je zadatak ljudi koji razgovaraju sa kandidatima da izaberu najadekvatnije i eliminišu lošije kandidate. Morate zadržati fokus na onome što se traži. Nemojte dozvoliti da se neke nevažne stvari iz CV-a protumače negativno.
Timski rad je peta i najvažnija stvar koja treba da se vidi u vašem CV-u. Ako bolje pogledate razred u školi, ili smer na fakultetu – to je jedna vrsta tima. Polaznici kursa su tim. Projekti su delo tima. Fokus na zadatak je timska igra. Firma je tim. Uklopiti se u tim znači povećanje kreativne atmosvere u korist svih. Prvi red vašeg CV-a mora da znači ste spremni da u drasu ekipe istrčite na tržište.
Pre nekoliko dana smo o ovoj temi i pričali na sastanku. Dobri ljudi trebaju. Ne menjajte kanal. Kada bude zvaničan konkurs, obajviću detalje i ovde. Možda se i vidimo.
Softver za upravljanje projektima – potreba ili luksuz
Originalni tekst je objavljen u februarskom broju časopisa PCWorld Mikro (članak pod naslovom Softver za upravljanje projektima – potreba ili luksuz)
Softver za upravljanje projektima – potreba ili luksuz?
Softver koji je od neprocenjive pomoći svuda gde se zahteva precizno planiranje poslovanja
Isplativost posla i praćenje realnih troškova poslovanja samo su deo osnovnih problema s kojima se suočava svako preduzeće u svom radu. Realizacija ne odgovara uvek napravljenom planu, ali ni svaki plan ne bude realizovan. Kako se u sve to uklapa softver?
Ukratko rečeno, softver za upravljanje projektima je poslovni alat koji bi trebalo da omogući planiranje aktivnosti, upravljanje resursima, procenu troškova, praćenje realizacije projekta, poređenje realizacije s planom i kontrolu nad projektom.
Softver za upravljanje projektima je alat opšte namene i pokriva različite oblasti poslovanja. Koristi se u arhitekturi i inženjerstvu, računovodstvu i pravnim službama, građevinarstvu, proizvodnji, softverskoj industriji i srodnim granama u kojima se poslovanje zasniva na realizaciji projekata.
Moduli i funkcionalnost
Moduli ovog specijalizovanog softvera grubo se mogu podeliti u tri osnovne kategorije: upravljanje ponudama i budžetom, upravljanje resursima i troškovima, i upravljanje finansijama i realizacijom. Svaki od nabrojanih modula mora da sadrži i odgovarajuće izveštaje.
Upravljanje ponudama podrazumeva mogućnost pripreme jedne ponude ili pak više njih za odgovarajući projekat, kao i čuvanje svih varijanti ponuda. Prilikom izrade ponude, softver bi trebalo da omogući uračunavanje svih planiranih troškova (ljudi, sredstva itd.), kao i unošenje procenta zarade ili planirane naplate. U ovome modulu je važna i mogućnost „pretvaranja“ prihvaćene ponude u projekat. Na osnovu prihvaćene ponude planira se budžet, koji ujedno predstavlja i finansijski plan realizacije projekta.
Planiranje resursa se svodi na procenu troškova angažovanja ljudi, sredstava, materijala i sl., i omogućava precizno izračunavanje ukupnih troškova projekta. Ovaj modul, u sprezi sa realizovanim troškovima, omogućuje neposredan uvid u valjanost plana projekta.
Upravljanje finansijama i realizacijom bi, osim unosa računa, troškova, bankarskih izvoda i ostalih računovodstvenih dokumenata koji se odnose na konkretan projekat, trebalo da omogući i upoređivanje planiranih i stvarnih troškova, kao i planirane i stvarne naplate. Ovo je ključni modul softvera za upravljanje projektima, jer pruža neposredan uvid u rezultate poslovanja firme.
Koliko neku firmu košta terenski komercijalista koji dnevno obiđe 25 maloprodajnih objekata, pređe 250 kilometara i dva sata razgovara telefonom? Koliko je košta organizovanje promotivnih aktivnosti? Može li softver pomoći u pronalaženju odgovora na ova i slična pitanja?
Tipovi softvera i tehnologija
Softver za upravljanje projektima može se podeliti na dva osnovna tipa. Prvi je klasičan Windows softver koji se instalira na jednom računaru ili na više računara, a drugi je na Webu zasnovana aplikacija koja se ne instalira već radi preko Interneta, pomoću čitača Weba. Najveća mana Windows softvera je što mu ne možete pristupiti kada se nalazite izvan lokalne računarske mreže, a njegova prednost je brzina rada. S druge strane, mana Web aplikacija je što one zavise od veze s Internetom. To znači da ako nema veze s Internetom, nema ni softvera. Pogodnost je što su Web aplikacije dostupne u svakom trenutku i svuda gde je omogućen pristup Internetu. Proizvođači zato teže integraciji ova dva rešenja, odnosno da lokalna i Web kopija podataka budu dostupne uvek i na svakome mestu.
Izveštavanje
Kvalitetni izveštaji su osnov za donošenje poslovnih odluka. Softver bi najpre trebalo da omogući osnovne izveštaje poput uporednih pregleda planiranih i realnih troškova, kao i očekivane i realne naplate po svakom projektu, a zatim i izveštaj zbirnog plana i realizacije na nivou firme. Ovi izveštaji su uobičajeno povezani s projektima, ali pored njih su neophodni i pregledi potraživanja, dugovanja, dospelih obaveza, angažovanja svakog resursa i sl.
Pored izrade izveštaja, bitna je i mogućnost njihovog izvoženja u najpopularnije poslovne aplikacije kao što je, primera radi, Microsoftov program za tabelarna izračunavanja Excel, u kome se oni mogu dodatno obrađivati ili grafički prikazivati.
Umesto zaključka
Kupovina namenskog softvera za upravljanje projektima je prirodan korak u razvoju jedne firme, tim pre što na tržištu danas postoji veliki broj komercijalnih i besplatnih programskih rešenja iz ove oblasti. Umesto zaključka, postavljamo pitanje: Da li vam je bitno da u svakome trenutku znate rezultate svog poslovanja?


(1 votes, average: 4,00 out of 5)
(2 votes, average: 4,50 out of 5)

