Tuesday, July 31, 2007

[TFS.eX] Team System WebAccess

Stamattina leggo sul blog di Aldo Donetti, che ho avuto il piacere di conoscere a Redmond in occasione del Global Summit, che è finalmente uscito Team System WebAccess, il nuovo power tool, figlio di TeamPlain.
Il nuovo strumento, non ho mai provato il predecessore, è a dir poco fenomenale!
L'installazione fila via che è un piacere e senza nessun intoppo, io ho deciso di installarlo come sito web separato e non in un sito esistente e poi modificare le impostazioni da IIS per adeguarlo meglio al mio scenario, tra cui implementare SSL.
Adesso non mi resta che litigare un po' con ISA Server per pubblicarlo ed evitare di dover accedere prima via VPN alla rete interna.

Detto fatto, più facile del previsto Open-mouthed, l'unica vera menata è che avendo un solo indirizzo pubblico e avendo già OWA pubblicato sulla porta 80/443 ho dovuto configurare TeamSystem WebAccess e ISA per usare altre porte.

Comunque funziona che è una lippa!

.m

Distribuzione di applicazione via GPO

Una delle cose che ho sempre ritenuto noiose è la distribuzione delle applicazioni, farsi il giro dei client armati di CD è una di quelle cose che proprio non sopporto.
Spinto da questa antipatia già da tempo immemore, fin dalle primissime installazioni di controller di dominio Windows 2000, faccio un uso proficuo della distribuzione di applicazioni via Group Policy.
Requisiti:
  • Un dominio "Active Directory";
  • Client membri del dominio;
  • Un pacchetto di distribuzione per Windows Installer;
