際際滷

際際滷Share a Scribd company logo
.NET Core e Linux per il Mobile
Pietro Libro
ROME 24-25 MARCH 2017
About me 
 Senior Software Engineer
 Systems Test Development
 Project Leader for Factory 4.0 MES
 http://www.gfms.com/country_CH/
LinkedIn: https://www.linkedin.com/in/pietrolibro/
Blog: http://blogs.ugidotnet.org/PietroLibroBlog
DomusDotNet: http://www.domusdotnet.org/
Agenda
 .NET Core
 .NET Core: Linux
 ASP.NET Core
 Deployment, 2 scenari
 Microsoft Azure App Service
 Amazon Linux Virtual Machine
 Client: Xamarin Android
 Question Time
.NET Core
 Piattaforma Cross-Platform, gestita da Microsoft e Community GitHub
 Windows, Linux, macOS, IoT, embedded, cloud etc.. Q
 Distribuzione Flessibile
 Riga di comando
 Versione Cross-Platform del .NET Framework (al livello di BCL)
 Fornisce subset di API disponibili in .NET Framework, Xamarin/Mono
 Implementa le specifiche .NET Standard Library
 Open Source: Licenza MIT e APACHE 2, documentazione tramite CC-BY
 Supportato da Microsoft
.NET Core
 Linguaggi supportati: C# e F#
 Di base un singolo modello di applicazione 束Console Apps損(testo), su cui
sono stati costruiti modelli aggiuntivi:
 ASP.NET Core (parleremo oggi)
 Piattaforma UWP (Universal Windows Platform) per Windows 10
 Xamarin.Forms
 Composto da:
 Microsoft .NET Core Runtime
 Framework libraries
 Microsoft .NET Core SDK  Per iniziare
 .NET 束app host損 -> .NET Core Apps
 Altre versioni, pre-release: https://tinyurl.com/zd6lmla
 .NET Core Installation Guide: https://tinyurl.com/hurwe8f
 Per le Demo:
 Sviluppo: .NET Core 1.1.1 con SDK 1.0.1 del 2017.03.07 (VS 2017)
