web development with visual studio 2012

33
Web Development with Visual Studio 2012 Raffaele Fanizzi www.vifani.com

Upload: raffaele-fanizzi

Post on 17-May-2015

325 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Web Development with Visual Studio 2012

Web Development with Visual Studio 2012Raffaele Fanizziwww.vifani.com

Page 2: Web Development with Visual Studio 2012

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

Page 3: Web Development with Visual Studio 2012

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

Page 4: Web Development with Visual Studio 2012

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

Page 5: Web Development with Visual Studio 2012

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

Page 6: Web Development with Visual Studio 2012

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

Page 7: Web Development with Visual Studio 2012

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

Page 8: Web Development with Visual Studio 2012

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

Page 9: Web Development with Visual Studio 2012

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!

Page 10: Web Development with Visual Studio 2012

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

Page 11: Web Development with Visual Studio 2012

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

Page 12: Web Development with Visual Studio 2012

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à

Page 13: Web Development with Visual Studio 2012

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

Page 14: Web Development with Visual Studio 2012

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

Page 15: Web Development with Visual Studio 2012

ASP.NET Web API Demo

Page 16: Web Development with Visual Studio 2012

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

Page 17: Web Development with Visual Studio 2012

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

Page 18: Web Development with Visual Studio 2012

Come si configura uno ScriptBundle?

Bundling e Minification

Page 19: Web Development with Visual Studio 2012

Come si configura uno StyleBundle?

Bundling e Minification

Page 20: Web Development with Visual Studio 2012

Come si usano ScriptBundle e StyleBundle?

Bundling e Minification

Page 21: Web Development with Visual Studio 2012

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()

Page 22: Web Development with Visual Studio 2012

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%

Page 23: Web Development with Visual Studio 2012

Bundling e Minification Demo

Page 24: Web Development with Visual Studio 2012

Async Controller Come funziona IIS?

Page 25: Web Development with Visual Studio 2012

Async Controller Come funziona IIS?

Page 26: Web Development with Visual Studio 2012

Async Controller Perché la programmazione asincrona?

Page 27: Web Development with Visual Studio 2012

Async Controller: controller sincrono

Page 28: Web Development with Visual Studio 2012

Async Controller: il vecchio approccio

Page 29: Web Development with Visual Studio 2012

Async Controller: il nuovo approccio

Page 30: Web Development with Visual Studio 2012

Domande ?

Page 31: Web Development with Visual Studio 2012

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

Page 32: Web Development with Visual Studio 2012

Grazie per l’attenzione

Page 33: Web Development with Visual Studio 2012

© 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.