ASP.NET MVC Framework SO WHAT? Simone Chiaretta Solution Developer, Avanade 3 Aprile 2009.

Slides:



Advertisements
Presentazioni simili
Teoria e Tecniche del Riconoscimento
Advertisements

Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Consumare Web Service Andrea Saltarello
1 Windows SharePoint 2003 Products & Technologies – Overview funzionale Marco Bellinaso Senior trainer & consultant Code Architects S.r.l. Web:
1 Teaching Cloud Computing and Windows Azure in Academia Domenico Talia UNIVERSITA DELLA CALABRIA & ICAR-CNR Italy Faculty Days 2010.
Luca Bianchi Windows Development Day Bologna 28 gennaio 2005 SQL Server Desktop Engine (MSDE) & SQL Server 2005 Express.
ASP.NET – Web Forms Davide Vernole.NET MVP. Di cosa parleremo Introduzione ad ASP.NET ASP.NET, dietro le quinte Componenti principali di una applicazione.
Strumenti di sviluppo Microsoft Campagna incentivi per Software Assurance Opportunità di vendita.
A. Oppio, S. Mattia, A. Pandolfi, M. Ghellere ERES Conference 2010 Università Commerciale Luigi Bocconi Milan, june 2010 A Multidimensional and Participatory.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
Seam.
Accessibilità: primi passi per un mondo fruibile da tutti User Group.NET delle Marche 3° Workshop DotNetMarche.
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
Applicazioni SOA con Silverlight: dal design al deploy ° Workshop Venerdì 16 Luglio 2010.
Community Tour User Group.NET delle Marche 12° Workshop DotNetMarche Venerdì 18 dicembre 2009.
Refactoring 2TheMax (con ReSharper) User Group.NET delle Marche 11° Workshop DotNetMarche Venerdì 9 ottobre.
JQuery in Action on.NET Framework User Group.NET delle Marche 9° Workshop DotNetMarche Venerdì 27 marzo 2009.
OWASP-Day e progetti OWASP-Italy
Microsoft Robotics Studio Marco Petrucco Microsoft Student Partner - Udine.
Model – View - Controller
Fanno ormai parte della nostra vita di tutti i giorni….
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
National Project – on going results Potenza 7/10 November 06 IT-G2-SIC-066 – Social Enterprise and Local Development.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net View State e controlli Elaborazione di Franco Grivet Chin.
Articoli e codice: Blog: Profilo MVP:
UGIALT.NET Conference II
Attribution-NonCommercial-ShareAlike SQL Server.
Progetto Rover – Fase 1. Obiettivo e Vincoli Obiettivo è creare applicazione capace di controllare in remoto un Rover, dotato di torretta sensoriale e.
Filtered Index and Statistics Filtered Indexes Sergio Govoni
Project Review byNight byNight December 6th, 2011.
WPF per il client Desktop
ASP.NET MVC Framework Simone Chiaretta Solution Developer, Avanade 27 Giugno 2008.
14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP.
Fabio Cozzolino Vito Arconzo
Attribution-NonCommercial-ShareAlike Le novità
Attribution-NonCommercial-ShareAlike Le novità
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
Scoprirete che su Office non si può solo contare ma anche sviluppare.
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review byNight byNight December 21th, 2011.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review byNight byNight December 5th, 2011.
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
Sviluppo Web Agile con Castle MonoRail Diego Guidi 1° Workshop DotNetMarche.Start () Giovedì 12 ottobre 2006.
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
Visual Studio Team System User Group.NET delle Marche 10° Workshop DotNetMarche Mercoledì 13 maggio 2009.
ASP.NET MVC Framework Componentizzazione Simone Chiaretta Solution Developer, Avanade 27 Giugno 2009.
Giovedì 17 Aprile 2008 Heroes {Community} Launch Giovedì 17 Aprile 2008.
ASP.NET MVC Framework Simone Chiaretta Solution Developer, Avanade 24 Ottobre 2008.
14/06/2008 – Matteo Baglini Mail: Blog:
ASP.NET MVC Best Practices Simone Chiaretta Solution Developer, Avanade 21 Ottobre 2009.
Architettura software La scelta architetturale: MVA (Model – View – Adapter/Control) The view is completely decoupled from the model such that view and.
Chi siamo Simone Chiaretta Davide Vosti Lavora per Avanade Italy
Claudio Maccari Mail: Blog (ITA): Blog (ENG):
ASP.NET per il client web Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci )
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() Giovedì 12 ottobre 2006.
Analysis and Development of Functions in REST Logic: Application to the «DataView» Web App UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA DIPARTIMENTO.
Negli ultimi anni, la richiesta di poter controllare in remoto la strumentazione e cresciuta rapidamente I miglioramenti nell’hardware e nel software insieme.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
© 2008 Eyeblaster. All rights reserved Channel Connect for Mobile.
Azure: Mobile Services e Notification Hub ANDREA GIUNTA.
Microsoft Confidential Gabriele Castellani Developer & Platform Evangelism Microsoft.
WPC034 - Visual Studio Code: sviluppare su Linux, Mac OS e Windows
Paradigma MVC Ing. Buttolo Marco.
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Build /13/2019 ASP.NET Core Web API all’opera Problemi veri nello sviluppo di un backend vero Marco Minerva Microsoft MVP Windows Development
Transcript della presentazione:

ASP.NET MVC Framework SO WHAT? Simone Chiaretta Solution Developer, Avanade 3 Aprile 2009

Thanks to the 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 ASP.NET MVC vc ASP.NET WebForms Testing Using DI/IoC Validazione Componentizzazione Ajax - jQuery DataGrid MVC version PRG Pattern ASP.NET Futures T4 3

ASP.NET MVC vs ASP.NET WebForms

Facile! Usa solo ASP.NET MVC!

Testing

Dai Seriamente!

ASP.NET MVC vs ASP.NET WebForms This time for real

WebForms –Sviluppo RAD –Paradigma più simile allo sviluppo tradizionale client-side –Ottimo per prototipare –Controlli –Gestione automatica dello stato –Ecosistema di controlli di 3° parti Ma… –Può diventare inmantenibile –Codice HTML poco controllato –Più difficile separare le responsabilità 9

ASP.NET MVC –Miglior architettura dellapplicazione –Viste leggere (no codebehind) –Maggior controllo su HTML –Abilita uso di metodologie Agile (TDD) –ViewEngine alternativi Ma… –Maggior sforzo realizzativo 10

Elementi condivisi Routing Caching Ajax e jQuery Membership/Profile provider Form Authentication 11

Elementi per scegliere Il proprio gusto personale Intranet vs Internet Serve il controllo sul markup? Usiamo TDD o anche solo i Test? Abbiamo familiarità coi pattern? Abbiamo investito molto in controlli? 12

Decision Chart T4 e librerie accessorie possono aiutare Dynamic Data for MVC... sta arrivando

Testing

Altri esempi di test Testare strongly-typed view data –Assert.AreEqual(expected, ((BlogData) result.ViewData.Model).Titolo,…); Testare Redirect –var result = controller.Show(…) as RedirectResult; 15

[DEMO] Testing

Mocking HttpContext

[DEMO] Mocking HttpContext

Using DI/IoC

Cosè Dependency Injection 20

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 –Ninject –StructureMap –Spring –Unity –Windsor

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

[DEMO] NinjectControllerFactory

Validazione

Validazione in ASP.NET MVC Validazione Server-Side: out-of-the-box –ModelBinder –Data Annotations Validazione Client-Side: librerie esterne

[DEMO] server-side validation

Validazione in ASP.NET MVC Client side xVal Validation Toolkit Fluent Validation

xVal

[DEMO] Client-side validation

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

[DEMO] Action Filter + Render Partial

Ajax - jQuery

ASP.NET MVC Ajax Ajax Helper JSONResult 40

Walkthrough Referenzia i file js Usa AjaxHelper –Ajax.BeginForm –Ajax.ActionLink Imposta le AjaxOptions –Confirm –LoadingElement –UpdateTargetId –OnBegin/OnComplete/OnSuccess/OnFailure 41

[DEMO] Ajax con ASP.NET MVC

ASP.NET MVC + jQuery jQuery è ufficialmente parte del framework –È supportato dal supporto tecnico –Intellisense 43

[DEMO] ASP.NET MVC + jQuery

DataGrid MVC version

jQuery powered –jqGrid

Post-Redirect-Get Pattern

PRG Pattern Cosa succede quando si fa refresh (back) dopo un submit? 48

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

PRG Pattern Mantra Never show pages in response to POST Always load pages using GET Navigate from POST to GET using REDIRECT

[DEMO] Post-Redirect-Get

ASP.NET MVC Futures

Futures Donut caching –Html.Substitute Render Action –Html.RenderAction Declarative Controls – Action Link with Lambdas – (c => c.About(), About")%> Strongly-typed helpers –Html.TextBoxFor(m => m.Title); Asynchronous controllers

Text Template Transformation Toolkit (aka T4)

T4 Text Template Transformation Toolkit Già gratis con VisualStudio Generano View e Controllers Globali: –C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC\CodeTem plates Per Progetto –\CodeTemplates

[DEMO] T4 + MVC Futures

Risorse su T4 erview-of-mvc-tools-features.aspx erview-of-mvc-tools-features.aspx -templates-a-quick-start-guide-for-asp-net-mvc- developers.aspx -templates-a-quick-start-guide-for-asp-net-mvc- developers.aspx

Beginning ASP.NET MVC Simone Chiaretta e Keyvan Nayyeri Rilascio: Luglio 2009 Già in prevendita su Amazon TOC: –MVC –Testing –And more...

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

Q&A 60