.NET Core
.NET Core: Linux
 Versioni minime supportate (https://tinyurl.com/hurwe8f):
 Red Hat Enterprise Linux 7 Server
 Ubuntu 14.04, 16.04 e Linux Mint 17
 Debian 8.x
 Fedora 23
 CentOS 7.1 & Oracle Linux 7.1
 openSUSE 13.2
 Distribuzione demo: Debian 8.7.1 su Hyper-V
 Download iso: https://tinyurl.com/26plvas
 Installazione e prima applicazione .NET Core in soli 3 steps!
ASP.NET Core
 Modello di applicazione Web-Oriented
 Composto da moduli con minimo overhead e massima flessibilit nella
束costruzione損 della propria applicazione
 Astrazione tramite interface
 Non piu basato su System.Web.dll
 Basato su package NuGet da includere secondo le necessit
 Principali vantaggi:
 Integrazione dei framework lato client (Grunt, Gulp, Knockout etc.)
 HTTP (Request) pipeline leggera e modulare
 Host in IIS o in un proprio processo
 Built-in Dependency Injection
 Unico path per Web UI (MVC) e Web APIs (RESTful applications)
 Per iniziare:
 ASP.NET Core Getting Started: https://www.asp.net/core
Demo
束.NET Core & ASP.NET Core App損
ASP.NET Core
 ASP.NET 束Core App損 竪 una 束Console App損 con Web Server nel 束Main損
 Kestrel, cross-platform Web Server per ASP.NET Core basato su libuv
 Libuv, cross-platform async I/O library: https://tinyurl.com/k2hdq7y
 Possono essere utilizzati altri Web Server: https://tinyurl.com/hz6njyj
 束Startup損 class
 Configurazione Request Pipeline: Configure (Middleware)
 Static File
 Authentication
 Routing
 
 Configurazione Servizi: ConfigureServices (Dependeny Injection)
 ASP.NET MVC Core
 Entity Framework Core
 Identity
ASP.NET Core: Pipeline
Middleware: https://tinyurl.com/zo79fty
Demo
束CodeMotion2017 Blog Api損
Deployment
Due possibili scenari:
 Continuous Deployment su Azure:
 Creazione Account su Azure (anche Trial)
 Configurazione Azure Service App
 Configurazione Git Repository
 Configurazione Visual Studio Code
 Docs: https://tinyurl.com/zbybrnk
 Deployment su Linux Virtual Machine (Ubuntu Server 14.04, Amazon)
 Creazione Account su Amazon Web Service (anche Trial)
 Configurazione Putty
 Installazione .NET Core runtime
 Configurazione HTTP Reverse Proxy (nginx)
 Configurazione Filezilla (o script automatico)
Ambienti 束confezionati損 per la Demo per esigenze temporali
Demo
Pubblicazione su 束Azure App Service損 e 束Amazon Linux Virtual Machine損
Client: Xamarin Android
Applicazione Xamarin Android in Visual Studio 2017
Demo
束CM Blog Api Client損 (Xamarin Android Client)
Toolbox
 Visual Studio Code
 Editor potente e flessibile eseguibile in ambiente Windows, macOS, Linux
 Download: https://code.visualstudio.com/
 Estensibile e Personalizzabile, GIT built-in, IntelliSense, Debugging
 Entity-Framework Core (O/RM)
 Leggero, Estensibile Cross-Platform
 MSSQL, SQLite, DB2, MySQL, SQL Server Compact, PostgreSQL, InMemory
 Code First, DB-First
 https://tinyurl.com/jcha2p6
 NGINX: HTTP e Reverse Proxy Server - https://nginx.org/en/
 Putty: SSH e TelNet client - http://www.putty.org/
 Filezilla: https://filezilla-project.org/
 Microsoft Azure: Piattaforma e Servizi di Cloud Computing
 https://portal.azure.com
 f
 Amazon Web Services: Piattaforma e Servizi di Cloud Computing
 https://aws.amazon.com
Question Time
Entity Framework (EF) Core
Paragone con il 束fratello maggiore損:
https://docs.microsoft.com/en-us/ef/efcore-and-ef6/
Install-Package Microsoft.EntityFrameworkCore.Sqlite
Aggiunta EF Tools per gestione database
Install-Package Microsoft.EntityFrameworkCore.Tools -Version
1.1.0-msbuild3-final
Nella demo creiamo un DB partendo dal codice
E ovviamente anche possibile partire da un database esistente dal
quale estrarre il modello:
https://docs.microsoft.com/en-us/ef/core/get-
started/aspnetcore/existing-db
Entity Framework (EF) Core
EF Core 竪 un O/RM
Leggero
Estensibile
Cross-platform
Supporto a: MSSQL, SQLite, DB2, MySQL, SQL Server Compact,
PostgreSQL, InMemory, MyCate custom
Docs ed esempi: https://docs.microsoft.com/en-us/ef/
Aggiunta EF Core per SQLite al progetto
Install-Package Microsoft.EntityFrameworkCore.Sqlite
Aggiunta EF Tools per gestione database
Install-Package Microsoft.EntityFrameworkCore.Tools -Version
1.1.0-msbuild3-final

More Related Content

What's hot (19)

festival ICT 2013: Windows Server 2012 R2: Ottimizzare linfrastruttura con H...
festival ICT 2013: Windows Server 2012 R2: Ottimizzare linfrastruttura con H...festival ICT 2013: Windows Server 2012 R2: Ottimizzare linfrastruttura con H...
festival ICT 2013: Windows Server 2012 R2: Ottimizzare linfrastruttura con H...
festival ICT 2016
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
Andrea 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 comuni
Andrea Dottor
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
DotNetMarche
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
Stefano Ottaviani
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
Stefano Ottaviani
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Giuseppe Cramarossa
Tutto su ASP.NET Identity
Tutto su ASP.NET IdentityTutto su ASP.NET Identity
Tutto su ASP.NET Identity
Emanuele Bartolesi
Unofficial Xamarin Day DomusDotNet
Unofficial Xamarin Day DomusDotNetUnofficial Xamarin Day DomusDotNet
Unofficial Xamarin Day DomusDotNet
Gaetano Patern嘆
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET Core
Andrea Dottor
Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)
Eugenio Minardi
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
Mauro Servienti
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Codemotion
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
Luca Milan
Ottimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISOttimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IIS
pietrobr
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo Greco
Giuneco S.r.l
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
Andrea Dottor
Web api 2.0
Web api 2.0Web api 2.0
Web api 2.0
Nicol嘆 Carandini
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
Codemotion
festival ICT 2013: Windows Server 2012 R2: Ottimizzare linfrastruttura con H...
festival ICT 2013: Windows Server 2012 R2: Ottimizzare linfrastruttura con H...festival ICT 2013: Windows Server 2012 R2: Ottimizzare linfrastruttura con H...
festival ICT 2013: Windows Server 2012 R2: Ottimizzare linfrastruttura con H...
festival ICT 2016
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
Andrea 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 comuni
Andrea Dottor
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
DotNetMarche
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
Stefano Ottaviani
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
Stefano Ottaviani
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Giuseppe Cramarossa
Unofficial Xamarin Day DomusDotNet
Unofficial Xamarin Day DomusDotNetUnofficial Xamarin Day DomusDotNet
Unofficial Xamarin Day DomusDotNet
Gaetano Patern嘆
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET Core
Andrea Dottor
Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)
Eugenio Minardi
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
Mauro Servienti
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Codemotion
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
Luca Milan
Ottimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISOttimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IIS
pietrobr
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo Greco
Giuneco S.r.l
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
Andrea Dottor
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
Codemotion

