SlideShare une entreprise Scribd logo
1  sur  57
Marco Parenzan
4 aprile 2014
SVILUPPARE APPLICAZIONI WEB
(COMPLETAMENTE) ON-LINE
CON VISUAL STUDIO ONLINE "MONACO"
feedback
10
Marco Parenzan
1nn0va
» www.innovazionefvg.net
» @marco_parenzan
» it.linkedin.com/in/marcoparenzan
» www.facebook.com/parenzan.marco
» www.marcoparenzan.it
» www.slideshare.net/marco.parenzan
» github.com/marcoparenzan
» marco [dot] parenzan [at] libero/live [dot] it
Chi sono
 Piattaforma di Cloud Computing di
Microsoft
 È la controparte pubblica della visione
«Cloud OS»
 Tutti i servizi online di Microsoft sono (o
saranno) su Windows Azure
 Quindi anche Visual Studio Online
Windows Azure
 (aka Team Foundation Services)
 Spostare parte della nostra quotidianità di
sviluppatori online
 Team Management
 Source Code Management
 Build Tasks
 Bug Tracking
 E riguardo la scrittura del codice?
 Se Office 365 sta a Office Online (aka
Office Web Apps) e Office (2013 on
Premise), cosa sta tra Visual Studio Online
e Visual Studio (2013 on Premise)?
Visual Studio Online
 È il progetto (ancora agli inizi, ma molto
promettenti) di un ambiente di sviluppo
Web-Based
 Come spesso succede, Microsoft non è
la prima
 Cloud9
 Codeanywhere
 Cloud IDE
 Codenvy
 Ciò che è esclusivo sono la pervasività
ed uniformità , in stile Microsoft
Visual Studio Online «Monaco»
 In Microsoft ci lavora il team di Erich Gamma
 Uno dei personaggi storici della «Gang of Four»
 Entrato in Microsoft nel 2011
 Ci sono «pezzi di Monaco» in diverse
applicazioni web:
 IE F12 Developer Tools
 http://www.typescriptlang.org/Playground/
 http://www.tryfsharp.org/Learn
 http://try.buildwinjs.com/
 OneDrive (quando i files memorizzati hanno estensione .html,
.js e soprattutto .css)
 Mobile Services in Windows Azure
 Source Code Management in VSO
 App for Office by using "Napa" Office 365 Development Tools
Visual Studio Online «Monaco»
IE F12 Source Code Viewer
TypeScript
http://www.typescriptlang.org/Playground/
F#
http://www.tryfsharp.org/Learn/getting-started
OneDrive
Mobile Services in Windows Azure
Source Code Management in VSO
App for Office by using "Napa" Office 365
Development Tools
http://blogs.msdn.com/b/officeapps/archive/2013/08/27/use-napa-office-
365-development-tools-to-build-apps-for-office-and-sharepoint-on-the-
browser.aspx
WinJS
http://try.buildwinjs.com/
The Road to Monaco
 Server uses node.js
 Migrated server to TypeScript once a node.d.ts file
became available
 Client
 migrated to AMD and converted to TypeScript
 Common module syntax enables code
sharing between client and server
Monaco
demo
Monaco in azione con Typescript
Attualmente unica esperienza IDE per «Monaco»
Dal Windows Azure Training Kit
Models for Building and Running Apps
Virtualization
O/S
Hardware
Native Code
Custom Software
Network
Data
Applications
Firewall
Applications
Data
Native Code
Startup Tasks
Applications
Firewall Rules
Data
Virtual Network
Native Code
Custom Software
Virtual Network
Data
Applications
Firewall Rules
O/S
Applications
Data
Auth
Notifications
 “The engine behind git deployments on
Windows Azure”
 Open source
(www.github.com/projectkudu/kudu)
 Provides git deployments
 Provides builds
 Provides sandboxing
 Provides hosting
