SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Xamarin Interactive Workbooks
Nicolò Carandini
n.carandini@outlook.com
@TPCWare
A new kid in town
Interactive Workbook è una novità (ancora in beta) presentata da Xamarin
durante l’ultima //Build e Xamarin Evolve 2016
REPL (Read – Eval – Print Loop)
READ
EVALPRINT
Code
Compile
Execute
Programmi REPL per i Sistemi Operativi
Il più semplice esempio di REPL è il command.com come pure lo sono tutte le
shell (PowerShell, Bash, …)
Visual Studio – REPL tools
Mathematica
Un noto esempio di successo di programma REPL è senz’altro Mathematica:
A cosa serve?
Ogni piattaforma ha le sue librerie, e con i Workbook è possibile studiarle e
sperimentare in modo interattivo.
Phone
Device
Xbox
Device
Desktop
Device
Windows Core
Universal Windows Platform
Windows App
Phone
extension
Xbox
extension
Desktop
extension
Cocoa Touch
UIKitFramework
Core OS Layer
BT | External |Accelerator
Core Service Layer
iCloud | SQLite | Core Data
Media Layer
Graphic | Audio | Video
Installazione
Installazione
Vi sono due versioni, una per Mac e una per Windows
Creare un Workbook
A seconda della versione (per Windows o per Mac) sono disponibili diversi tipi
di Workbook:
Struttura di un Workbook
Un Workbook è formato da una successione di celle, le quali possono
contenere o del testo (internamente registrato con la codifica Markdown) o del
codice.
Cella 1
Markdown
Cella 2
Code
Cella 3
Code
Workbook Cell
Una singola unità di contenuto, che può essere di tipo testo (Markdown) o
codice eseguibile.
Una cella è formata da quattro parti:
• Editor e relativo Buffer
• Compiler Diagnostics
• Console Output
• Execution Results
Cell Editor e Buffer
Text Editor
E’ un rich-text content editor con una
toolbar di editing e formattazione che
si adatta al contesto (testo selezionato)
Code Editor
• E’ l’effettivo code editor con le
funzionalità di syntax highlighting,
etc.
Buffer
• E’ l’attuale contenuto testuale
dell’editor.
Cell Compiler Diagnostics
Ogni messaggio di diagnostica prodotta durante la compilazione del codice
viene mostrata direttamente sotto il Cell Editor quando viene effettuata la
richiesta di esecuzione del codice.
Cell Console Output
Ogni scrittura che viene effettuata in standard out durante l’esecuzione del
codice di una cella viene mostrato in nero sotto la cella stessa, mentre quello
diretto verso error out verrà mostrato in rosso.
Cell Execution Results
A seguito di una compilazione andata a buon fine, viene mostrata una ricca e
spesso interattiva vista del risultato.
Le eccezioni (non gli errori di compilazione!) sono considerate comunque come
risultato, poiché sono il risultato dell’esecuzione del codice compilato.
Code Cell Editor Keyboard Shortcuts
Ci sono quattro shortcut disponibili per le celle che contengono codice:
• Return
• Command-Return (Mac) / Control-Return (Win)
• Command-Shift-Return (Mac) / Control-Shift-Return (Win)
• Shift-Return
Code Cell Editor Keyboard Shortcuts
Return
Se il cursore è alla fine del buffer e la cella può essere compilata senza errori, il codice in essa
contenuto verrà eseguito e il risultato mostrato sotto il buffer, e una nuova cella di codice
verrà inserita dopo la cella corrente.
If parsing is not successful, a new line will be inserted into the buffer. Compiler diagnostics
will not be produced if parsing is not successful.
Command-Return (Mac) / Control-Return (Win)
Cerca di compilare ed eseguire la cella. Se la compilazione è valida, I risultati (incluse le
eventuali eccezioni sollevate) verranno mostrati sotto il buffer, e se non vi sono celle
seguenti, una nuova cella viene create.
Se ci sono errori di compilazione, la diagnostica verrà mostrata e il buffer rimarrà attivo con
la posizione del cursore invariata.
Code Cell Editor Keyboard Shortcuts
Command-Shift-Return (Mac) / Control-Shift-Return (Win)
Inserisce una nuova cella di testo (Markdown) dopo la cella corrente.
Shift-Return
Inserisce sempre una nuova linea, indipendentemente dalla posizione del
cursore.
Markdown Cell Editor Keyboard Shortcuts
Ci sono tre shortcut disponibili per le celle che contengono codice:
• Return
• Command-Return (Mac) / Control-Return (Win)
• Shift-Return
Code Cell Editor Keyboard Shortcuts
Return
Il Return produce differenti risultati sulla base del contenuto di testo
(Markdown) in cui si trova il cursore:
• Se il cursore si trova in un blocco di codice Markdown, una “new line” viene
inserita.
• Se il cursore si trova in una blocco Markdown di tipo lista, viene creato un
nuovo “list item” viene diviso il corrente “list item”.
• Se il cursore si trova in qualsiasi altro tipo di blocco Markdown, viene creato
un nuovo “paragraph block ” o viene diviso il blocco corrente.
Code Cell Editor Keyboard Shortcuts
Command-Return (Mac) / Control-Return (Win)
Inserisce una nuova cella di codice dopo la cella corrente.
Shift-Return
Inserisce un “hard line break” all’interno del corrente blocco Markdown.
Demo
Take away
• Xamarin Interactive Workbook è facile da usare.
• Consente di studiare le librerie delle diverse piattaforme sperimentando in
modo interattivo.
• Offre un ottimo strumento di documentazione.
• Consente la creazione di documenti molto utili anche per insegnare o
dimostrare l’uso di una o più librerie.
WARNING: E’ ancora in beta, brutte cose possono accadere… ☺
Question time

