Anúncio
Anúncio

Mais conteúdo relacionado

Apresentações para você(19)

Anúncio
Anúncio

.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)
  6. .NET Core
  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
  12. Demo «CodeMotion2017 Blog Api»
  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
  18. Question Time
  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
Anúncio