Visual Studio LightSwitch – jednim metkom tri zeca
Kolega Bahrudin Hrnjica donosi prvi pogled na Microsoft Visual Studio LightSwitch razvojni alat za "povremene programere"
Pisati o alatu koji je najmanje namijenjen profesionalno orijentiranim razvojnim inženjerima i nije neki hit, ali najava Visual Studio LightSwitch alata probudila je dosta pažnje, ponajviše kod programera.
Da stvari izvedemo na čistac, svaki dodatak Visual Studiu programeri 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 uz nezaobilaznu Windows Azure podršku. 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, neka 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 programerski alat biti onaj s kojim će razvijati aplikaciju i korisnik koji nije istovremeno profesionalni programer. Ovo pomicanje granice između programera 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, 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.
Ahirektura 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čiji,i to nećete direktno raditi, nego ćete raditi putem razvoja posebnih prilagođenih šablona.
Arhitektura aplikacija koje se razvijaju ovim alatom više nego dovoljno pokazuju njihovu robusnost, prilagođavanje 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 programera u tu sigurnost jer ne drži sve stvari pod kontrolom.

Troslojna arhitektura LightSwitch aplikacija
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 vrtjeti na klasičnom SQL Serveru, ili nekom drugom 3rd 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 mogućnošću prilagođavanja i višim stepenom sigurnosti. Ovo znači da se ekstremno smanjuje vrijeme razvoja aplikacija, što za sobom povlači i manje troškove. Održavanje aplikacije i edukacija vrši se bez dodatnog angažmana stručnjaka, što opet smanjuje troškove. 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.
Prilagođavanje 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 iz 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 scenarij u kojem se može primijeniti 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 uraditi za nas, primjenjujući standarde i norme normalizacije i modeliranja u onoj mjeri u kojoj su ga implementirali momci iz Redmonda, 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šat ć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 Studio alata. Lightswitch Beta 2 možete preuzeti ovdje, a nakon preuzimanja, proces instalacije je uobičajen sa klasičnim dodacima za Visual Studio i ne zahtjeva poseban tretman.
Kada se instalira Visual Studio LightSwitch, postaje sastavni dio Visual Studio paketa 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.

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.

Kada se odabere formiranje nove tabele baze podataka, dizajner nam nudi veoma dobro dizajniran interfejs za formiranje tabele, koji ničim ne liči na klasični SQL klijentski alat za manipulaciju sa tabelama. Ovaj interejs ide i do toga da se tipovi podataka ne dijele po klasičnom principu tipa SQL kolone, nego intuitivni tipovi podataka poput: telefonskog broja, e-mail adrese, poštanskog broja i sl. što Office power usere sa početka priče stavlja u prvi plan, a programera ili DB administratora, rekli bi, podcjenjuje.

Razlog ovakve podjele tipova podataka je zbog same validacije odnosno provjere podataka prilikom pohranjivanja u bazu, što će reći da npr. e-mail tip kolone se mogu unijeti slova i brojevi formatirani u obliku e-mail 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 Screen opcije imamo mogućnost izbora više načina prikaza i unosa podataka, što opet predstavlja automatizirani proces.

Pet 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, dobit ćemo slično sljedećoj slici.

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 neispravnom formatu, proces validacije podataka prije pohranjivanja nas obavještava o tome i upućuje na grešku. Ukoliko bi zaposleniku dodali polje E-mail adresu u njegove personalne podatke proces bi trajao vrlo kratko. U editoru tabele bi dodali novu kolonu sa tipom podataka E-mail, a onda u postojeće forme za prikaz dodali novo polje za E-mail.
Ukoliko bi sada registrirali novog zaposlenika te mu unijeli pogrešno formatiranu e-mail adresu aplikacija bi pokrenula validaciju podataka i upozorila nas na pogrešan unos.

LightSwitch aplikacije imaju vrlo sofisticiranu tehnologiju, gdje je moguće izmjenjivati korisnički interfejs u run time modulu. Zato nam služi link dugme smješteno u gornjem desnom uglu koji pri aktivaciji otvara poseban ekran sa mogućnostima izmjene aplikacije u toku rada.

Pored prezentiranih nekoliko opcija LightSwitch aplikacije imaju bezbroj mogućnosti prilagodbi, povezivanja sa Office aplikacijama i izvozom 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 zvaničnoj stranici te blogu Jason Zandera.
Zaključak
Koliko mogućnosti LightSwitch alat nudi zaista pobuđuje pažnju programera, jer nije samo posao programera rad na velikim i kompliciranim projektima. Ova činjenica je naročito važna za freelancere te programere 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 programerima. Ipak bez obzira na to, LightSwitch će naći svoje konzumente, od kojih će biti i profesionalnih programera, ali zasigurno i Office power usera pa do čistih egzibicionista u polju razvoja poslovnih aplikacija.
















Komentari (2)