SlideShare a Scribd company logo
1 of 34
Visual Studio 2015 Saturday
ASP.NET 4.6 e ASP.NET 5
...l'evoluzione del web
Andrea Dottor – Microsoft MVP ASP.NET/IIS
twitter: @dottor
email: andrea@dottor.net
Visual Studio 2015 Saturday
Contatti
Andrea Dottor
{ consulenza e sviluppo software }
Microsoft MVP ASP.NET/IIS
Email: andrea@dottor.net
Website: http://www.dottor.net
Blog: http://blog.dottor.net
Twitter: http://twitter.com/dottor
Visual Studio 2015 Saturday
Agenda
Visual Studio 2015
passato
Visual Studio 2015 Saturday
ASP.NET Web Form
(versione 1.0 - gennaio 2002)
Pensato per migrare al web gli sviluppatori Windows Form
ViewState
Modello event-driven
Passato
Visual Studio 2015
presente
Visual Studio 2015 Saturday
ASP.NET MVC
ASP.NET Web API
(oltre ad ASP.NET WebForm)
Più vicine agli standard attuali
Più vicine a come funziona il web
Più "facili" per chi arriva da altre tecnologie
Presente
Visual Studio 2015
futuro
Visual Studio 2015
ASP.NET 5
ASP.NET5
Visual Studio 2015 Saturday
https://github.com/aspnet/Home/wiki/Roadmap
ASP.NET 5 Roadmap
Milestone Release week
Beta6 27 Jul 2015
Localization, Servicing, .NET 4.6 support, and
more
Beta7 2 Sep 2015 Cross-platform
Beta8 15 Oct 2015 Feature complete!
RC1 Nov 2015 Stabilization
1.0.0 Q1* 2016
Visual Studio 2015 Saturday
ASP.NET Team - Community standup
Visual Studio 2015 Saturday
https://live.asp.net/
ASP.NET Team - Community standup
Visual Studio 2015 Saturday
L'ecosistema .NET
Visual Studio 2015 Saturday
Where does ASP.NET fit in the new world?
ASP.NET 5
Unified framework for MVC, Web API
.NET Framework 4.6 stack and
libs
Full .NET Framework for all scenarios & libraries
.NET Core 5 stack and libs
Small runtime optimized for server & cloud
workloads
Visual Studio 2015 Saturday
Faster Development Cycle
• Features are shipped as packages
• Framework is part of the application (.NET Core)
More Control
• Same code running from development to production
• New version choice in the hands of the developers
ASP.NET 5 - Agile
Visual Studio 2015 Saturday
Development productivity + low friction
• No compilation => Save and refresh
• Framework is part of the application (.NET Core)
Improved runtime performance
• Faster startup times (~2-3”)
• Lower memory / higher density for HTTP Requests (> 90%)
• Modular, only pull the functionality and features required
• Raw sockets/full framework or both
ASP.NET 5 - Veloce
Visual Studio 2015 Saturday
Runtime
• Windows, Mac, Linux
Editors
• Visual Studio, Text, Cloud editors
• OmniSharp – Sublime, Emacs, Vi, Atom, Brackets, etc
• No editors (command line)
All Open Source with Contributions
ASP.NET 5 - Cross-Platform
Visual Studio 2015 Saturday
"Build, Ship, Run
An open platform for distributed applications for developers and
sysadmins"
"Docker allows you to package an application with all of its
dependencies into a standardized unit for software development."
Esistono le immagini di Container Docker per ASP.NET 5
https://github.com/aspnet/aspnet-docker
https://hub.docker.com/r/microsoft/aspnet/
http://blogs.msdn.com/b/webdev/archive/2015/01/14/running-asp-net-5-applications-
in-linux-containers-with-docker.aspx
Visual Studio 2015 Saturday
Nessuna differenza tra un'applicazione sviluppata per essere
pubblicata in un nostro server o nel cloud
Non ci sono più "vincoli" di dover pubblicare in un server
Windows Server
ASP.NET 5 – Cloud-ready
Visual Studio 2015
ASP.NET5
Choose your Editors and Tools
Visual Studio 2015 Saturday
Visual Studio Code
Editor gratuito per Linux, Mac OSX,
e Windows.
• Pensato per ASP.NET 5 e NodeJS
• Integrato con Git
• Debugging, IntelliSense
• Integrato con tool esterni:
es: Ant, Gulp, Jake, Rake e MSBuild.
• …
Visual Studio 2015 Saturday
OmniSharp
Visual Studio 2015
ASP.NET5
Application anatomy
Visual Studio 2015 Saturday
File di configurazione e di progetto in json (o .xml o .ini)
• project.json
• config.json
• …
Configurazione da codice (startup.cs)
Cartella wwwroot per i file statici
Integrazione nativa con gulp, bower, …
• http://gulpjs.com/
Gulp is a toolkit that will help you automate painful or time-consuming tasks in your
development workflow.
• http://bower.io/
Bower works by fetching and installing packages from all over, taking care of hunting, finding,
downloading, and saving the stuff you’re looking for.
Struttura progetto
Visual Studio 2015 Saturday
ConfigureServices permette di definire i servizi utilizzati
dall'applicazione
Configure permette di definire la pipeline/middleware di ogni
chiamata
Startup class
Visual Studio 2015 Saturday
Unico controller per MVC e Web API
Regole di routing specificate nel file Startup.cs o tramite
RouteAttributes
Siamo noi ad attivare/abilitare le funzionalità che servono
all'applicazione
Molte funzionalità sono disponibili come pacchetti NuGet separati
Non dipendiamo più dalla System.Web.dll
MVC, Web API, …
Visual Studio 2015 Saturday
DI implementato out of the box.
Possibilità di utilizzo del Container preferito
(es: Autofac, Ninject, Unity, Windsor, …)
Gestisce vari tipi di Lifestyle
• Instance: Una nuova istanza viene creta ogni volta. Siamo noi a specificare
come creare l’istanza (parametri nel costruttore).
• Transient: Una nuova istanza viene creta ogni volta
• Singleton: Viene creta una singola istanza, e viene ritornata sempre quella
• Scoped: Viene creta un’istanza per ogni richiesta.
Dependency injection
Visual Studio 2015 Saturday
Simili alle PartialView
Ma molto meglio.
Composti da un proprio file di code-behind e view
• Una classe di “code-behind” simile ad un mini controller.
• Eredita da ViewComponent e richiede di implementare il metodo Invoke)
• Una view che ne definisce la visualizzazione
View Components
@Component.Invoke("TagList")
Visual Studio 2015 Saturday
Possibilità di iniettare una classe/servizio all’interno delle View per
poterne richiamare i metodi
Dichiarare il servizio in fase di Startup
services.AddTransient<TodoList.Services.StatisticsService>();
Dichiarare la classe
@inject TodoList.Services.StatisticsService Statistics
Usarla richiamandone i metodi
@await Statistics.GetCount()
Injecting a service into a view
Visual Studio 2015 Saturday
Class Library (package) è diversa dalla "classica" Class Library
Permette di condividere classi/codice che possono essure
utilizzati anche su .NET Core.
Class Library
Visual Studio 2015
Saturday
demo
Visual Studio 2015 Saturday
• Introduction to ASP.NET 5
• http://docs.asp.net/en/latest/conceptual-overview/aspnet.html
• DNX Overview
• http://docs.asp.net/en/latest/dnx/overview.html
• Introducing ASP.NET 5
• https://channel9.msdn.com/Events/Build/2015/2-687
• ASP.NET GitHub
• https://github.com/aspnet
• ASP.NET Home Repository
• https://github.com/aspnet/Home
• ASP.NET 5 Docs
• http://docs.asp.net/
Risorse
Visual Studio 2015 Saturday
Contatti
Andrea Dottor
{ consulenza e sviluppo software }
Microsoft MVP ASP.NET/IIS
Email: andrea@dottor.net
Website: http://www.dottor.net
Blog: http://blog.dottor.net
Twitter: http://twitter.com/dottor
Visual Studio 2015
Saturday
Domande?