Viewers also liked (15)

Introduzione ai Coded UI Tests
Introduzione ai Coded UI TestsIntroduzione ai Coded UI Tests
Introduzione ai Coded UI Tests
Pietro Libro
#Nanocristalizaci坦n #84minerales  #controllinnerseal para pavimentos de #Horm...#Nanocristalizaci坦n #84minerales  #controllinnerseal para pavimentos de #Horm...
#Nanocristalizaci坦n #84minerales #controllinnerseal para pavimentos de #Horm...
Acksol Ingenier鱈a Aplicaci坦n Nanocristalizaci坦n #84minerales
Private Actors
Private ActorsPrivate Actors
Private Actors
Christopher Johnson
Workshop Science and Media EEMCS 27th March 2017
Workshop Science and Media EEMCS 27th March 2017 Workshop Science and Media EEMCS 27th March 2017
Workshop Science and Media EEMCS 27th March 2017
Roy Meijer
Introduction to MongoDB with Sitecore
Introduction to MongoDB with SitecoreIntroduction to MongoDB with Sitecore
Introduction to MongoDB with Sitecore
Anindita Bhattacharya
Architecting Reality IAS 2015
Architecting Reality IAS 2015Architecting Reality IAS 2015
Architecting Reality IAS 2015
Katalogofchaos
NGEO  OpenLayers meets AngularNGEO  OpenLayers meets Angular
NGEO OpenLayers meets Angular
Camptocamp
Dimex German uPVC Windows & Doors Systems
Dimex German uPVC Windows & Doors SystemsDimex German uPVC Windows & Doors Systems
Dimex German uPVC Windows & Doors Systems
DIMEX Windows
Dal gusto
Dal gusto Dal gusto
Dal gusto
Dal Gusto srl
Media sosial dan relationship
Media sosial dan relationshipMedia sosial dan relationship
Media sosial dan relationship
Rakyat Memilih
Cartes OACICartes OACI
Cartes OACI
Bordeaux Paramoteur
Effective safety committee operations
Effective safety committee operationsEffective safety committee operations
Effective safety committee operations
惆惠惘 惠悋惘 惺惡惆悋 愆惘悋
5捉 aula5捉 aula
5捉 aula
PROFIGESTO - Profissionais em Gest達o de Empresas e Pessoas
6 Panel Comic Book Page
6 Panel Comic Book Page6 Panel Comic Book Page
6 Panel Comic Book Page
grantthomasonline
Bpifrance - R辿sultats 2016Bpifrance - R辿sultats 2016
Bpifrance - R辿sultats 2016
Nicolas Dufourcq
Introduzione ai Coded UI Tests
Introduzione ai Coded UI TestsIntroduzione ai Coded UI Tests
Introduzione ai Coded UI Tests
Pietro Libro
#Nanocristalizaci坦n #84minerales  #controllinnerseal para pavimentos de #Horm...#Nanocristalizaci坦n #84minerales  #controllinnerseal para pavimentos de #Horm...
#Nanocristalizaci坦n #84minerales #controllinnerseal para pavimentos de #Horm...
Acksol Ingenier鱈a Aplicaci坦n Nanocristalizaci坦n #84minerales
Workshop Science and Media EEMCS 27th March 2017
Workshop Science and Media EEMCS 27th March 2017 Workshop Science and Media EEMCS 27th March 2017
Workshop Science and Media EEMCS 27th March 2017
Roy Meijer
Introduction to MongoDB with Sitecore
Introduction to MongoDB with SitecoreIntroduction to MongoDB with Sitecore
Introduction to MongoDB with Sitecore
Anindita Bhattacharya
Architecting Reality IAS 2015
Architecting Reality IAS 2015Architecting Reality IAS 2015
Architecting Reality IAS 2015
Katalogofchaos
NGEO  OpenLayers meets AngularNGEO  OpenLayers meets Angular
NGEO OpenLayers meets Angular
Camptocamp
Dimex German uPVC Windows & Doors Systems
Dimex German uPVC Windows & Doors SystemsDimex German uPVC Windows & Doors Systems
Dimex German uPVC Windows & Doors Systems
DIMEX Windows
Media sosial dan relationship
Media sosial dan relationshipMedia sosial dan relationship
Media sosial dan relationship
Rakyat Memilih
Cartes OACICartes OACI
Cartes OACI
Bordeaux Paramoteur
Bpifrance - R辿sultats 2016Bpifrance - R辿sultats 2016
Bpifrance - R辿sultats 2016
Nicolas Dufourcq

