0 Comments

Par riječi o protekloj godini, da se podsjetimo što se sve desilo zanimljivog i novog. Bilo je tu dosta predavanja i konferencija - Windaysi u Umagu (želim natrag u Rovinj buhuhu), ATD, odlični Kulendaysi kao spoj kvalitetnih predavanja, posebno mi se svidio koncept chalk&talk, i team buildinga, gdje sam upoznao puno zanimljivih ljudi. Prezentirao sam i svoj mali projekt seocrawler.co na WebCampZagreb, konferenciji o raznim web tehnologijana, koja je posebno zanimljiva jer nema standardnih "prodajnih" predavanja o mogučnostima alata i frameworka, nego su predavanja uglavnom o iskustvima iz programerskih rovova, sa prve linije produkcijske bojišnice. Naravno, čim uzmognem probati ću napisati koji blog post o detaljima unutar seocrawler.co crawlera, jer će siguran sam biti zanimljivo bilo kojem .NET programeru (message queueing sa RabbitMq, upotreba Azure cloud servisa, itd)

Krajem drugog mjesca sam i prvi put posjetio Ameriku, točnije MVP Summit, vidio široke američke autoceste, prepune i prejeftine šoping centre (otišao sa jednom torbom, vratio se sa dvije i povećim dugom na kreditnoj), indijanske rezervate (šoping centri su unutar rezervata, radi poreza naravno), švrljao po Seattleu, vozio se monorailom, izgubio se negdje usput, ali srećom jedan djedica mi je odmah pomogao kada je vidim kako blesavo zurim u kartu. Ameri su ful ljubazni, ali ono, plaše me koliko su srdačni i komunikativni! Naše ugostiteljstvi bi svašta mogli naučiti od njih :/ Najviše vremena sam se zadržao u science&sci fi muzeju (http://www.empmuseum.org/), a žao mi je što nisam imao više vremena obići ulice Seattlea i doživjeti grad malo bolje. Na samom MVP summitu vidio i upoznao razne njuške iz Microsofta, odnosno ASP.NET odjela (Scott Hansleman, Glenn Block, Mads Kirstensens, Damien Edwards, David Fawler, ...), to je bilo baš fora.

Čak i za nekoga tko aktivno prati zbivanja u microsoftovom razvojnom web ekosistemu, brzinom kojoj se izdaju nove stvari, poput WebAPI, OWIN komponenti, toolinga u novom VS2013, često je teško pratiti sve to, pogotovo isprobati i uči dublje u svaki od tih frameworka i biblioteka. Ali rekao bi da smo trenutno na većoj prekretnici, "resetiranju" razvojog sustava, jer od 2001 kada je izašao ASP.NET, framework u podlozi se nije posebno mjenjao. OWIN middleware bi mogao donesti novi i svježi ASP.NET, a nadam se da će zajednica prihvatiti to, i na tim temeljima razvijati nove zanimljive (open source) komponente.

Moram spomenuti i SPA koncept, gdje je, zanimljivo, sam ASP.NET razvojni tim rekao nešto poput: "uzmite JS framework koji želite, i mi ćemo vam dati framework za REST servise. Ili uzmite svoj REST framework, ionako je sve to .NET". Meni je drago što ne forsiraju određeni framework, iako se Knockout nuget paket nalazi unutar projekt predloška, ali pričajući sa drugim programerima, mnogi očekuju da im MS kaže "koristite točno ovaj framework koji smo mi napravili", jer kao time se dobije kvaliteta i sigurnost. Apsolutno razumijem i takav stav, ali nadam se da će knockout i Angular dokazati da ne treba Microsoft baš sve razviti sam, da možeo uzet i jedan open source projekt i koristiti ga u svakodnevnom korporativnom .net okruženju. Ja znam samo da se bacam na savladavanje Angulara, kako ne bi nepripremljen zatekao zahtejve budućeg projekta! Preporučujem Pluralsight tutoriale za brzo i efikasno proširiti postojeća znanja.

0 Comments

Nekidan na Twitter feedu vidio cvrkut da je Infinium napravio Ruby utility za prikaz upozorenja o korištenju cookia na webu. I pomislih, srijeda je ionako najdepresivniji dan u tjednu, ajmo se zabavit i napraviti .NET port tog utilitya! Dva sata kasnije, source je bio na Gitubu, a nedugo zatim objavljen je i PHP port!

Prema europskom zakonu web site mora prikazati obavijest da se cookiji koriste za praćenje korisnika, što je lijepo objašnjeno na Infinium blogu.

Poanta ovog utilitya (class library dll) je omogućiti dodavanje obavijesti jednostavnim umetanjem jedne linije u vaš HTML kod ASP.NET MVC aplikacije (Razor sintaksa):

@Html.Raw(Consent.Instance.Install())

ili dodavanjem opcionalnih parametara:

@Html.Raw(Consent.Instance.Install(linkUrl:"/kolaciciinfo.html"
    messageText:"ovaj web site koristi kolačiće",
    okkText:"okej",
    learnMoreText:"želim znati više!"))

za prikaz se koristi jQuery  i jQuery cookies plugin. Instalacija je putem Nuget-a. Unutar biblioteke se nalaze lokalizacije za engleski i hrvatski jezik, iako je u source dodan i klingonski, ali kod kompajliranja potrebni resource dll-ovi se ne kopiraju u Bin/Release i Debug direktorije, pa se klingonska lokalizacija nažalost ne nalazi u Nuget paketu Tužni smiješak Ako netko zna zašto .NET ne kompajlira tlh-KX kulturu, bio bih jako zahvalan na toj informaciji!
Source sadrži i potrebne unit testove, a da bi mockali (podvalili lažni) HttpContext koji nije dostupan u unit test projektu, Consent klasa prima ICookieService interface preko kojega čita i piše kolačiće. Dependency injection za sirotinju, dakle.

Par savjeta oko izrade biblioteke i distribucije putem Nugeta:
-  ako dodajete neke txt, html, … datoteke u vaš class library, označite ih kao “Embedded Resource”. Primjer čitanja takvih datoteka možete pronaći u sourceu
- ako niste vični radu u komandnoj liniji i Gitu, možete koristiti GUI alate Github Windows i Sourcetree (ja koristim Sourcetree)
- ne šaljite DLL-ove u source kontrolu! Koristite Nuget package restore funkcionalnost, i dodajte Bin/ i Debug/ foldere u .gitignore listu. Isto vrijedi za sve ostale source kontrole.
- dodajte readme.md i opišite vašu biblioteku. Github koristi markdown sintaksu pisanja
- Nuspec datoteka je XML opis vašeg paketa kojega želite objaviti na Nugetu. Za kreiranje i objavu se može koristiti Nuget Package Explorer. Nuspec također držite u Githubu.
- izrada open source softwarea je najbolji način dobivanja (novog) posla i zapošljavanja: na interview-u ili na natječaj samo pošaljite vašu Github/bibucket stranicu uz standardni CV/Linkedin profil, i dobroj firmi odnosno poslodavcu to govori jako puno o vama kao programeru!

https://github.com/hudo/EUCookiesNET