Primeri postavljeni na GitHub

GitHubVećinu postova na blogu prati i izvorni kôd, do sada smo postavljali link na demo projekte kao arhive (zip fajl) na našem veb serveru. Ovo nije idealno rešenje iz više razloga, ne postoji mogućnost saradnje više programera, nema istorije izmena i sve ostalo što nam omogućavaju source control sistemi. Sistemi za verzionisanje (sors kontrole) su potrebni i korisni, čak i za ovakve primere kôda za koje nije planirano puno izmena, u pravim projektima su jednostavno neophodni. Poznavanje najmanje jednog sistema za verzionisanje kôda i osnovnih termina je neophodno, o tome ne bih da raspravljam, ima puno tutorijala na tu temu, evo jednog dopadljivog Intro to version control.

Ukoliko imate produkcioni kôd koji nije na sors kontroli, to je svakako veći prioritet od čitanja ovog posta, molim vas da pre sledećeg pasusa verzionišete taj kôd!
dalje…

Korisne JavaScript biblioteke za poslovni software u nas Srba

2378867408_4cc90791d6Prilikom razvoja softvera za poslovnu upotrebu posebna pažnja se obraća na validiranje podataka prilikom unosa. Kako je web sve prisutnija platforma za razvoj ovakvog tipa softvera jedan od načina za validaciju unosa je svakako javascript, odnosno client-side validacija. Ovakav vid validacije je brži i „jeftiniji“ obzirom da nema slanja suvišnih zahteva ka web serveru, no ne treba se u potpunosti osloniti na ovakav vid validacije i zapostaviti serversku stranu ali o tome možda neki drugi put.
dalje…

Sajt je trenutno nedostupan (app_offline.html)


under_maintenance
Kada postavljamo novu verziju našeg sajta / veb aplikacije, ili radimo veće izmene nad podacima, želimo da zaustavimo unos podataka u aplikaciju i obavestimo korisnike da je održavanje u toku. Dobra vest je da ASP.NET omogućava jednostavan način da ovo postignemo, bez korišćenja IIS Manager-a :)

Dovoljno je da u root folder naše veb aplikacije postavimo html fajl sa tačnim nazivom “app_offline.htm”, naravno bez navodnika. Automatski, svi pozivi ka aplikaciji se preusmeravaju na ovaj html fajl. Kada završimo izmene nad aplikacijom, dovoljno je da preimenujemo ili obrišemo fajl “app_offline.html” i veb aplikacija postaje ponovo dostupna.

Trik radi bilo da koristite Web Forms ili MVC.

dalje…

Asinhroni C# (async / await)

Multi-core processorRazvojni tim je dobio zahtev za doradu aplikacije koja automatizuje zaprimanje robe i štampu deklaracija u magacinu. Posle inicijalnih podešavanja, aplikacija dobija ulaz sa bar kod čitača, a kao izlaz, osim što u bazi označava da je artikal zaprimljen, šalje deklaraciju artikla na štampu. Ideja je da po jedan bar kod skener i štampač budu vezani na jedan računar. Inicijalno je projekat bio složeniji, ali je promenom poslovnih procesa, ostala potreba samo za ovim delom funkcionalnosti. Uzeli smo parče koda sa serverskog dela, c# .net web servisa, koji je komunicirao sa bazom i štampačima, dodali u klijentsku Winforms aplikaciju kao biblioteku i to je proradilo.

Dobili smo desktop aplikaciju koja je imala svu logiku na klijentu, instaliranje softvera smo sveli na copy/paste i instalaciju drajvera za štampače, sve je idealno. Postavili smo test verziju, i dobili odgovor od korisnika da aplikacija funkcioniše ali je spora i koči. Gde je greška? Pri migraciji koda za štampu sa servisa na lokalni računar pozivi ka štampaču su postali sinhroni, što znači da aplikacija nije prihvatala ulaz sa bar kod čitača sve dok traje štampa. U praksi, ako imate četiri artikla jedan ispod drugog i pročitate sva četiri bar koda u nekoliko sekundi štampač će za to vreme stići da izbaci jednu ili dve deklaracije i samo će ti artikli biti zaprimljeni. Pored samih asinhronih poziva potrebno je vratiti i prikazati rezultat na korisničkom interfejsu.
dalje…

Scrum & Jim

Red pill vs blue pullU organizaciji Scrum alliance i domaćeg Puzzle Software, Jim Coplien je održao dvodnevni Scrum Master trening u Beogradu 18. i 19. maja. Posle nekoliko godina rada u Scrum timu kao developer, a kasnije i kao Scrum master, koristim priliku da pored utisaka sa treninga zapišem i svoje viđenje metode i zajednice uopšte. Pre nego što položim test i zvanično postanem član Scrum alijanse :)

Znate da je Scrum agilna metoda za upravljanje (softverskim) projektima, koja je sve popularnija. Pri upoznavanju sa agilnim metodama i scrum-om primetio da ima puno različitih tumačenje samog scrum-a. Ove razlike su, delom, nastale i zbog toga jer je metoda sa razlogom zamišljena dovoljno opšte, više u smislu skupa preporuka i dobre prakse, nego kao metodologija koja bi davala gotove odgovore na postavljena pitanja.

dalje…