web development with visual studio 2012
Post on 17-May-2015
325 Views
Preview:
TRANSCRIPT
Web Development with Visual Studio 2012Raffaele Fanizziwww.vifani.com
Agenda Design Pattern MVC ASP.NET MVC: un po’ di storia Le novità di ASP.NET MVC 4 ASP.NET Web API Bundling e Minification Async Controller Domande e risposte
Design Pattern MVC
Controller
Model
View
Riceve l’input dall’utente e invoca operazioni sul modello definendo la view che ne visualizzerà lo stato
Effettua un cambiamento di stato richiamato dal controller e lo notifica alla view
Descrive la visualizzazione del modello
Design Pattern MVC
• Controller: è l’orchestratore che definisce quale cambiamento di stato del modello richiamare in base all’input dell’utente• Model: definisce i dati ed il loro
comportamento• View: definisce il modo in cui il modello
deve essere rappresentato
ASP.NET MVC: un po’ di storia ASP.NET MVC 1.0 Introdotto nel 2009 E’ l’implementazione di Microsoft del pattern MVC applicata allo sviluppo web
E’ open source rilasciato sotto licenza Microsoft Public License
ASP.NET MVC: un po’ di storia ASP.NET MVC 2 Rilasciato nel 2010 Helper HTML Strongly Typed Migliora la validazione Supporto al concetto di area Introdotti i controller asincroni Data Annotations
ASP.NET MVC: un po’ di storia ASP.NET MVC 3 Rilasciato nel 2011 Template di progetto HTML5 Razor View Engine Dynamic ViewBag Remote Validation Json Binding Dependency Injection e IoC
Le novità di ASP.NET MVC 4 Deploy interamente basato su NuGet ASP.NET Web API Template pronti per lo sviluppo mobile Display Modes Controller asincroni task based Bundling e Minification JSON.NET
Di cosa abbiamo bisogno?
Va bene anche Visual Studio 2010 + SP1…
… ma con Visual Studio 2012 è tutta un’altra storia
ASP.NET MVC 4 è integrato (anche nella Express)
Supporto ai nuovi standard HTML5 e CSS3 Intellisense notevolmente migliorato!
ASP.NET Web API Cosa sono i servizi RESTful? REST = Representational State Transfer Servizi web oriented basati sul protocollo HTTP
Rappresentano un’alternativa a SOAP Quanti modi esistono in .NET per creare un servizio REST?
Http Handler
Pagina ASP.NETController ASP.NET MVC
Web Service ASMXWeb Service WCF
ASP.NET Web API La frammentazione è dovuta a team diversi che lavorano a progetti diversi che possono fare la stessa cosa: ASP.NET MVC e WCF
Oggi questi due team sono stati aggregati e il loro sforzo congiunto ha partorito ASP.NET Web API
Rappresenta il framework ufficiale di Microsoft per realizzare servizi RESTful
Servizi RESTful vs SOAP
SOAP Basato su XML (header + body)
Fortemente tipizzato Aderente ad uno schema ben preciso
Supporto a sessioni e transazioni
Multiprotocollo (HTTP, TCP, etc…)
REST Non tipizzato Leggero e semplice Prevalentemente
basato su JSON Semantica attribuibile
ai metodi HTTP Portabilità
ASP.NET Web API Sembra ASP.NET MVC ma non lo è Si basa sulla classe ApiController Per convenzione i nomi dei metodi del controller devono iniziare con il verbo HTTP che intendono gestire
I dati vengono serializzati/deserializzati nel formato correttamente specificato nell’header «content-type» della chiamata HTTP
ASP.NET Web API Come interrogare un servizio REST? Dipende dal client Se è javascript allora jQuery è vostro amico
Se è .NET allora la nuova classe HttpClient diventerà la vostra migliore amica
ASP.NET Web API Demo
Bundling e Minification
+ CSS e Javascript => + risorse da caricare+ risorse da caricare => + richieste HTTP da fare+ richieste HTTP da fare => + tempo di caricamento+ tempo di caricamento => - ci pagano
Bundling e Minification Bundling: vi consente di creare gruppi di risorse (javascript o css) Riduce il numero di file da caricare
Minification: comprime il testo di javascript e CSS Riduce la dimensione dei file da caricare
Come si configura uno ScriptBundle?
Bundling e Minification
Come si configura uno StyleBundle?
Bundling e Minification
Come si usano ScriptBundle e StyleBundle?
Bundling e Minification
Bundling e Minification Gestiscono automaticamente
le versioni dei file javascript – ad esempio jquery-{version}.js
le versioni minificate dei file javascript – ad esempio jquery-{version}.min.js
abilitazione/disabilitazione in base alla configurazione debug/release
la cache
Consentono di gestire intere directory (anche ricorsivamente) usando IncludeDirectory() invece di Include()
Un esempio realeUsing B/M Without B/M Change
File Requests 9 34 256%
KB Sent 3.26 11.92 266%
KB Received 388.51 530 36%
Load Time 510 ms 780 ms 53%
Bundling e Minification Demo
Async Controller Come funziona IIS?
Async Controller Come funziona IIS?
Async Controller Perché la programmazione asincrona?
Async Controller: controller sincrono
Async Controller: il vecchio approccio
Async Controller: il nuovo approccio
Domande ?
Contatti e Riferimenti Il mio bloghttp://www.vifani.com
LinkedInhttps://www.linkedin.com/in/raffaelefanizzi
Twitterhttps://twitter.com/raffaelefanizzi
ASP.NET MVC 4http://www.asp.net/mvc
ASP.NET Web APIhttp://www.asp.net/web-api
Grazie per l’attenzione
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
top related