Git o SVN, cosa scegliere?
Qual è il miglior strumento di controllo di versione?
Entrambi hanno vantaggi e svantaggi, esiste solo lo strumento che meglio si adatta alle nostre necessità.
Qui ho cercato di spiegare i motivi per cui Git si adatta meglio a quelli che sono i nostri requisiti dopo alcuni anni di utilizzo (a volte frustrante) di SVN.
Collaborare a distanza non è facile, soprattutto quando si ha a che fare con un certo numero di collaboratori. Si pongono problemi di comunicazione, di gestione del codice, di ridondanza…
L’inevitabile conseguenza di una cattiva gestione delle collaborazioni a distanza è il protrarsi oltre termine della fine o della consegna dei lavori. Per non parlare della brutta figura con i clienti e del danno all’immagine che ne consegue.
Allora, come fare? Quali tecniche e quali strumenti possono aiutarci a migliorare il nostro lavoro? Per esempio, come usare Git per ottimizzare le collaborazioni a distanza?
Git o SVN, cosa scegliere?
Qual è il miglior strumento di controllo di versione?
Entrambi hanno vantaggi e svantaggi, esiste solo lo strumento che meglio si adatta alle nostre necessità.
Qui ho cercato di spiegare i motivi per cui Git si adatta meglio a quelli che sono i nostri requisiti dopo alcuni anni di utilizzo (a volte frustrante) di SVN.
Collaborare a distanza non è facile, soprattutto quando si ha a che fare con un certo numero di collaboratori. Si pongono problemi di comunicazione, di gestione del codice, di ridondanza…
L’inevitabile conseguenza di una cattiva gestione delle collaborazioni a distanza è il protrarsi oltre termine della fine o della consegna dei lavori. Per non parlare della brutta figura con i clienti e del danno all’immagine che ne consegue.
Allora, come fare? Quali tecniche e quali strumenti possono aiutarci a migliorare il nostro lavoro? Per esempio, come usare Git per ottimizzare le collaborazioni a distanza?
Daniele Barcella "Kowalski", al Linux Day 2016, ha spiegato come si gestisce un progetto open-source. I motivi per i quali condividere un progetto e quali strumenti utilizzare per sviluppo, versionamento, testing. Non manca una panoramica sulle principali licenze open-source.
Introduzione al Controllo di versione (in generale) e al funzionamento di Git (in particolare). Upgrade di un'altra presentazione simile nelle basi ma incentrata su SVN.
Git 101 - Crash Course in Version Control using GitGeoff Hoffman
Find out why more and more developers are switching to Git - distributed version control. This intro to Git covers the basics, from cloning to pushing for beginners.
Evento XeDotNet sui Source Generators, una recente funzionalità contenuta nell’SDK del compilatore .NET ("Roslyn”), che consentono agli sviluppatori C# di ispezionare il codice mentre viene compilato e generare al volo nuovi file sorgente C# aggiunti alla compilazione stessa. Vedremo come usarli e quanto possono essere utili nelle nostre applicazioni
TAlk tenuto al CLUB DEGLI SVILUPPATORI - BARI il 20 giugno 2019
Cosa c'è dietro GIT?
Come ragiona GIT?
Qual è il suo modello di storage?
Cosa avviene dietro le quinte di una Commit?
Come viene garantita l'integrità?
Capire a fondo il suo modello di storage è essenziale al fine di evolvere il vostro codice senza timore e in tutta sicurezza.
Il talk è adatto a tutti. Chi non ha mai usato GIT comprenderà cosà c'è dietro ogni comando e riuscirà a impararlo più velocemente. Chi lo utilizza tutti i giorni, potrà approfondire i meccanismi alla base del suo funzionamento e riuscirà a padroneggiarlo con maggiore consapevolezza.
Bio dello speaker
Giuseppe Toto ha maturato forti esperienze nel coordinamento e sviluppo di applicazioni web, mobile e gaming.
Da anni mette a disposizione le sue competenze ad aziende e startup con forte picco di innovazione, aiutandole a crescere e a fare la differenza in un mercato in continua evoluzione. Da grande appassionato di tecnologia, ama trasmettere la propria conoscenza, confrontarsi e imparare costantemente.
blog: https://giuseppetoto.it
Daniele Barcella "Kowalski", al Linux Day 2016, ha spiegato come si gestisce un progetto open-source. I motivi per i quali condividere un progetto e quali strumenti utilizzare per sviluppo, versionamento, testing. Non manca una panoramica sulle principali licenze open-source.
Introduzione al Controllo di versione (in generale) e al funzionamento di Git (in particolare). Upgrade di un'altra presentazione simile nelle basi ma incentrata su SVN.
Git 101 - Crash Course in Version Control using GitGeoff Hoffman
Find out why more and more developers are switching to Git - distributed version control. This intro to Git covers the basics, from cloning to pushing for beginners.
Evento XeDotNet sui Source Generators, una recente funzionalità contenuta nell’SDK del compilatore .NET ("Roslyn”), che consentono agli sviluppatori C# di ispezionare il codice mentre viene compilato e generare al volo nuovi file sorgente C# aggiunti alla compilazione stessa. Vedremo come usarli e quanto possono essere utili nelle nostre applicazioni
TAlk tenuto al CLUB DEGLI SVILUPPATORI - BARI il 20 giugno 2019
Cosa c'è dietro GIT?
Come ragiona GIT?
Qual è il suo modello di storage?
Cosa avviene dietro le quinte di una Commit?
Come viene garantita l'integrità?
Capire a fondo il suo modello di storage è essenziale al fine di evolvere il vostro codice senza timore e in tutta sicurezza.
Il talk è adatto a tutti. Chi non ha mai usato GIT comprenderà cosà c'è dietro ogni comando e riuscirà a impararlo più velocemente. Chi lo utilizza tutti i giorni, potrà approfondire i meccanismi alla base del suo funzionamento e riuscirà a padroneggiarlo con maggiore consapevolezza.
Bio dello speaker
Giuseppe Toto ha maturato forti esperienze nel coordinamento e sviluppo di applicazioni web, mobile e gaming.
Da anni mette a disposizione le sue competenze ad aziende e startup con forte picco di innovazione, aiutandole a crescere e a fare la differenza in un mercato in continua evoluzione. Da grande appassionato di tecnologia, ama trasmettere la propria conoscenza, confrontarsi e imparare costantemente.
blog: https://giuseppetoto.it
Code Contracts and Generics: implementing a LINQ-enabled RepositoryAndrea Saltarello
In questa sessione vedremo come implementare il Repository pattern in modo da creare un Data Access Layer interrogabile mediante query LINQ, delegando l'effettiva esecuzione delle stesse ad O/RM quali Entity Framework e/o NHibernate.
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEDotNetCampus
Questa sessione tratterà delle implementazioni di architetture robuste e scalabili, in scenari di sviluppo applicativi rientranti nella tipologia dei Software as a Service. In particolare vedremo come accopiare le feature e le necessità del SaaS con servizi propri presenti su Azure; con focus su web, servizi mobili, data, e notification.
Dopo una breve introduzione dei concetti di base legati all'Internet of Things, durante questa sessione si fornirà una panoramica degli strumenti che Microsoft mette a diposizione degli sviluppatori per creare le proprie soluzioni IoT: Windows 10 for IoT e alcuni servizi di Azure quali Event Hubs e Stream Analytics. Si utilizzerà un semplice esempio di telemetria per mostrare la realizzazione pratica di uno scenario end-to-end per la trasformazione dei dati provenienti da un sensore in informazioni utili per effettuare analisi e/o prendere decisioni.
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONSDotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DotNetCampus
Amministrare Team Foundation Server può diventare un lavoro a tempo pieno, viste le complessità che può raggiungere. In questa sessione vedremo una raccolta di casi reali - basati sull'esperienza diretta - spaziando dalle attività più comuni fino alle situazioni estreme di una grande infrastruttura, quali strumenti utilizzare e soprattutto quali sono le best practice da tenere in considerazione.
Cosa ci aspetta in Visual Studio 2015 e Team Foundation Server 2015? La nuova versione della piattaforma di ALM e' in arrivo, con molte nuove funzionalita' per sviluppatori e non. In questa sessione faremo una panoramica di cio' che ci arrivera'a con la nuova release, con tutte le novita' per sviluppo, metodologie e DevOps.
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATADotNetCampus
Scopri come utilizzare Azure Machine Learning, un servizio cloud che consente alle aziende, università, centri di ricerca e sviluppatori di incorporare e sfrutturare nelle loro applicazioni funzionalità di apprendimento automatico e analisi predittiva su enormi set di dati. Tramite Azure ML Studio possiamo creare, testare, attuare e gestire soluzioni di analisi predittiva e apprendimento automatico nel cloud tramite un qualunque web browser. Durante la sessione si darà un saggio attraverso un esempio di analisi predittiva sul Flight Delay.
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDotNetCampus
In questa sessione verrà mostrato in che modo la soluzione Microsoft per la VDI (Virtual Desktop Infrastructure) e la virtualizzazione delle applicazioni con App-V ci aiutano a creare una nuova modalità di lavoro, per un’impresa efficiente e al passo coi tempi! La gestione dinamica dei desktop e delle applicazioni velocizza e ottimizza l’infrastruttura IT, permettendo così di rispondere in maniera agile alle mutevoli esigenze aziendali.
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREDotNetCampus
L’ Infrastructure as a Service è la possibilità di creare macchine virtuali nel Cloud, senza dover affrontare i costi legati all'acquisto di nuovo hardware, con il vantaggio della flessibilità e del Pay-as-Use. Durante questa sessione vedremo come creare le Virtual Machine su Microsoft Azure, come gestirle e come metterle in comunicazione con la propria infrastruttura. Creeremo quindi un Hybrid Cloud e ne valuteremo tutti i vantaggi.
Tutte le novià sulla nuova versione di SharePoint racchiuse in una sola singola sessione. Cosa è cambiato e come, cosa non cambierà e cosa non ci sarà più saranno i tre pilastri su cui costruiremo il pianodi avvicinamento a SharePoint 2016 previsto per la seconda parte del prossimo anno.
Di progetti fatti con Arduino se ne sono visti tanti, e tanti se ne continuano a vedere. Se ne vedono un po' meno con Netduino, il microcontrollore che gira con il .NET Micro Framework. In questa sessione vedremo come il nostro giocattolino può diventare un dispositivo di input per il nostro computer. Costruiremo un semplice circuito, e useremo Netduino per raccogliere i dati dall'ambiente esterno e inviarli ad un'applicazione Windows Store.
Microsoft Band e' uno dei piu' innovativi e cross platform smartwatch sul mercato. Recentemente sono stati rilasciati SDK per le principali piattaforme mobile. In questa sessione vedremo come interagire con lo smartwatch da applicazioni Windows Phone e Windows Store.
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!DotNetCampus
Unity3D 4.6 introduce un nuovo sistema di layout per creare interfacce grafiche per la gestione dei menu che permette in modo semplice e veloce di creare tutto quello che non è parte del gioco ma è indispensabile per l'experience dell'utente. Parleremo di interfacce utente nello spazio dello schermo con o senza prospettiva, supporto per l'allineamento perfetto dei pixel, controlli integrati e personalizzati, callback per i controlli dell'interfaccia con il nuovo persistent delegate system.
In questa sessione vedremmo una panoramica degli strumenti messi a disposizione per lo sviluppo nativo su Windows Phone 8.1. Verrà posta particolare attenzione al suo utilizzo per lo sviluppo di applicazioni ibride (C# / C++) che hanno la necessità di riutilizzare algoritmi sviluppati su piattaforme desktop.
Milioni di notifiche con Azure Notification Hub Manda milioni di notifiche ai tuoi utenti Windows, Android e iOS con poche righe di codice tramite Azure Notification Hub. Costruisci il tuo servizio di notifiche push multipiattaforma, scalabile e facile da implementare e gestire. E gratuito fino ad 1 milione di notifiche al mese.
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSDotNetCampus
I Mobile Services di Microsoft Azure rappresentano la soluzione cloud più completa e pratica per gestire diversi scenari, dal login nell'applicazione fino alla gestione dei dati in cloud. Per integrarli nelle nostre applicazioni Xamarin.Forms, però, sono necessari alcuni accorgimenti. Mostreremo come collegare applicazioni Xamarin.Forms ai Mobile Services, gestire le tabelle dati, validare e modificare i dati con gli script, gestire l'autenticazione degli utenti con i Mobile Services.
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTDotNetCampus
Windows 10 è la piattaforma alla base di tutte le tecnologie presenti e future di Microsoft, nella quale giocano un ruolo fondamentale le Universal Windows app. Nel corso di questa sessione vedremo come sviluppare un'applicazione in grado di girare su computer, telefoni, tablet, console e nel mondo IOT e come ottimizzarle per massimizzare le similitudini e gestire le differenze.
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
Sys05 uso consapevole di git - beyond the basic
1. Template designed by
Uso consapevole di git – beyond
the basic
Gian Maria Ricci
Alkampfer@Nablasoft.com
http://www.codewrecks.com
Template designed by
3. Template designed by
Centralizzato (TFVC, SVN, ...) Git
Get Latest - Update Pull
Check-in Commit + push
Branch Branch
Server Origin (multipli)
Analogie sbagliate
Il modo peggiore di imparare git è usare analogie con un
centralizzato
I paradigmi sono troppo differenti e questo processo «genera
mostri»
4. Template designed by
La funzionalità base di memorizzazione di git è prendere un file,
calcolarne il suo hash SHA1 (che diventerà il suo id), zipparlo e
memorizzarlo in .git/objects
Un commit è costituito quindi da
• Un blob per ogni file presente nel commit
• Un blob di tipo tree che contiene la rappresentazione della
struttura della cartella con la lista degli id dei blob dei file
• Un blob di tipo commit che contiene un link al tree, uno o piu
link ai commit precedenti ed alcune informazioni
Comprendere le basi
5. Template designed by
Git è uno strumento per fare
«snapshot» di cartelle
Ogni snapshot punta ad
uno o piu snapshot
precedenti, di cui costituisce
un incremento
Questo insieme di snapshot
costutuisce un grafo
Comprendere le basi
6. Template designed by
Uno snapshot è detto
commit
Dato che ogni commit
punta ai suoi ancestors per
puntare i commit piu recenti
di ogni ramo del grafo si
usano le refs
Come è organizzato questo grafo