Skip to content


ASP.NET MVC and TDD: BleedingEdge presentation

PhotoShare BleedingEdge application
Uspešna konferenca BleedingEdge 2008 je za nami. Hvala organizatorjem! Meni se zdi, da se je vse skupaj odlično obneslo. Hvala poslušalcem predavanja — čeprav je bilo težko poslušati takoj po kosilu.

Obljubil sem prezentacijo in pa tudi celotno aplikacijo. Vse skupaj se nahaja v paketu na koncu. Na konferenci je bilo tudi precej vprasanj na temo TDD in ASP.NET, pa jih bom nekaj zapisal na tem mestu, hkrati z odgovori:

Vpr: Ali je ASP.NET MVC aplikacije nujno tudi testirati?
Odg: Ne. ASP.NET MVC aplikacije omogočajo dobro testiranje web aplikacij (kar ne drži pri WebForms aplikacijah), nujno jih pa ni testirati.

Vpr: Ali lahko v ASP.NET MVC aplikaciji uporabljam kontrolnike kot so GridView in podobni?
Odg: Lahko, vendar v večini primerov razen prvega pogleda ne bodo delovale, saj ne deluje “postback” mehanizem, ki je itak “evil”. Lahko pa uporabljate kontrolnike prilagojene za ASP.NET MVC (poglejte katere metode so na voljo na HtmlHelper objektu kot “extension” metode), lahko uporabljate posebne javascript knjižnice, menda pa cel set teh knjižnic pripravlja tudi Microsoft. Vsekakor pa si oglejte tudi projekt Dynamic Data, ki je namenjen “scaffoldingu” administracijskih vmesnikov, ki so namenjeni osnovnim CRUD operacijam. Predlagam, da si ogledate Davidov kratek screencast na to temo. Screencast je sicer že “star”, amapk boste po mojem dobili dober občutek. Na internetu se pojavlja vse več “client side” kontrolnikov in tudi distribucija jQuery javascript ogrodja hkrati z ASP.NET MVC nakazuje prihodnje trende, da se bo veliko stvari zgodilo na klientu samem. Že danes pa lahko uporabljate knjižnjice kot je YUI DataTable.

Vpr: Ali je ASP.NET MVC ogrodje primerno za velike web aplikacije?
Odg: Vsekakor. Največjo prednost dejansko pridobimo pri velikih aplikacij, vkolikor imamo funkcionalnosti aplikacije pokrite s testi. Tako lahko brez skrbi da bi pokvarili obstoječo funkcionalnost dodajamo nove funkcionalnosti v aplikacijo, hkrati pa preverjamo ali so vsi naši testi zeleni.

Vpr: Ali razvoj spletne aplikacije z ogrodjem ASP.NET MVC traja dalj časa?
Odg: Ne! Enako, ali celo manj časa, sama koda pa je bolj strukturirana in večkrat pouporabljena.

Take-away points

  • ASP.NET MVC je zgolj opcija. Alternativa obstoječim tehnologijam. Ne verjameš?
  • TDD je zgolj opcija. Če ne potrebujete testiranja (??) ali gre za “quick and dirty” job, je ravno tako OK
  • System.Web.Routing nam pomaga, da nimamo “zapečenih” URLjev v naših aplikacijah
  • Kadar je možno, uporabljamo “strong-typed” alternative za kreiranje URL naslovov (primer je Photo.master, vrstica 40)
  • Tehnologija se še blazno razvija, zato je vaš feedback dragocen.

Prezentacija je vključena v paketu, skupaj z aplikacijo. Za uspešen zagon potrebujete:

  • ASP.NET 3.5 (menim da MVC ni potrebno namestiti, saj so zbiri že vključeni v aplikaciji — če slučajno ni tako, dobite MVC Preview 5 na codeplexu.
  • SQL Server Express (baze se bodo “attachale”) same
  • v web.config datoteki morate nastaviti pod to “MediaRepository” direktorija (appSettings element)
  • če želite poganjati teste tudi na SQL strežniku (zadnji SqlPhotoShareRepositoryTest), morate v app.config datoteki v testnem projektu nastaviti pot do baze

Download!!

Dodatna vprašanja lahko zastavite kot komentarje tukaj, ali direkt preko e pošte (miha pika valencic afna gmail pika com).

Posted in general, software.

Tagged with .