RIA, bizz »

[8 tra 2010 | 0 Comments]

I konačno, prvi windaysi na kojima ći prisustvovati u cijelosti (ne ono: evo ti ulaznica na 2 sata, poslje mi vrati jer te zamjenjuje kolega), i to u velikome stilu; sa druge strane šanka! Odnosno speaker pulta ili kako se već to zove. Naime, pred par mjeseci sam prijavio nekoliko tema za prezentaciju, uglavnom vezanih za ASP.NET MVC i Silverlight, nakon čega je programski odbor konferencije slučajno izabrao jednu predloženu prezentaciju: Silverligh RIA Services!

Mali uvod u Silverlight RIA Services, počevši od uvoda u ADO.NET Astoriu, kasnije nazvanu ADO.NET Data Services, pa opet preimenovanu u WCF Data Services (marketing odjel si svašta dopušta izgleda). U osnovi, radi se o izlaganju REST sučelja, čime se omoguće pretraživanje podataka kreiranjem posebnog URLa, te operacija nad podacima upotrebom Http metoda Get, Post, Put i Delete.

Za razliku od "standardnog" web servis upita nad određenom metodom ili procedurom (RPC-nalik upiti), u RESTu nema izloženih metoda koje se mogu pozvati, nego se upiti provode nad (hijerarhiskim) modelom podataka. Kako to izgleda u praksi:

1. kreiramo bazu, postavimo relacije
2. mapiramo bazu na objekte pomoću nekog ORM alata (EF, nHibernate, ...)
3. REST frameworku (WCF data services / RIA Services) kažemo da želimo izložiti taj model podataka
4. Upitom "http://domena.com/wcfdataservis.svc/Categories/121/Products?filter=Price gt 100" dobijemo spisak proizvoda u kategoriji sa ID-om 121 koji imaju cijenu veću od 100. Svega nekoliko klikova i par linija koda konfiguracije izmjenjeno, vrlo jednostavno! Primjetite da URL sadrzi sam upit, odnosno “adresu” podataka koji zelimo, zajedno sa dodatnim filtrom. Više...

Trice i kučine »

[11 pro 2009 | 0 Comments]

Prije koji dan sam bio pozvan na ATD5 konferenciju da kažem nekoliko riječi o MVC v2. Prezentacija je trajala punih 25min, minus 5 minuta zbog tehničkih poteškoća spajanja sve te prezentacijske opreme, ali na kraju je 20 minuta bilo dovoljno da ispričam baš sve, od '79 do '09, od nastanka patterna do implementacije u naš dragi framework i sve to demonstriram kroz par demo aplikacija. Uz to, trebalo je i spomenuti novosti u verziji 2, kao da ljudi već aktivno rade i razvijaju u verziji 1! Ne moram niti napisati, ali na kraju su me svi gledali u čudu, i pitali se od kuda je ovaj došao i što to on priča uopće. Već sam bio pomislio da su mi sve lađe potonule, kad ono evo trojica sudionika konferencije sa pitanjima glede te čudne tehnologije! To mi je bilo dovoljno da ne počinim ritualni harakiri, i slobodno odputujem doma mirne savjesti da sam uspio (možda) spasiti barem jednu ili dvije izgubljene duše u moru proceduralnog špageti ala bolonjez ASP.NET koda. Što bi tek bilo da sam počeo pričati o Uncle Bobovim SOLID principima, proglasili bi me mesijom!? Malo si umišljam, oprostiti će te mi?
Pred kraj konferencije, dokle sam sjedio u foajeu hotela i pućkao lulu (ili da ne lažem: jeo pizza cut i pio colu, ipak sam ja white&nerdy:), prišao mi je Domagoj Pavlešić, tvorac Bugovog portala i Foruma (da, Bug odnosno Domagoj je sam isprogramirao svoj forum engine sa ASP.NET, to mi je baš kul), i zamolio me da održim punu prezentaciju MVC frameworka na novoj user grupi! Moja prezentacija je tu nebitna, puno važnija je vijest osnivanja nove microsoft user grupe koja će se baviti isključivo webom i razvojem web stranica i aplikacija. Izuzetno mi je drago što je Domagoj prepoznao potrebu okupljanja .NET web developera preuzeo inicijativu osnivanja grupe, svaka mu pohvala za to. Prvi sastanak je 15.12.2009, za daljnje aktivnosti su već najavljene na službenom webu.