Contenu connexe

Similaire à Xamarin Interactive Workbooks

AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreManuel Scapolan
 
Capitolo 2 elementi di programmazione in vba
Capitolo 2   elementi di programmazione in vbaCapitolo 2   elementi di programmazione in vba
Capitolo 2 elementi di programmazione in vbaGiovanni Della Lunga
 
Attacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowAttacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowGiacomo Antonino Fazio
 
Virtualizzazione
VirtualizzazioneVirtualizzazione
VirtualizzazioneLuca Giusti
 
Analizzatori di programmi in C
Analizzatori di programmi in CAnalizzatori di programmi in C
Analizzatori di programmi in CBoymix81
 
Linguaggio V.B.A.
Linguaggio V.B.A.Linguaggio V.B.A.
Linguaggio V.B.A.Agabiti25
 
[BASH] Shell Scripting [ITA]
[BASH] Shell Scripting [ITA][BASH] Shell Scripting [ITA]
[BASH] Shell Scripting [ITA]Matteo Collica
 
TYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàTYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàRoberto Torresani
 
Progettazione di un braccio robotico basato su piattaforma Arduino per la scr...
Progettazione di un braccio robotico basato su piattaforma Arduino per la scr...Progettazione di un braccio robotico basato su piattaforma Arduino per la scr...
Progettazione di un braccio robotico basato su piattaforma Arduino per la scr...LucaMosetti3
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)STELITANO
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Mattia Milleri
 
Guida alla creazione di un indice nell'atto processuale (per Mac e LibreOffice)
Guida alla creazione di un indice nell'atto processuale (per Mac e LibreOffice)Guida alla creazione di un indice nell'atto processuale (per Mac e LibreOffice)
Guida alla creazione di un indice nell'atto processuale (per Mac e LibreOffice)Pietro Calorio
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 

Similaire à Xamarin Interactive Workbooks (20)

AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatore
 
Capitolo 2 elementi di programmazione in vba
Capitolo 2   elementi di programmazione in vbaCapitolo 2   elementi di programmazione in vba
Capitolo 2 elementi di programmazione in vba
 
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
 
Attacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowAttacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflow
 
Virtualizzazione
VirtualizzazioneVirtualizzazione
Virtualizzazione
 
Da DotNet a DotNetCore
Da DotNet a DotNetCoreDa DotNet a DotNetCore
Da DotNet a DotNetCore
 
Analizzatori di programmi in C
Analizzatori di programmi in CAnalizzatori di programmi in C
Analizzatori di programmi in C
 
Linguaggio V.B.A.
Linguaggio V.B.A.Linguaggio V.B.A.
Linguaggio V.B.A.
 
[BASH] Shell Scripting [ITA]
[BASH] Shell Scripting [ITA][BASH] Shell Scripting [ITA]
[BASH] Shell Scripting [ITA]
 
TYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàTYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le Novità
 
