[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...

quick thoughts, bizz »

[31 kol 2009 | 1 Comments]

NDC 2009 videos

Norwegian Developers Conference je uz Mix i PDC vjerojatno najjača developerska konferencija za .NET zajednicu. Bitna razlika, što po meni gura ovu konferenciju ispred drugih, su projektno/inženjerska predavanja o arhitekturi i dobrim praksama razvoja, uz naglasak na agilne tehnike (ALT.NET). I ove godine su predavači bili redom poznata imena, što iz Microsoft tabora (Scott Hanselman, Phil Haack, Glenn Block), što razni poznati konzultanti i razvijatelji Open Source .NET rješenja (Ayende Rahien, Robert C. Martin,  Jeremy D. Miller, Scott Bellware, Rockford Lhotka, Jimmy Nilsson).

Sve video prezentacije možete skinuti u jednom paketu preko ovog torrent linka.