Članak objavljen u www.itpro.ba
Nova priča u svijetu Visual Studia
Pisati o alatu koji je najmanje namijenjen profesionalno orijentiranim razvojnim inženjerima odnosno developerima i nije neki hit, ali najava Visual Studio LightSwitch alata probudila je dosta pažnje, a ponajviše kod developera. Da stvari izvedemo na čistac, svaki dodatak Visual Studiu developeri smatraju svojim alatom, pa tako i LightSwitch, za što se baš i ne bi reklo. Šta je LightSwitch, ko ga treba koristiti, na čemu je zasnovan i šta je najbolje s njim razvijati još uvijek se u detalje ne zna, ali po onom što je otkriveno u beta verziji, biće tu svašta i za svakoga. U ovom članku pisat ćemo o dobrim i lošim osobinama ovog nadolazećeg alata za istovremeni razvoj Desktop, Web i Cloud aplikacija. Izraz „istovremeni“ koji je spomenut ovdje, upravo označava kamen spoticanja svih kritika i pohvala. Vjerovatno će u budućim verzijama biti pridodat i „četvrti zec“, ali za sada je o tome prerano govoriti. Ideja za LightSwitch nije loša, a mogla bi se ovako opisati: Želim napraviti poslovnu aplikaciju u kojoj ću u jednoj implementaciji imati podršku za tri platforme, i pri tome koristiti vizualno programiranje, a samo u vrlo rijetkim situacijama otvoriti code editor. Da budem jasniji,nešto slično kako se to radi u Accessu, sa još rjeđim otvaranjem code editora i da mi programski jezik bude C#, hajde, nek bude i VB.NET, a ne VBA od kojeg me glava zaboli. Zvuči nevjerovatno i lagano za rad. Doista, tako i izgleda, jer iz mogućnosti koje nudi Visual Studio LightSwitch jasno se vidi da ga mogu koristiti power useri office alata. S druge strane, odavno postoji proročanstvo da će najsavršeniji developerski alat biti onaj s kojim će razvijati aplikaciju i korisnik koji nije istovremeno profesionalni developer. Ovo pomicanje granice između developera i power usera neki smatraju povećanjem nelojalne konkurencije. Što su jednim dijelom u pravu, posebno na turbulentnim tržištima poput našeg i tržišta u regionu.
U trenutku kada se ovaj članak piše (septembar 2010), dostupna je samo prerelease dokumentacija i beta verzija alata, pa je za očekivati, kada se finalna verzija objavi, određene nedosljednosti sa ovim člankom.
Arhitektura LightSwitch baziranih aplikacija
Za razliku od poslovnih aplikacija koje će biti vrlo brzo i relativno jednostavno razvijati sa ovim alatom, tehnologija koja se koristi u LightSwitchu vrlo je kompleksna i zasnovana je na Silverlight 4 platformi. Već znamo da Silverlight 4 ima Out-of browser i In-browser mogućnosti, te podrškom za RIA (Rich Internet Application) servise, aplikaciji se omogućuje komunikacija koja je dio robusne komunikacijske tehnologije .NET 4.0 odnosno Windows Comunication Foundation. Ovim proširenjima koje je Silverlight doživio u trećoj i četvrtoj verziji, daje puni vjetar u leđa razvoju poslovnih aplikacija na ovoj platformi, što već sad dolazimo do naše centralne teme ovdje. Sve ove mogućnosti Silverlight 4 koje su implementirane pod haubom LightSwitcha, zaista su zahvalne pa čak i za profi programere. Jedna od najznačajnijih osobina je i ta da se u LightSwitch okruženju ne vidi XAML alat za razvoj korisničkih iskustava, nego se cijeli proces dizajniranja svodi na izbor XAML –standardiziranih šablona. Ukoliko ipak želite da vaš dizajn forme bude drugačij,i to nećete direktno raditi, nego ćete raditi putem razvoja posebnih kastomiziranih šablona. Arhitektura aplikacija koje se razvijaju ovim alatom više nego dovoljno pokazuju njihovu robusnost, kastomizaciju i sigurnost. Cijeli proces implementacije sigurnosti, korisničkog iskustva, RIA servisa, modela baze podataka skriven je i implementiran od strane alata, što u jednu ruku smanjuje sigurnosne propuste koji se mogu napraviti tokom razvoja aplikacije, a s druge strane sumnjičavost developera u tu sigurnost jer ne drži sve stvari pod kontrolom.
Slika 1. Troslojna arhitektura LightSwitch aplikacija[i]
Na osnovu toga LightSwitch alat razvija aplikacije koje se baziraju na troslojnoj (3-tier), odnosno dvoslojnoj (2-tier) arhitekturi, direktno izgrađene na .NET proširenjima koja se implementiraju automatski, te uz mogućnosti korištenja novih C#, VB.NET proširenja poput LINQ i slično.
Klijentski sloj LightSwitch aplikacije, i kako je već rečeno, baziran je na Silverlight 4 platformi, uz podršku RIA servisa, sa Out-of- browser i In-browser stanjima aplikacije.
Srednji sloj i web sloj implementiran je na ASP.NET i IIS 6.0/7.0 tehnologiji omogućavajući korištenje zadnjih microsoftovih tehnologija poput ASP.NET 4.0 i IIS 7, da LightSwitch aplikacije budu dostupne preko web-a. Ovaj sloj u 2-tier aplikacijskim arhitekturama je izostavljen.
Backend baza podataka kao zadnji sloj može se vrtiti na klasičnom SQL Serveru, ili nekom drugom 3rth party serveru baze podataka, SharePointu odnosno u oblacima.
Zašto razvijati aplikacije sa LightSwitchom
Rapidni razvoj aplikacija koje obezbjeđuje LightSwitch može se usporediti sa dosadašnjim razvojem aplikacija pod Microsoft Accessom, ali sada na drugoj platformi, sa više fleksibilnosti, većom kastomizacijom i višim stepenom sigurnosti. Ovo znači da se ekstremno smanjuje vrijeme razvoja aplikacija, što za sobom povlači i manje troškove. Poslovne aplikacije mogu razvijati power useri office alata, što opet smanjuje troškove u kompaniji. Održavanje aplikacije i edukacija vrši se bez dodatnog angažmana stručnjaka, što opet smanjuje troškove. I tako redom možemo nabrajati dobre osobine ovog alata. Način na koji se implementiraju osobine u aplikaciji mogu se svesti na sljedeći primjer. LightSwitch automatski prepoznaje i implementira relacije među entitetima u bazi podataka, te kao takve zahtijeva minimalnu i gotovo nikakvu izmjenu koda. Ukoliko je potrebno dodati još jedno polje na formi ekrana klijenta, cijeli proces povezivanja polja sa pozadinskom bazom podataka radi se u jednom kliku.
Kastomizacija klijentskog sloja je jedini sloj koji je u priči sa LightSwitchom važan, jer druga dva sloja mogu se implementirati bez znanja prvog. Ovo znači da ukoliko imamo bazu podataka postavljenu na bilo kojem od navedenih servera, razvoj poslovnih aplikacija sa LightSwitchom ogleda se samo u izboru i načinu prikaza podataka u obliku izvještaja, formi za unos, obezbjeđivanje izvoza podataka za daljnju analizu i ispis. Ovo zvuči jako interesantno, jer LightSwitch automatski formira logiku aplikacije baziranu na vašim željama u smislu kako da mi izgleda izvještaj koji treba da pogleda neko od managmenta kompanije. Razvijati poslovnu aplikaciju u LightSwitchu znači usmjeriti se na poslovnu stranu u aplikaciji, odnosno na podatke i informacije koje treba prikazati, odnosno obezbijediti da se podaci mogu kvalitetno dalje obrađivati te stvarati dobre osnove za kvalitetnije donošenje poslovnih odluka.
Drugi scenario u kojem se može primjeniti LightSwitch je da uopće nemamo backend bazu podataka, već da je iz temelja novu formiramo. U toj situaciji LightSwitch alat će cjelokupno proces modeliranja odratiti za nas, primjenjujući standarde i norme normalizacije i modeliranja u onoj mjeri u kojoj su ga implementirali momci iz Remonda, a vi ćete isto kao i u prvom slučaju dizajnirati izvještaje i forme koje trebaju da prikažu suštinu i samo ono što je potrebno da jedna takva poslovna aplikacija prikaže.
Demo primjer LightSwitch aplikacije
Zadnjim dijelom ovog članka pokušaćemo na živom primjeru vidjeti neke od osobina LightSwitch alata. Interesantno je reći da se alat u beta verzijama može skinuti besplatno, dok će po svemu sudeći finalna verzija biti komercijalna i prodavati se i u verzijama mimo Visual Studia. Link sa kojeg se LightSwitch može skinuti dat je ovdje. Kada se preuzme sa interneta, proces instalacije je uobičajen sa klasičnim dodacima Visual Studia i ne treba poseban tretman.
Kada se instalira Visual Studio LightSwitch, postaje sastavni dio Visual Studia te na standardan način započinjemo proces razvoja aplikacija, a to znači da iz menija File odaberemo opciju New Project. Prikaz svih instaliranih šablona za formiranje novih projekata u VS2010 prikazan je na sljedećoj slici, gdje je u posebnoj kategoriji instaliran LightSwitch alat.
Slika 2.
Kako je to već postala tradicija Microsofta, LightSwitch aplikacije možemo razvijati kako u C# tako i u VB.NET programskim jezicima. Nakon odabira šablona naš početni projekat se formira, i postaje spreman da primi prve modifikacije i implementaciju. Početni ekran koji se dobije nudi nam dvije opcije koje su prethodno objašnjenje, a tiču se formiranja nove baze podataka ili izbora postojeće. Za demonstraciju ovog demoa odabrat ćemo ovu prvu opciju i formirati novu tabelu podataka.
Slika 3.
Kada se odabere formiranje nove tabele baze podataka, dizajner nam nudi user-frendly interface za formiranje tabele, koji ničim ne liči na klasični SQL klijentski alat za manipulaciju sa tabelama. Ovaj interface ide i do toga da se tipovi podataka ne dijele po klasičnom principu tipa SQL kolone, nego intuitivni tipovi podataka poput: telefonskog broja, email adrese, poštanskog broja i sl. što Office power usera sa početka priče stavlja u prvi plan, a developera ili db administratora rekao bih potcjenjuje.
Slika 4.
Razlog ovakve podjele tipova podataka je zbog same validacije odnosno provjere podataka prilikom pohranjivanja u bazu, što će reći da npr. email tip kolone se mogu unijeti slova i brojevi formatirani u obliku email adrese, te će se svaki drugi format i pogrešno unesen podataka provjeriti i vratiti poruka korisnika da je popravi. Isto pravilo vrijedi za ostale tipove podataka.
Nakon formiranja tabele baze podataka, sada je potrebno implementirati na koji način će podaci biti prikazani. U gornjem dijelu prethodne slike nalazi se traka sa opcijama preko koje formiramo forme za prikaz podataka. Odabirom Screenopcije imamo mogućnost izbora više načina prikaza i editovanja podataka, što opet predstavlja automatizirani proces.
Slika 5
5 različitih formi prikaza podataka dovoljni su da izgradimo vrlo kvalitetnu i svrsishodnu poslovnu aplikaciju, sa kvalitetnim osobinama filtriranja, pretraživanja, grupiranja i sl. Opcija pretraživanja je implementirana na način da je obezbjeđeno automatsko pretraživanje po svakoj koloni istovremeno. Ako izaberemo prvi, a poslije toga drugi tip prikaza podataka, dobili smo mogućnosti pregleda zaposlenika i registraciju novog zaposlenika u bazu podataka.
Ukoliko u ovoj fazi pokrenemo aplikaciju, dobićemo slično sljedećoj slici.
Slika 6
Predefinisano korisničko iskustvo predstavlja upotrebu ribbon kontrole, i navigacijske kontrole sa popisom zadataka koji se mogu aktivirati u aplikaciji.
Ukoliko bi željeli registrovati novog zaposlenika, potrebno je odabrati stavku NoviZaposlenik s lijeve strane. Popunjavanjem forme te aktivacijom novi zaposlenik se registruje u bazu. Ako smo kojim slučajem broj telefona novog zaposlenika unijeli u neispravom formatu, proces validacije podataka prije pohranjivanja nas obavještava o tome i upućuje na grešku.
Ukoliko bi zaposleniku dodali polje EMail adresu u njegove personalne podatke proces bi trajao vrlo kratko. U editoru tabele bi dodali novu kolonu sa tipom podataka Email. A onda u postojeće forme za prikaz dodali novo polje za Email.
Slika 7
Ukoliko bi sada reistrovali novog zaposlenika te mu unijeli pogrešno formatiranu email adresu aplikacija bi pokrenula validaciju podataka i upozorila nas na pogrešan unos.
Slika 8
LightSwitch aplikacije imaju vrlo sofisticiranu tehnologiju, gdje je moguće izmjenjivati korisnički interface u run time modulu. Zato nam služi link dugme smješteno u gornjem desnom uglu koji pri aktivaciji otvara kastomizacijski mod i mogućnost izmjene aplikacije u toku rada.
Slika 9
Pored prezentiranih nekoliko opcija LightSwitch aplikacije imaju bezbroj mogućnosti kastomizacija, povezivanja sa office aplikacijama i eksportiranja podataka. Ukoliko odaberemo Properties opciju LightSwitch projekta, dobijamo opcije preko kojih definišemo na koji način će se aplikacija izvršavati, koju arhitekturu će koristiti (dvoslojnu ili troslojnu), kontrolu pristupa aplikaciji i razne mogućnosti. Demo primjer za ovaj članak može se preuzeti sa ovog linka.
Više informacija o razvoju LightSwitch aplikacija možete pronaći na oficijelnoj stranici te blogu Jason Zandera.
Zaključak
Koliko mogućnosti LightSwitch alat nudi zaista pobuđuje pažnju developera, jer nije samo posao developera rad na velikim i kompliciranim projektima. Ova činjenica je naročito važna za freelance developere, i developere koji rade samostalno ili u malim timovima razvijajući srednje i male aplikacije. Neke od tih aplikacija moći će se razvijati i ovim alatom. LightSwitch pored toga pruža i manje orijentiranim korisnicima da se iskušaju na ovom alatu. Vjerovatno će neki od njih pomisliti da su dobri programeri, jer rade čuda sa LightSwitchom, u samo jednom kliku naprave troslojnu aplikaciju koja se vrti kako na webu tako i na desktopu. Zaista, tu priču će moći prodati laicima ali ne i developerima. Ipak bez obzira, LightSwitch će naći svoje konzumente, od kojih će biti i profesionalnih developera, ali zasigurno i office power usera pa do čistih egzibicionista u polju razvoja poslovnih aplikacija.
[i] Slika preuzeta sa http://www.infoworld.com/d/developer-world/infoworld-preview-visual-studio-lightswitch-beta-casts-shadow-doubt-907
Calling all cars, calling all cars, we’re ready to make a deal.