Progettazione di un braccio robotico basato su piattaforma Arduino per la scr...
Progettazione di un braccio robotico basato su piattaforma Arduino per la scr...Progettazione di un braccio robotico basato su piattaforma Arduino per la scr...
Progettazione di un braccio robotico basato su piattaforma Arduino per la scr...
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
Guida alla creazione di un indice nell'atto processuale (per Mac e LibreOffice)
Guida alla creazione di un indice nell'atto processuale (per Mac e LibreOffice)Guida alla creazione di un indice nell'atto processuale (per Mac e LibreOffice)
Guida alla creazione di un indice nell'atto processuale (per Mac e LibreOffice)
 
GNU Linux Programming introduction
GNU Linux Programming introductionGNU Linux Programming introduction
GNU Linux Programming introduction
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
T3 esempio runtime
T3 esempio runtimeT3 esempio runtime
T3 esempio runtime
 
Basta un Click!
Basta un Click!Basta un Click!
Basta un Click!
 
Flow chart
Flow chartFlow chart
Flow chart
 

Plus de Nicolò Carandini

Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteNicolò Carandini
 
The absolute need of Secure Http
The absolute need of Secure HttpThe absolute need of Secure Http
The absolute need of Secure HttpNicolò Carandini
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazorNicolò Carandini
 
Code review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareCode review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareNicolò Carandini
 
The Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyThe Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyNicolò Carandini
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioningNicolò Carandini
 
Mobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinMobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinNicolò Carandini
 
Universal Apps localization and globalization
Universal Apps localization and globalizationUniversal Apps localization and globalization
Universal Apps localization and globalizationNicolò Carandini
 
Applicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaApplicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaNicolò Carandini
 

Plus de Nicolò Carandini (20)

Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
The absolute need of Secure Http
The absolute need of Secure HttpThe absolute need of Secure Http
The absolute need of Secure Http
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
Code review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareCode review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live Share
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
The Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyThe Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure Galaxy
 
Game matching with SignalR
Game matching with SignalRGame matching with SignalR
Game matching with SignalR
 
Swagger loves WebAPI
Swagger loves WebAPISwagger loves WebAPI
Swagger loves WebAPI
 
Xamarin Workbooks
Xamarin WorkbooksXamarin Workbooks
Xamarin Workbooks
 
Swagger per tutti
Swagger per tuttiSwagger per tutti
Swagger per tutti
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioning
 
Intro xamarin forms
Intro xamarin formsIntro xamarin forms
Intro xamarin forms
 
Swagger pertutti
Swagger pertuttiSwagger pertutti
Swagger pertutti
 
Windows 10 design
Windows 10 designWindows 10 design
Windows 10 design
 
Windows 10 IoT
Windows 10 IoTWindows 10 IoT
Windows 10 IoT
 
Mobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinMobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con Xamarin
 
Universal Apps localization and globalization
Universal Apps localization and globalizationUniversal Apps localization and globalization
Universal Apps localization and globalization
 
Applicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaApplicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e Katana
 