Project Kudu
Choice of language
Choice of frameworks and languages.
Git TFS
Web
Deploy
FTP
CodePlex,
BitBucket &
GitHub
Supported Publishing Methods
Abilitare «Monaco» nei Web Sites
Abilita
Entra
L’IDE di «Monaco»
NavBar
ToolBar
Activity Bar
L’IDE di «Monaco» [2]
Web Site
Menu
L’IDE di «Monaco» [3]
Configurazione
IDE
SVILUPPARE
APPLICAZIONI WEB
(COMPLETAMENTE)
ON-LINE CON
VISUAL STUDIO
ONLINE "MONACO"
• Rich Editing Experience
Tutti i comandi (F1)
 Quick Open (CTRL+E)
Apertura Rapida (CTRL+E)
CTRL+E
Apri recente (CTRL+Q)
Vai alla riga (CTRL+G)
Trova il simbolo (CTRL+SHIFT+O)
Quick Open + «@»
Quick Open + «@:»
Raggruppato per tipologia
Cerca (CTRL+F) Sostituisci (CTRL+H)
CTRL+F/H
Find all references
Cerca
Cerca
Autocomplete (CTRL+spazio)
Snippet di codice (decisors)
Decisors
Snippet (Template)
Incrementa valori numerici (CTRL+↑)
CTRL+↑
Markdown
Decisors
Snippet (Template)
Open to the Side + markdown preview
 AutoSave
 Format Code
 Upload from menu and Drag & Drop
 iPad Keyboard
Altre caratteristiche dell’editor
SVILUPPARE
APPLICAZIONI WEB
(COMPLETAMENTE)
ON-LINE CON
VISUAL STUDIO
ONLINE "MONACO"
• Controllare tutto dalla Console
 Tutti i comandi di elaborazione
(compilazione, generazione) vengono
dati da riga di comando
 Alcuni comandi:
 Md/mkdir, rd/rmdir, per la creazione delle cartelle
 Dir, cd, per navigare tra le cartelle
 Touch, open, per gestire i files
Console, disco e directory
• È possibile avere una visuale
console del progetto Web
• Si vede il file system con i
contenuti di files e cartelle
• È possibile crere una cartella
md Content
• È possibile spostarsi in una
cartella
cd Content
• È possibile creare un file
touch main.less
• È possibile aprire un file
open main.less
Navigare tra le cartelle
• Se si usa un task runner
come ad esempio
«grunt», la console
viene «bloccata» ed
impedirebbe
l’esecuzione di altri
comandi
• È possibile creare più
console, una per
lanciare grunt e una
per
lanciare i comandi
ordinari
Console Multiple
NuovaConsole
SelettoreConsole
 Tutti i comandi di elaborazione
(compilazione, generazione) vengono
dati da riga di comando
 Alcuni comandi:
 Nuget, per scaricare packages da nuget.org
 Unzip per decomprimere files zip
 Ps, per eseguire script Poweshell
 cUrl,per poter interagire via http con altri siti Web
 Npm, per installare comandi da eseguire in
ambiente node.js
 Git, per interagire con il CVS
Console e comandi
 Nuget è disponibile a riga di comando
 È possibile scaricare i files da nuget.org
