November 2009 - Post
Nell’ambito delle attività per DotNetCampania io e gli altri fondatori stiamo cercando di organizzare un tour in tutte le università campane per cercare di portare le tecnologie Microsoft all’interno dei vari atenei della nostra regione. Cercando un po’ su internet i contatti a cui mandare eventuali mail per chiedere la disponibilità delle facoltà a questa idea mi sono imbattuto nel programma Microsoft Student Partner che da anni si occupa praticamente delle stessa cosa a livello Nazionale con varie iniziative. Potete trovare maggiori dettagli qui:
https://student-partners.com/default.aspx
Ho fatto domanda per diventare Microsoft Student Partner per la Federico II e proprio oggi Francesca Vizzi, responsabile Microsoft del progetto, mi ha dato la bellissima notizia dell’accoglimento della mia domanda! Già a dicembre ci saranno delle iniziative presso l’università con la partecipazione di alcuni docenti. Presto vi darò più dettagli: è chiaro che come MSP sarò presente ma stiamo cercando di capire se possiamo partecipare anche come community DotNetCampania. In qualsiasi caso restate sintonizzati: presto saprò essere più preciso….
Forse è vero: pretendo troppo dagli altri! Lo dico perchè oggi me ne è capitata un’altra di quelle che secondo me sono assurde. Come responsabile risorse umane (tra le altre cose) dell’azienda in cui lavoro mi occupo anche di formare e preparare i consulenti per i colloqui… Oggi ci chiedono, prima di un colloquio dal vivo, se due risorse possono sostenere un colloquio telefonico. No problem. Ci prepariamo e sostengono il colloquio: due curriculum completamente .NET, in particolare VB.NET, uno più skillato sulla parte web, l’altro più spinto sulla parte Windows Form. Mi dicono che il colloquio è andato bene quindi organizzeranno quello dal vivo: peccato che la richiesta, l’abbiamo scoperto solo dopo, sia per programmatori VB6 e non .NET e l’esaminatore non ha battuto ciglio…
Che dire…forse devo cambiare mestiere….
La notizia, appresa dal blog di Lorenzo, mi ha lasciato un po’ sorpreso, i dettagli qui:
http://www.microsoft.com/presspass/press/2009/nov09/11-09teamprisepr.mspx
Per chi non lo sapesse (compreso il sottoscritto fino a qualche mese fa) Teamprise ha realizzato il client che permette di utilizzare TFS da Eclipse. Sinceramente non ho mai capito bene perchè un team che utilizza Eclipse dovrebbe pagare la licenza di TFS, nonostante le grandissime feature di TFS. Capiamoci: i vantaggi sono tantissimi ma conoscendo il mondo Java (che penso sia il più grande utilizzatore di Eclipse) ho ben presente quanto sia difficile, quantomeno in Italia, riuscire a convicerli a guardare tecnologie Microsoft…. Evidentemente l’interesse per la comunità di javisti e non che usano Eclipse è supportata da forti previsioni di vendita… Interessante in qualsiasi caso, la cosa merita quantomeno un approfondimento.
Nonostante qualche limite della beta Visual Studio 2010 a portato tutta una serie di novità alla produttività dello strumento. Quella che più mi fa impazzire è la nuova feature del completamente automatico che adesso ricerca tra gli oggetti con l’operatore LIKE… :)
Se come me si viete dati qualche standard per le nomenclature troverete questa funzionalità una vera chicca: finalmente non dovete ricordarvi più come comincia il nome del metodo o dell’oggetto. Davvero bello!
Si lo sò che è una beta e non dobbiamo lamentarci troppo, però è stato detto che è possibile già cominciare ad usarlo in produzione, che poi è il miglior modo di testarlo sul serio! Al momento però ho trovato qualche limite abbastanza importante per la produttività:
- i controlli aspx non vengono sempre riconosciuti dall’intellisense se all’interno, ad esempio di una table: portare il controllo fuori per farsi aiutare dall’intellisense è quantomeno scomodo… Non lo fa sempre, e per la legge di murphy lo fa sempre quando mi serve, ma lunedi dall’ufficio vi posto un caso reale in cui lo fa!
- L’avvio dell’applicazione web (con il classico F5 o con il pulsantino play) dopo un numero imprecisato di volte (molto piccolo, tipo una decina) fa impallare visual studio 2010 il che ci costringe a terminarlo…
- Lavorando in locale su un piccolissimo progetto ho aggiunto un file mdf nella cartella App_Data giusto per creare a volo le tabelline che mi servivano (news, banner, le solite cavolate insomma…) e testare le pagine: purtroppo quando cerco di creare una nuova tabella da visual studio e cerco di salvare, l’ambiente non esegue il checkout automatico, costringendomi per salvare a fare tasto destro –> check out for edit
Magari succedono solo a me ste cose? Giusto per capire se nonostante abbia provato su tre macchine diverse (anche se tutte e tre con windows 7 ultimate, visual studio 2010 ultimate beta 2 e tfs beta 2 installato in locale) ho qualche problema io…
Sono riuscito finalmente a pubblicare un po’ di foto e le slide del community tour 2009 tenutosi a Napoli il 28 Ottobre 2009, ecco i link:
http://dotnetcampania.org/content/CommunityTour2009.aspx
Un grazie di cuore a tutti i partecipanti a cui do appuntamento ai prossimi eventi che stiamo organizzando: occhio al sito che a breve pubblicheremo le date.
Vi ricordo che la nostra è stata solo la prima tappa del tour. Non perdetevi tutte le altre:
http://www.microsoft.com/italy/lancio09/community.aspx
Al momento manca OrangeDotNet ma non temente: è questione di giorni!
In bocca al lupo ragazzi
Purtroppo mi sono inibito a portare la mia Nikon che non riesce a passare inosservata…quindi dovrete accontentarvi delle foto fate con il mio Samsung Omnia…di per se, grazie ai suoi 5 Megapixel non è male, ma se non c’è luce non ci può fare veramente niente!
Gian Maria Ricci termina questa giornata spiegandoci come includere il database nell’ALM.
Molti dei nostri applicativi hanno sotto dei database, quindi perchè non comparare la gestione del codice a quella del database? Ci sono delle difficoltà:
- Tracciare l’evoluzione degli oggetti
- Effettuare una regressione daun aversione precedente
- Stabilire la paternità del codice delle stored
- Effettuare il deploy in produzione
- Aggiornare il database esistente in produzione
- Gestire più installazioni con versioni di database differenti
- Creare un database di test
- Popolare il database di test con dati significativi
Le soluzioni tradizionali:
- Database di sviluppo condiviso
- Aggiornamento tramite script sequenziali
- Confronto schema
Il database è modellato da script sequenziali quindi aggiornare il db è semplice, ma tornare indietro è quasi impossibile! Gestore più versioni poi…
In Visual Studio 2008 Database Edition abbiamo tutti gli strumenti necessari a gestire questi problemi:
- Gestione del source control
- Strumenti di deploy
- Supporto allo unit testing
Attraverso l’uso di wizard è possibile creare un progetto database e importare gli script di un database esistente. il sistema crea un albero in cui invece di file sorgenti avremo file di tipo sql. Il database project quindi crea un “database logico”: ogni file rappresenta un singolo oggetto del database. Inoltre la conoscenza esatta della struttura del database logico permette di individuare errori strutturali, ad esempio il nome di un campo sbagliato. Essendo in visual studio possiamo inoltre confrontare la versione attuale del db con una versione presente nel source control. In visualizzazione struttura vediamo subito eventuali errori su singoli oggetti grazie alle iconcine apposite.
Il database logico può essere confrontato con uno fisico per generare uno script di aggiornamento. E’ possibile usare un tool da riga di comando, gratuito e ridistribuibile con le nostre applicazioni per lanciare questi script. Si possono sincronizzare anche versioni multiple mediante script o aggiornando direttamente l’istanza. Naturalmente ci sono anche strumenti di confronto tra database fisico.
E’ possibile creare Unit Test di stored procedure, trigger e funzioni. Visual Studio crea il database di test, allinearlo e generare i dati di test con il Data Generation Plan, il che ci da robustessa e soprattutto ripetibilità del test!
Giancarlo Sudano di ObjectWay (e aggiungerei di OrangeDotNet) ci presenta le problematiche di testing e deployment di applicazioni.
Quando viene trovato un bug da parte di un tester quest’ultimo lo notifica al developer che ha il compito di fixarlo. Il developer di solito risponde: “ma da me funziona….”. Quindi il dev ha bisogno di info aggiuntive che per quanto possano essere ricche esiste il problema di riprodurre il bug sulla sua macchina: avviene il cosiddetto PING PONG Bug, il tester e il dev si palleggiano informazioni per ricreare il bug.
Gli ambienti di sviluppo ed esecuzione sono diversi: i programmatori sviluppano nel loro ambiente (ambiente di sviluppo), i tester nel loro (ambiente di test), ecc.. Una soluzione può essere unificare l’ambiente, ma diventa onoreso specie se ci sono più team che sviluppano in parallelo. Allora Virtualizziamo! Ma abbiamo bisogno di sistemi di testing che funzionino con la virtualizzazione in modo automatico: Microsoft ha creato Test and Lab Manager (client) e Test and Lab Management (server).
Test and Lab Manager è un client pensato per i tester scritto in WPF per poter pianificare e fare tracking di test. Posson testare windows form, wpf, web, web con javascript e web con silverlight.
Test and Lab Management è il server che permette di gestire lato server la fase di test delle applicazioni: integra SCVMM (System Center Virtual Manager Management) per la gestione delle macchine virtuali per gestire gli ambienti di test. Il tester può quindi decidere la macchina su cui fare i test!
La cosa interessante è che il tester fa i test e se trova un bug è possibile creare un bug in tfs (un work item di tipo bug) con tutte le info allegate, compreso il link allo snapshot della macchina virtuale su cui è avvenuto il bug!
Un’altro strumento figissimo è l’Intellitrace: possiamo loggare tutto ciò che ha fatto il tester e vedere in un certo momento i valori delle variabili! In spazio e tempo costerà un botto ma ho tutti gli strumenti che mi servono per eseguire il debug!
E se ho più team in parallelo che hanno bisogno della stessa configurazione delle macchine (stesso nome delle macchine ad esempio): si può fare! Sono macchine virtuali diverse che sulla rete si vedono con gli stessi nomi e quindi non devo cambiare niente nei file di configurazione!
TeamDev nella persona di Andrea Cruciani ci parla di Design e Sviluppo finalmente insieme legati dai nuovi strumenti di Microsoft.
Uno dei principali fattori di costi nello sviluppo software è la manutenzione, tra cui rispondere a posteriori a problemi di usabilità dei prodotti realizzati. Spesso è il programmatore che realizza l’interfaccia client dell’applicazione che di solito diventa una form grigia con i soliti pulsanti.
User Interface (User Experience) e Tecnico devono collaborare alla realizzazione del prodotto. Ma Developer e Graphics Designer hanno spesso approcci allo sviluppo completamente opposto: il programmatore mette nell’interfaccia tutto ciò che serve, magari su un solito form. Per il grafico il bello innazitutto. Servono figure nuove: l’esperto di User Experience.
Le tecnologie adesso ci sono: WPF e Silverlight ci permettono di separare i due aspetti. Gli strumenti anche: Expression Studio e Visual Studio legati insieme da TFS. Grazie allo XAML, il linguaggio dichiarativo per la definizione delle UI è possibile separare lo strato di UI dalla logica applicativa.
Lato designer lo strumento principe è Expression Blend 3 che abbatte la barriera tra designer e sviluppatori. La versione 3 include anche SketchFlow che ci permette di creare prototipi dell’interfaccia utente del prodotto che vogliamo realizzare, dandoci la possibilità di mostrare subito al cliente come verrà organizzata l’interfaccia in modo che ci può subito dare un feedback su quello che si aspetta.
Attraverso l’ambiente (blend), un plugin e una mappa di navigazione possiamo creare delle view e collegarle tra di loro. Il plugin ci permette di mostrare al cliente la navigazione, volendo anche mostrando qualche dato fake che aiuti a rendere meglio l’idea.
Blend 3 supporta anche TFS, che ci permette di eseguire le solite operazioni a cui siamo abituati in visual studio: check-in, check-out, hystory, ecc…
Il fulcro è la collaborazione con il cliente: con sketchflow player gli mostriamo l’interfaccia e attraverso alcuni tool possiamo aggiungere commenti sull’interfaccia per annotarci le modifiche che ci chiede (diamogli un limite…:) trall’altro usando l’interfaccia in fase di prototipazione il cliente comincia a imparare a usare l’interfaccia!
Per il web c’è un altro strumento della suite Expression per aiutarci a migliorare il look & fell legato al cross-browser: superpreview. Con questo tool, integrato in Expression Web, possiamo visualizzare una stessa pagina web così come verrebbe renderizzata dai principali browser sul mercato.
Progesoftware ci presenta le novità di Visual Studio 2010 per l’architetto. Visual Studio 2010 mette a disposizione 5 tipologie (dei 14) di uml diagram:
- Component Diagram
- Use Case Diagram
- Sequence Diagram
- Class Diagram
- Activity Diagram
Al momento (beta 2) i diagrammi non sincronizzano con il codice. La versione definitiva dovrebbe farlo. Esiste un plugin della T4Editor col quale estendere visual studio…
A partire dagli use case è possibile creare un nuovo Work Item o legarlo a un work item esistente. Se abbiamo un progetto esistente possiamo creare un documento DGML per vedere le relazioni tra i componenti della solution, possiamo vedere ad esempio la Dependency Matrix che ci mostra le dipendenze tra gli assembly.
Il nuovo Layer Designer col quale realizziamo il layer diagram ci permette di validare la strutturazione dell’architettura.
Infine c’è il Diagram Explorer che ci permette di navigare nell’architettura realizzata.
A questo punto c’è stata una piccola demo su una solution esistente convertita a Visual Studio 2010 sulla quale è stata creato il documento dgml per visualizzare la struttura della solution. E’ stato anche creato un layer diagram su cui sono stati trascinati vari assembly per creare l’associazione tra diagramma e sorgenti, infine ne è stata fatta la validazione che, anche se mooolto lentamente, è andata a buon fine.
Davide e Paolo si pongono l’obiettivo di spiegarci le possibilità di adozione di metodologie agili nei nostri progetti, con tutti i problemi e i benefici del caso.
Si parte dal cliente, da cui acquisiamo requisiti, funzionalità e aspettative temporali, nonchè costi. Poi c’è il team di sviluppo, che mette in campo tecnologia, skill, agilità e Mood. C’è poi il project management con budget, gestione risorse, tracciabilità. Questo è l’ecosistema, l’ambiente in cui stiamo lavorando.
Adottare una metodologia agile ha i seguenti vantaggi:
- migliorare reattività, qualità e tracciabilità
- normalizzare team e approccio progettuale
Quale metodologia adottare? Dipende dall’attitudine e dalla situazione attuale. Sicuramente deve soddisfare le nostre necessità e non sceglierla per moda…
Quando facciamo un progetto la variabile umane è quella più determinante nei risultati ottenuti, a parità di metodologie. Di solito ci troviamo di fronte alla sindrome dello studente: si parte con calma, si arriva in ufficio con calma…poi ci si avvicina alla scadenza e lì cominciamo a buggare continuamente perchè il livello di stress si alza vertiginosamente. Quindi una consegna lunga può portare a problemi dovuti a questa sindrome.
Una soluzione può essere SCRUM: è un framework interattivo che permette la gestione di lavori complessi. Ne esiste un template, anzi tre, per TFS. Un processo SCRUM è incentrato sul cosa c’è ancora da fare. Il product Owner decide le funzionalità da realizzare, lo SCRUM Master è il responsabile dell’adozione della metodologia nel team e funge da interlocutore tra il product Owner e il team.
Si parte dalla preparazione: user story, vision, productbacklog (elenco di tutte le funzionalità attese ordinate per priorità dal product owner), piano di rilascio iniziale, identificazione degli SPONSOR, composizione del team e logistica. Si parte dal product backlog smarcate con le prime SPRINT: ci si riunisce (per 8 ore) e si fissa la durata della prima scadenza (sprint) che dovrebbe essere di 15 giorni, max 30. Nel prima parte del meeting ci si dice COSA si aspetta il cliente. nella seconda il team decide COME farle. Il ciclo è giornaliero: ci si incontra tutti i giorni (daily meeting) e si fa il punto della situazione, se ci sono problemi tutto il team lo sa, tutto il team sa a che punto siamo. Si rilascia la prima versione e si fa uno SPRINT REVIEW seguito da uno SPRINT RETROSPECTIVE spiegando cosa ha funzionato e cosa no in modo da correggere il tiro per lo sprint successivo. A questo punto si ricomincia! La cosa importante è che rilasciando funzionalità stiamo dando valore al CLIENTE!
A questo punto scadenze brevi annullano l’effetto della sindrome dello studente e il livello di stress del team rimane costante.
Come si fa ad adottare in un’azienda che non sia una startup? Si parte da un piccolo team che adatta la metodologia alle proprie necessità. Dopodichè gli altri team adottano la versione modificata della metodologia: chiamiamola contaminazione dei team!
TFS ci offre integrazione con vari prodotti della famiglia office, il che aiuta le figure non tecniche a seguire la metodologia: project ed excel ad esempio.
Non dimentichiamo che dobbiamo gestire i costi dell’adozione della metodologia, per restare nei budget e concorrenziali sul mercato. Grazie alle metriche di valutazione e la reportistica di TFS possiamo fare un’analisi delle tempistiche e dei costi sui progetti precedenti e riuscire a stimare i nuovi tempi.
Abbiamo un po’ sforato i tempi…ma ne è valsa la pena!
Lorenzo ci illustra le nuove versioni di Visual Studio: finalmente si sono accorti che difficilmente in un’azienda c’è una persona per ogni ruolo (io da solo ne svolgo almeno 3…)! Le nuove versioni saranno:
- Professional
- Premium: database + developer + test automation
- Ultimate: Intellitrace e Test & Lab Manager su tutte…
- Test elements: contiene test e lab manager (prodotto client)
- Lab Management: questa è quella completamente nuova! (prodotto server)
- TFS (prodotto server)
Il lancio ufficiale è il 22 marzo 2010! (ok, lo sapevate già….) La data per gli abbonati MSDN non si sa ancora.
TFS si può installare su Windows 7 e windows Vista (io l’ho fatto!!! che figata). Si può installare su Domain Controller. Si può installare senza Sharepoint e Report (finalmente!!!!!). In versione Basic offre: version control. work item tracing e build automatizzate. Sarà incluso in tutti gli abbonamenti MSDN.
NEL 2011 SARA’ ABBONDONATO LO SVILUPPO DI SOURCESAFE!!!!
Piccolo fuori agenda: con visual studio 2010 non potete sviluppare per sharepoint 2007… Tool per Sharepoint: sharepoint designer 2010, list & libs, design web pages, web part hook-up view & forms, declarative workflows. Integrazione con visual studio 2010 e Visio. Esiste una versione di sviluppo e test di sharepoint che si installerà sulle macchine client! Mi sa che è arrivato il momento di vincere la mia avversione per sharepoint e dargli almeno un occhio….
Esiste un training kit per vedere e provare visual studio 2010 e tfs. Si può andare in produzione con visual studio 2010 ma è sempre una beta. Se volete usarla in produzione si può mandare una mail a microsoft per avere un id con il quale segnalare eventuali errori bloccanti in produzione…
Chi ha un abbonamento msdn premium al momento del lancio invece di passare alla professional (l’equivalente) avrete gratis la premium. Chi ha la team passa alla ultimate. Al rinnovo potete decidere che fare, cioè se passare ad un versione più bassa o continuare con quella avuta. La cosa importante per usufruire della promozione è che msdn deve essere attiva al 22 marzo (ci vuole qualche giorno!).
Domande:
1, Team Lab management è un prodotto server a parte e quanto costera? Si, è un prodotto server a parte, sarà licenziato per processore ma al momento non si sa il prezzo. Sicuramente non saranno include le licenze dei Sistemi Operativi da instalalre nelle macchine virtuali. Il prodotto client è la Test Elements è costerà meno di visual studio.
Vi scrivo dall’ALM Day dove è cominciata la giornata di sessioni dedicati all’application lifecycle managment. La location è lo Shareton Golf Hotel, la stesso del lancio di Windows 7, naturalmente la partecipazione non è paragonabile anche se la sala in cui ci troviamo è piena. Si comincia subito con una buona notizia: le slide della giornata ci saranno consegnate alla consegna del modulo di feedback su una pennina usb!
Qualche problema tecnico con i microfoni fa slittare leggermente l’inizio dei lavori.
Pasquale Della Torca ci da il benvenuto e ci illustra il programma della giornata: fino alle 11.45 in plenaria, poi ci dividiamo in “metodologie e processi” e “collaborazione e produttività”. Purtroppo la persona di TeamPrise non è riuscita a venire quindi la sessione su Cross-Platform Development with TFS sarà tenuta da Lorenzo Barbieri.
Si parte con Brian Harry (se ho ben capito è il papà di TFS): Vision and Strategy for Application Lyfecycle Management. La sessione naturalmente è in inglese…è il momento di mettere alla prova il mese passato in Inghilterra l’estate scorsa!
I punti cruciali della sua presentazione:
- Testing: le nuove features sono test planning, test case management, functional testing, manual testing, diagnostic recording, run management & reporting, Test prioritirization
- Lab: gestione dell’ambiente, automatizzazione del deploy, network fencing, checkpoints
- Agile Practices: work items gerarchici, agile workbooks, continuous integration++ :) , dashboards, cross project reporting!
- TFS Deployment: Admin console, più flessibilità e setup più semplice; servizi di consolidation & hosting e migration.
- Architettura: il nuovo Architecture Explorer, Layer Diagram (che già sto usando con profitto…) Use case designer, activity designer, component diagram, logical class designer, sequence diagram e ultima solo in elenco validazione dell’architettura.
- Sharepoint: WSP Importer, site template development (lists, workflows, events…), web parts, packaging & deployment, team development.
- Altro: cloud applications, RIA, technical/scientific
Cosa ci aspetta:
- Ship 2010! :)
- Power Tools
- ProjecServer
- Dev 11 Planning
- Requirements
- Agile Project Management
- Test & Lab V2
- Collaboration
- Deployment & release management
E’ il momento delle domande:
1. Si può migrare da tfs 2009 a tfs 2010? la risposta è sì!
Tra poche ore ormai mi recherò a Roma per l’ALM Day: una giornata tutta dedicata alla gestione del ciclo di vita delle applicazioni! L’agenda è molto *** e ci saranno due track tra cui mi districherò a seconda delle necessità.
trovate l’agenda qui:
http://www.microsoft.com/italy/alm/eventi/almday/index.aspx#1
Per chi ci sarà ci becchiamo lì, per chi non può è possibile rimediare il giorno dopo a Milano, per chi non potesse neanche a Milano…vi accontenterete del mio reportage!
Restate sintonizzati!
Più Post
Pagina seguente »