More Related Content

What's hot

Javascript task automation
Javascript task automationJavascript task automation
Javascript task automationAntonio Liccardi
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersAndrea Dottor
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Andrea Agnoletto
 
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMRealizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMCodemotion
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Andrea Dottor
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormAndrea Dottor
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazorNicolò Carandini
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciutaAndrea Dottor
 
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...Codemotion
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteNicolò Carandini
 
ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%DomusDotNet
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automationDotNetCampus
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal WebtrendsStefano Iaboni
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuerySandro Marcon
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreManuel Scapolan
 

What's hot (20)

Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developers
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppo
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMRealizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
 
jQuery
jQueryjQuery
jQuery
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciuta
 
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatore
 

Viewers also liked

Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013Thomas Robbins
 
A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!Leonardo De Moura Rocha Lima
 
Akbar trading splicing_kit_loadbreak_elbow_raychem_te_connectivity
Akbar trading splicing_kit_loadbreak_elbow_raychem_te_connectivityAkbar trading splicing_kit_loadbreak_elbow_raychem_te_connectivity
Akbar trading splicing_kit_loadbreak_elbow_raychem_te_connectivityAKBAR TRADING
 
S&amp;m module 3 2nd day 3 jan-15
S&amp;m module 3 2nd day 3 jan-15S&amp;m module 3 2nd day 3 jan-15
S&amp;m module 3 2nd day 3 jan-15Ghazali Md. Noor
 
