ASP.NET MVC Best Practices Simone Chiaretta Solution Developer, Avanade 21 Ottobre 2009.

Slides:



Advertisements
Presentazioni simili
Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno.
Advertisements

Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Visual Studio Tools For Office 2005 Fabio Santini. NET Senior Developer Evangelist Microsoft Italy.
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Sviluppare applicazioni per utenti non-admin Fabio Santini Senior Developer Evangelist.
Consumare Web Service Andrea Saltarello
Sharepoint Gabriele Castellani
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Java Enterprise Edition (JEE)
Connessione con MySQL.
Analisi e Contromisure di tecniche di Sql Injection
3° Workshop "Accessibilità: primi passi per un mondo fruibile da tutti" Alessandro Olivi Modellazione di pagine WEB e accessibilità
Microsoft Days - Community After Hour Silverlight in Action User Group.NET delle Marche 8° Workshop DotNetMarche.
Tra presente e futuro delle interfacce utente con WPF e MVVM
Università La Sapienza Web programming e programmazione multimediale 1 Web Programming e comunicazione multimediale Lezione 10: PHP.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Elaborazione di Franco Grivet Chin
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Corso Java/J2EE per PM/software architect Struts 2
Introduzione ad ASP.net
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net View State e controlli Elaborazione di Franco Grivet Chin.
Corso di PHP.
C# LE BASI 2007 Prima lezione - Introduzione.
Ing. Enrico Lecchini BetaTre S.r.l.
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
UGIALT.NET Conference II
"Non-Admin" Developing "Non-Admin" Developing Fabio Santini.NET Senior Developer Evangelist Microsoft Italy.
WPF per il client Desktop
ASP.NET MVC Framework Simone Chiaretta Solution Developer, Avanade 27 Giugno 2008.
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Who the hell am I? Simone Chiaretta Lavoro per Avanade Italy
JavaScript Distribuire il calcolo Prof. Andrea Omicini Corso di Sistemi Distribuiti A.A. 2001/2002 Parte IV.
Introduzione alla programmazione web
Common Gateway Interface. Dynamic HTML le risposte inviate al client sono (parzialmente o totalmente) create on-the-fly (al volo) dopo aver ricevuto il.
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
ASP.NET MVC Framework Componentizzazione Simone Chiaretta Solution Developer, Avanade 27 Giugno 2009.
ASP.NET MVC Framework Simone Chiaretta Solution Developer, Avanade 24 Ottobre 2008.
14/06/2008 – Matteo Baglini Mail: Blog:
ASP.NET MVC Framework SO WHAT? Simone Chiaretta Solution Developer, Avanade 3 Aprile 2009.
Chi siamo Simone Chiaretta Davide Vosti Lavora per Avanade Italy
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
ASP.NET. …un po’ di ASP ASP (Active Server Pages) è una tecnologia Microsoft che consente di scrivere codice eseguibile (script) lato server, inserendo.
INTRODUZIONE A JAVASCRIPT
Web Form Presentazione 2.3 Comunicazione integrata in rete| Prof. Luca A. Ludovico.
Lezione 8.
Pagine ASP parte 1 Introduzione Stefano Schacherl.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
JavaScript Generalità Cos'è JavaScript?
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
Universal App – Sviluppo di App per Windows Store Gianluca Bertelli
HTML e CSS C. Gena, C. Picardi, J. Sproston HTML e CSS.
Real World data access layers DataSet vs. Custom entities Pierre Greborio Software Architect – PEWay SrL Microsoft MVP – Solutions Architect.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Laboratorio di Servizi Web - servlet - Ardissono 1 Chiarimenti su Servlet Note aggiuntive su architettura di applicazione web che usa Servlet per gestire.
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
DIT Department of Information and Communication Technology Information System Ingegneria del Software: un caso di studio.
PHP.  HTML (Hyper Text Markup Language)  CSS (Cascading Style Sheets)  Javascript (linguaggio di programmazione client)  PHP ( Hypertext Preprocessor.
Paradigma MVC Ing. Buttolo Marco.
Transcript della presentazione:

ASP.NET MVC Best Practices Simone Chiaretta Solution Developer, Avanade 21 Ottobre 2009

Un ringraziamento agli Sponsors

Who the hell am I? Simone Chiaretta Lavoro per Avanade Italy Microsoft MVP ASP.NET Blogger – Fondatore di UGIALT.NET OpenSource developer Climber All Around Nice Guy

Agenda Vorreste sapere il finale di un film prima di vederlo? 3 ASP.NET MVC Best Practices

Cosè ASP.NET MVC? E una sessione 300… doveste saperlo

Il flusso di unapplicazione MVC 5 Model View Controller La richiesta arriva al controller Il Controller chiede i dati al Model Il Model restituisce i dati al controller Il controller formatta i dati e li passa alla view La view costriusce la pagina che viene inivata al browser

Controller

Rimuovi AccountController Best Practice n° 1

1 - Rimuovi AccountController Difficilmente userete questa gestione utenti, se non per prova E male tenere codice demo in codice di produzione Cancellatela

Isolate i controller dal mondo esterno Best Practice n° 2

2 - Isolate i controller dal mondo esterno HttpContext Classi daccesso al database Gestione della configurazione Logging Orologio Ecc…

2 - Isolate i controller dal mondo esterno Applicazione non testabile Applicazione poco malleabile

Usate un IoC Container Best Practice n° 3

Cosè Dependency Injection 13

Cosè Dependency Injection BAD

Cosè Dependency Injection BETTER

Cosè Dependency Injection BUT

Inversion of Control With IoC

IoC inside ASP.NET MVC Estendi ControllerFactory Molti ControllerFactory già disponibili –StructureMap –Spring –Unity –Windsor –Ninject

IoC inside ASP.NET MVC with Ninject Global.asax eredita da NinjectHttpApplication Helper per configurare tutti i controller: –RegisterAllControllersIn(assemblyName);

Non usate le Magic strings Best Practice n° 4

No alle Magic Strings Non usare mai ViewData[key] Creare sempre un ViewModel per View La View eredita sempre da –System.Web.Mvc.ViewPage

Createvi delle convenzioni personali Best Practice n° 5

Createvi delle convenzioni personali ASP.NET MVC è una base dalla quale crearsi la propria architettura di riferimento Controller (e magari view) implementano una vostra base class

Fate attenzione ai Verbi Best Practice n° 6

Fate attenzione ai Verbi Cosa succede quando si fa refresh (back) dopo un submit? 25

PRG Pattern View invia i dati in POST Controller valida –Invia View con errori (POST) –Redirect in GET Pagina in GET mostra i risultati

Fate attenzione ai Verbi Visualizzate i dati in GET Modificateli col POST

Model

DomainModel != ViewModel Best Practice n° 7

DomainModel != ViewModel DomainModel –Dati + Comportamenti –Gerarchico, tipizzato ViewModel –Solo Dati –Flat, solo stringhe

DomainModel != ViewModel Evitare la noia di scrivere i mapping a mano. AutoMapper Mapper.Map (post)

Usa le Action per dati condivisi Best Practice n° 8

Componentizzazione RenderPartial –Il controller deve sempre creare i dati di tutti i componenti RenderAction (futures) –Smells (la view chiama un controller) –Difficile da testare Custom HtmlHelpers –Ok per pezzi di HTML, ma non deve avere logica

Action Filtes Definiti come Attributi Permettono di eseguire codice –Durante la fase di Autenticazione –In caso di eccezione –Prima di una Action –Dopo una Action –Prima del rendering della view –Dopo il rendering della view Filtri core –Authorize –OutputCache

Action Filter + Render Partial Controller: –Esegue il codice per il suo main concern e genera il dato principale View: –Mostra loutput principale –Chiama le varie PartialViews Action Filters: –Caricano i dati per le partial views Partial views –Mostrano i dati caricati dagli Action Filters

View

Non usare il code-behind Best Practice n° 9

Non usare code-behind MAI

Scrivi HTML quando puoi Best Practice n° 10

Scrivi HTML quando puoi Imparate a scrivere HTML Non usate HtmlHelpers che astraggono SOLO lHTML vs

If there is an if, write an HtmlHelper Best Practice n° 11

Scrivi HtmlHelpers quando puoi Le view non devono aver logica Solo if e foreach sono consentiti Quando possibile, nasconderli in HtmlHelpers

Scegli con cura il view engine Best Practice n° 12

Scegli con cura il view engine Default è WebFormViewEngine Non è il migliore possibile Scegliete quello che fa per voi

Scegli con cura il view engine Spark View Engine –Il flusso è dominato dallHTML –Solo un templating engine Altre funzionalità –Emette PDF –Interpreta i template anche in Javascript

Beginning ASP.NET MVC Simone Chiaretta e Keyvan Nayyeri TOC: –MVC –Testing –And more... Compratelo con lo sconto oggi da Hoepli

Contatti – Simone Chiaretta MSN: Blog: –English: –Italiano: Twitter: 47

Q&A 48