SlideShare una empresa de Scribd logo
1 de 20
.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, MyCat…e 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

Más contenido relacionado

La actualidad más candente

festival ICT 2013: Windows Server 2012 R2: Ottimizzare l’infrastruttura con H...
festival ICT 2013: Windows Server 2012 R2: Ottimizzare l’infrastruttura con H...festival ICT 2013: Windows Server 2012 R2: Ottimizzare l’infrastruttura con H...
festival ICT 2013: Windows Server 2012 R2: Ottimizzare l’infrastruttura 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 arrivatiAndrea 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
 
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeDotNetMarche
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETStefano 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 DomusDotNetGaetano Paternò
 
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreAndrea 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 @ CD2010Mauro 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/IISpietrobr
 
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 GrecoGiuneco S.r.l
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimizationAndrea 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 MVVMCodemotion
 

La actualidad más candente (19)

festival ICT 2013: Windows Server 2012 R2: Ottimizzare l’infrastruttura con H...
festival ICT 2013: Windows Server 2012 R2: Ottimizzare l’infrastruttura con H...festival ICT 2013: Windows Server 2012 R2: Ottimizzare l’infrastruttura con H...
festival ICT 2013: Windows Server 2012 R2: Ottimizzare l’infrastruttura con H...
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
 
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
 
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
 
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...
 
Tutto su ASP.NET Identity
Tutto su ASP.NET IdentityTutto su ASP.NET Identity
Tutto su ASP.NET Identity
 
Unofficial Xamarin Day DomusDotNet
Unofficial Xamarin Day DomusDotNetUnofficial Xamarin Day DomusDotNet
Unofficial Xamarin Day DomusDotNet
 
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET Core
 
Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
 
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...
 
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)
 
Ottimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISOttimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IIS
 
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
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
 
Web api 2.0
Web api 2.0Web api 2.0
Web api 2.0
 
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
 

Destacado (15)

Introduzione ai Coded UI Tests
Introduzione ai Coded UI TestsIntroduzione ai Coded UI Tests
Introduzione ai Coded UI Tests
 
#Nanocristalización #84minerales #controllinnerseal para pavimentos de #Horm...
#Nanocristalización #84minerales  #controllinnerseal para pavimentos de #Horm...#Nanocristalización #84minerales  #controllinnerseal para pavimentos de #Horm...
#Nanocristalización #84minerales #controllinnerseal para pavimentos de #Horm...
 
Private Actors
Private ActorsPrivate Actors
Private Actors
 
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
 
Introduction to MongoDB with Sitecore
Introduction to MongoDB with SitecoreIntroduction to MongoDB with Sitecore
Introduction to MongoDB with Sitecore
 
Architecting Reality IAS 2015
Architecting Reality IAS 2015Architecting Reality IAS 2015
Architecting Reality IAS 2015
 
NGEO – OpenLayers meets Angular
NGEO – OpenLayers meets AngularNGEO – OpenLayers meets Angular
NGEO – OpenLayers meets Angular
 
Dimex German uPVC Windows & Doors Systems
Dimex German uPVC Windows & Doors SystemsDimex German uPVC Windows & Doors Systems
Dimex German uPVC Windows & Doors Systems
 
Dal gusto
Dal gusto Dal gusto
Dal gusto
 
Media sosial dan relationship
Media sosial dan relationshipMedia sosial dan relationship
Media sosial dan relationship
 
Cartes OACI
Cartes OACICartes OACI
Cartes OACI
 
Effective safety committee operations
Effective safety committee operationsEffective safety committee operations
Effective safety committee operations
 
5ª aula
5ª aula5ª aula
5ª aula
 
6 Panel Comic Book Page
6 Panel Comic Book Page6 Panel Comic Book Page
6 Panel Comic Book Page
 
Bpifrance - Résultats 2016
Bpifrance - Résultats 2016Bpifrance - Résultats 2016
Bpifrance - Résultats 2016
 

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

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
 
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-2013Luca Zulian
 
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNukeMassimo 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 webAndrea Dottor
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Romualdo Gobbo
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele 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 cloudDavide 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 AJAXTommaso 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 5Andrea Dottor
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio CodeRoberto Messora
 
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloadedPietro 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 2018Fabrizio 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
 

Similar a .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
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
 
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
 
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
 
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNuke
 
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
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
 
ASP.NET Core essentials
ASP.NET Core essentialsASP.NET Core essentials
ASP.NET Core essentials
 
XeDotNet - .Net MAUI
XeDotNet - .Net MAUIXeDotNet - .Net MAUI
XeDotNet - .Net MAUI
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - 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
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
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
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloaded
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
.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
 
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...
 

.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, MyCat…e 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