SlideShare a Scribd company logo
1 of 18
Introduzione a
.NET CORE
Antonio Di Motta
Chi sono
Mi chiamo Antonio Di Motta e sono un software architect, mi occupo della
progettazione e sviluppo di progetti software complessi nel campo dei trasporti,
industria e media.
github.com/antdimot
twitter.com/dimotta
Che cos’è .Net
.NET è una piattaforma di sviluppo general purpose che può essere utilizzato per creare
qualsiasi tipo di applicazione e diversi carichi di lavoro. Di base fornisce funzionalità
interessanti per molti sviluppatori, tra cui la gestione automatica della memoria e
linguaggi di programmazione moderni, che rendono più facile costruire in modo
efficiente applicazioni di alta qualità.
Common Language Runtime (CLR)
Servizi comuni per tutti per i linguaggi supportati (Type System, inheritance, generics,
interfaces, overloading for object-oriented programming, Async Programming, Threading,
Structured Exception Handling, Attributes, Garbage Collection, Delegates);
Intermediate Language (IL)
Common Language Specifications (CLS)
Base Class Library
Insieme di tipi (System.Object, System.Int32, System.String, System.IO.*, …) comuni.
Il linguaggio C#
C# è un linguaggio di programmazione semplice, moderno,
general-purpose e object-oriented.
• Molto popolare (http://stackoverflow.com/insights/survey/2017#most-
popular-technologies);
• Adatto per mobile, web, cloud, desktop, gaming, and IoT;
• Supporto async patterns;
• Language integrated queries (Linq);
• Automatic memory management;
• Sintassi familiare per Java & C-style devs.
E’ una organizzazione no profit, nata con lo scopo di migliorare/accelerare lo sviluppo e
la collaborazione di progetti open-source su .Net Framework.
.Net Foundation
.Net Architettura
.Net Standard Library
E’ un insieme di API implementata da un .Net runtime;
E’ implementa in base ad una specifica versione di .Net Standard (attualmente dalla 1.0
alla1.6);
Rappresenta il contratto d un runtime;
Permette la portabilità di una applicazione tra diversi runtime;
Se una applicazione è sviluppata per una determinata versione di .Net Standard allora è
garantito che funzionerà con qualsiasi runtime che supporta quella versione.
.Net Standard
E’ una specifica formale di API .Net che devono essere disponibili per .Net runtime;
Un .Net runtime che supporta una specifica versione di .Net Standard supporta anche le precedenti
versioni.
Che cos’è .Net Core
.NET Core è una piattaforma di sviluppo general purpose gestita da Microsoft e dalla
community .NET su GitHub. È multipiattaforma, supporta Windows, macOS e Linux e può
essere usata su dispositivi, ambienti cloud e scenari IoT.
Distribuzione flessibile: può essere incluso nell'app o installato side-by-side a livello di
computer o di utente.
Multipiattaforma: viene eseguito in Windows, macOS e Linux e può essere portato in altri
sistemi operativi. Le CPU, gli scenari applicativi e i sistemi operativi supportati aumenteranno
nel tempo e saranno rilasciati da Microsoft, altre società e singoli utenti.
Strumenti da riga di comando: tutti gli scenari di prodotto possono essere usati dalla riga di
comando.
Compatibile: .NET Core è compatibile con .NET Framework, Xamarin e Mono, tramite la
libreria .NET Standard.
Open source: la piattaforma .NET Core è open source e usa le licenze MIT e Apache 2. La
documentazione è concessa in licenza da CC-BY. .NET Core è un progetto .NET Foundation.
Scegliere tra .Net Core e .Net Framework
per le applicazioni server
Dovresti scegliere .NET Core per le tue applicazioni server quando:
•Hai la necessità di applicazioni cross-platform;
•Devi realizzare microservices;
•Devi utilizzare Docker containers;
•Hai la necessità di realizzare sistemi molto performanti e scalabili;
Dovresti scegliere .NET Framework per le tue applicazioni server quando:
•Se già stai usando .NET Framework (meglio estendere che migrare);
•Se stai già usando librerie .NET di terze parti non disponibili per .NET Core;
•Hai bisogno di usare tecnologie .NET che non sono disponibili per .NET Core;
•Hai bisogni di usare una piattaforma non supportata da .NET Core.
.Net Core – Linux downloads
Script di installazione:
./dotnet-install.sh
./dotnet-install.sh --shared-runtime
Installazione per macOS
Solo per macOS 10.11+ (64bit)
1) Installazione dei prerequisiti (tramite homebrew):
$ brew update
$ brew install openssl
$ mkdir -p /usr/local/lib
$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib $ /usr/local/lib/
$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
2) Download e installazione:
dotnet-dev-osx-x64.1.0.1.pkg
Docker + .Net Core
1) Installare Docker
2) Eseguire un container utilizzando una immagine dotnet
$ docker run -it microsoft/dotnet:latest
Command Line Tools
Demo CLI
Uso avanzato di CLI
Esempio:
$ mkdir testexample
$ dotnet new sln
$ dotnet new classlib -n mylibrary -o mylibrary
$ dotnet new xunit -n mytests -o mytests
$ dotnet sln add mylibrarymylibrary.csproj
$ dotnet sln add mytestsmytests.csproj
$ cd mytests
$ dotnet add reference ..mylibrarymylibrary.csproj
$ cd ..
$ dotnet restore
$ cd mytests & dotnet test
chess-movement-validator
Un motore di validazione degli spostamenti di pezzi sulla scacchiera.
https://github.com/antdimot/chess-movement-validator
Demo
chess-movement-validator

