martedì 26 luglio 2011

ASP.NET MVC: Migliorare la produttività con la WebGrid

Il WebGrid renderà certamente gli sviluppatori che lo usano più produttivo. Ma è perso il senso del modello di ASP.NET MVC?

Da Peter Vogel

Apprezzo il supporto ASP.NET MVC per lo sviluppo Test Driven ma sono meno entusiasta di ottenere il controllo completo del HTML che scende al browser. Le mie capacità HTML sono abbastanza minimale, ma, davvero, credo che tutto ciò che genera HTML (e potenzialmente JavaScript) mi fa meno produttivi rispetto a quando sto lavorando in ASP.NET (anche dopo aggiustamento per aver perso alcuni dei benefici del TDD). Preferisco trascinare un GridView nella pagina di generare una tabella HTML. A proposito, ASP.NET MVC 3 aiuta con l'aggiunta del helper WebGrid ed è una griglia piuttosto bene ... per MVC.

Visualizzazione dei dati
Utilizzando il WebGrid può richiedere fino a tre gradini. In primo luogo, si configura il WebGrid. Il costruttore WebGrid accetta un sacco di parametri, ma parametri denominati rendere questo più facile da fare e più semplice per lo sviluppatore vicino a capire. Questo codice è praticamente auto-esplicativo, ad esempio:


@ Codice Dim griglia = New WebGrid (fonte: = Me.Model, DefaultSort: = "Nome", rowsPerPage: = 3) Fine codice

Mentre il parametro sorgente può essere impostato su qualsiasi collezione di oggetti, qui ho legato alla proprietà del modello della vista, che, ho assunto, si trova nel controllo prima che la vista è chiamato.

Quindi si configura ogni WebGridColumns che si desidera aggiungere al WebGrid (questa parte è opzionale: se non si configura tutte le colonne, la WebGrid visualizza una colonna per ogni proprietà sugli oggetti nel modello).WebGridColumns hanno solo quattro proprietà: una per associare la colonna ad alcune proprietà sugli oggetti viene visualizzato (ColumnName), un secondo per consentire l'ordinamento della colonna da parte dell'utente (CanSort), un terzo per contenere il testo per l'intestazione della colonna (intestazione ), e un quarto per controllare la formattazione (formato). Dopo aver configurato queste colonne, è possibile utilizzare il metodo Colonne WebGrid per caricarli in un array per un uso successivo:

    @ Codice Dim wbgBD As New WebGridColumn wbgBD.CanSort = wbgBD.ColumnName vero wbgBD.Header = "Nome" = "Nome" '... configurare più colonne ... Dim cols Come WebGridColumn () cols = Grid.Columns (wbgFN, wbgLN, wbgBD) Codice End

Una volta configurato il WebGrid, si genera il codice HTML chiamando il metodo GetHtml il WebGrid è. In questo esempio, ho appena impostare lo stile per la tavola e la sua intestazione specificando classi CSS e superato le colonne da visualizzare:

        @ Grid.GetHtml (TableStyle: = "gridStyle", HeaderStyle: = "headStyle", le colonne: = cols     

Per supportare più di una semplice visualizzazione dei dati è necessario per permettere all'utente di selezionare una riga. Il modo più semplice per sostenere che è quello di aggiungere un'altra colonna che non è legato a una proprietà nel modello. Invece, utilizzare la proprietà Format della colonna di chiamare il metodo GetSelectLink il WebGridRow, passando il testo che si desidera visualizzare nella colonna. Questo codice genererà una colonna con una colonna contenente un link che mostra il testo "Modifica":

Dim wbgEd As New WebGridColumn wbgEd.CanSort = wbgEd.ColumnName True = wbgEd.Header = Nothing wbgEd.Format Nulla funzione = (riga) row.GetSelectLink ("Modifica")

Quando l'utente fa clic sul link, la pagina verrà postback e la querystring conterrà il numero della riga che l'utente selezionato. È possibile controllare il nome che il numero di riga viene assegnato nella querystring tramite il parametro selectionFieldName quando si istanzia l'griglia. In questo esempio viene impostato il nome di "srow":

Dim griglia = New WebGrid (fonte: = Me.Model, selectionFieldName: = "srow")

Se l'utente fa clic sulla seconda fila, vado a prendere qualcosa URL come http://MyHost.com/Home/Index?srow=2.

Ma è una buona cosa?
io non sono interessato, con un impatto del WebGrid sul TDD. Nel modello MVC, l'obiettivo è quello di avere una vista che è così in morte cerebrale semplice che non può avere errori. Naturalmente, si può ancora avere ciò che io chiamo "errori" (ad esempio l'etichetta sbagliata accanto i dati o un errore di ortografia nel testo sulla pagina), ma non c'è alcuna reale possibilità di creare errori logici nella creazione delle WebGrid. Naturalmente, sono sicuro che posso aggiungere alcuni errori nel mio codice lato server quando ho la fila WebGrid processo che è passato nuovamente quando l'utente seleziona una riga.

Ma, mentre mi piace la WebGrid, mi chiedo se non manca l'altro punto di ASP.NET MVC: il controllo completo del codice HTML. Penso a me stesso come un programmatore pratico ("Se funziona, è giusto), piuttosto che un purista, quindi questo tipo di problema non mi preoccupa molto. Ma uno dei motivi per cui gli ambienti di sviluppo in discesa è che cercano di essere tutto a tutti i geek. Se questi nuovi controlli sono di catering per i non-MVC sviluppatore, può essere a rischio di generare applicazioni che gli sviluppatori reale MVC considererebbe un errore.


Corso Visual Studio - Corsi Visual Studio
Corso .Net- Corso Dot.Net - Corso Vb.net
Corso C# - Corso PHP - Corso Joomla

Nessun commento:

Posta un commento