Ciao a tutti,
sto studiando Asp.net MVC, e per quanto mi riguarda noto una grave mancanza sul databindig, cosa che hanno le Webforms, tipo le Griglie,Listview e il nuovo modello tipizato introdotto con il Framework 4.5.
Voi che ne pensate ?
Webforms
MVC
Ciao a tutti,
sto studiando Asp.net MVC, e per quanto mi riguarda noto una grave mancanza sul databindig, cosa che hanno le Webforms, tipo le Griglie,Listview e il nuovo modello tipizato introdotto con il Framework 4.5.
Voi che ne pensate ?
La risposta secondo me è soggettiva: uno dirà "Controlli Server" l'altro dirà "HelperMethods"; uno dira "UserControls" l'altro "PartialViews" e via dicendo. Ma la piu comune è che "MVC ti consente di scrivere codice piu testabile". Vero ma ci sono due considerazioni da fare: a) il codice testabile lo puoi scrivere anche in webforms (Dino Esposito ha scritto parecchio a riguardo, vedi pattern MVP); b) è possibile scrivere codice scadente anche in MVC e soprattutto è possibile scrivere TEST scadenti sia per MVC che per Webforms, ne aggiungo un altra, c) c'è qualcuno che SUL LAVORO usa Test Driven Development??? beato lui.
Entrambi i framework hanno i loro punti di forza: WebForms è molto piu immediato di MVC e dalla release 4 ha davvero migliorato molti degli aspetti che lo rendevano inappetibile, mentre MVC ha il grosso vantaggio (che webforms non ha) di portare l'attenzione durante lo sviluppo a livello del protocollo HTTP e per molti (me compreso) questa è una comodità.
Personalmente scelgo MVC per i seguenti motivi (tutti soggettivi):
Posso scrivere un form e un metodo POST invece che l'eventhandler di un pulsante.
Posso dimenticare il ciclo vita di una pagina e i suoi eventhandler (Page_Load ecc.) per concentrami sulla reale natura delle richieste http nella comunicazione client e server.
Posso smettere di usare il viewstate e utilizzare altre forme di mantenimento dello stato (gli hiddenfiled, i cookie, la session, la cache ognuna per uno scopo ed uno scenario di utilizzo specifico).
Posso integrare facilmente template html, usare javascript e ajax in maniera piu naturale.
tutto questo potenziato dal fatte che
1) Mvc è una sovrastruttura di asp.net e quindi trovo tutto cio che asp.net di comodo gia possiede: I Providers, l'httpContext, il global.asax, il web.Config, ecc.
2) Mvc ha un comportamento di default molto efficace che fa il lavoro sporco completamente configurabile.
a proposito di MVC: è corretto o è solo una mia impressione che MVC si usa come si usava una volta il buon vecchio ASP Classic 3.0?
Parli di scrittura del codice ?
A me "manca" la parte databinding (Gridview,Listview eccc..) che con la versione 4 è davvero versatil e potente.
Con MVC per fare una griglia devi scrivere tutto a mano !
@optime: Ni. cioè solo all'apparenza. Per il resto mvc ha moltissime features per cui asp 3.0 era e rimarrà solo un ricordo dei tempi andati.
@cassano: Quello a cui ti riferisci tu non è il databinding in se, ma la capacità di generare codice partendo da un datasource collegato alla listview. Il databinding è una cosa che in mvc esiste nella forma di ModelBinding che poi sarebbe la novità che da mvc è stata portata in webforms 4.5.
La capacità di generare codice partendo da un controllo server è di fatto il vero (e secondo me unico) vantaggio di web forms rispetto a mvc. Quindi tutto sta nella scelta di avvalersi o meno di questo vantaggio. Personalmente non lo sfrutto piu. Se non mi interessa molto dell'aspetto grafico uso Bootstrap altrimenti un template html/css/js fatto da un frontendista e quindi in entrambi gli scenari mvc mi calza meglio.
anche questa è la mia impressione, ma io lo conosco pochissimo.Originariamente inviato da optime
a proposito di MVC: è corretto o è solo una mia impressione che MVC si usa come si usava una volta il buon vecchio ASP Classic 3.0?
Pietro
Per esempio una griglia di dati o una Listview come la sostituisci con MVC ?Originariamente inviato da rsdpzed
@optime: Ni. cioè solo all'apparenza. Per il resto mvc ha moltissime features per cui asp 3.0 era e rimarrà solo un ricordo dei tempi andati.
@cassano: Quello a cui ti riferisci tu non è il databinding in se, ma la capacità di generare codice partendo da un datasource collegato alla listview. Il databinding è una cosa che in mvc esiste nella forma di ModelBinding che poi sarebbe la novità che da mvc è stata portata in webforms 4.5.
La capacità di generare codice partendo da un controllo server è di fatto il vero (e secondo me unico) vantaggio di web forms rispetto a mvc. Quindi tutto sta nella scelta di avvalersi o meno di questo vantaggio. Personalmente non lo sfrutto piu. Se non mi interessa molto dell'aspetto grafico uso Bootstrap altrimenti un template html/css/js fatto da un frontendista e quindi in entrambi gli scenari mvc mi calza meglio.
Una griglia tipo listview o gridview alla fine è una tabella html.
In MVC puoi creare questa tabella a mano o partendo dal modello di scaffholding che puoi scegliere nel momento in cui crei la view (la view deve essere tipizzata). Questo vale per tutti gli altri scenari come la visualizzazione dei dettagli, il form della modifica di un record ecc.
I modelli di scaffholding di base non sono proprio il massimo della bellezza e soprattutto ti mandano da una pagina all'altra non come la gridview che si espande o cambia le label in textBox quando devi editare una riga.
Ovviamente qualcosa di piu "carino" la puoi sempre fare MA a mano. Per esempio dalla visualizzazione tabellare con javascript puoi nascondere le label e mettere al loro posto delle textbox per la modifica del record e gestire l'invio dei dati al metodo post con ajax.
Capisco che puo sembrare una scocciatura in quanto sono tutte problematiche che non ci si pone in webforms ma alla fine come ho detto all'inizio è solo una questione di scelte personali.![]()
quindi tutto quello di cui ci eravamo liberati usando le webforms (passando da asp a asp.net) torna come prima? bisogna fare tutto a mano?![]()
Io la ritengo un grave passo indietro.
Comunque è possibile usare pagine Webforms solo per proggettare le griglie o altri form dati ?