ASP.NET Core è il nuovo framework open-source e cross-platform per la creazione di applicazioni Cloud, Web, IoT e Backend per applicazioni mobili composto da elementi modulari che permettono di avere la massima flessibilità e il minimo overhead. Come sfruttare tutti questi pregi, per creare un servizio web da pubblicare nel Cloud e consumabile da un'applicazione Android ? Lo scopriremo insieme durante la sessione.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome 2017
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
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
• …
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