La procedura è decisamente semplice, creiamo una share di rete (accessibile in lettura a tutti coloro i quali dovranno poter installare l'applicazione) e copiamo in questo share l'msi da distribuire.
Procediamo quindi con l'assegnare ad una Organizational Unit un nuovo criterio (Group Policy Object) e in questa nuova GPO creiamo il nostro pacchetto di distribuzione:
gpo-1
Al riavvio dei client inclusi in quella OU magicamente la nostra applicazione sarà installata. Perchè tutto ciò avvenga senza intoppi è fondamentale che il nostro pacchetto di distribuzione supporti una "Silent Install", cioè un'installazione che sia ingrado di proseguire senza intervento dell'utente che si ritroverà installata l'applicazione con tutte le opzioni di default.
A questo punto la cosa interessante diventa la possibilità di produrre degli aggiornamenti per la nostra applicazione, la cosa più semplice è produrre un nuovo file "msi" assicurandosi di cambiare la versione del deploy in modo da aggiornare il "Product Code". Una volta compilato e piazzato nella solita directory condivisa è possibile aggiungerlo ai pacchetti distribuiti via GPO. Riapriamo il nostro editor e creiamo il nuovo pacchetto:
gpo-2
Come si nota dall'immagine il nuovo elemento ha una versione maggiore di quella del precedente e ha una iconcina che lo identifica come aggiornamento, dalle proprietà dell'elemento è possibile verificare quali pacchetti andrà ad aggiornare.
Comodo, decisamente comodo.
.m

Thursday, July 26, 2007

[MSDN] Nuovi articoli

msdn_thumb4  Sono usciti su MSDN ben 2 Open-mouthed nuovi articoli, che manna!
Per i sorgenti e gli esempi trovate tutto qui.
Al solito non sparate sul pianista , ma commentate!
.m

Wednesday, July 25, 2007

[OT] Certe cose non hanno prezzo...

Scrivo questo post offline la mattina dopo, giuro che quando sono arrivato in albergo stanotte (ore 3.00) avevo la voglia di scrivere ma sono letteralmente morto sul cuscino... quindi non so se sono "primo".

Comunque, bando alle ciance (si scriverà con o senza "i", troppo stracciato anche solo per cercare di capire dove andare a cercare...), serata bellissima, compagnia come al solito inimitabile il tutto condito da un'ottima cena e da una piacevole passeggiata a Camogli che con pinguino e chi con granita, un po' chimica vero Janky?
Grazie a tutti per l'ennesima volta!
Volevo infine lasciare una piccola postilla, una considerazione strettamente personale, riallacciandomi a quanto dice Lorenzo, io sono uno che se qualcosa non va si lamenta, se poi pago pretendo come un disgraziato, sono uno "spaccamaroni" di primissima categoria, ma non mi fermo li, lamentarsi e basta non serve proprio a nulla se poi non si agisce per cambiare le cose. Anche io pago il mutuo, anche io ho una famiglia, anche io ho un gatto che deve andare dal veterinario, insomma ognuno ha le sue magagne ma farsi mettere i piedi in testa dalle magagne non serve a nulla.
Perchè tutto ciò?
Perchè una spinta ad essere così te la da l'ambiente che frequenti, se frequenti un ambiente molle, remissivo, fatto di persone senza palle (, babbo docet) alla fine diventi così.
Basta volerlo, basta rimboccarsi le maniche e darsi da fare, come? partendo dalle piccole cose, una su tutte le persone!
Prendere armi e bagagli, partire da Bergamo, per andare ad una cena a Recco e invece di tornare a casa andare direttamente a Biella perchè la mattina dopo il cliente aspetta è un po' da folli su questo non ci piove, ma l'esperienza che si vive è impagabile, l'ho fatto e lo rifarò, su questo non c'è dubbio, mille e mille altre volte per le persone, per il clima per l'esperienza.
Fatelo, la prossima volta che il solito ignoto organizza, o che l'altro solito ignoto dice che a casa sua la focaccia è da provare, buttatevi e presentatevi anche voi non vi magerà nessuno anzi scoprirete un mondo fatto di persone normalissime unite da una passione: quella della community.
Adoro questo lavoro, soprattutto per queste cose, grazie!
.m

Thursday, July 19, 2007

[OT] ... dura la vita :-D

...un po' mi vergogno, giuro.
Oggi uno dei soliti ignoti, io e una collega ci siamo sparati una piacevole(issima) pausa pranzo in una piscina comunale in quel del biellese, uno dei piaceri della vita!
molto bene, molto Open-mouthed
.m

Wednesday, July 18, 2007

[OT] "Blu Tornado"

Siiiiii!!!!
Lorenzo ed Io ieri sera siamo finiti sul Blu Tornado a Gardaland, troppo una figata!
Volevo inoltre ringraziare tutti per la piacevole serata. Per una volta, nonstante qualcuno si sia lamentato tutta sera Wink, non abbiamo parlato di .NET, ne di UGI ne di politica.
Ci siamo solo divertiti come dei "bimbetti al parco", molto bene!
.m

Tuesday, July 17, 2007

Virtual Machine Remote Control Client Plus

Da qualche giorno sto usando il prodotto in oggetto e come mi era già successo tempo fa rimango basito da certe assurdità...
2 piccole note:
  • non è possibile connettersi al server con credenziali diverse da quelle dell'utente che ha lanciato l'applicazione... quindi se il vostro utente non ha permessi amministrativi su Virtual Server è necessario lanciare l'applicazione con RunAs... lo so che non è semplice istanziare un oggetto COM remoto con credenziali diverse da quelle del chiamante ma quell'applicazione l'ha scritta MS non un pinco pallino qualsiasi... (leggasi il sottoscritto)
  • Tra le varie opzioni di controllo di una macchina virtuale compare una bella voce reboot... che bada ben non è il reboot ma bensì un reset della macchina virtuale Angry ma chi gliel'ha chiesto di cambiare nome...
So Much Ado About Nothing ()
.m

[TFS.ex] Sidekicks

Ci sono una pletora (grazie a Lorenzo) di tool che sono nati intorno a TFS alcuni sono a pagamento e molti altri sono totalmente free. Quello che sto sperimentando in questi giorni sono i Team Foundation Sidekicks di Attrice.
Una delle necessità che ho è in fase di rilascio (che generalmente coincide con la consegna di una nuova versione al cliente) è di avere sotto mano, sia io che il team del cliente, la lista degli WorkItem, siano essi Task(s), Bug(s) o altro, che la versione che sto rilasciando porta con se.
Questa funzionlità è egregiamente svolta dalla TeamBuild che al termine della compilazione prepara un report con tutti i dettagli, WorkItem compresi; nel mio caso però volevo avere le stesse informazioni senza dover necessariamente passare per una TeamBuild.
Fortunatamente ho sembre avuto la buona abitudine di "taggare" con una Label ogni versione che rilascio e in questa direzione i Team Foundation Sidekicks sono un valido aiuto perchè permettono di recuperare (Label Sidekick) tutti i changeset(s) e tutti gli WorkItem(s) legati ad una determinata label. Esattamente quello che mi serviva!
Altra cosa estremamente comoda è la possibilità di visualizzare lo stato di tutte le branch di un determinato progetto al fine di sapere se siano disallineate ed è necessario procedere ad un merge.
.m

Monday, July 16, 2007

[OT] Gli antipodi...

E' un periodo che sto vievendo sentimenti decisamente contrastanti...
Sono felicemente "accasato" e questa è la cosa più importante!
Sono felice e soddisfatto, adoro il mio lavoro e grazie ai soliti ignoti (a cui ultimamente se ne è aggiunto uno) le soddisfazioni sono sempre di più.
Sto veramente bene! Grazie, di cuore. Voi sapete chi siete!
Dall'altra parte post, commenti (che mi trovano perfettamente d'accordo) e avvenimenti dell'ultim'ora: stanotte hanno regalato la macchina nuova al mio vicino di casa... mi fanno incazzare e basta. La voglia di seguire altre strada è sempre più forte, anzi di più.
.m

