L'App store per applicazioni Enterprise: La mobilit porta a portaMicrofocusitalia
油
L'intervento di Fabio Milanese, Senior Borland Solutions Specialist di Micro Focus Italia, al Mobile Summit 2013. La presentazione spiega l'importanza e i vantaggi del testing di applicazioni mobile Enterprise.
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
油
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamento al sistema di controllo TANGO, tramite l'ausilio del framework Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaAndrea Dottor
油
Sfrutta le tue abilit come sviluppatore web per creare app mobile per Windows Phone, iOS ed Android utilizzando una unica code-base (composta da codice HTML, CSS e JavaScript) e lavora direttamente in Visual Studio. Questo 竪 ora possibile grazie all'estensione "Multi-Device Hybrid Apps for Visual Studio" ed all'uso di Apache Cordova. Un unico IDE ed un singolo progetto per sviluppare per le pi湛 diffuse piattaforme mobile.
In questa sessione scopriremo i vantaggi di questa combinazione e daremo risposta ad alcune domande: Quali vantaggi abbiamo dall'utilizzare Visual Studio? Perch竪 e quando sviluppare un'app ibrida? ...
Si parla tanto di DevOps e alle conferenze gli argomenti pi湛 gettonati sono build pipeline, continuous integration/delivery/deploy, deploy automation e monitoring.
Ci stiamo dimenticando qualcosa... i test! dove sono i test? perch辿 non si parla quasi mai di test? in questo fantastico mondo DevOps come si inseriscono i test?
I test sono solo un passo della pipeline di build? se la pensassi cos狸 il titolo del mio intervento sarebbe stato "Continuous Testing in DevOps", non credete?
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
Benvenuto nel nostro approfondimento interattivo sul Java, il linguaggio di programmazione Object-Oriented ampiamente adottato, conosciuto per la sua robustezza, sicurezza e portabilit. Questa presentazione 竪 il tuo gateway per comprendere il perch辿 Java, con la sua sintassi intuitiva e la famosa piattaforma indipendente, continua a essere il pilastro dello sviluppo di software in vari ambienti operativi. Scoprirai i meccanismi alla base della Java Virtual Machine (JVM) e come la piattaforma Java fornisce una base ineguagliabile per lo sviluppo di applicazioni enterprise, mobile e web di alto livello. Dal principiante appassionato di tecnologia al veterano dello sviluppo software, immergiti nella lingua che ha ridefinito i codici della programmazione.
Per supportare al meglio gli sviluppi agili 竪 necessario poter automatizzare le procedure di deploy. Grazie a TFS build possiamo sfruttare varie tecniche per automatizzare il deploy durante una build.
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.
Gestire la qualit del codice con Visual Studio, SonarQube ed Azure DevopsGian Maria Ricci
油
Come tenere sotto controllo la qualit del proprio codice tramite gli analizzatori di Sonar Qube sia dentro visual studio, sia tramite analisi automatiche del codice fatte tramite Azure DevOps Pipeoine
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
油
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamento al sistema di controllo TANGO, tramite l'ausilio del framework Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaAndrea Dottor
油
Sfrutta le tue abilit come sviluppatore web per creare app mobile per Windows Phone, iOS ed Android utilizzando una unica code-base (composta da codice HTML, CSS e JavaScript) e lavora direttamente in Visual Studio. Questo 竪 ora possibile grazie all'estensione "Multi-Device Hybrid Apps for Visual Studio" ed all'uso di Apache Cordova. Un unico IDE ed un singolo progetto per sviluppare per le pi湛 diffuse piattaforme mobile.
In questa sessione scopriremo i vantaggi di questa combinazione e daremo risposta ad alcune domande: Quali vantaggi abbiamo dall'utilizzare Visual Studio? Perch竪 e quando sviluppare un'app ibrida? ...
Si parla tanto di DevOps e alle conferenze gli argomenti pi湛 gettonati sono build pipeline, continuous integration/delivery/deploy, deploy automation e monitoring.
Ci stiamo dimenticando qualcosa... i test! dove sono i test? perch辿 non si parla quasi mai di test? in questo fantastico mondo DevOps come si inseriscono i test?
I test sono solo un passo della pipeline di build? se la pensassi cos狸 il titolo del mio intervento sarebbe stato "Continuous Testing in DevOps", non credete?
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
Benvenuto nel nostro approfondimento interattivo sul Java, il linguaggio di programmazione Object-Oriented ampiamente adottato, conosciuto per la sua robustezza, sicurezza e portabilit. Questa presentazione 竪 il tuo gateway per comprendere il perch辿 Java, con la sua sintassi intuitiva e la famosa piattaforma indipendente, continua a essere il pilastro dello sviluppo di software in vari ambienti operativi. Scoprirai i meccanismi alla base della Java Virtual Machine (JVM) e come la piattaforma Java fornisce una base ineguagliabile per lo sviluppo di applicazioni enterprise, mobile e web di alto livello. Dal principiante appassionato di tecnologia al veterano dello sviluppo software, immergiti nella lingua che ha ridefinito i codici della programmazione.
Per supportare al meglio gli sviluppi agili 竪 necessario poter automatizzare le procedure di deploy. Grazie a TFS build possiamo sfruttare varie tecniche per automatizzare il deploy durante una build.
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.
Gestire la qualit del codice con Visual Studio, SonarQube ed Azure DevopsGian Maria Ricci
油
Come tenere sotto controllo la qualit del proprio codice tramite gli analizzatori di Sonar Qube sia dentro visual studio, sia tramite analisi automatiche del codice fatte tramite Azure DevOps Pipeoine
Real World Build + Release automation in Azure DevOpsGian Maria Ricci
油
The document discusses automating build and release processes in Azure DevOps. It recommends treating packaging and release as repetitive, traceable processes done by anyone. Key steps include:
1) Using scripts to automate builds locally with tools like PowerShell, Cake, or MSBuild.
2) Creating release builds that produce everything needed for release, like publishing sites, packaging resources, and compiling code.
3) Defining a release process in Azure DevOps that specifies builds, environments, and manages artifacts and auditing for releases.
4) Starting with manual checklists and scripts for releases, then gradually automating more tasks to reduce errors and improve reliability.
This document discusses managing automatic releases with Azure DevOps. It recommends starting with manual package and release processes to create documentation before automating repetitive tasks. When automating, configurations should be stored and managed separately from code. Pipelines should be defined in code using YAML for easy editing and maintenance. The document demonstrates multi-stage build and release pipelines in YAML and mentions future improvements for container and Kubernetes support. Overall it provides guidance for establishing a manual-to-automated DevOps cycle for continuous delivery using Azure DevOps.
Build and release in code with azure devops pipelinesGian Maria Ricci
油
Build and release your code with Azure pipelines defined in YAML code. Everything is in the repository, everything follow branches, and simplify creating pipelines with templates.
This document discusses Azure Pipelines and common misconceptions about it. It notes that Azure Pipelines can be used for both cloud and on-premises workloads, not just Microsoft technologies, and that maintaining agents is simplified. The document traces the history of Azure Pipelines and its predecessors. It promotes the benefits of defining pipelines in YAML, including storing them in source control, easy copying between repos, and support in Visual Studio Code. Future improvements may include multi-stage pipelines and releasing directly to environments using YAML.
This document discusses semantic versioning, GitFlow branching model, and how to automate versioning and packaging of code using GitVersion, NuGet, and Chocolatey. It recommends:
- Using semantic versioning (MAJOR, MINOR, PATCH) to manage versions in a Git repository.
- Implementing GitFlow branching model with main branches for development (develop) and releases (master).
- Leveraging GitVersion tool to determine semantic versions based on branches and commits.
- Automating builds to modify version numbers, compile code, run tests, create NuGet packages, and publish packages.
- Packaging and distributing applications using Chocolatey by creating NuGet packages containing
The document discusses using PowerShell Desired State Configuration (DSC) to automate the deployment and management of environments. It describes how DSC can be used to specify the desired state of an environment and have PowerShell work to ensure the actual state matches that desired configuration. This involves authoring DSC configurations that define resources and their desired properties, then applying those configurations to automatically install software, configure systems, and ensure services are running as specified. The document provides examples of using DSC to deploy a website along with its database components in a multi-step process.
This document discusses Application Insights, a service that provides automatic instrumentation of applications to monitor application health and performance. It provides an overview of logging benefits, costs of logging, and how Application Insights addresses these. The document outlines how Application Insights can instrument applications automatically or with custom logging, and demonstrates setting up synthetic monitors and custom logging.
This document discusses how to deploy .NET applications with TFS Build including:
- Deploying web applications to Azure or IIS using TFS build and Azure publishing
- Deploying SQL Server databases using database projects
- Deploying click-once applications and NuGet packages from TFS builds
It provides demonstrations of deploying to Azure, IIS, databases, and publishing NuGet packages and emphasizes the value of continuous deployment and testing for fast failure detection.
Presentation to show what are the differencies from branching feature in Git and standard centralized source control.
Presentation done at London Microsoft ALM User Group http://www.meetup.com/London-Microsoft-ALM-User-Group/events/219367230/
The document discusses the advantages of using Microsoft's Team Foundation Server (TFS) Service for application lifecycle management (ALM) in the cloud. It notes that TFS Service provides high availability, easy upgrades, and lower operational costs compared to an on-premise TFS solution. Additionally, TFS Service offers source control, work item tracking, build servers, testing tools, release management capabilities, and Application Insights out of the box as a complete ALM solution. The document recommends being prepared to choose between TFS Service or an on-premise TFS based on individual needs and priorities.
This document contains contact information for an individual and several websites. It lists an email address for an Alkampfer at Nablasoft.com, as well as URLs for codewrecks.com, blogs.ugidotnet.org/rgm, and getlatestversion.it.
The document discusses strategies for organizing team projects in Team Foundation Server (TFS). It describes the structure of TFS including project collections, team projects, and teams. It notes that many teams struggle to choose the right strategy for organizing team projects. The document then examines the pros and cons of using a single team project versus multiple team projects to organize teams and backlogs. It demonstrates in TFS 2012 how to manage teams and backlogs. While a single team project can provide consolidation, it warns of disadvantages like reduced security and process template flexibility compared to using multiple team projects.
The document appears to be a presentation about using Git for source control management. It discusses why developers should use Git and the mind shift required compared to other systems like TFVC. It also covers some of Git's capabilities like branching and its ability to act as a bridge between different version control systems. The presentation encourages attendees to try out Git themselves to see if it is a good fit for their team.
3. La situazione attuale
Il software 竪 un unico programma
winform che contiene tutta la logica nel
Monolitico code behind di una form
Laccesso allhardware 竪 effettuato
direttamente nel code-behind, il software
Hardware
pu嘆 quindi essere lanciato solamente in
presenza dellhardware
Non 竪 presente nessun test
automatizzato, i test vengono fatti
Bad testing lanciando il software ed utilizzandolo con
lhardware connesso
4. Levoluzione richiesta
Il software deve poter essere eseguito
come servizio di windows, quindi senza
Servizi
interazione con lutente e senza ui
comunque necessario avere una
interfaccia per poter inviare alcuni
User interface
messaggi e verificare lo stato del servizio
5. Il desiderata
Poter effettuare test funzionali di interfaccia senza avere
lhardware connesso. Possibilit di simulare le varie
condizioni dellhardware (faulting, disconnection, etc)
Hardware Free
Essere se possibile indipendenti dallhardware, poter quindi
riusare la UI e la logica in presenza di hardware differenti
con cambiamenti minimali al codice
Plugin
Poter decidere come deployare il software, o come servizio
con UI disconnessa, o come eseguibile monolitico, oppure
in modalit UI-Unattended
Versatilit
Dialogare con un servizio o con la modalit UI-Unattended
da macchine remote previa connessione di rete.
Remote UI
6. Come si 竪 proceduto
As-Is Hardware WCF Servizio Plugin
Si 竪 proceduto prendendo un software minimale il cui scopo 竪
semplicemente ricevere dei codici letti da una serie di barcode scanner
industriali e scriverli su di una cartella
Lobiettivo era quello di creare una proof of concept che mostrasse i passi
necessari per rifatorizzare un progetto esistente dalla versione monolitica,
alla versione desiderata
Il risultato serve a dimostrare il processo necessario alla rifattorizzazione, sia
costituisce una reference implementation minimale su cui basare i successivi
software.
7. Lavorare con lhardware
In molti casi 竪 possibile identificare un
comportamento simile tra vari hardware, ad
esempio dei lettori di codici a barre o lettori
RFID sono in grado di essere interrogati per
ricevere una stringa.
Hardware
Lindividuazione di una interfaccia IGenericCodeReader
serve quindi ad astrarre il comportamento di un
generico hardware appartenente ad una determinata
categoria.
Questo 竪 il primo passo per poter essere indipendenti
dallhardware
8. Si comincia con lhardware
Quando si ha a che fare con hardware, non
esiste refactoring che non parta dal
permettere di utilizzare il software con dei
束simulatori損 di hardware
Hardware
La necessit di operare e di effettuare test con
hardware connesso rende molto difficili le operazioni
di test e quindi ogni possibile refactoring.
La soluzione 竪 astrarre lhardware con una interfaccia
ed iniziare il lavoro con un simulatore
10. Comunicazione
Dato che il codice che contiene la 束business
logic損 dovr essere eseguito in un servizio
la UI deve eseguire una comunicazione
Interprocesso
Hardware
In .NET la soluzione migliore 竪 utilizzare una infrastruttura
WCF, il servizio esporr quindi un host WCF che pu嘆 essere
contattato da uno o pi湛 interfacce remote.
Tramite WCF si pu嘆 connettere una interfaccia al servizio di
un altro computer, semplificando la manutenzione
11. WCF Discovery
WCF contiene una funzionalit interessante
chiamata Discovery
Servizio
Hardware UI Grazie al discovery, un applicativo pu嘆
cercare se nella rete 竪 presente un Host wcf
che soddisfa una determinata interfaccia
Servizio Servizio
Il Discovery pu嘆 semplificare la gestione delle interfacce
remote perch辿 permette di presentare allutente una lista di
host attivi, dove ogni host 竪 una istanza del servizio in
esecuzione
13. Flessibilit di deploy
Nel primo scenario il software viene deployato
come 束windows service損, se necessario si
accede con una UI remota
Servizio UI
Nel secondo scenario si esegue il software con
una interfaccia minimale, usualmente con un
bottone Start/Stop e poco pi湛
Minimal-UI UI
Nel terzo scenario il software viene eseguito in un singolo
tier, interfaccia di monitor e codice di business logic
vengono eseguiti nello stesso processo (come nella as-is)
All-in-on
La necessit di supportare questi tre scenari 竪 richiesta per
aumentare la flessibilit e non 束complicarsi la vita con i windows
service quando non serve損
16. Plugin
Spesso vi 竪 la necessit di applicare logiche
simili a pi湛 hardware
Hardware Logic Gli hardware possono essere eguali o
eterogenei e condividere solo una certa
interfaccia (es. lettori di codici)
Hardware Hardware
Una business logic deve quindi poter
caricare 束dinamicamente損 i plugin che va
ad utilizzare
Questa struttura pu嘆 essere implementata con poco
sforzo grazie a MEF, che si occupa del discovery e della
istanziazione dei plugin
17. MEF
Mef permette di gestire con facilit la
complessit di 束individuare損 e 束caricare損 i
Hardware Logic plugin a run-time
Grazie a MEF e poche righe di codice il
nostro progetto 竪 in grado di scandire la
Hardware Hardware
cartella principale alla ricerca di plugin.
I concetti base sono Export ed Import, ovvero fornire e
consumare parti di software
18. Plugin
Per lasciare il tutto molto semplice si utilizzano solamente le
funzionalit base di MEF introducendo una Interfaccia
chiamata IGenericCodeReaderFactory
Tale interfaccia ha lo scopo di creare le reali istanze dei plugin.
Grazie a MEF verranno automaticamente caricate tutte le classi
concrete disponibili che implementano questa interfaccia
new
MEF
Factory A Plugin A
Hardware Plugin A
Software
new
Factory B Plugin B Plugin B
20. Testing
La creazione di plugin di Testing permette
di poter verificare la business logic e le
Hardware Logic logiche di interfaccia senza un hardware
reale.
Un plugin di test permette quindi di
Hardware Hardware
束simulare損 i comportamenti dellhardware
e verificarne le corrispettive risposte del
sistema
Grazie a questo 竪 possibile non solo effettuare test
manuali, ma anche creare UnitTest ripetibili e senza
smell
possibile sfruttare strumenti come i Coded-Ui-Test