Nedugo potom konferencije, dobio sam jedan email koji me jako obradovao. Ne samo zbog pošiljatelja koji ima MVP status (da, jedan MVP je MENE kontaktirao!), nego i zbog sadržaja maila, gdje me poziva na suradnju oko novog web portala za ASP.NET MVC zajednicu Hrvatske, Bosne, Srbije  i Slovenije! Ne samo da imamo MS Community grupu, nego smo dobili i web portal za MVC! Stoga, sljedeću godinu proglašavam godinu renesanse ASP.NETa; šire prihvačanje MVCa, osnivanje web user grupe i portala će svakako učiniti 2010 zanimljivom za ASP.NET developere. Dali bi tražio previše kada bi od Djeda Mraza/Božićnjaka/Svetog Nikole zaželio i da se malo više okreneo i Silverlightu? Neka, mora nešto ostati i za kasnije.
Sve koji žele sudjelovati u djelovanju portala i user grupe, pozivam da im se obrate jer iza stoje jako dobri ljudi i veliki stručnjaci:)

Web Dev »

[6 pro 2009 | 0 Comments]

Tuple je struktura podataka možda nepoznata dijelu .NET programerske publike, ali je svakako važan dio matematičke teorije i teorije struktura podataka. Pitajte Donalda Knutha ako mi ne vjerujete! Naime, radi se o nepromjenjivoj (immutable) listi elemenata enkapsuliranih u objekt. Tuple tip podataka je dosta korišten u Pythonu, dolazi sa .NET Frameworkom 4, ali u .NET 2/3.5 se moramo sami pobrinuti napraviti ga, što je vrlo jednostavan posao.

O čemu se tu radi uopće; sjetite se TryParse metode objekta Int32:

int value=0;
bool pretvorba = Int32.TryParse(“7”, out value);
// moglo bi se pisati i ovako:
// [bool] [int] = Int32.TryParse(“7”)

TryParse vraća dva podataka, bool vrijednost koja govori dali je string uspješno parsiran, i int vrijednost parsiranog stringa. Ovo je primjer gdje se može iskoristiti Tuple, pošto s njime možemo vratiti više enkapsuliranih objekata:

Tuple<bool,int> result = Int32.TryParse(“7”); 
Assert.AreEqual(true, result.Item1); 
Assert.AreEqual(7, result.Item2);

kao se može vidjeti iz primjera, kreirali smo Tuple koji sadrži bool i int objekte, i preko propertya Item1 i Item2 im pristupamo.  Ovakvih primjera vjerojatno ima još mnogo, a meni osobno se je prvo palo na pamet kao zamjena za mnoge DTO (data transfer objects) koje moram pisati za MVC aplikaciju kada šaljem podatke iz controllera u view. Ako sam do sada morao kreirati klasu koja enkapsulira List<Articles> i string Title, sada mogu preskočiti izradu klase i samo poslati Tuple<List<Article>,string).

Glavni nedostatak ovakvog pristupa upotrebe kao DTO objekta je što se apsolutno ne zna što taj Tuple sadrži, osim tipa podatka. Prije sam imenovao varijable u DTO klasi prema opisu njihove uloge u domeni, a sada samo znam da imam tri stringa, dva integera i slično, koje pozivam preko propertya Item1, Item2, itd. Čista programerska ljenost! Stoga koliko god njegova upotreba zvuči pimamljivo, i skrati par (desetaka) minuta posla, kod imalo većih projekata može zadati glavobolje i prouzrokovati brojne bugove. Upozoreni ste!
Slijedi jednostavna implementacija Tuplea za .NET Framework 2/3.5: Više...

Trice i kučine, quick thoughts, bizz »

[20 stu 2009 | 0 Comments]

Advanced technology day 5 logo