(o
 Problemi:
 La carella Content non si copia in radice del
progetto (probabilmente perché siamo in un Web
Site….)
 Il file install.ps1 non si esegue…
 Devo spostare i file a mano…
 …ma spero in questi giorni di chiarirmi le
idee qui in Microsoft….
nuget
 Il nuovo compagno per lo sviluppatore
Web
 Un modello server side
 Tanti nuovi comandi per la console
Node.js
 Node.js è pervasivo in Azure Web Sites
e Monaco
 È un pilastro del Javascript Full Stack
(http://coding.smashingmagazine.com/2
013/11/21/introduction-to-full-stack-
javascript/)
 Molti dei comandi da usare sono
packages di Node
 node-sass=npm install node-sass
 Editor & intellisense experience
Npm in Console
• LESS & SASS sono
disponibili come editor
• SASS si scarica come
package Node
– Web Sites non supportano
Ruby [supportabile solo
con IaaS]
Less & Sass
 Una particolarità (ma nemmeno tanto):
«Monaco» è scritto in Typescript
 Editor & intellisense (best!) experience
 Typescript è un package node (di nuovo:
npm install typescript)
TypeScript
SVILUPPARE
APPLICAZIONI WEB
(COMPLETAMENTE)
ON-LINE CON
VISUAL STUDIO
ONLINE "MONACO"
• Scrivere Codice
 È possibile sviluppare qualsiasi applicazione
ASP.NET
 L’ambiente non è maturo…manca
l’intellisense e tutto l’aiuto cui siamo
abituati in Visual Studio
 …ma è solo una questione di risorse e di
tempo
 Si impara a gestire un .csproj come xml…ed
è la cosa più importante
 msbuild
 La compilazione .NET parte da qui
 Si impara a scrivere file .csproj
 Integrato con il nuovo Build System di Visual Studio
Online
One ASP.NET
SVILUPPARE
APPLICAZIONI WEB
(COMPLETAMENTE)
ON-LINE CON
VISUAL STUDIO
ONLINE "MONACO"
• Controllo del Codice Sorgente
• Un progetto software non
si gestisce senza controllo
di codice sorgente
• Git è lo standard nel
mondo open
• Attualmente è l’unico
protocollo supportato in
«Monaco» (a differenza
dei W/S)
• Git si sposa con gli
standard espressi da
«Monaco» e gli Azure
W/S
Git
• Permette di comparare
i files tra versione in
linea e branch in Git
Comparazione dei files
SVILUPPARE
APPLICAZIONI WEB
(COMPLETAMENTE)
ON-LINE CON
VISUAL STUDIO
ONLINE "MONACO"
• Conclusioni
 Ambiente molto promettente
 Non siamo in un ambiente .NET-centrico
 Decisamente utile per
 Prototyping
 Interventi rapidi
 Training
 Javascript Fullstack
 Soprattutto…un mondo di device
 Da verificare per progetti di classe enterprise (ripeto: è una
questione di tempo)
 E dobbiamo capire quale sarà il nuovo modello di applicazioni Enterprise
 //Build/Universal Apps
 Abbiamo capito che è già diventato pervasivo nelle
soluzioni Microsoft
 La community deve crescere
 Mi aspetto (come per Napa) avere un IDE «Monaco»
indipendente dal Windows Azure (per quel che può avere
senso)
Conclusioni
feedback
10
Marco Parenzan
1nn0va
» www.innovazionefvg.net
» @marco_parenzan
» it.linkedin.com/in/marcoparenzan
» www.facebook.com/parenzan.marco
» www.marcoparenzan.it
» www.slideshare.net/marco.parenzan
» github.com/marcoparenzan
» marco [dot] parenzan [at] libero/live [dot] it
Q&A

Contenu connexe

Tendances

Drush make vs composer
Drush make vs composer Drush make vs composer
Drush make vs composer sparkfabrik
 
Progetto Linux va a scuola - Descrizione tecnica
Progetto Linux va a scuola - Descrizione tecnicaProgetto Linux va a scuola - Descrizione tecnica
Progetto Linux va a scuola - Descrizione tecnicaBergamo Linux Users Group
 
Il tuo sito è più lento del 95% dei siti web
Il tuo sito è più lento del 95% dei siti webIl tuo sito è più lento del 95% dei siti web
Il tuo sito è più lento del 95% dei siti webEnea Overclokk
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScriptRoberto Messora
 
Ecco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidEcco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidFlavius-Florin Harabor
 
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Marco Parenzan
 

Tendances (7)

Drush make vs composer
Drush make vs composer Drush make vs composer
Drush make vs composer
 
Progetto Linux va a scuola - Descrizione tecnica
Progetto Linux va a scuola - Descrizione tecnicaProgetto Linux va a scuola - Descrizione tecnica
Progetto Linux va a scuola - Descrizione tecnica
 
Drush make vs composer
 Drush make vs composer Drush make vs composer
Drush make vs composer
 
Il tuo sito è più lento del 95% dei siti web
Il tuo sito è più lento del 95% dei siti webIl tuo sito è più lento del 95% dei siti web
Il tuo sito è più lento del 95% dei siti web
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Ecco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidEcco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App Android
 
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
 

En vedette

Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Marco Parenzan
 
Predictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoTPredictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoTMarco Parenzan
 
2011.02.18 marco parenzan - modelli di programmazione per le gpu
2011.02.18   marco parenzan - modelli di programmazione per le gpu2011.02.18   marco parenzan - modelli di programmazione per le gpu
2011.02.18 marco parenzan - modelli di programmazione per le gpuMarco Parenzan
 
2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with AzureMarco Parenzan
 
2010.11.19 iniziare con F#
2010.11.19 iniziare con F#2010.11.19 iniziare con F#
2010.11.19 iniziare con F#Marco Parenzan
 
GWAB2014 Italy Microsoft Azure Web Sites
GWAB2014 Italy Microsoft Azure Web SitesGWAB2014 Italy Microsoft Azure Web Sites
GWAB2014 Italy Microsoft Azure Web SitesMarco Parenzan
 
Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014
Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014
Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014Marco Parenzan
 
2012.05.24 sviluppare videogames...
2012.05.24   sviluppare videogames...2012.05.24   sviluppare videogames...
2012.05.24 sviluppare videogames...Marco Parenzan
 
2012.05 28 i supermercati del software e le sartorie del software nel 2012
2012.05 28   i supermercati del software e le sartorie del software nel 20122012.05 28   i supermercati del software e le sartorie del software nel 2012
2012.05 28 i supermercati del software e le sartorie del software nel 2012Marco Parenzan
 
2010 02 26 C# E Vb Language Evolution
2010 02 26   C# E Vb Language Evolution2010 02 26   C# E Vb Language Evolution
2010 02 26 C# E Vb Language EvolutionMarco Parenzan
 
2011.02.18 marco parenzan - case study. conversione di una applicazione for...
2011.02.18   marco parenzan - case study. conversione di una applicazione for...2011.02.18   marco parenzan - case study. conversione di una applicazione for...
2011.02.18 marco parenzan - case study. conversione di una applicazione for...Marco Parenzan
 
2014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 3652014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 365Marco Parenzan
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET CoreMarco Parenzan
 
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaTecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaMarco Parenzan
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game DevelopersMarco Parenzan
 

En vedette (18)

Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
 
Predictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoTPredictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoT
 
2011.02.18 marco parenzan - modelli di programmazione per le gpu
2011.02.18   marco parenzan - modelli di programmazione per le gpu2011.02.18   marco parenzan - modelli di programmazione per le gpu
2011.02.18 marco parenzan - modelli di programmazione per le gpu
 
2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure
 
2010.11.19 iniziare con F#
2010.11.19 iniziare con F#2010.11.19 iniziare con F#
2010.11.19 iniziare con F#
 
GWAB2014 Italy Microsoft Azure Web Sites
GWAB2014 Italy Microsoft Azure Web SitesGWAB2014 Italy Microsoft Azure Web Sites
GWAB2014 Italy Microsoft Azure Web Sites
 
Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014
Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014
Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014
 
2012.05.24 sviluppare videogames...
2012.05.24   sviluppare videogames...2012.05.24   sviluppare videogames...
2012.05.24 sviluppare videogames...
 
2012.05 28 i supermercati del software e le sartorie del software nel 2012
2012.05 28   i supermercati del software e le sartorie del software nel 20122012.05 28   i supermercati del software e le sartorie del software nel 2012
2012.05 28 i supermercati del software e le sartorie del software nel 2012
 
SQL Server Data Tools
SQL Server Data ToolsSQL Server Data Tools
SQL Server Data Tools
 
2010 02 26 C# E Vb Language Evolution
2010 02 26   C# E Vb Language Evolution2010 02 26   C# E Vb Language Evolution
2010 02 26 C# E Vb Language Evolution
 
ITS Boys - Why Cloud?
ITS Boys - Why Cloud?ITS Boys - Why Cloud?
ITS Boys - Why Cloud?
 
2011.02.18 marco parenzan - case study. conversione di una applicazione for...
2011.02.18   marco parenzan - case study. conversione di una applicazione for...2011.02.18   marco parenzan - case study. conversione di una applicazione for...
2011.02.18 marco parenzan - case study. conversione di una applicazione for...
 
2014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 3652014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 365
 
C# Language Evolution
C# Language EvolutionC# Language Evolution
C# Language Evolution
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET Core
 
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaTecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che Cambia
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game Developers
 

Similaire à 2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Studio Online monaco

Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Andrea Carratta
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Meetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure FunctionsMeetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure Functionsdotnetcode
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017Giulio Vian
 
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
 
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open SourceFrancesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open SourceFrancesco Fullone
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio CodeRoberto Messora
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsCommit University
 
Lavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comLavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comSimone Chiaretta
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerLuca Congiu
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker dotnetcode
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Gabriele Gaggi
 
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
 
.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 MobilePietro Libro
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...Codemotion
 

Similaire à 2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Studio Online monaco (20)

Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Meetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure FunctionsMeetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure Functions
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017
 
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
 
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open SourceFrancesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
 
Introduzione a .Net Core
Introduzione a .Net CoreIntroduzione a .Net Core
Introduzione a .Net Core
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step Functions
 
Lavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comLavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.com
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e Docker
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
 
Standard Dev Workflow
Standard Dev WorkflowStandard Dev Workflow
Standard Dev Workflow
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
.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
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
 

Plus de Marco Parenzan

Azure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerAzure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerMarco Parenzan
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxMarco Parenzan
 
Azure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsAzure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsMarco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Marco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .netMarco Parenzan
 
Math with .NET for you and Azure
Math with .NET for you and AzureMath with .NET for you and Azure
Math with .NET for you and AzureMarco Parenzan
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralMarco Parenzan
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogameMarco Parenzan
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Marco Parenzan
 
Anomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETAnomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETMarco Parenzan
 
Deploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsDeploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsMarco Parenzan
 
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetDeep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetMarco Parenzan
 
Anomaly Detection with Azure and .net
Anomaly Detection with Azure and .netAnomaly Detection with Azure and .net
Anomaly Detection with Azure and .netMarco Parenzan
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .netMarco Parenzan
 
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicRunning Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicMarco Parenzan
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTMarco Parenzan
 

Plus de Marco Parenzan (20)

Azure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerAzure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineer
 
Azure Hybrid @ Home
Azure Hybrid @ HomeAzure Hybrid @ Home
Azure Hybrid @ Home
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
 
Azure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsAzure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT Solutions
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .net
 
Math with .NET for you and Azure
Math with .NET for you and AzureMath with .NET for you and Azure
Math with .NET for you and Azure
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT Central
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
 
Anomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETAnomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NET
 
Deploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsDeploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data Solutions
 
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetDeep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnet
 
Azure IoT Central
Azure IoT CentralAzure IoT Central
Azure IoT Central
 
Anomaly Detection with Azure and .net
Anomaly Detection with Azure and .netAnomaly Detection with Azure and .net
Anomaly Detection with Azure and .net
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .net
 
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicRunning Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETT
 

2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Studio Online monaco

  • 1. Marco Parenzan 4 aprile 2014 SVILUPPARE APPLICAZIONI WEB (COMPLETAMENTE) ON-LINE CON VISUAL STUDIO ONLINE "MONACO"
  • 2. feedback 10 Marco Parenzan 1nn0va » www.innovazionefvg.net » @marco_parenzan » it.linkedin.com/in/marcoparenzan » www.facebook.com/parenzan.marco » www.marcoparenzan.it » www.slideshare.net/marco.parenzan » github.com/marcoparenzan » marco [dot] parenzan [at] libero/live [dot] it Chi sono
  • 3.  Piattaforma di Cloud Computing di Microsoft  È la controparte pubblica della visione «Cloud OS»  Tutti i servizi online di Microsoft sono (o saranno) su Windows Azure  Quindi anche Visual Studio Online Windows Azure
  • 4.  (aka Team Foundation Services)  Spostare parte della nostra quotidianità di sviluppatori online  Team Management  Source Code Management  Build Tasks  Bug Tracking  E riguardo la scrittura del codice?  Se Office 365 sta a Office Online (aka Office Web Apps) e Office (2013 on Premise), cosa sta tra Visual Studio Online e Visual Studio (2013 on Premise)? Visual Studio Online
  • 5.  È il progetto (ancora agli inizi, ma molto promettenti) di un ambiente di sviluppo Web-Based  Come spesso succede, Microsoft non è la prima  Cloud9  Codeanywhere  Cloud IDE  Codenvy  Ciò che è esclusivo sono la pervasività ed uniformità , in stile Microsoft Visual Studio Online «Monaco»
  • 6.  In Microsoft ci lavora il team di Erich Gamma  Uno dei personaggi storici della «Gang of Four»  Entrato in Microsoft nel 2011  Ci sono «pezzi di Monaco» in diverse applicazioni web:  IE F12 Developer Tools  http://www.typescriptlang.org/Playground/  http://www.tryfsharp.org/Learn  http://try.buildwinjs.com/  OneDrive (quando i files memorizzati hanno estensione .html, .js e soprattutto .css)  Mobile Services in Windows Azure  Source Code Management in VSO  App for Office by using "Napa" Office 365 Development Tools Visual Studio Online «Monaco»
  • 7. IE F12 Source Code Viewer
  • 11. Mobile Services in Windows Azure
  • 13. App for Office by using "Napa" Office 365 Development Tools http://blogs.msdn.com/b/officeapps/archive/2013/08/27/use-napa-office- 365-development-tools-to-build-apps-for-office-and-sharepoint-on-the- browser.aspx
  • 15. The Road to Monaco
  • 16.  Server uses node.js  Migrated server to TypeScript once a node.d.ts file became available  Client  migrated to AMD and converted to TypeScript  Common module syntax enables code sharing between client and server Monaco
  • 17. demo Monaco in azione con Typescript
  • 18. Attualmente unica esperienza IDE per «Monaco» Dal Windows Azure Training Kit
  • 19. Models for Building and Running Apps Virtualization O/S Hardware Native Code Custom Software Network Data Applications Firewall Applications Data Native Code Startup Tasks Applications Firewall Rules Data Virtual Network Native Code Custom Software Virtual Network Data Applications Firewall Rules O/S Applications Data Auth Notifications
  • 20.  “The engine behind git deployments on Windows Azure”  Open source (www.github.com/projectkudu/kudu)  Provides git deployments  Provides builds  Provides sandboxing  Provides hosting Project Kudu
  • 21. Choice of language Choice of frameworks and languages.
  • 23. Abilitare «Monaco» nei Web Sites Abilita Entra
  • 25. L’IDE di «Monaco» [2] Web Site Menu
  • 26. L’IDE di «Monaco» [3] Configurazione IDE
  • 27. SVILUPPARE APPLICAZIONI WEB (COMPLETAMENTE) ON-LINE CON VISUAL STUDIO ONLINE "MONACO" • Rich Editing Experience
  • 29.  Quick Open (CTRL+E) Apertura Rapida (CTRL+E) CTRL+E Apri recente (CTRL+Q)
  • 30. Vai alla riga (CTRL+G)
  • 31. Trova il simbolo (CTRL+SHIFT+O) Quick Open + «@» Quick Open + «@:» Raggruppato per tipologia
  • 32. Cerca (CTRL+F) Sostituisci (CTRL+H) CTRL+F/H Find all references
  • 35. Snippet di codice (decisors) Decisors Snippet (Template)
  • 36. Incrementa valori numerici (CTRL+↑) CTRL+↑
  • 38. Open to the Side + markdown preview
  • 39.  AutoSave  Format Code  Upload from menu and Drag & Drop  iPad Keyboard Altre caratteristiche dell’editor
  • 40. SVILUPPARE APPLICAZIONI WEB (COMPLETAMENTE) ON-LINE CON VISUAL STUDIO ONLINE "MONACO" • Controllare tutto dalla Console
  • 41.  Tutti i comandi di elaborazione (compilazione, generazione) vengono dati da riga di comando  Alcuni comandi:  Md/mkdir, rd/rmdir, per la creazione delle cartelle  Dir, cd, per navigare tra le cartelle  Touch, open, per gestire i files Console, disco e directory
  • 42. • È possibile avere una visuale console del progetto Web • Si vede il file system con i contenuti di files e cartelle • È possibile crere una cartella md Content • È possibile spostarsi in una cartella cd Content • È possibile creare un file touch main.less • È possibile aprire un file open main.less Navigare tra le cartelle
  • 43. • Se si usa un task runner come ad esempio «grunt», la console viene «bloccata» ed impedirebbe l’esecuzione di altri comandi • È possibile creare più console, una per lanciare grunt e una per lanciare i comandi ordinari Console Multiple NuovaConsole SelettoreConsole
  • 44.  Tutti i comandi di elaborazione (compilazione, generazione) vengono dati da riga di comando  Alcuni comandi:  Nuget, per scaricare packages da nuget.org  Unzip per decomprimere files zip  Ps, per eseguire script Poweshell  cUrl,per poter interagire via http con altri siti Web  Npm, per installare comandi da eseguire in ambiente node.js  Git, per interagire con il CVS Console e comandi
  • 45.  Nuget è disponibile a riga di comando  È possibile scaricare i files da nuget.org (o  Problemi:  La carella Content non si copia in radice del progetto (probabilmente perché siamo in un Web Site….)  Il file install.ps1 non si esegue…  Devo spostare i file a mano…  …ma spero in questi giorni di chiarirmi le idee qui in Microsoft…. nuget
  • 46.  Il nuovo compagno per lo sviluppatore Web  Un modello server side  Tanti nuovi comandi per la console Node.js
  • 47.  Node.js è pervasivo in Azure Web Sites e Monaco  È un pilastro del Javascript Full Stack (http://coding.smashingmagazine.com/2 013/11/21/introduction-to-full-stack- javascript/)  Molti dei comandi da usare sono packages di Node  node-sass=npm install node-sass  Editor & intellisense experience Npm in Console
  • 48. • LESS & SASS sono disponibili come editor • SASS si scarica come package Node – Web Sites non supportano Ruby [supportabile solo con IaaS] Less & Sass
  • 49.  Una particolarità (ma nemmeno tanto): «Monaco» è scritto in Typescript  Editor & intellisense (best!) experience  Typescript è un package node (di nuovo: npm install typescript) TypeScript
  • 50. SVILUPPARE APPLICAZIONI WEB (COMPLETAMENTE) ON-LINE CON VISUAL STUDIO ONLINE "MONACO" • Scrivere Codice
  • 51.  È possibile sviluppare qualsiasi applicazione ASP.NET  L’ambiente non è maturo…manca l’intellisense e tutto l’aiuto cui siamo abituati in Visual Studio  …ma è solo una questione di risorse e di tempo  Si impara a gestire un .csproj come xml…ed è la cosa più importante  msbuild  La compilazione .NET parte da qui  Si impara a scrivere file .csproj  Integrato con il nuovo Build System di Visual Studio Online One ASP.NET
  • 52. SVILUPPARE APPLICAZIONI WEB (COMPLETAMENTE) ON-LINE CON VISUAL STUDIO ONLINE "MONACO" • Controllo del Codice Sorgente
  • 53. • Un progetto software non si gestisce senza controllo di codice sorgente • Git è lo standard nel mondo open • Attualmente è l’unico protocollo supportato in «Monaco» (a differenza dei W/S) • Git si sposa con gli standard espressi da «Monaco» e gli Azure W/S Git
  • 54. • Permette di comparare i files tra versione in linea e branch in Git Comparazione dei files
  • 55. SVILUPPARE APPLICAZIONI WEB (COMPLETAMENTE) ON-LINE CON VISUAL STUDIO ONLINE "MONACO" • Conclusioni
  • 56.  Ambiente molto promettente  Non siamo in un ambiente .NET-centrico  Decisamente utile per  Prototyping  Interventi rapidi  Training  Javascript Fullstack  Soprattutto…un mondo di device  Da verificare per progetti di classe enterprise (ripeto: è una questione di tempo)  E dobbiamo capire quale sarà il nuovo modello di applicazioni Enterprise  //Build/Universal Apps  Abbiamo capito che è già diventato pervasivo nelle soluzioni Microsoft  La community deve crescere  Mi aspetto (come per Napa) avere un IDE «Monaco» indipendente dal Windows Azure (per quel che può avere senso) Conclusioni
  • 57. feedback 10 Marco Parenzan 1nn0va » www.innovazionefvg.net » @marco_parenzan » it.linkedin.com/in/marcoparenzan » www.facebook.com/parenzan.marco » www.marcoparenzan.it » www.slideshare.net/marco.parenzan » github.com/marcoparenzan » marco [dot] parenzan [at] libero/live [dot] it Q&A