I nisu bas neke novosti za major verziju. Ima jos nekih featura koje si zaboravio nabrojat ali svakako su ovo premali skokovi za v.3.
Koliko vas uopce radi sa MVC-om? Ja se ne mogu skroz "presaltat" sa Formsa na MVC. Negdje mi MVC olaksa zivot, a negdi mi jednostavno stvari puno brze idu sa formsima.
I nisu bas neke novosti za major verziju. Ima jos nekih featura koje si zaboravio nabrojat ali svakako su ovo premali skokovi za v.3.
Koliko vas uopce radi sa MVC-om? Ja se ne mogu skroz "presaltat" sa Formsa na MVC. Negdje mi MVC olaksa zivot, a negdi mi jednostavno stvari puno brze idu sa formsima.
Mislim da je Razor najveća novost, ali naravno da stiže i hrpa drugih poboljšanja. Mislim da su skokovi OK, jer imaj na umu da se radi o nepunih godinu dana nakon druge verzije. - Ja ga koristim na novim projektima (baš s v3 krećem ovih dana), a u v2 imam već nekoliko projekata iza sebe. Osobno - nikad više na Forms, jer mi je MVC puno bliži po načinu razmišljanja i smatram ga fleksibilnijim i ugodnijim za korištenje. S Formsima sam se živcirao nekoliko godina i nikad nisam sjeo na zelenu granu s nekim glupostima koje "pruža".
Definitivno se slažem, web forme su jednostavno u samom startu krivo dizajnirane, nemožeš ti web prilagoditi windows programerima, to jednostavno nema smisla.
Za večinu stari koje meni trebaju Forms su OK, al sad radim na jednom projektu koji radi na forms način, al u kombinaciji s json, jQuerijem i ajaksom uopće nema ni jednu ASP.NET kontrolu. Ne koristi ni jedan standardan feature od formsa. I sad mi je žao zašto baš taj projekt nismo započeli prije 6 mjeseci s MVC-om.
Mene kod formsa nervira prljav output (html) kod. Inace sam picajzla sta se toga tice.
Bit će da sam ja malo tupav al fakat ne kužim opčinjenost tim raznolikim view engineima..
Kaj sam uštedio na ovdje danom primjeru? <% %> - ne moram napisati ova dva znaka?
Dobro kužim da je ekipa koja je stigla iz nekih drugih okruženja tamo navikla na neke template sisteme pa im
je jednostavnije korisitit nešto s čim su već radili - i to mi je jedino razumno objašnjenje za to.
Nego kad će napraviti da im preview radi dobro pa da vidim bar poprilici u Visual studiju kako to izgleda?
Ovako kada imaš parcijalne elemente možeš se s time pozdraviti. I neka ojačana desing time logika mogla bi malo pomoć oko toga da
štancanje pod MVCom postane ozbiljnije.
Nije kod WebFormsa toliko problem generirani HTML kod, jerbo se moze dobiti cisti i uredan HTML i CSS (osim valjda Forms taga, sve ostalo se moze izbjec), nego vise model evenata koji je preuzet iz windows (statefull) programiranja. Tesko je odvojiti prezentacijski i BLL kod, GET i POST su u potpunosti apstrahirani, i treba biti dosta iskusan i znat sta i kako "ispraviti" (MVP pattern npr.)
Mislim da dvije-tri godine nisam napravio WinForms aplikaciju (izuzev sto se do sada koristio WinForms view engine u MVCu, uz nVelocity, Spark i sl), na MVCu sam od prije MS-ovog izdanja, i to na MonoRail i Promesh frameworcima.
Osim Razora, intellisensa za njega, "nenametljujuceg" javascripta, poboljsane validacije, parcijalnog cachiranja, mozda meni najbitnija novost je uvođenje IoC/DI, iako to nisam probao koristiti. Daljnji razvoj ce vise biti u smjeru raznih validacija, ajaxa, intergracije sa ORM i EF, view helpera i scaffoldinga, posto sam MVC je vise-manje bio solidno izveden i u v1.
MS ima poseban nacin programiranja svojih frameworka gdje koriste mnoga nasljeđivanja i interne sealed klase, pa je i asp.net mvc izveden tako, ali to se mislim nece u skorije vrijeme mijenjati, ako ikad. To se nekima ne sviđa, nego vise preferiraju kompoziciju i otvorenost, pa je ekipa napravila FubuMVC i OpenRasta (nije bas pravi MVC, al ajde).
Bit će da sam ja malo tupav al fakat ne kužim opčinjenost tim raznolikim view engineima..
Kaj sam uštedio na ovdje danom primjeru? <% %> - ne moram napisati ova dva znaka?
Nego kad će napraviti da im preview radi dobro pa da vidim bar poprilici u Visual studiju kako to izgleda?
Ovako kada imaš parcijalne elemente možeš se s time pozdraviti. I neka ojačana desing time logika mogla bi malo pomoć oko toga da
štancanje pod MVCom postane ozbiljnije.
Probaj sloziti kompleksniji view sa ViewForms-om pa ce ti sve biti jasno. Spark npr daje puno cisci kod koji je lakse za odrzavati, sto je najbitnija stvar.
Preview malo slozenijih webova vjerojatno nikada nece niti raditi, ali to ionako nitko ne koristi - svi "profesionalci" pisu rucno html i razor/webforms kod, i onda u browseru gledaju kako to izgleda. Iako je preview od vs2010 uz sam bok Dreamweaveru IMHO.
Istina, al kod biranja prljavog HTML outputa i masovnog mješanja koda i HTML-a u jednoj datoteci. (još se dobro sječam kako je izgledao ASP kod) . Biraš ono što ti više paše.
A uostalom tko te tjera da gledaš HTML output, nije valjda da gledaš i mašinski output compilera
.
Pa naravno da zelim sto cisci kod, u skladu sa standardima?
E sad bi ti
, pokušaj koristiti control adaptere od ScottGu-a ili napravi svoje. A ima tu i još nekoliko trikova da stari budu po standardima. Pričam o WebFormama.
Webforms mi je nezamjenjiv u nekakvim poslovnim web aplikacijama, a tu me zapravo nije ni briga kakav je kod u pozadini posto su te aplikacije najcesce na nekakvom intranetu ili slicno. Medjutim, kada su u pitanju webovi/public aplikacije koje su dostupne siroj publici onda mi smeta i viewstate, i prefiksi na imenima objekata i slicno...
Prvi problem WebFormsa je model izvršavanja stupnjeva aplikacije i način na koji sve to funkcionira. WF su wrapper oko weba, što je jednostavno neprirodno i postane pravi pakao za održavanje. U srži jednostavne stvari, poput gridova i dijaloga, neke firme su pretvorile u pravi mali biznis, prodajući "kontrole". Ako u WebFormskima želiš bilo što nepredviđeno u samoj kontroli, prelaziš u poseban sektor za luđake i provodiš desetke sati na implementaciji vlastite kontrole ili hakiranju postojeće.
WebForms je super za prezentacijske aplikacije i ako želiš točno ono što ti je dozvoljeno (kao i sve Microsoftove turbo-cool alatke, npr. Lightswitch). Web je previše fleksibilan i previše otvoren za ograničenja koja nude WF.
Ja jos nisam nasao nesto sto nisam uspio zaobici kod formsa. Istina, to se zaobilazilo svakako, modificiranjem kontrola etc etc ali sam na kraju sve uspio rijesiti.
Bit će da sam ja malo tupav al fakat ne kužim opčinjenost tim raznolikim view engineima..
Kaj sam uštedio na ovdje danom primjeru? <% %> - ne moram napisati ova dva znaka?
Nego kad će napraviti da im preview radi dobro pa da vidim bar poprilici u Visual studiju kako to izgleda?
Ovako kada imaš parcijalne elemente možeš se s time pozdraviti. I neka ojačana desing time logika mogla bi malo pomoć oko toga da
štancanje pod MVCom postane ozbiljnije.
Probaj sloziti kompleksniji view sa ViewForms-om pa ce ti sve biti jasno. Spark npr daje puno cisci kod koji je lakse za odrzavati, sto je najbitnija stvar.
Preview malo slozenijih webova vjerojatno nikada nece niti raditi, ali to ionako nitko ne koristi - svi "profesionalci" pisu rucno html i razor/webforms kod, i onda u browseru gledaju kako to izgleda. Iako je preview od vs2010 uz sam bok Dreamweaveru IMHO.
A gle moraš malo paziti i kako dijeliš stvari po viewovima i partial viewovima plus da uvijek uredno pišeš ,al osobno stvarno ne volim neke specijalizirane engine koji imaju svoja pravila i sintaksu i onda jednog dana zamru i ostane ti kod u nečem arhaičnom i zaboravljenom.
Ja jos nisam nasao nesto sto nisam uspio zaobici kod formsa. Istina, to se zaobilazilo svakako, modificiranjem kontrola etc etc ali sam na kraju sve uspio rijesiti.
Tu leži problem :-). Ključ održivog softvera je u urednom projektu (kodu). Sve ostalo trune.
Neznam dali je pitanje na mjestu, zanima me koncept razvoja sučelja kod desktop aplikacija u .NET frameworku.Vidim da ima znači winforms koji renderira sučelje kroz winAPI, i u biti sve te kontrole imaju eventhandlere koji čekaju neki događaj i tek se onda kod počinje izvršavati.I onda ima WPF gdje je prezentacijski dio odvojen od programskog i pisan u XAML-u.
A gle moraš malo paziti i kako dijeliš stvari po viewovima i partial viewovima plus da uvijek uredno pišeš ,al osobno stvarno ne volim neke specijalizirane engine koji imaju svoja pravila i sintaksu i onda jednog dana zamru i ostane ti kod u nečem arhaičnom i zaboravljenom.
Ne ovisi o tome koliko ti pazis, jer je WebForms uvjek "nakrcan" sa tonu svojih znakova:
webforms:
<% if (DateTime.Now.Hour > 20 || DateTime.Now.Hour < 6)
{ %>
<p>It's bed time!</p>
<% } else { %>
<p>Party!</p>
<% } %>
razor:
@if (DateTime.Now.Hour > 20 || DateTime.Now.Hour < 6) {
<p>It's bed time!</p>
} else {
<p>Party!</p>
}
spark:
<p if='DateTime.Now.Hour > 20 || DateTime.Now.Hour < 6'>
It's bed time!
</p>
<else>
<p>Party!</p>
</else>
nhaml:
- if (DateTime.Now.Hour > 20 || DateTime.Now.Hour < 6)
%p= "It's bed time!"
- else
%p= "Party!"
treba dan-dva da se privikne na drugi viewengine, i onda ti je ostatak zivota laksi :)
Ok
<% if (DateTime.Now.Hour > 20 || DateTime.Now.Hour < 6) { %>
<p>It's bed time!</p>
<% } else { %>
<p>Party!</p>
<% } %>
a sada imamo
@if (DateTime.Now.Hour > 20 || DateTime.Now.Hour < 6) {
<p>It's bed time!</p>
} else {
<p>Party!</p>
}
Znači riješilo smo se šet komada <% kombinacija - ajd nije da nije nešto ;). Nisam neki ljubitelj <% znaka al nije sad da me i nervira nešto.
Ok
<% if (DateTime.Now.Hour > 20 || DateTime.Now.Hour < 6) { %>
<p>It's bed time!</p>
<% } else { %>
<p>Party!</p>
<% } %>
a sada imamo
@if (DateTime.Now.Hour > 20 || DateTime.Now.Hour < 6) {
<p>It's bed time!</p>
} else {
<p>Party!</p>
}
Znači riješilo smo se šet komada <% kombinacija - ajd nije da nije nešto ;). Nisam neki ljubitelj <% znaka al nije sad da me i nervira nešto.
ako ti ne smeta, super, svako ima svoje preferencije! Bitno je da imamo izbora sada, da nismo samo na WebFormsima. Ako se nekome svidja "stari" nacin rada bez MVC, neka radi tako.
ako ti ne smeta, super, svako ima svoje preferencije! Bitno je da imamo izbora sada, da nismo samo na WebFormsima. Ako se nekome svidja "stari" nacin rada bez MVC, neka radi tako.
Hudo, vidim da si ti dosta kompententan, objasniš malo MVC i WebForms?
ako ti ne smeta, super, svako ima svoje preferencije! Bitno je da imamo izbora sada, da nismo samo na WebFormsima. Ako se nekome svidja "stari" nacin rada bez MVC, neka radi tako.
Hudo, vidim da si ti dosta kompententan, objasniš malo MVC i WebForms?
Mislim da ne razumijem pitanje dobro, sta da tocno objasnim? Sve :) ? Mogu ti ovdje u kratkim crtama objasniti kako to radi, ali mislim da bi bilo puno bolje da zaguglas, jer to drugi mogu objasniti puno bolje od mene i 10-tak recenica koliko mogu ovdje napisati : ) Ima stvarno brdo informacija po blogovima.
Ali ako te zanima neki detalj, iskustvo ili specificno pitanje, rado cu odgovoriti!
Forms su pokusaj microsofta da programiranje za desktop prebaci u programiranje za web. Dakle imas iste kontrole kao za desktop, slicnu filozofiju (evente i slicno).
MVC je intuitivniji pristup. Imas model koji zapravo predstavlja tvoje klase, imas view koji je zapravo prezentacijski dio (dakle HTML + kod za ispis) i controller koji upravlja akcijama, dohvaca podatke i proslijedjuje ih viewu.
Ukratko i laicki :)
Hudo, vidim da si ti dosta kompententan, objasniš malo MVC i WebForms?
Mislim da ne razumijem pitanje dobro, sta da tocno objasnim? Sve :) ? Mogu ti ovdje u kratkim crtama objasniti kako to radi, ali mislim da bi bilo puno bolje da zaguglas, jer to drugi mogu objasniti puno bolje od mene i 10-tak recenica koliko mogu ovdje napisati : ) Ima stvarno brdo informacija po blogovima.
Ali ako te zanima neki detalj, iskustvo ili specificno pitanje, rado cu odgovoriti!
Kako mu ne možeš objasniti? Eto, uzmi sat vremena i gledaj hudoa kako ti objašnjava: http://www.webug.com.hr/200912/video.aspx :-)
Domagoj, vi razvijate u MVC ili?
Domagoj, vi razvijate u MVC ili?
Kako što, ovisi o projektu. Nisam slijepi obožavatelj MVC-a, i od Formsa se mogu napraviti čuda uz malo samokontrole i pametnog pristupa, posebno kad izbaciš sve što Formse čine formsima :-)
Forum i BOL je u Formsima.
PS. Nadam se da mi nisi rekao "vi" :-)
Domagoj, vi razvijate u MVC ili?
Kako što, ovisi o projektu. Nisam slijepi obožavatelj MVC-a, i od Formsa se mogu napraviti čuda uz malo samokontrole i pametnog pristupa, posebno kad izbaciš sve što Formse čine formsima :-)
Forum i BOL je u Formsima.
PS. Nadam se da mi nisi rekao "vi" :-)
Mislio sam kao tim :)
Domagoj, vi razvijate u MVC ili?
Kako što, ovisi o projektu. Nisam slijepi obožavatelj MVC-a, i od Formsa se mogu napraviti čuda uz malo samokontrole i pametnog pristupa, posebno kad izbaciš sve što Formse čine formsima :-)
Forum i BOL je u Formsima.
Ne vidiš problem tu?
- Ja vidim ogromnog slona...
To izbacivanje je bio redoviti rezultat mog rada u ASP.NET-u prije MVC-a. Na kraju bih praktički imao samo procesor za vlastitu implementaciju nečeg sličnog MVC-u (u praksi bi to bio DAL-BLL-SRCL-VM-P).
Is nekog iskustva, ovo bi bila glavna razlika:
WebForms:
- poziv dolazi na web stranicu (.aspx fajl)
- svaka stranica ima odvojem prezentacijski kod (html + asp.net kontrole) i codebehind (c#/vb kod od te stranice)
- svaka web stranica ima (dugacki) niz evenata (OnLoad, OnInit, ...) koji se okidaju
- za prikaz se koriste razne kontrole (button, label, menu, gridview, repeater, checkbox, ...)
- svaka ta kontrola moze okinuti niz svojih evenata pod kojima ti stavljas svoj kod (OnClick, OnSelectedIntexChanged, OnRowDatabound, ...)
- gridview, button, treeview i ostale kontrole same generiraju HTML kod, koji u vecini slucajeva sadrzi dosta (nepotrebnih) atributa - dizajneri polude od toga
- ti eventi se izvrsavaju u tkz. Page Life Cycle-u, nekim redosljedom, a mogu i okinuti "postback", odnosno refresh stranice
MVC
- poziv dolazi na routing engine (ala Url rewriting, samo pametniji), on prema patternu odredi koja klasa odnosno metoda se mora izvrsiti (kontroler i akcija, to je onaj C u MVC), po konvenciji je to uvjek url.com/kontroler/akcija/parametri
- akcija (obicna metoda u klasi koja nasljeđuje Controller klasu) se izvrsi, i vrati neki rezultat (V u MVC): renderiranje view-a (aspx, ascx), XML, JSON, file dowload, bilo sto... i tom Viewu se prosljeđuje Model (M u MVC, obicni bilo koji objekt) - to je jedina veza između kontrolera i view-a
- view se izrenderira i rezultat posalje browseru (u Response objekt)
- ne postoje kontrole (label, button, gridview,...), nego se koriste obicni HTML elementi (form, input, option) - u biti sve ono "low level" sto inace standardne asp.net webforms kontrole ispljunu u browser, to se ovdje pise rucno ili se koriste helperi (<%= Html.TextBoxfFor(x=>x.Ime) %>)
- velika razlika je sto se u MVC koristi <form> i <input> elementi za crtanje polja, i <input type='submit'> koji salje podatke na neki URL - to je umjesto onog Button.OnClick eventa!
- ne postoji Postback
ukratko ...
Domagoj, vi razvijate u MVC ili?
Kako što, ovisi o projektu. Nisam slijepi obožavatelj MVC-a, i od Formsa se mogu napraviti čuda uz malo samokontrole i pametnog pristupa, posebno kad izbaciš sve što Formse čine formsima :-)
Forum i BOL je u Formsima.
Ne vidiš problem tu?
- Ja vidim ogromnog slona...
To izbacivanje je bio redoviti rezultat mog rada u ASP.NET-u prije MVC-a. Na kraju bih praktički imao samo procesor za vlastitu implementaciju nečeg sličnog MVC-u (u praksi bi to bio DAL-BLL-SRCL-VM-P).
Malo sam karikirao, no moglo bi se reći i da stare navike teško umiru, a prebacivanje dugotrajnjih projekata u MVC nema smisla.