Svečano objavljujem, najavljujem i obavještavam svekolikom Microsoft tehnologiji naklonjenom pučanstvu (bogu mili, a niti vragu nisu mrski), da će se 1.12 u Zagrebu održati Advanced Technology Day konferencija na kojoj će biti prezentirane umotvorine gomile štrebera zatvorene u prostorije sa gomilom kompjutera. Da ne spominjem nemali iznosi tekućih racuna tih istih štrebera, koji su ne samo dobro plaćeni, nego im još i titraju na radnom mjestu sa bespatnim kavama, jeftinim jelika iz 57 svjetskih kuhinja, izvrsnim zdravstvenim, i još par sitnica. To je kao da plaćate crnogorca da spava (figurativno rečeno, bez nacinalnih konotacija molim!). Taj višegodišnji proces, ili eksperiment, je rezultirao sa nekoliko izvrsnih softwareskih alata i frameworka koji će biti prezentirani od strane stručnjaka iz Microsofta i par renomiranih domaćih tvrtki.
Izdvojio bi neke naslone redom:

  • ASP.NET 4: nakon godina zanovjetanja puritanaca konačno će stranice prolaziti W3C validaciju. To znači mogučnost potpunog isključivanja ViewState input taga, kontrole nad ID-evima serverskih kontrola. itd. Ali to je samo manji dio novosti!
  • Entity Framework 4- skok sa verzije 1 u .net 3.5 na verziju 4 u .net 4. Uvođenje POCO, Lazy loading i još mnogo toga. Dali će nHibernate konačno dobiti dostojnu konkurenciju?
  • Silverlight 3 – RIA platforma postala još bolja: 3D perspektiva, validacija podataka, nove mogučnosti streaminga,…
  • .NET 4 – dynamic objekti - statički c# dobiva dinamičke tipove, asinkrono izvršavanje, poboljšanje Garbage Collectora za višejezgrene sustave
  • MVC 2 – probajte pogoditi tko će prezentirati novu verziju MVC-a? Tako je, autor ovog bloga, glavom i brkovima! Od bitnih novosti u trenutnoj beta 2 verziji: Area, predlošci, klijent/server validacija podataka. Nešto su mi malo vremena dali, valjda ih nisam naljutio necim? Svejedno, nadam se da ću zaintrigirati barem nekolicinu koja nebude spavala, i spasiti pokoju dušu izgubljenu u WebForms moru isprepletene logike i nepreglednog code-behindea
  • Windows 7 – što donosi novoga za developere
  • Web platform installer – zgodni programčić za instalaciju drugih programa, od CMSova preko SDKova do IDEa
  • IE8 – razvoj pluginova, predpostavljam

Na službenim stranicama možete pronaći prijavu. Nadam se da se vidimo!

Web Dev, Tech »

[20 lis 2009 | 4 Comments]

ssh shell vps ubuntu

Svaki pravi web developer bi sigurno htio imati jedan web server! Cijeli server, sa pristupom cijelom operativnom sustavu, da si moze naštimavati sve opcije, optimizirati, podešavati i tjunirati svaki HTTP paket koji odlazi. Kod shared hosting paketa se dobije samo FTP pristup i osnovna funkcionalnost putem nekog Control Panela, ali dalje od tih opcija se ne može. Nista od štimanja ISAPI filtera, mapiranja ekstenzija, dodavanja neograničeno domena i slicnih stvarčica. Za takve stvari ipak treba imati telnet, ssh ili remote desktop pristup, i dozvole podešavanja. To imaju Dedicated i VPS server, od kojih je ovaj prvi pre skup (cca od 50$/mj) i odmah ću ga odbaciti, ali ovaj drugi, VPS server, se ipak može pronaći za skromnije novce. Cijena uglavnom ovisi o dostupnom RAMu i procesorskoj snazi.

Pošto se ovdje radi o pokretanju .NET web aplikacija, u obzir prirodno dolaze samo Windows serveri, ali zahvaljujući Novellu i Miguel de Icazi, aplilacije možemo pokretati i na Linuxu uz pomnoć Mono projekta.

Ako spojimo VPS Linux hosting i Mono framework, znači da već za 9,99$ mjesečno imamo svoj vlastiti server s kojim možemo raditi što god nas je volja! Već neko vrijeme planiram zakupiti jedan takav VPS server i poigrati se. Neki da sam konačno našao vremena, volje, i 10$ viška i zakupio mjesec dana VPSa na jednom od hosting providera. Kroz par postova ću probati opisati postupak konfiguriranja servera, u cilju pokretanja ASP.NET stranica, točnije ovog bloga, i za moje privatne (fuš) potrebe, N2CMSa. Još nisam siguran dali će N2CMS raditi, ali BlogEngine.NET provjereno radi na Mono frameworku.Više...