Similar to .NET Core, ASP.NET Core e Linux per il Mobile (20)

Da DotNet a DotNetCore
Da DotNet a DotNetCoreDa DotNet a DotNetCore
Da DotNet a DotNetCore
Raffaele Rialdi
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
Crismer La Pignola
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Luca Zulian
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
DotNetCampus
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNuke
Massimo Bonanni
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
Andrea Dottor
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
Romualdo Gobbo
ASP.NET Core essentials
ASP.NET Core essentialsASP.NET Core essentials
ASP.NET Core essentials
Andrea Saltarello
XeDotNet - .Net MAUI
XeDotNet - .Net MAUIXeDotNet - .Net MAUI
XeDotNet - .Net MAUI
Marco Bortolin
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
Alessandro Forte
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
Daniele Mondello
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloud
Davide Benvegn湛
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
Leonardo Alario
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
Tommaso Torti
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
Andrea Dottor
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
Roberto Messora
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloaded
Pietro Libro
.NET & Linux: la strana coppia - DotNetDay 2018
.NET & Linux: la strana coppia - DotNetDay 2018.NET & Linux: la strana coppia - DotNetDay 2018
.NET & Linux: la strana coppia - DotNetDay 2018
Fabrizio Bernabei
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
DotNetCampus
Da DotNet a DotNetCore
Da DotNet a DotNetCoreDa DotNet a DotNetCore
Da DotNet a DotNetCore
Raffaele Rialdi
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
Crismer La Pignola
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Luca Zulian
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
DotNetCampus
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNuke
Massimo Bonanni
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
Andrea Dottor
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
Romualdo Gobbo
XeDotNet - .Net MAUI
XeDotNet - .Net MAUIXeDotNet - .Net MAUI
XeDotNet - .Net MAUI
Marco Bortolin
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
Alessandro Forte
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
Daniele Mondello
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloud
Davide Benvegn湛
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
Leonardo Alario
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
Tommaso Torti
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
Andrea Dottor
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
Roberto Messora
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloaded
Pietro Libro
.NET & Linux: la strana coppia - DotNetDay 2018
.NET & Linux: la strana coppia - DotNetDay 2018.NET & Linux: la strana coppia - DotNetDay 2018
.NET & Linux: la strana coppia - DotNetDay 2018
Fabrizio Bernabei
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
DotNetCampus

