Introduzione a Docker e alla Dockerizzazione.
Filosofia e progettazione Docker
Comandi principali per gesitere immagini, container, volumi e reti
Dockerfile e docker-compose
Valerio Radice @ Nextre (Maggio 2017)
TAG: docker , Dockerfile , docker-compose , italian , nextre
Si parla di IcedTea, della macchina virtuale Java completamente libera e degli altri strumenti. Vengono spiegate le differenze tra lâapproccio con interprete, compilatore e macchina virtuale. Si racconta di quali macchine virtuali ci sono per quali linguaggi. Vengono descritte le peculiaritĂ di IcedTea e si prendono in esame le differenze tra HotSpot Zero Assembly con la macchina virtuale di Oracle, HotSpot. Si parla di quali linguaggi possano essere compilati per macchina virtuale Java.
Introduzione a Docker e alla Dockerizzazione.
Filosofia e progettazione Docker
Comandi principali per gesitere immagini, container, volumi e reti
Dockerfile e docker-compose
Valerio Radice @ Nextre (Maggio 2017)
TAG: docker , Dockerfile , docker-compose , italian , nextre
Si parla di IcedTea, della macchina virtuale Java completamente libera e degli altri strumenti. Vengono spiegate le differenze tra lâapproccio con interprete, compilatore e macchina virtuale. Si racconta di quali macchine virtuali ci sono per quali linguaggi. Vengono descritte le peculiaritĂ di IcedTea e si prendono in esame le differenze tra HotSpot Zero Assembly con la macchina virtuale di Oracle, HotSpot. Si parla di quali linguaggi possano essere compilati per macchina virtuale Java.
Ross Boucher - Quality Control: Testing and debugging your appsWeb Directions
Â
Developers have long been able to use an array of debugging, profiling and other testing tools to ensure application quality and performance. More recently, web developers have started to rely on increasingly sophisticated tools to help test their web sites and applications. But particularly in the mobile space, when developing sophisticated applications with web technologies, testing presents significant challenges.
Ross Boucher, one of the developers of Objective-J, the Cappuccino web application framework, the visual development tool Atlas, and 280 slides knows a thing or two about testing sophisticated applications developed using web technologies. In this session, heâll share some of those secretes, and help you better test and debug your applications.
This document discusses WebAPI::DBICWebAPI::DBIC, a RESTful toolkit built on top of DBIx::Class that provides a framework for building RESTful web services and APIs. It consists of Moo roles that handle sets and items as well as integration with Plack and DBIx::Class. The toolkit aims to provide sensible defaults while allowing for customization. An example application built with it demonstrates extending the generic item resource to add authorization checks. The document concludes that the toolkit is currently in early development.
Modern Tools for API Testing, Debugging and MonitoringNeil Mansilla
Â
Presented at DocuSign Momentum DevCon 2015 in San Francisco by Neil Mansilla. During the presentation, I discussed a number of useful community tools for API testing/debugging, followed by several live demos of Runscope API testing and monitoring tools. For more information, or to try Runscope, visit https://www.runscope.com
The document discusses various web technologies including mashups, APIs, OpenID, IP telephony, Amazon EC2, and POE. It provides definitions and links to resources about each technology with the goal of answering any questions about them. It aims to provide an overview of how these different technologies relate and integrate with each other.
The document presents an overview of operating systems. It begins with an introduction that defines an operating system as software that controls computer resources and provides an interface for users. The document then discusses the structure of operating systems, including their role in managing resources and acting as an interface between hardware and users/programs. It outlines the main functions of operating systems such as process management, memory management, file management, security, and command interpretation. Finally, it briefly describes some popular operating systems like DOS, Unix, and Windows NT and concludes with the importance of operating systems for running applications and using computers.
The document discusses various CPU scheduling algorithms including first come first served, shortest job first, priority, and round robin. It describes the basic concepts of CPU scheduling and criteria for evaluating algorithms. Implementation details are provided for shortest job first, priority, and round robin scheduling in C++.
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...Codemotion
Â
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.
Porting Android application from ARM to x86BeMyApp
Â
Presentation from Massimiliano Torregiani (@MaxTorregiani) at the Intel Codefest Milano on February 13th 2014 at Mediateca
http://codefestmilano.bemyapp.com
Slide del webinar Intel rivolte a tutti coloro che, avendo giĂ una conoscenza base della programmazione NDK per Android, vogliono esplorare gli strumenti necessari per compilare codice nativo espressamente dedicato a dispositivi basati su processori Intel. E' affrontato il porting di codice c/c++ per dispositivi basati su architettura Intel originariamente creato su altre architetture. Sono presentati 3 casi dâuso, mostrando con livelli di difficoltĂ crescenti il processo completo di creazione di una semplice applicazione Android basata su NDK, confrontando i flag di compilazione necessari per ottimizzare un'applicazione Android basata su NDK affinchĂŠ sia utilizzabile su dispositivi basati su architettura Intel.
Con la nascita di .NET Core l'utilizzo del framework .NET è sbarcato in modo ufficiale anche su altre piattaforme.
Scrivere applicazioni moderne con SDK e tool nativi su altre piattaforme è diventato la normalità .
Lo vedremo realizzando un semplice applicazione .NET Core su Linux ed analizzando varie possibilitĂ di deploy su altre piattaforme Linux based con il minimo sforzo e senza limitazioni.
Presentazione architettura ed ambiente di sviluppo per dispositivi mobile dotati di SO Android. VerrĂ mostrata la struttura di un'applicazione creata con l'IDE Eclipse.
Ross Boucher - Quality Control: Testing and debugging your appsWeb Directions
Â
Developers have long been able to use an array of debugging, profiling and other testing tools to ensure application quality and performance. More recently, web developers have started to rely on increasingly sophisticated tools to help test their web sites and applications. But particularly in the mobile space, when developing sophisticated applications with web technologies, testing presents significant challenges.
Ross Boucher, one of the developers of Objective-J, the Cappuccino web application framework, the visual development tool Atlas, and 280 slides knows a thing or two about testing sophisticated applications developed using web technologies. In this session, heâll share some of those secretes, and help you better test and debug your applications.
This document discusses WebAPI::DBICWebAPI::DBIC, a RESTful toolkit built on top of DBIx::Class that provides a framework for building RESTful web services and APIs. It consists of Moo roles that handle sets and items as well as integration with Plack and DBIx::Class. The toolkit aims to provide sensible defaults while allowing for customization. An example application built with it demonstrates extending the generic item resource to add authorization checks. The document concludes that the toolkit is currently in early development.
Modern Tools for API Testing, Debugging and MonitoringNeil Mansilla
Â
Presented at DocuSign Momentum DevCon 2015 in San Francisco by Neil Mansilla. During the presentation, I discussed a number of useful community tools for API testing/debugging, followed by several live demos of Runscope API testing and monitoring tools. For more information, or to try Runscope, visit https://www.runscope.com
The document discusses various web technologies including mashups, APIs, OpenID, IP telephony, Amazon EC2, and POE. It provides definitions and links to resources about each technology with the goal of answering any questions about them. It aims to provide an overview of how these different technologies relate and integrate with each other.
The document presents an overview of operating systems. It begins with an introduction that defines an operating system as software that controls computer resources and provides an interface for users. The document then discusses the structure of operating systems, including their role in managing resources and acting as an interface between hardware and users/programs. It outlines the main functions of operating systems such as process management, memory management, file management, security, and command interpretation. Finally, it briefly describes some popular operating systems like DOS, Unix, and Windows NT and concludes with the importance of operating systems for running applications and using computers.
The document discusses various CPU scheduling algorithms including first come first served, shortest job first, priority, and round robin. It describes the basic concepts of CPU scheduling and criteria for evaluating algorithms. Implementation details are provided for shortest job first, priority, and round robin scheduling in C++.
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...Codemotion
Â
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.
Porting Android application from ARM to x86BeMyApp
Â
Presentation from Massimiliano Torregiani (@MaxTorregiani) at the Intel Codefest Milano on February 13th 2014 at Mediateca
http://codefestmilano.bemyapp.com
Slide del webinar Intel rivolte a tutti coloro che, avendo giĂ una conoscenza base della programmazione NDK per Android, vogliono esplorare gli strumenti necessari per compilare codice nativo espressamente dedicato a dispositivi basati su processori Intel. E' affrontato il porting di codice c/c++ per dispositivi basati su architettura Intel originariamente creato su altre architetture. Sono presentati 3 casi dâuso, mostrando con livelli di difficoltĂ crescenti il processo completo di creazione di una semplice applicazione Android basata su NDK, confrontando i flag di compilazione necessari per ottimizzare un'applicazione Android basata su NDK affinchĂŠ sia utilizzabile su dispositivi basati su architettura Intel.
Con la nascita di .NET Core l'utilizzo del framework .NET è sbarcato in modo ufficiale anche su altre piattaforme.
Scrivere applicazioni moderne con SDK e tool nativi su altre piattaforme è diventato la normalità .
Lo vedremo realizzando un semplice applicazione .NET Core su Linux ed analizzando varie possibilitĂ di deploy su altre piattaforme Linux based con il minimo sforzo e senza limitazioni.
Presentazione architettura ed ambiente di sviluppo per dispositivi mobile dotati di SO Android. VerrĂ mostrata la struttura di un'applicazione creata con l'IDE Eclipse.
Introduzione al framework OpenCL
Anatomia OpenCL
Architettura OpenCL
Esempio OpenCL
HelloWorld in OpenCL
Funzioni in OpenCL
OpenCL in C
Lingua Italiano
Presentazione/Seminario di Francesco Garofalo per il corso di Metodi Numerici per l'Informatica, Computer Scince (Informatica Magistrale), presso UniversitĂ degli Studi di Salerno.
An overview of technologies and best practices for the development of a full-stack web application using JavaScript. How to realize an entire Application Server with a single programming language, the use of event-driven logic and the potential of Node.js.
1. 19 LUGLIO
2016
Da .NET
a .NET Core
@raffaeler
raffaeler@vevy.com
http://iamraf.net
Raffaele Rialdi
2. Il Framework .NET fino ad oggi
⢠15 anni, 1.8 miliardi di installazioni
⢠Diverse codebase/compilazioni
⢠Desktop, Silverlight (Intel - Windows)
⢠Compact Framework (ARM â Win CE)
⢠Micro Framework (ARM)
⢠Ma anche le versioni .NET non-MS
⢠Mono / Xamarin
⢠Linux, iOS, MacOS, âŚ
⢠Intel e ARM
.NET
Common Language Runtime (CLR)
Base Class Library (BCL)
Asp.net Winform WPF ...App Model
Framework
Runtime
Ogni versione replica
tutto lo stack
3. Cos'è DotNetCore
⢠à un fork (derivato dagli stessi sorgenti) del Framework.NET
⢠Nuovo runtime (Common Language Runtime â CLR)
⢠Nuove librerie (CoreFX)
⢠Alcune breaking changes per far funzionare la storia Cross-Platform
⢠Il goal di DotNetCore è di abilitare gli scenari Cross-Platform e Cross-Device
⢠Supporto per Windows, Linux, MacOS e i container Docker
⢠à ufficialmente supportato da Microsoft su tutte le piattaforme testate
⢠Gli scenari che si avvantaggiano da DotNetCore (attualmente) sono:
⢠ASP.NET Core: nuovo stack ASP.NET, riscritto da zero
⢠Universal Windows Platform: Windows Store Apps (cross-device)
⢠Cloud App: Applicazioni e Microservizi su Azure
⢠Console App: Il modo migliore per cominciare!
4. L'evoluzione di DotNetCore
⢠Tutte le librerie che usano CoreFX possono essere usate da tutti gli
Application Model (ASP.NET, UWP, Console)
⢠Ogni Runtime Adaptation Layer è specifico ad una data Platform / CPU
⢠x86, x64, ARM, altre CPUs sono attese in futuro âŚ
⢠Questo modello è pensato per future
estensioni
⢠Nuovi Application Models
⢠Nuovi OS / Platforms
⢠Nuove varianti di CLR
Runtime Adaption
Level
CoreCLR .NET Native âŚ
Unified Base Class Library
(CoreFX)
Windows Store
App Model
ASP.NET5
App Model
Runtime Adaption
Level
âŚ
âŚ
5. L'ecosistema dotnet
⢠CoreCLR è il nuovo CLR usato da ASP.NET e le Console Application
⢠Usa il nuovo jitter  RyuJIT . Include il GC e i servizi base e di Interop
⢠https://github.com/dotnet/coreclr
⢠CoreRT è un altro CLR che usa ".NET Native" La UWP usa questo CLR
⢠La toolchain .NET Native genera tutto il codice nativo ed è privo di tutte le dipendenze
⢠UWP usa il CoreCLR durante il debug and .NET Native in Release (generato su Azure alla pubblicazione)
⢠https://github.com/dotnet/corert
⢠CoreFX è la nuova Base Class Library ora chiamata .NET Core Foundational Libraries
⢠Contiene codice Intermediate Language (IL) e librerie per specifici runtime. Può essere usata da tutti i CLR
⢠https://github.com/dotnet/corefx
⢠DotNet Command Line Interface (CLI)
⢠https://github.com/dotnet/cli
6. Dalle Portable Class Libraries alla Standard Library
⢠PCL = intersezione delle funzionalità disponibili sulle piattaforme scelte
⢠Espresse alla compilazione
⢠In nuget identificate con i "moniker" Es: "portable-net45+sl5+win8+wpa81+wp8"
⢠Vedi profiles al link https://docs.nuget.org/create/targetframeworks
⢠NON funzioneranno con future platform. Sarà necessario ri-deployare.
⢠La "Standard Library" definisce i contratti della libreria di runtime
⢠Assicura la compatibilità a livello binario
⢠Ogni set viene identificato su nuget tramite "moniker". Es: "netstandard1.6"
⢠La direttiva "imports" di Nuget consente di riusare le PCL nella Standard Library
⢠Imports forza l'uso di una determinata libreria in assenza del moniker di riferimento
7. La .NET Standard Library
⢠Definisce un set standard di API disponibile per tutti gli Application Model
⢠Sono un set di Reference Assemblies (contratti, nessuna implementazione)
⢠Sono definite nel repository di "CoreFX" (GitHub)
⢠La ".NET Platform" o ".NET Runtime" definisce uno specifico framework
⢠Es: Framework.NET, Mono/Xamarin, Windows Phone, UWP, etc.
⢠Ogni ".NET Platform" implementa una specifica versione di .NET Standard Library
⢠Le librerie (DLL) indicano la versione della ".NET Standard Library" come
loro requisito
⢠netstandard1.6, netstandard1.5, ⌠(piÚ bassa è, maggiore sarà la compatibilità con le
varie platform)
⢠Le App (asp.net, console, âŚ) indicano solo la ".NET Platform"
⢠Che implicitamente corrisponde ad una versione della Standard Library
⢠Es: netcoreapp1.0, uap10.0 , net452 , xamarinios
8. .NET Migration tool
⢠Due versioni dello stesso tool
⢠La versione "command line"
⢠L'estensione di Visual Studio (fornisce piÚ informazioni)
⢠Che informazioni ci fornisce?
⢠Legge un assembly binario via reflection
⢠Analizza le dipendenza
⢠Spedisce un minimo set di informazioni ad un Web Service Microsoft
⢠Il tool è usabile anche in modalità "offline"
⢠Crea un report con la lista dei membri che non sono supportati dalle versioni di
Framework richieste nell'analisi
⢠Supporta le versioni di .NET piÚ comuni
⢠.NET standard, .NET Core, Xamarin, Mono, Silverlight, etc.
9. Nuget
⢠Può esistere un "Metapackage"
⢠Specifica solo le dipendenze
⢠Può esistere un Reference
Assembly
⢠L'assembly contiene una cosa del tipo:
⢠Può contenere il codice "vero"
Metapackage
[assembly: TypeForwardedTo(typeof(Assembly))]
[assembly: TypeForwardedTo(typeof(AssemblyContentType))]
[assembly: TypeForwardedTo(typeof(AssemblyName))]
[assembly: TypeForwardedTo(typeof(BindingFlags))]
[assembly: TypeForwardedTo(typeof(ConstructorInfo))]
10. Breaking changes
⢠AppDomains
⢠Esiste a livello di infrastruttura ma non è piÚ usabile in termini di API
⢠Info di base reperibili via AppContext (che espone ad esempio BaseDirectory)
⢠Per caricare dinamicamente gli assembly usare AssemblyLoadContext
⢠Per isolare del codice usare i container (Linux o Windows container) ⌠Docker & C
⢠Remoting
⢠Architettura problematica considerata obsoleta
⢠Binary Serialization
⢠Esistono alternative valide in diverse librerie⌠ma forse verrà reinserita in un
prossimo futuro
⢠Security
⢠Code Access Security (CAS)
⢠Security Transparency
11. Nuget is king
⢠CoreFX (BCL) è distribuita via nuget
⢠Una dll per ciascun namespace
⢠Niente piÚ GAC (niente piÚ 'globali')
⢠Il deploy è privato a ciascuna App
⢠Ogni App ha la sua propria copia
di tutte le dipendenze necessarie
⢠Le dll sono private
⢠O sono parte della solution
⢠O parte di un pacchetto nuget
⢠I server Nuget possono essere privati
⢠La CLI di DotNet recupera
i packages da Nuget
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
App Dll
13. DotNet CLI in pratica
⢠Installare la  CLI 
⢠Creare una App
⢠Scrivere il codice
⢠âŚ
⢠Compilare e lanciare l'App
mkdir myapp
cd myapp
dotnet new
dotnet restore
dotnet run
http://dot.net/
http://dot.net/
C:app1>dotnet --help
.NET Command Line Tools (1.0.0-preview2-003121)
Usage: dotnet [host-options] [command] [arguments] [common-options]
Arguments:
[command] The command to execute
[arguments] Arguments to pass to the command
[host-options] Options specific to dotnet (host)
[common-options] Options common to all commands
Common options:
-v|--verbose Enable verbose output
-h|--help Show help
Host options (passed before the command):
-v|--verbose Enable verbose output
--version Display .NET CLI Version Number
--info Display .NET CLI Info
Common Commands:
new Initialize a basic .NET project
restore Restore dependencies specified in the .NET project
build Builds a .NET project
publish Publishes a .NET project for deployment (including the runtime)
run Compiles and immediately executes a .NET project
test Runs unit tests using the test runner specified in the project
pack Creates a NuGet package
14. Cross-Platform
⢠Le compilazioni notturne su GitHub includono diversi OS
⢠Linux: CentOS 7.1, Debian 8.2, FreeBSD 10.1, openSUSE 13.2,
RedHat 7.2, Ubuntu 14.04, Ubuntu 15.10
⢠x64
⢠MacOS: OSX 10.11
⢠x64
⢠Windows: > Windows 8.1
⢠x64, ARM
⢠Non ci sono OS di "prima classe"
⢠Quindin capita di vedere anche questo :)
15. .NET Native
⢠A partire dal Framework.NET 4.6 c'è un nuovo JIT compiler chiamato RyuJIT
⢠à piÚ veloce e produce codice ottimizzato (SIMD, Vectorization, etc.)
⢠.NET Native è una toolchain o compilatore IL AOT Ahead Of Time
⢠La compilazione nativa usa il backend compiler di Visual C++
⢠Una sorta di NGEN piÚ evoluto
⢠Il JIT compiler non è piÚ necessario
⢠La versione del CLR flavor che usa la toolchain .NET Native si chiama  CoreRT
⢠UWP è l'application model che usa .NET Native ⌠altri verranno in futuro
⢠Benefici:
⢠Tempo di boot dell'applicazione piÚ veloce, meno RAM utilizzata (non c'è il JITter caricato)
⢠Migliori performance
⢠Minore utilizzo di batteria
⢠Svantaggi:
⢠Tempi di compilazione
⢠Le Expression Linq sono interpretate
16. Linux Virtual Machine
Scenario DEMO
" inputqueue "
exchange topic
rabbitmq
key1
key2
WebApi
service
docker container
AMQP 1.0
AMQP 0.9 / 1.0
Desktop App
Desktop App
Windows PC
17. Containers:
i mattoncini delle architetture moderne
Container
ď service
Container
ď service
Container
ď service
Container
ď service
Container
ď service
VM VM
Container
nginx
Container
nginx
VM
(backup)replica replicareplica VM
Servizi che forniscono
alta scalabilitĂ
multiple services providing
high-availability
round robin
18. PerchĂŠ .NET Core?
⢠Ricostruire .NET senza compromessi sulla retro-compatibilitĂ
⢠Risolvere i problemi di versioning e dipendenze
⢠Rendere il deploy delle nuove versioni piÚ semplice (e side-by-side)
⢠Evitare spreco di risorse negli scenari che richiedono scalabilitĂ
⢠Nessun compromesso: alcune breaking changes sono inevitabili
⢠Vantaggi
⢠ScalabilitĂ
⢠Load balancing
⢠Sfruttare al massimo l'hardware moderno
⢠Sicurezza: isolare il codice dalle risorse e dalle apps
⢠On the desktop: sandbox (UWP)
⢠On the server: Containers in place of classic WebApps / Services