Monday, July 9, 2007

[TFS.eX] Lavorare offline: WorkItem

La saga continua, sono sempre più soddisfaftto!
Sto procedendo con il caricamento in TFS dei progetti esistenti e uno dei lavori da fare è convertire tutta quella miriade di documentipostitappuntiscarabocchiechipiùnehapiùnemetta in qualcosa di più comprensibile e gestibile: in una parola WorkItem.
Non vi spiegherò cosa sono, per quello ci sono un'infinita serie di WebCast di Lorenzo.
Quello di cui vorrei parlare è il solito problema della gestione off-line anche di questa funzionalità.
A prima vista sembra che TFS non offra nessun supporto, ma proprio nessuno per la gestione off-line degli WorkItem, nulla di più falso!

WorkItem: Si può fare (cit.) ed è anche abbastanza semplice: Excel is the word (cit.)
L'installazione del Team Explorer installa anche un Add-in per Excel (nel mio caso la versione 2007, non so se vada anche per la 2003) che permette di accedere a tutte le query di ricerca create in TFS. Una volta creato il collegamento con una determinata query in Excel è possibilie manipolare tutti i dati come se lo facessimo da Visual Studio, natruralmente anche se siamo off-line.

Lorenzo nei commenti mi fa notare che: l'add-in è nato per Excel 2003, e che è fondamentale avere il SP1 del Team Explorer, inoltre se il Team Explorer viene installato dopo il SP1 di Visual Studio è necessario riapplicare il SP

L'Add-in ha poi una comodissima funzionalità per pubblicare su TFS tutte le modifiche apportate e recuperare dal server le modifiche eventualmente apportate da altri.
Una delle funzionalità che più mi ha stupito è la complessa gestione dei conflitti/errori che è possibile fare direttamente dall'interfaccia di Excel.
Naturalmente oltre che a lavorare off-line l'esportazione/importazione da e verso Excel può essere decisamente utile per fare ad esempio "bulk insert".
.m

Sunday, July 8, 2007

SSL... che tristezza certe cose

ErroreCertificato
...la cosa che più mi fa incazzare è che non è il sitarello della ferramenta sotto casa...
Che tristezza...
.m

Thursday, July 5, 2007

[TFS.eX] Lavorare offline: il source control

Prosegue la mia intensa esperienza con Team Foundation Server, se va avanti così tra un po' uno dei miei mentori mi definisce "TFS Addicted" ;-)
Facendo il consulente sono quasi sempre offline vuoi perchè:
  • Il cliente per policy non mi da accesso alla rete;
  • il cliente mi da accesso alla rete (internet) ma blocca le VPN quindi non accedo a quello che mi serve della rete dell'ufficio;
  • L'UMTS di Vodafone è un furto legalizzato ;-)
  • La rete dell'uffico, raramente ma succede, è giù...
Queste motivazioni, ce ne sono probabilmente altre, rendono necessario avere un buon, anzi ottimo, supporto per il lavoro offline.
Vi ho già parlato dell'uso che si può fare di Groove quindi non vi tedierò oltre anche perchè la configurazione è di Groove è di una semplicità disarmante, mentre per la parte server il white paper che ho linkato è esaustivo.
Oggi ho approcciato invece la necessità di avere a disposizione offline il Source Control, e direte be mi sembra il minimo....si certo ma non è detto che sia una cosa scontata
SourceControl
Questa è l'area che per ora fornisce il supporto più raw al lavoro offline, il team explorer non offre nessuna funzionalità per il lavoro offline e ci sono una serie di trick da mettere in pista per cercare almeno di lavorare sereni:
  • Disabilitare da registro una malefica impostazione di Visual Studio che fa si che all'apertura l'IDE cerchi di connettersi sempre a TFS: [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\TeamFoundation]
    "AutoLoadServer"=dword:00000000

    La modifica del registro è a vostro rischio e pericolo ;-)