Vantage profile Jan 2017
Vantage profile Jan 2017Vantage profile Jan 2017
Vantage profile Jan 2017trshankar
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceAndrea Dottor
 
ērnu un pusaudžu psihoemocionālā labklājība Latvijā: fakti un risinājumi. Tom...
ērnu un pusaudžu psihoemocionālā labklājība Latvijā: fakti un risinājumi. Tom...ērnu un pusaudžu psihoemocionālā labklājība Latvijā: fakti un risinājumi. Tom...
ērnu un pusaudžu psihoemocionālā labklājība Latvijā: fakti un risinājumi. Tom...BJPLC
 
Migliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsMigliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsAndrea Dottor
 
RAYCHEM TERMINATION KIT-TYCO TERMINATION-케이블 종단-거-瑞侃工具包电缆终端-阿克巴交易
RAYCHEM TERMINATION KIT-TYCO TERMINATION-케이블 종단-거-瑞侃工具包电缆终端-阿克巴交易RAYCHEM TERMINATION KIT-TYCO TERMINATION-케이블 종단-거-瑞侃工具包电缆终端-阿克巴交易
RAYCHEM TERMINATION KIT-TYCO TERMINATION-케이블 종단-거-瑞侃工具包电缆终端-阿克巴交易AKBAR TRADING
 
Catálogo Oriflame Costa Rica Marzo 2017
Catálogo Oriflame Costa Rica Marzo 2017Catálogo Oriflame Costa Rica Marzo 2017
Catálogo Oriflame Costa Rica Marzo 2017Karol Vargas
 
HAWKE CABLE GLAND SAUDI ARABIA STOCKIST-AKBAR TRADING EST
HAWKE CABLE GLAND SAUDI ARABIA STOCKIST-AKBAR TRADING ESTHAWKE CABLE GLAND SAUDI ARABIA STOCKIST-AKBAR TRADING EST
HAWKE CABLE GLAND SAUDI ARABIA STOCKIST-AKBAR TRADING ESTAKBAR TRADING
 

Viewers also liked (13)

Intro to asp.net mvc 4 with visual studio
Intro to asp.net mvc 4 with visual studioIntro to asp.net mvc 4 with visual studio
Intro to asp.net mvc 4 with visual studio
 
Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013
 
A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!
 
Akbar trading splicing_kit_loadbreak_elbow_raychem_te_connectivity
Akbar trading splicing_kit_loadbreak_elbow_raychem_te_connectivityAkbar trading splicing_kit_loadbreak_elbow_raychem_te_connectivity
Akbar trading splicing_kit_loadbreak_elbow_raychem_te_connectivity
 
S&amp;m module 3 2nd day 3 jan-15
S&amp;m module 3 2nd day 3 jan-15S&amp;m module 3 2nd day 3 jan-15
S&amp;m module 3 2nd day 3 jan-15
 
Vantage profile Jan 2017
Vantage profile Jan 2017Vantage profile Jan 2017
Vantage profile Jan 2017
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
 
ērnu un pusaudžu psihoemocionālā labklājība Latvijā: fakti un risinājumi. Tom...
ērnu un pusaudžu psihoemocionālā labklājība Latvijā: fakti un risinājumi. Tom...ērnu un pusaudžu psihoemocionālā labklājība Latvijā: fakti un risinājumi. Tom...
ērnu un pusaudžu psihoemocionālā labklājība Latvijā: fakti un risinājumi. Tom...
 
Migliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsMigliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.js
 