.NET Core, ASP.NET Core e Linux per il Mobile

  • 1. .NET Core e Linux per il Mobile Pietro Libro ROME 24-25 MARCH 2017
  • 2. About me Senior Software Engineer Systems Test Development Project Leader for Factory 4.0 MES http://www.gfms.com/country_CH/ LinkedIn: https://www.linkedin.com/in/pietrolibro/ Blog: http://blogs.ugidotnet.org/PietroLibroBlog DomusDotNet: http://www.domusdotnet.org/
  • 3. Agenda .NET Core .NET Core: Linux ASP.NET Core Deployment, 2 scenari Microsoft Azure App Service Amazon Linux Virtual Machine Client: Xamarin Android Question Time
  • 4. .NET Core Piattaforma Cross-Platform, gestita da Microsoft e Community GitHub Windows, Linux, macOS, IoT, embedded, cloud etc.. Q Distribuzione Flessibile Riga di comando Versione Cross-Platform del .NET Framework (al livello di BCL) Fornisce subset di API disponibili in .NET Framework, Xamarin/Mono Implementa le specifiche .NET Standard Library Open Source: Licenza MIT e APACHE 2, documentazione tramite CC-BY Supportato da Microsoft
  • 5. .NET Core Linguaggi supportati: C# e F# Di base un singolo modello di applicazione 束Console Apps損(testo), su cui sono stati costruiti modelli aggiuntivi: ASP.NET Core (parleremo oggi) Piattaforma UWP (Universal Windows Platform) per Windows 10 Xamarin.Forms Composto da: Microsoft .NET Core Runtime Framework libraries Microsoft .NET Core SDK Per iniziare .NET 束app host損 -> .NET Core Apps Altre versioni, pre-release: https://tinyurl.com/zd6lmla .NET Core Installation Guide: https://tinyurl.com/hurwe8f Per le Demo: Sviluppo: .NET Core 1.1.1 con SDK 1.0.1 del 2017.03.07 (VS 2017)
  • 7. .NET Core: Linux Versioni minime supportate (https://tinyurl.com/hurwe8f): Red Hat Enterprise Linux 7 Server Ubuntu 14.04, 16.04 e Linux Mint 17 Debian 8.x Fedora 23 CentOS 7.1 & Oracle Linux 7.1 openSUSE 13.2 Distribuzione demo: Debian 8.7.1 su Hyper-V Download iso: https://tinyurl.com/26plvas Installazione e prima applicazione .NET Core in soli 3 steps!
  • 8. ASP.NET Core Modello di applicazione Web-Oriented Composto da moduli con minimo overhead e massima flessibilit nella 束costruzione損 della propria applicazione Astrazione tramite interface Non piu basato su System.Web.dll Basato su package NuGet da includere secondo le necessit Principali vantaggi: Integrazione dei framework lato client (Grunt, Gulp, Knockout etc.) HTTP (Request) pipeline leggera e modulare Host in IIS o in un proprio processo Built-in Dependency Injection Unico path per Web UI (MVC) e Web APIs (RESTful applications) Per iniziare: ASP.NET Core Getting Started: https://www.asp.net/core
  • 9. Demo 束.NET Core & ASP.NET Core App損
  • 10. ASP.NET Core ASP.NET 束Core App損 竪 una 束Console App損 con Web Server nel 束Main損 Kestrel, cross-platform Web Server per ASP.NET Core basato su libuv Libuv, cross-platform async I/O library: https://tinyurl.com/k2hdq7y Possono essere utilizzati altri Web Server: https://tinyurl.com/hz6njyj 束Startup損 class Configurazione Request Pipeline: Configure (Middleware) Static File Authentication Routing Configurazione Servizi: ConfigureServices (Dependeny Injection) ASP.NET MVC Core Entity Framework Core Identity
  • 11. ASP.NET Core: Pipeline Middleware: https://tinyurl.com/zo79fty
  • 13. Deployment Due possibili scenari: Continuous Deployment su Azure: Creazione Account su Azure (anche Trial) Configurazione Azure Service App Configurazione Git Repository Configurazione Visual Studio Code Docs: https://tinyurl.com/zbybrnk Deployment su Linux Virtual Machine (Ubuntu Server 14.04, Amazon) Creazione Account su Amazon Web Service (anche Trial) Configurazione Putty Installazione .NET Core runtime Configurazione HTTP Reverse Proxy (nginx) Configurazione Filezilla (o script automatico) Ambienti 束confezionati損 per la Demo per esigenze temporali
  • 14. Demo Pubblicazione su 束Azure App Service損 e 束Amazon Linux Virtual Machine損
  • 15. Client: Xamarin Android Applicazione Xamarin Android in Visual Studio 2017
  • 16. Demo 束CM Blog Api Client損 (Xamarin Android Client)
  • 17. Toolbox Visual Studio Code Editor potente e flessibile eseguibile in ambiente Windows, macOS, Linux Download: https://code.visualstudio.com/ Estensibile e Personalizzabile, GIT built-in, IntelliSense, Debugging Entity-Framework Core (O/RM) Leggero, Estensibile Cross-Platform MSSQL, SQLite, DB2, MySQL, SQL Server Compact, PostgreSQL, InMemory Code First, DB-First https://tinyurl.com/jcha2p6 NGINX: HTTP e Reverse Proxy Server - https://nginx.org/en/ Putty: SSH e TelNet client - http://www.putty.org/ Filezilla: https://filezilla-project.org/ Microsoft Azure: Piattaforma e Servizi di Cloud Computing https://portal.azure.com f Amazon Web Services: Piattaforma e Servizi di Cloud Computing https://aws.amazon.com
  • 19. Entity Framework (EF) Core Paragone con il 束fratello maggiore損: https://docs.microsoft.com/en-us/ef/efcore-and-ef6/ Install-Package Microsoft.EntityFrameworkCore.Sqlite Aggiunta EF Tools per gestione database Install-Package Microsoft.EntityFrameworkCore.Tools -Version 1.1.0-msbuild3-final Nella demo creiamo un DB partendo dal codice E ovviamente anche possibile partire da un database esistente dal quale estrarre il modello: https://docs.microsoft.com/en-us/ef/core/get- started/aspnetcore/existing-db
  • 20. Entity Framework (EF) Core EF Core 竪 un O/RM Leggero Estensibile Cross-platform Supporto a: MSSQL, SQLite, DB2, MySQL, SQL Server Compact, PostgreSQL, InMemory, MyCate custom Docs ed esempi: https://docs.microsoft.com/en-us/ef/ Aggiunta EF Core per SQLite al progetto Install-Package Microsoft.EntityFrameworkCore.Sqlite Aggiunta EF Tools per gestione database Install-Package Microsoft.EntityFrameworkCore.Tools -Version 1.1.0-msbuild3-final