NDepend: analisi e metriche di un progetto

E' qualche mesetto che uso, un po' saltuariamente, NDepend e devo dire che non pensavo fosse uno strumento così completo.

Chi è stato agli ultimi Community Days ne ha anche sentito parlare...

All'inizio l'avevo visto solo come un raccoglitore (inteso come "colui che raccoglie") di metriche in un nostro progetto software, poi però ho visto che fa qualcosa in più.

Fermo restando i miei pensieri (ancora dubbiosi e fumosi) sulle metriche, ho visto che con NDepend si ottiene:

  • Gestione struttura del codice
  • Qualità del codice (query CQL)
  • Dipendenze dei vari assembly
  • Produzione di report di analisi
  • Possibilità di comparare risultati precedenti
  • Possibilità di importare file di code coverage (sia da NCover che da VSTS)
  • Possibilità di installazione di add-in in Visual Studio
  • Tutte le feature

Il tutto con un software che mi sembra anche bello leggero e che produce i risultati in formato html e xml (il che non guasta).

Data la mole di informazioni che analizza e che produce si potrebbe pensare che sia di difficile utilizzo, ma a dire il vero è molto intuitivo, la parte complicata rimane gestire tutto quello che vi comunica ma certo in questo non ha colpe.

Anzi.

Mi piace anche il fatto che nel report finale, oltre a tutto il resto, viene generata anche una bella matrice riassuntiva che mostra, tipo per tipo (classi) le varie metriche rispettate e non, con relativo link alla documentazione.

Evito screen shot o altro perchè sul sito ufficiale trovate anche i video di tutorial :)

Come direbbe qualcuno...Enjoy!

GoogleMaps vs Mappoint: 10-0

...e sono buono, nel senso che, a mio parere, quasi non sarebbero comparabili.

Chi mi conosce bene o chi lavora con me, sa quanto riesco ad essere obiettivo sulle varie tecnologie: the right tool, for the right thing.

Per lavorare con le mappe non ho dubbi: le Google Maps API sono il right tool. Anzi the tool.

Oggi, in circa un'oretta di lavoro, sono riuscito a fare quello che in una settimana di MapPoint non ero nemmeno riuscito a sfiorare.

Ovvero, richiedere una mappa, centrata in un preciso punto, al server e "riempirla" di pushpin in posizioni prestabilite (ho un foglio Excel pieno di punti geografici).

Con MapPoint mi sono studiato la documentazione e sopratutto gli esempi (molto utili per capire ad essere sinceri) e alla fine sono riuscito a creare una bella applicazione web (quindi un bel compilato da deployare) che riesce addirittura e mettere un pushpin. Avevo intenzione di creare una bella funzione che aggiungesse anche gli altri ma non ho più avuto tempo...

Poi non ero nemmeno sicuro che fosse la strada giusta, dato che poi non potevo usarlo in produzione (l'account free vale solo per developer)...

Oggi ho provato a pensare se con Google Maps si potesse fare qualcosa del genere...così ho cercato con...Google ed ho trovato una pagina di documentazione e da li ho cominciato.

Tempo un'oretta e avevo già finito (il lavoro più lungo a dire il vero è stato mappare i dati che avevo in Excel in formato stringa, su una particolare struttura JS), con TUTTI i pushpin mappati.

Il codice è tutto client (JS), quindi mi è bastato copiare in ftp i due file (la pagina html e il file .js), ottenere una chiave gratuita da Google, il quale limita solo il numero di chiamate giornaliere al servizio ma è completamente gratuito purchè non si eliminino le scritte che attribuiscono il servizio a Google.

In più ho già: pan, zoom, mini-map e la gestione dei pushpin come overlay sulla mappa, personalizzabile per ogni livello di zoom.

Insomma siamo davvero oltre.

La mia mini-demo è visibilie qui. Se sembra che non funzioni nulla i casi sono due:

  1. O ci sto lavorando
  2. O non avete zoomato abbastanza (avvicinatevi bene all'italia, a livelli di zoom molto alti dovreste vedere dei pushpin un po' ovunque)

GoogleMaps 10, MapPoint 0. E' così.