RAYCHEM TERMINATION KIT-TYCO TERMINATION-케이블 종단-거-瑞侃工具包电缆终端-阿克巴交易
RAYCHEM TERMINATION KIT-TYCO TERMINATION-케이블 종단-거-瑞侃工具包电缆终端-阿克巴交易RAYCHEM TERMINATION KIT-TYCO TERMINATION-케이블 종단-거-瑞侃工具包电缆终端-阿克巴交易
RAYCHEM TERMINATION KIT-TYCO TERMINATION-케이블 종단-거-瑞侃工具包电缆终端-阿克巴交易
 
Catálogo Oriflame Costa Rica Marzo 2017
Catálogo Oriflame Costa Rica Marzo 2017Catálogo Oriflame Costa Rica Marzo 2017
Catálogo Oriflame Costa Rica Marzo 2017
 
HAWKE CABLE GLAND SAUDI ARABIA STOCKIST-AKBAR TRADING EST
HAWKE CABLE GLAND SAUDI ARABIA STOCKIST-AKBAR TRADING ESTHAWKE CABLE GLAND SAUDI ARABIA STOCKIST-AKBAR TRADING EST
HAWKE CABLE GLAND SAUDI ARABIA STOCKIST-AKBAR TRADING EST
 
Asp.Net MVC 5
Asp.Net MVC 5Asp.Net MVC 5
Asp.Net MVC 5
 

Similar to ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web

Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012Crismer La Pignola
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
 
Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5Andrea Dottor
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NETLe novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NETEmanuele Bartolesi
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio OnlineDavide Benvegnù
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il MobilePietro Libro
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...Codemotion
 
Lavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comLavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comSimone Chiaretta
 
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreAndrea Dottor
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
 
ASP.NET MVC 3: se non ora, quando?
ASP.NET MVC 3: se non ora, quando?ASP.NET MVC 3: se non ora, quando?
ASP.NET MVC 3: se non ora, quando?Giorgio Di Nardo
 
Works with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and MacWorks with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and MacEmanuele Bartolesi
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMSRoberto Polillo
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1dotnetcode
 

Similar to ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web (20)

Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio Online
 
Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NETLe novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio Online
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
 
Lavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comLavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.com
 
Angular and beyond
Angular and beyondAngular and beyond
Angular and beyond
 
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET Core
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
 
ASP.NET MVC 3: se non ora, quando?
ASP.NET MVC 3: se non ora, quando?ASP.NET MVC 3: se non ora, quando?
ASP.NET MVC 3: se non ora, quando?
 
XeDotNet - .Net MAUI
XeDotNet - .Net MAUIXeDotNet - .Net MAUI
XeDotNet - .Net MAUI
 
Works with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and MacWorks with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and Mac
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 

More from Andrea Dottor

Blazor ♥️ JavaScript
Blazor ♥️ JavaScriptBlazor ♥️ JavaScript
Blazor ♥️ JavaScriptAndrea Dottor
 
Blazor, lo sapevi che...
Blazor, lo sapevi che...Blazor, lo sapevi che...
Blazor, lo sapevi che...Andrea Dottor
 
Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...
Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...
Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...Andrea Dottor
 
What's New in ASP.NET Core 3
What's New in ASP.NET Core 3What's New in ASP.NET Core 3
What's New in ASP.NET Core 3Andrea Dottor
 
Real case: migrate from Web Forms to ASP.NET Core gradually
Real case: migrate from Web Forms to ASP.NET Core graduallyReal case: migrate from Web Forms to ASP.NET Core gradually
Real case: migrate from Web Forms to ASP.NET Core graduallyAndrea Dottor
 
Customize ASP.NET Core scaffolding
Customize ASP.NET Core scaffoldingCustomize ASP.NET Core scaffolding
Customize ASP.NET Core scaffoldingAndrea Dottor
 
ASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cacheASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cacheAndrea Dottor
 
Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuniAndrea Dottor
 
Deploy & Run on Azure App Service
Deploy & Run on Azure App ServiceDeploy & Run on Azure App Service
Deploy & Run on Azure App ServiceAndrea Dottor
 
L'evoluzione del web
L'evoluzione del webL'evoluzione del web
L'evoluzione del webAndrea Dottor
 
Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuniCreare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuniAndrea Dottor
 

More from Andrea Dottor (12)

Blazor ♥️ JavaScript
Blazor ♥️ JavaScriptBlazor ♥️ JavaScript
Blazor ♥️ JavaScript
 
Blazor, lo sapevi che...
Blazor, lo sapevi che...Blazor, lo sapevi che...
Blazor, lo sapevi che...
 
Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...
Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...
Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...
 
What's New in ASP.NET Core 3
What's New in ASP.NET Core 3What's New in ASP.NET Core 3
What's New in ASP.NET Core 3
 