fatto questo sarà necessario connettersi manualmente al TFS, operazione che comunque avviene in automatico se cerchiamo di aprire una solution sotto Source Control.
E qui troviamo le prime carenze, all'apertura della solution, se siamo off-line, non ci viene chiesto se vogliamo lavorare off-line o meno ma ci vengono ritornati un po' di errori di connessione e poi una form che ci chiede se vogliamo lavorare temporaneamente senza source control o se vogliamo rimuovere i binding con il TFS... naturalmente  la scelta deve ricadere sulla prima opzione ;-)
Fatto questo lavoriamo normalmente, quasi come se fossimo connessi, non avremo più le dialog per il check-out ma in fase di salvataggio l'IDE ci informerà che il file (se era in check-in) è in sola lettura e se vogliamo sovrascriverlo, diciamo di si.
  • Una volta che siamo nuovamente connessi alla rete e il TFS è raggiungibile riapriamo la solution su cui abbiamo lavorato off-line. per sincronizzare le modifiche eseguite off-line utilizziamo un tool da riga di comando (compreso nei Power Tool di TFS):

    TFPT.exe online /deletes /exclude:Obj,Bin,*.CodeAnalysisLog.xml,*.lastcodeanalysissucceeded,*.suo,*.user,*.bak,*.temp,*.tmp

    Eseguendolo nella directory in cui c'è la solution su cui abbiamo lavorato il power tool esguirà tutti i check-out e le altre operazioni al fine di replicare sul TFS quello che abbiamo fatto. Ho sottolineato replicare perchè è fondamentale capire che il tool riesegue i passi come se li avessimo fatti noi on-line quindi nella history del changeset ci ritroveremo tutto, con gli orari un po' sballati ma comunque nella sequenza corretta
Due note molto importanti:
  1. Prima di eseguire qualsisasi cosa il tool vi mostra una bella dialog con l'elenco delle operazioni che farà, da li potete modificare quello che volete;
  2. Dopo che ha eseguito tutte le operazioni siete sempre e comunque in check-out quindi nulla è ancora sul server e questo è un'ulteriore paracadute fondamentale;
Un'ultima nota: potete includere il tool negli "External Commands" di Visual Studio, se lo fate ricordatevi di non spuntare la check box "Use Output window" perchè altrimenti la prima dialog di conferma ve la perdete...
.m

[OT] Community Dinner, primo :-D

 Sono di ritorno dalla cena sul Lago di Garda organizzata da Matteo Migliore, è stata un vera sfaticata perchè la partenza per me è stata da Biella il che ha comportato un bel po' di km per arrivare a Garda e il rientro fino a Bergamo lo pagherò domani...
Devo però dire che queste serate non hanno prezzo, ogni sforzo per esserci secondo me è semplicemente meritatissimo. Perchè?:
- Si mangia, il che non è poco. Stasera con 25€ a testa abbiamo avuto un buon giro di antipasti, 2 primi (Tortelli al tartufo e Maccheroncini con bufala e pomodorini) e una grigliata mista di carne, caffè, ammazza caffè e biscotti;
- Si conosce sempre gente nuova che condivide con te le stesse passioni;
- Si reincontrano persone che è sempre piacevole rivedere e con cui discutere è un onore;
- e la cosa più importante si fa un sacco di community: si discute, ci si inalbera e si arriva quasi a litigare, con toni che non sempre sono pacati. Ma la possibilità di poter mettere sul tavolo le proprie idee e confrontarsi con gli altri secondo me è impagabile, e questo dovrebbe farvi capire cosa è stato il nocciolo della serata ;-)
insomma una serata veramente bella, grazie a tutti!
Venite gente, venite!
.m

Monday, July 2, 2007

OmeaReader: R.I.P.

Oggi ho definitivamente abbandonato OmeaReader infavore di RSS Bandit, non ho mai avuto problemi con OmeaReader, che per inciso mi piaceva perchè mi sincronizzava anche i commenti, se non che da qualche giorno a questa parte non c'era più mezzo di scaricare mezzo post... CPU alle stelle e nulla di più.
Oggi allora mi sono messo alla ricerca e ho dato una nuova possibilità a RSS Bandit che nella versione che ho scaricato mi permette di vedere anche i commenti.
Vedremo come si comporta!
.m

[TFS.eX] Primi passi con TFS