More Related Content

What's hot

What's hot (20)

DevOps - Come diventare un buon DevOpper
DevOps -  Come diventare un buon DevOpperDevOps -  Come diventare un buon DevOpper
DevOps - Come diventare un buon DevOpper
 
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
 
Docker
Docker Docker
Docker
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
 
Introduzione A Docker
Introduzione A DockerIntroduzione A Docker
Introduzione A Docker
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
 
Introduzione pratica a docker, da chi lo ha appena conosciuto
Introduzione pratica a docker, da chi lo ha appena conosciutoIntroduzione pratica a docker, da chi lo ha appena conosciuto
Introduzione pratica a docker, da chi lo ha appena conosciuto
 
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
 
.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
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
ASP.NET AND Azure Function
ASP.NET AND Azure FunctionASP.NET AND Azure Function
ASP.NET AND Azure Function
 
Introduzione a docker
Introduzione a dockerIntroduzione a docker
Introduzione a docker
 
Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!
 
Anatomia di un progetto open-source
Anatomia di un progetto open-sourceAnatomia di un progetto open-source
Anatomia di un progetto open-source
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
Open vs Proprietary software
Open vs Proprietary softwareOpen vs Proprietary software
Open vs Proprietary software
 
La rivoluzione dei Microservizi
La rivoluzione dei MicroserviziLa rivoluzione dei Microservizi
La rivoluzione dei Microservizi
 

Similar to Introduzione a .Net Core

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
 
Sviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinSviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarin
Fabio Cozzolino
 

Similar to Introduzione a .Net Core (20)

Da DotNet a DotNetCore
Da DotNet a DotNetCoreDa DotNet a DotNetCore
Da DotNet a DotNetCore
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 
Webinar porting e ottimizzazione per x86
Webinar   porting e ottimizzazione per x86Webinar   porting e ottimizzazione per x86
Webinar porting e ottimizzazione per x86
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e Docker
 
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
 
Che cosa è il Qt Framework
Che cosa è il Qt FrameworkChe cosa è il Qt Framework
Che cosa è il Qt Framework
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)
 
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
 
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
 
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxDocker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
 
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...
 
Linux nelle PMI
Linux nelle PMILinux nelle PMI
Linux nelle PMI
 
Sviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinSviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarin
 
Linux
LinuxLinux
Linux
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobili
 
Meetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e KubernetesMeetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e Kubernetes
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 