Xamarin Interactive Workbooks

  • 1.
  • 2. Xamarin Interactive Workbooks Nicolò Carandini n.carandini@outlook.com @TPCWare
  • 3. A new kid in town Interactive Workbook è una novità (ancora in beta) presentata da Xamarin durante l’ultima //Build e Xamarin Evolve 2016
  • 4. REPL (Read – Eval – Print Loop) READ EVALPRINT Code Compile Execute
  • 5. Programmi REPL per i Sistemi Operativi Il più semplice esempio di REPL è il command.com come pure lo sono tutte le shell (PowerShell, Bash, …)
  • 6. Visual Studio – REPL tools
  • 7. Mathematica Un noto esempio di successo di programma REPL è senz’altro Mathematica:
  • 8. A cosa serve? Ogni piattaforma ha le sue librerie, e con i Workbook è possibile studiarle e sperimentare in modo interattivo. Phone Device Xbox Device Desktop Device Windows Core Universal Windows Platform Windows App Phone extension Xbox extension Desktop extension Cocoa Touch UIKitFramework Core OS Layer BT | External |Accelerator Core Service Layer iCloud | SQLite | Core Data Media Layer Graphic | Audio | Video
  • 10. Installazione Vi sono due versioni, una per Mac e una per Windows
  • 11. Creare un Workbook A seconda della versione (per Windows o per Mac) sono disponibili diversi tipi di Workbook:
  • 12. Struttura di un Workbook Un Workbook è formato da una successione di celle, le quali possono contenere o del testo (internamente registrato con la codifica Markdown) o del codice. Cella 1 Markdown Cella 2 Code Cella 3 Code
  • 13. Workbook Cell Una singola unità di contenuto, che può essere di tipo testo (Markdown) o codice eseguibile. Una cella è formata da quattro parti: • Editor e relativo Buffer • Compiler Diagnostics • Console Output • Execution Results
  • 14. Cell Editor e Buffer Text Editor E’ un rich-text content editor con una toolbar di editing e formattazione che si adatta al contesto (testo selezionato) Code Editor • E’ l’effettivo code editor con le funzionalità di syntax highlighting, etc. Buffer • E’ l’attuale contenuto testuale dell’editor.
  • 15. Cell Compiler Diagnostics Ogni messaggio di diagnostica prodotta durante la compilazione del codice viene mostrata direttamente sotto il Cell Editor quando viene effettuata la richiesta di esecuzione del codice.
  • 16. Cell Console Output Ogni scrittura che viene effettuata in standard out durante l’esecuzione del codice di una cella viene mostrato in nero sotto la cella stessa, mentre quello diretto verso error out verrà mostrato in rosso.
  • 17. Cell Execution Results A seguito di una compilazione andata a buon fine, viene mostrata una ricca e spesso interattiva vista del risultato. Le eccezioni (non gli errori di compilazione!) sono considerate comunque come risultato, poiché sono il risultato dell’esecuzione del codice compilato.
  • 18. Code Cell Editor Keyboard Shortcuts Ci sono quattro shortcut disponibili per le celle che contengono codice: • Return • Command-Return (Mac) / Control-Return (Win) • Command-Shift-Return (Mac) / Control-Shift-Return (Win) • Shift-Return
  • 19. Code Cell Editor Keyboard Shortcuts Return Se il cursore è alla fine del buffer e la cella può essere compilata senza errori, il codice in essa contenuto verrà eseguito e il risultato mostrato sotto il buffer, e una nuova cella di codice verrà inserita dopo la cella corrente. If parsing is not successful, a new line will be inserted into the buffer. Compiler diagnostics will not be produced if parsing is not successful. Command-Return (Mac) / Control-Return (Win) Cerca di compilare ed eseguire la cella. Se la compilazione è valida, I risultati (incluse le eventuali eccezioni sollevate) verranno mostrati sotto il buffer, e se non vi sono celle seguenti, una nuova cella viene create. Se ci sono errori di compilazione, la diagnostica verrà mostrata e il buffer rimarrà attivo con la posizione del cursore invariata.
  • 20. Code Cell Editor Keyboard Shortcuts Command-Shift-Return (Mac) / Control-Shift-Return (Win) Inserisce una nuova cella di testo (Markdown) dopo la cella corrente. Shift-Return Inserisce sempre una nuova linea, indipendentemente dalla posizione del cursore.
  • 21. Markdown Cell Editor Keyboard Shortcuts Ci sono tre shortcut disponibili per le celle che contengono codice: • Return • Command-Return (Mac) / Control-Return (Win) • Shift-Return
  • 22. Code Cell Editor Keyboard Shortcuts Return Il Return produce differenti risultati sulla base del contenuto di testo (Markdown) in cui si trova il cursore: • Se il cursore si trova in un blocco di codice Markdown, una “new line” viene inserita. • Se il cursore si trova in una blocco Markdown di tipo lista, viene creato un nuovo “list item” viene diviso il corrente “list item”. • Se il cursore si trova in qualsiasi altro tipo di blocco Markdown, viene creato un nuovo “paragraph block ” o viene diviso il blocco corrente.
  • 23. Code Cell Editor Keyboard Shortcuts Command-Return (Mac) / Control-Return (Win) Inserisce una nuova cella di codice dopo la cella corrente. Shift-Return Inserisce un “hard line break” all’interno del corrente blocco Markdown.
  • 24. Demo
  • 25. Take away • Xamarin Interactive Workbook è facile da usare. • Consente di studiare le librerie delle diverse piattaforme sperimentando in modo interattivo. • Offre un ottimo strumento di documentazione. • Consente la creazione di documenti molto utili anche per insegnare o dimostrare l’uso di una o più librerie. WARNING: E’ ancora in beta, brutte cose possono accadere… ☺