The Dark Side of .NET

Il lato oscuro della forza!

ASP.NET MVC Best Practices

Dalla Gladiatori Fest, Simone Chiaretta ci indica la retta via:

  • Rimuovi AccountController (creata dal template MVC)
  • Isolate i controller dal mondo esterno (applicazione non testabile, applicazione poco malleabile)
  • Usate un IOC Container
  • No Magic String (non usare ViewData, creare un viewModel per ogni view)
  • Createvi delle convenzioni pesonali (Controller e magari View implementano una vostra classe base)
  • Fate attenzione agli HTTP Verbs (Pattern PRG: view invia i dati in post, controller valida, pagina in GET mostra i risultati) (Visualizzte i dati in GET, modificateli col post) [AcceptVerbs(HttpVerbs.Post)]
  • DomainModel != ViewModel (Dati+comportamenti != solo dati) per il mapping usare AutoMapper => Mapper.Map<Post, ShowPostModel>(post)
  • Usa le Action per dati "condivisi" (Action Filters) Definiti come attributi permettono di eseguire codice,  gli action filters carucano i dati per le partial view che mostrano i dati caricati dagli action filters
  • Non usare il code-behind (MAI)
  • Scrivi HTML quando puoi
  • Se c'è un if usa l'htmlhelper, le view non devono avere logica, solo if e foreach, quando possibile nasconderli in html helpers
  • Scegli con cura il View Engine (WebFormViewEngine non è il migliore possibile, scegliete quello che fa per voi) Ad esempio Spark View Engine, il flusso è dominato dall'HTML, solo un templating engine, emette PDF, interpreta i template anche in Javascript

Commenti

Liccardi Antonio ha scritto:

uah

questo post == lezione di vita

# ottobre 21, 2009 3:37