Introduzione a .Net Core

  • 2. Chi sono Mi chiamo Antonio Di Motta e sono un software architect, mi occupo della progettazione e sviluppo di progetti software complessi nel campo dei trasporti, industria e media. github.com/antdimot twitter.com/dimotta
  • 3. Che cos’è .Net .NET è una piattaforma di sviluppo general purpose che può essere utilizzato per creare qualsiasi tipo di applicazione e diversi carichi di lavoro. Di base fornisce funzionalità interessanti per molti sviluppatori, tra cui la gestione automatica della memoria e linguaggi di programmazione moderni, che rendono più facile costruire in modo efficiente applicazioni di alta qualità. Common Language Runtime (CLR) Servizi comuni per tutti per i linguaggi supportati (Type System, inheritance, generics, interfaces, overloading for object-oriented programming, Async Programming, Threading, Structured Exception Handling, Attributes, Garbage Collection, Delegates); Intermediate Language (IL) Common Language Specifications (CLS) Base Class Library Insieme di tipi (System.Object, System.Int32, System.String, System.IO.*, …) comuni.
  • 4. Il linguaggio C# C# è un linguaggio di programmazione semplice, moderno, general-purpose e object-oriented. • Molto popolare (http://stackoverflow.com/insights/survey/2017#most- popular-technologies); • Adatto per mobile, web, cloud, desktop, gaming, and IoT; • Supporto async patterns; • Language integrated queries (Linq); • Automatic memory management; • Sintassi familiare per Java & C-style devs.
  • 5. E’ una organizzazione no profit, nata con lo scopo di migliorare/accelerare lo sviluppo e la collaborazione di progetti open-source su .Net Framework. .Net Foundation
  • 7. .Net Standard Library E’ un insieme di API implementata da un .Net runtime; E’ implementa in base ad una specifica versione di .Net Standard (attualmente dalla 1.0 alla1.6); Rappresenta il contratto d un runtime; Permette la portabilità di una applicazione tra diversi runtime; Se una applicazione è sviluppata per una determinata versione di .Net Standard allora è garantito che funzionerà con qualsiasi runtime che supporta quella versione.
  • 8. .Net Standard E’ una specifica formale di API .Net che devono essere disponibili per .Net runtime; Un .Net runtime che supporta una specifica versione di .Net Standard supporta anche le precedenti versioni.
  • 9. Che cos’è .Net Core .NET Core è una piattaforma di sviluppo general purpose gestita da Microsoft e dalla community .NET su GitHub. È multipiattaforma, supporta Windows, macOS e Linux e può essere usata su dispositivi, ambienti cloud e scenari IoT. Distribuzione flessibile: può essere incluso nell'app o installato side-by-side a livello di computer o di utente. Multipiattaforma: viene eseguito in Windows, macOS e Linux e può essere portato in altri sistemi operativi. Le CPU, gli scenari applicativi e i sistemi operativi supportati aumenteranno nel tempo e saranno rilasciati da Microsoft, altre società e singoli utenti. Strumenti da riga di comando: tutti gli scenari di prodotto possono essere usati dalla riga di comando. Compatibile: .NET Core è compatibile con .NET Framework, Xamarin e Mono, tramite la libreria .NET Standard. Open source: la piattaforma .NET Core è open source e usa le licenze MIT e Apache 2. La documentazione è concessa in licenza da CC-BY. .NET Core è un progetto .NET Foundation.
  • 10. Scegliere tra .Net Core e .Net Framework per le applicazioni server Dovresti scegliere .NET Core per le tue applicazioni server quando: •Hai la necessità di applicazioni cross-platform; •Devi realizzare microservices; •Devi utilizzare Docker containers; •Hai la necessità di realizzare sistemi molto performanti e scalabili; Dovresti scegliere .NET Framework per le tue applicazioni server quando: •Se già stai usando .NET Framework (meglio estendere che migrare); •Se stai già usando librerie .NET di terze parti non disponibili per .NET Core; •Hai bisogno di usare tecnologie .NET che non sono disponibili per .NET Core; •Hai bisogni di usare una piattaforma non supportata da .NET Core.
  • 11. .Net Core – Linux downloads Script di installazione: ./dotnet-install.sh ./dotnet-install.sh --shared-runtime
  • 12. Installazione per macOS Solo per macOS 10.11+ (64bit) 1) Installazione dei prerequisiti (tramite homebrew): $ brew update $ brew install openssl $ mkdir -p /usr/local/lib $ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib $ /usr/local/lib/ $ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/ 2) Download e installazione: dotnet-dev-osx-x64.1.0.1.pkg
  • 13. Docker + .Net Core 1) Installare Docker 2) Eseguire un container utilizzando una immagine dotnet $ docker run -it microsoft/dotnet:latest
  • 16. Uso avanzato di CLI Esempio: $ mkdir testexample $ dotnet new sln $ dotnet new classlib -n mylibrary -o mylibrary $ dotnet new xunit -n mytests -o mytests $ dotnet sln add mylibrarymylibrary.csproj $ dotnet sln add mytestsmytests.csproj $ cd mytests $ dotnet add reference ..mylibrarymylibrary.csproj $ cd .. $ dotnet restore $ cd mytests & dotnet test
  • 17. chess-movement-validator Un motore di validazione degli spostamenti di pezzi sulla scacchiera. https://github.com/antdimot/chess-movement-validator