Vorrei riportare alcune esperienze fatte con TFS in questi ultimi giorni perchè sono degne di note e ricche di soddisfazioni.
Innanzitutto ringrazio Lorenzo per il supporto, come al solito impeccabile, di TFS ne sa una più del diavolo, e non solo di quello...

Andiamo con ordine:
Installazione: l'installazione l'ho fatta in un ambiente virtuale con Virtual Server, è filato tutto liscio seguendo la guida a corredo, i passi da compiere non sono pochi ma direi che sono decisamente semplici. Inoltre su consiglio del "Raff nazionale" ho montato i dischi virtuali su un controller scsi virtuale migliorando mostruosamente le performance della macchina virtuale.
Facendo il consulente lavoro spessimo, ormai sempre, fuori casa e per accedere a TFS dall'esterno ho deciso, causa forza maggiore, di non esporre direttamente l'application server all'esterno ma preferisco utilizzare una VPN per accedere alla mia rete e da li accedere via HTTP a TFS, su MSDN c'è un articolo che cerca di spiegare come abilitare l'accesso a TFS (e a tutti i suoi componenti: SharePoint Services e Reporting Services) via HTTPS al fine di poter esporre con maggior sicurezza l'application server senza dover passare per una VPN.
Ammetto di averci provato, ecco il motivo del cerca in corsivo e della forza maggiore, ma di non esserci riuscito...e non solo alla fine non andava più nulla... quindi ho buttato la macchina virtuale e rifatto tutto da capo ;-), benedetti "Undo Disks".
Sempre perchè sono spesso lontano dalla mia rete mi capita anche molto spesso di lavorare senza avere il collegamento ad internet, vuoi perchè non c'è proprio o perchè il cliente per policy impedisce ai consulenti l'accesso alla propria rete e vuoi perchè l'UMTS di Vodafone costa una palata..., mi sono accorto che uno dei limiti di TFS è il supporto per lavorare offline, in questa versione (che del resto è una 1.0) è limitato ad un tool da riga di comando per riallineare le modifiche fatte offline con il contenuto del server, ma il tutto è limitato al solo source control, quindi se siete offline non avete più nessun accesso a WorkItem, Bug Tracking e via dicendo.
Le soluzioni comunque ci sono anche adesso, senza dover aspettare le future versioni che si spera introdurranno questa funzionalità.
A Community Days chiaccheravo con Igor sull'uso che lui fa di Groove per accedere ai documenti del portale Share Point avendo così pieno supporto per l'uso offline e per la sincronizzazione e mi sono detto che poteva essere un'ottimo strumento per sopperire ad uno dei limiti di TFS.
WSS 3.0: il vero problema di Groove è che funziona con gli Windows SharePoint Services 3.0 o con il Portale di SharePoint in versione 2007 e non che le precedenti versioni mentre l'installazione di TFS si basa sulla versione precedente.
Armato di Google ho trovato questo post che spiega come installare WSS3.0 side by side e configurare quindi TFS per l'uso della versione nuova, ma non solo permette anche di migrare tutti i dati esistenti verso la nuova versione in modo che i Team Project già creati vengano spostati su WSS3.0.
Groove: una volta configurato WSS3.0 ho potuto collegare le liste di documenti di WSS a Groove e utilizzare quindi tutta la documentazione di TFS anche off-line.
Per quel che riguarda invece il resto, quindi WorkItem, BUG e via dicendo, mi affido a Excel 2007, comodo e funzionale.
L'uso off-line fa perdere alcune delle caratteristiche dell'accoppiata Visual Studio Team System / TFS, in particolare si perde l'integrazione degli strumenti in un solo ambiente, ma mi sento di poter dire che è un prezzo che pago volentieri.
Veniamo infine ad alcune considerazioni sull'uso: per ora sto importando tutti i progetti vecchi, nuovi e in corso in TFS e devo dire che una volta capito come e in che ordine eseguire le operazioni l'ambiente è veramente potente e permette di gestire il source control quasi come se fosse il proprio FileSystem permettendo di spostare progetti da una folder all'altra tenendo il tutto perfettamente sincronizzato con il proprio workspace locale.
Altra cosa di cui sto apprezzando la potenza è il motore di branching, uno dei tanti talloni d'achille di Source Safe, all'inizio ero un po' scettico più che altro perchè lavoro da solo quindi il concetto di Branch per gestire le reference ai progettio class library e migliorare il versioning mi toccava poco, ma poi mi sono fatto convincere dal "solito noto" e mi sono buttato, veramente soddisfatto.
.m