Real case: migrate from Web Forms to ASP.NET Core gradually
Real case: migrate from Web Forms to ASP.NET Core graduallyReal case: migrate from Web Forms to ASP.NET Core gradually
Real case: migrate from Web Forms to ASP.NET Core gradually
 
Customize ASP.NET Core scaffolding
Customize ASP.NET Core scaffoldingCustomize ASP.NET Core scaffolding
Customize ASP.NET Core scaffolding
 
ASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cacheASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cache
 
Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuni
 
Deploy & Run on Azure App Service
Deploy & Run on Azure App ServiceDeploy & Run on Azure App Service
Deploy & Run on Azure App Service
 
ASP.NET Core
ASP.NET CoreASP.NET Core
ASP.NET Core
 
L'evoluzione del web
L'evoluzione del webL'evoluzione del web
L'evoluzione del web
 
Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuniCreare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuni
 

ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web

  • 1. Visual Studio 2015 Saturday ASP.NET 4.6 e ASP.NET 5 ...l'evoluzione del web Andrea Dottor – Microsoft MVP ASP.NET/IIS twitter: @dottor email: andrea@dottor.net
  • 2. Visual Studio 2015 Saturday Contatti Andrea Dottor { consulenza e sviluppo software } Microsoft MVP ASP.NET/IIS Email: andrea@dottor.net Website: http://www.dottor.net Blog: http://blog.dottor.net Twitter: http://twitter.com/dottor
  • 3. Visual Studio 2015 Saturday Agenda
  • 5. Visual Studio 2015 Saturday ASP.NET Web Form (versione 1.0 - gennaio 2002) Pensato per migrare al web gli sviluppatori Windows Form ViewState Modello event-driven Passato
  • 7. Visual Studio 2015 Saturday ASP.NET MVC ASP.NET Web API (oltre ad ASP.NET WebForm) Più vicine agli standard attuali Più vicine a come funziona il web Più "facili" per chi arriva da altre tecnologie Presente
  • 10. Visual Studio 2015 Saturday https://github.com/aspnet/Home/wiki/Roadmap ASP.NET 5 Roadmap Milestone Release week Beta6 27 Jul 2015 Localization, Servicing, .NET 4.6 support, and more Beta7 2 Sep 2015 Cross-platform Beta8 15 Oct 2015 Feature complete! RC1 Nov 2015 Stabilization 1.0.0 Q1* 2016
  • 11. Visual Studio 2015 Saturday ASP.NET Team - Community standup
  • 12. Visual Studio 2015 Saturday https://live.asp.net/ ASP.NET Team - Community standup
  • 13. Visual Studio 2015 Saturday L'ecosistema .NET
  • 14. Visual Studio 2015 Saturday Where does ASP.NET fit in the new world? ASP.NET 5 Unified framework for MVC, Web API .NET Framework 4.6 stack and libs Full .NET Framework for all scenarios & libraries .NET Core 5 stack and libs Small runtime optimized for server & cloud workloads
  • 15. Visual Studio 2015 Saturday Faster Development Cycle • Features are shipped as packages • Framework is part of the application (.NET Core) More Control • Same code running from development to production • New version choice in the hands of the developers ASP.NET 5 - Agile
  • 16. Visual Studio 2015 Saturday Development productivity + low friction • No compilation => Save and refresh • Framework is part of the application (.NET Core) Improved runtime performance • Faster startup times (~2-3”) • Lower memory / higher density for HTTP Requests (> 90%) • Modular, only pull the functionality and features required • Raw sockets/full framework or both ASP.NET 5 - Veloce
  • 17. Visual Studio 2015 Saturday Runtime • Windows, Mac, Linux Editors • Visual Studio, Text, Cloud editors • OmniSharp – Sublime, Emacs, Vi, Atom, Brackets, etc • No editors (command line) All Open Source with Contributions ASP.NET 5 - Cross-Platform
  • 18. Visual Studio 2015 Saturday "Build, Ship, Run An open platform for distributed applications for developers and sysadmins" "Docker allows you to package an application with all of its dependencies into a standardized unit for software development." Esistono le immagini di Container Docker per ASP.NET 5 https://github.com/aspnet/aspnet-docker https://hub.docker.com/r/microsoft/aspnet/ http://blogs.msdn.com/b/webdev/archive/2015/01/14/running-asp-net-5-applications- in-linux-containers-with-docker.aspx
  • 19. Visual Studio 2015 Saturday Nessuna differenza tra un'applicazione sviluppata per essere pubblicata in un nostro server o nel cloud Non ci sono più "vincoli" di dover pubblicare in un server Windows Server ASP.NET 5 – Cloud-ready
  • 20. Visual Studio 2015 ASP.NET5 Choose your Editors and Tools
  • 21. Visual Studio 2015 Saturday Visual Studio Code Editor gratuito per Linux, Mac OSX, e Windows. • Pensato per ASP.NET 5 e NodeJS • Integrato con Git • Debugging, IntelliSense • Integrato con tool esterni: es: Ant, Gulp, Jake, Rake e MSBuild. • …
  • 22. Visual Studio 2015 Saturday OmniSharp
  • 24. Visual Studio 2015 Saturday File di configurazione e di progetto in json (o .xml o .ini) • project.json • config.json • … Configurazione da codice (startup.cs) Cartella wwwroot per i file statici Integrazione nativa con gulp, bower, … • http://gulpjs.com/ Gulp is a toolkit that will help you automate painful or time-consuming tasks in your development workflow. • http://bower.io/ Bower works by fetching and installing packages from all over, taking care of hunting, finding, downloading, and saving the stuff you’re looking for. Struttura progetto
  • 25. Visual Studio 2015 Saturday ConfigureServices permette di definire i servizi utilizzati dall'applicazione Configure permette di definire la pipeline/middleware di ogni chiamata Startup class
  • 26. Visual Studio 2015 Saturday Unico controller per MVC e Web API Regole di routing specificate nel file Startup.cs o tramite RouteAttributes Siamo noi ad attivare/abilitare le funzionalità che servono all'applicazione Molte funzionalità sono disponibili come pacchetti NuGet separati Non dipendiamo più dalla System.Web.dll MVC, Web API, …
  • 27. Visual Studio 2015 Saturday DI implementato out of the box. Possibilità di utilizzo del Container preferito (es: Autofac, Ninject, Unity, Windsor, …) Gestisce vari tipi di Lifestyle • Instance: Una nuova istanza viene creta ogni volta. Siamo noi a specificare come creare l’istanza (parametri nel costruttore). • Transient: Una nuova istanza viene creta ogni volta • Singleton: Viene creta una singola istanza, e viene ritornata sempre quella • Scoped: Viene creta un’istanza per ogni richiesta. Dependency injection
  • 28. Visual Studio 2015 Saturday Simili alle PartialView Ma molto meglio. Composti da un proprio file di code-behind e view • Una classe di “code-behind” simile ad un mini controller. • Eredita da ViewComponent e richiede di implementare il metodo Invoke) • Una view che ne definisce la visualizzazione View Components @Component.Invoke("TagList")
  • 29. Visual Studio 2015 Saturday Possibilità di iniettare una classe/servizio all’interno delle View per poterne richiamare i metodi Dichiarare il servizio in fase di Startup services.AddTransient<TodoList.Services.StatisticsService>(); Dichiarare la classe @inject TodoList.Services.StatisticsService Statistics Usarla richiamandone i metodi @await Statistics.GetCount() Injecting a service into a view
  • 30. Visual Studio 2015 Saturday Class Library (package) è diversa dalla "classica" Class Library Permette di condividere classi/codice che possono essure utilizzati anche su .NET Core. Class Library
  • 32. Visual Studio 2015 Saturday • Introduction to ASP.NET 5 • http://docs.asp.net/en/latest/conceptual-overview/aspnet.html • DNX Overview • http://docs.asp.net/en/latest/dnx/overview.html • Introducing ASP.NET 5 • https://channel9.msdn.com/Events/Build/2015/2-687 • ASP.NET GitHub • https://github.com/aspnet • ASP.NET Home Repository • https://github.com/aspnet/Home • ASP.NET 5 Docs • http://docs.asp.net/ Risorse
  • 33. Visual Studio 2015 Saturday Contatti Andrea Dottor { consulenza e sviluppo software } Microsoft MVP ASP.NET/IIS Email: andrea@dottor.net Website: http://www.dottor.net Blog: http://blog.dottor.net Twitter: http://twitter.com/dottor

Editor's Notes

  1. ASP.NET 5 is one unified framework that runs on top of 2 different .NET frameworks. You may mistakenly think that there are two versions of ASP.NET but when in fact the only thing that changes is the target application model. Once compiled, it’s all the same.