HeidiSQL – Free portable client for Sql server and MySql

Free portable client for Sql server and MySql.

This is the software I always needed!

Features:

Web services Contract First development

WSCF.blue is a great tool for developing web services in a Contract First mode.

Develop in such a way means that you start from a WSDL contract that describes everything is concerned with a web service, and only after that you can write code which  that contract is based on.

Working with a WSDL can be a very error-prone task because a WSDL is a XML file. The WSCF.blue tool is able (among other things) building the server code you need from that file.

But this tool is also useful in some particular scenario where you have to change the web service code that “answers” to a particular call. I will explain it better.

Imagine you have a old application using a old web service developed by a third part, and you don’t have the source code of that service. What if you have to rewrite the web service for changed requirements without affecting the application which use it by simply changing the service’s url in configuration files ?. in other words, it needs to create another web service’s implementation without changing the WSDL in any way. In this case WSCF.blue can greatly save your time recreating the server code starting from the WSDL input, and with this server code you can write the new implementation. At this point you can just change the url of the service in application which was using the old implementation.

As unit test, it is possible to add a proxy reference to the old implementation of the service. After that you can create a new instance of the service by the proxy, change the url property and invoke methods and obviously the new service’s implementation at the new url will respond.

NDepend, a “must have” tool

Questo è un tool davvero impressionante per cosa riesce a tirar fuori da un assembly .Net, adesso con tanto di add-in per Visual Studio e per Reflector.

E’ un must per qualsiasi sviluppatore/architetto degno di questo nome.

Link utili della settimana #7

SILF: Silverlight Install and Logging Framework

How to Use a VBA Macro to Sum Only Visible Cells
Questo me lo appunto perchè davvero utile, e mi chiedo come mai non sia già presente una funzionalità simile  
in  Excel  2007, ovvero la possibilità di sommare solo le celle visibili (vale a dire non filtrate) di un dato range, e non invece tutte le celle, anche quelle filtrate, come invece succede se si usa la classica funzione SUM.
Nota: non sono un programmatore VBA nè mai lo sarò, questo me lo appunto solo perchè molto utile (un tempo sono stato programmatore VB6, ma parlo di 15 anni fa, un’intera era geologica per il mondo dell’informatica).

Installare Windows 7 da USB

Utile tool per installare Windows 7 da drive USB.
In sostanza viene copiata l’immagine ISO della installazione di Win7 su un supporto USB rendendo lo stesso bootable, in modo da poter far partire il PC e lanciare l’installazione anche su macchine senza sistema operativo.

Link utili della settimana

  1. Descrizione di Unity, il framework di Inversion of Control e Dipendency Injection sviluppato dal team di P&P (qui è presente la versione 1.2 per Silverlight)
  2. 45 passi per diventare agili
  3. xVal, libreria per la validazione client side di applicazioni ASP .NET MVC
  4. Anti XSS Library ver. 3.1
  5. CodePad .NET 1.0 Beta 2, un editor leggero per provare spezzoni di codice
  6. Strongly typed session variables in ASP .NET MVC
  7. Visual Studio 2010 e .NET Framework 4.0 Training Kit – May preview

Visual Studio Addin – ecco quelli che uso io

L’utilizzo degli add-in di Visual Studio 2008 consente di incrementare a volte notevolmente la produttività di chi sviluppa, ad esempio rendendo possibile effettuare con pochi click operazioni ripetitive e lunghe. Tratto da Visual Studio Gallery, ecco la serie di add-in, rigorosamente free, che utilizzo giornalmente durante l’attività di sviluppo del software:

Regionerate, permette di creare in automatico le regioni di codice su un intero file, applicando un layout predefinito o scelto tra i layout forniti. Uno dei layout a corredo addirittura effettua il conteggio automatico degli items presenti in ogni regione e lo inserisce nel nome della stessa. E’ anche possibile crearsi propri layout o scaricarli. Davvero utile.

PowerCommands, add-in abbastanza conosciuto e molto utile, anche se responsabile di un crash documentato di Visual Studio, di cui ho già parlato qui e qui. Trattasi di una serie di comandi aggiuntivi sistemati in diversi punti dell’IDE. I principali comandi che uso sono:
Show All Files (Solution Explorer, a livello di nodo solution)
Questo comando mostra tutti i file per tutti i progetti caricati nella soluzione attiva, e non solo invece per il progetto attivo, come opera invece il comando omonimo a livello di progetto;
Collapse Projects. Questo comando collassa il nodo selezionato e contemporaneamente tutti i suoi sottonodi. La funzionalità fornita dalla Treeview del Solution Explorer invece collassa solo il nodo selezionato, lasciando invariato lo stato dei suoi sottonodi;
Copy Class. Come si può intuire, questo comando copia una intera classe o nodo nella Clipboard, permettendo di incollarla altrove (comando Paste Class) dopo averla opportunamente rinominata per evitare errori di compilazione;
Copy References (e Paste References). Copia una reference o un set di reference nella Clipboard, per poi incollarla altrove;
Open Containing Folder (davvero utile). Dal nodo di un progetto o item, apre una finestra di Windows Explorer che punta al path fisico del progetto (o dell’item) puntato;
Open Command Prompt, simile a Open Containing Folder, ma apre un prompt dei comandi invece che una finestra di windows explorer;
Remove and Sort Usings, altro comando utilissimo, elimina tutti gli using inutili e ordina quelli indispensabili, in un colpo solo, per singola classe o per tutte le classi di un progetto;
Extract Constant, dall’editor di codice, crea la definizione di costante per la stringa selezionata;
Clear Recent Project List, elimina la lista degli ultimi progetti aperti, permettendo di selezionarli.

Sticky Notes, fornisce una windows dockable nella quale scrivere appunti, una per ogni file. Funzionalità sinceramente non utilissima perchè è comunque possibile inserire i propri appunti in un file sorgente a mo’ di commento oppure utilizzare la window Task List. L’unico vantaggio è la possibilità di eliminare i propri appunti in un colpo solo o di inviarli per posta elettronica;

Clone Detective, ho già parlato qui di questo tool. Consente di cercare facilmente codice duplicato all’interno della propria solution.

Export code as Code Snippet, add-in scritto dall’MVP Alessandro Del Sole, consente di esportare facilmente blocchi di codice nel formato .snippet, e quindi riutilizzarli come Snippet Code direttamente attraverso la funzionalità presente nell’IDE

Code Style Enforcer. Questo add-in permette di ottenere segnalazioni evidenti nel proprio codice nel caso in cui siano violate regole di naming e di best practices (visibilità membri e interfacce esplicite o no), configurabili mediante file XML;

OxyProjectMetrics, estrae informazioni inerenti la metrica del codice e le mostra in un formato tabellare;

ResourceRefactor, estrae la stringa selezionata e cablata nel codice sorgente e la invia ad un apposito file di risorse;

AutoCode, add-in per automatizzare attività ripetitive di scrittura di codice mediante la creazione di comandi parametrici, come da esempio sotto.  

TytanNET, insieme di utili tool windows che incrementano le possibilità di refactoring del codice, e forniscono ulteriori visualizers per il debugging. Decisamente molto utile.

Su Visual Studio Gallery sono presenti decine e decine di altr utili add-in, sia gratuiti che non, per tutte le esigenze.

Rilevare codice duplicato

Clone Detective for Visual Studio è una integrazione dell’ambiente Visual Studio (completamente free) in gradi di rilevare porzioni di codice duplicato tra i vari progetti che compongono una solution. Il fine è ambizioso, poichè come dice la stessa presentazione del prodotto presente su CodePlex

“Having duplicates can easily lead to inconsistencies and often is an indicator for poorly factored code”

Un componente del genere può davvero essere utilissimo, anche oltre lo scopo che si prefigge. Ad esempio, conoscendo accuratamente il numero di cloni presenti all’interno di un software con parecchie linee di codice, è possibile valutarne il costo di manutenzione, ovvero il costo a cui si va incontro se si decidesse di apportarvi delle modifiche.

Il componente si basa su ConQAT (Continuous Quality Assessment Toolkit) per rilevare le parti di codice duplicato. Questo toolkit fornisce una serie di tools e linee guida per il controllo della qualità del software

Mole, visualizer integrato per visual studio

Segnalo un gran bel Visualizer per Visual Studio 2005/2008. Trattasi di Mole v.4.2, un visualizer in grado di funzionare con diversi oggetti di diverse tipologie di progetto, che comprendono WinForms, WPF, WCF, WF, ASP.NET, XBAP. Io lo trovo molto utile soprattutto per progetti WCF, WPF, dove gli oggetti con cui si ha a che fare sono abbastanza complessi e strutturati. Uno strumento del genere, molto ben fatto e performante, può far risparmiare diversi “mal di testa” quando si effettua il debugging di progetti di questo tipo.

Download

Le direttive using devono essere poste all’interno del namespace

Questo post inizia con una frase tratta da un post di Scott Hanselmann con cui mi trovo completamente d’accordo:

Don’t believe everything you read, even on a Microsoft Blog.             

Don’t believe this blog, either!

Decide  for yourself with experiments if you need a tiebreaker!

Credo sia proprio vero, mai fidarsi ciecamente di quello che si legge in giro, soprattutto quando seri dubbi farebbero pensare il contrario.

Il motivo è presto detto: utilizzo normalmente FxCop come strumento di analisi del codice sorgente, lo trovo molto completo e ben fatto. Spinto dalla curiosità ho voluto utilizzare Source Analysis, un tool gratuito fornito da Microsoft ed integrato nell’IDE di Visual Studio. Dopo la primissima prova fatta mi ha incuriosito una sua segnalazione:

SA1200 – All using directives must be placed inside of the namaspace.

Per farla breve, tutti i files sorgenti del mio progetto provocavano una segnalazione di questo tipo poichè le direttive using erano poste esternamente alla definizione del namespace, così come automaticamente viene creato uno scheletro di una classe all’interno dell’IDE. La segnalazione in questione invita invece ad includere le direttive using all’interno della definizione del namespace, semprecchè sia presente. Facendo qualche ricerca in giro ho scoperto che in questo modo il compilatore segnala immediatamente una eventuale ambiguità tra i nomi dei tipi creati all’interno del proprio namespace e i tipi presenti nei vari namespace del .NET Framework. E fin qui nulla di strano.

Ho scoperto inoltre che questa guideline servirebbe anche ad aumentare le prestazioni, almeno nei casi specifici, in quanto forzarebbe il “lazy loading” degli assembly e non il caricamento immediato. In altre parole, quando il viene invocato un metodo di una classe e viene compilato il codice “just in time” (JITTED) il lazy loading permette di caricare in memoria solo gli assembly referenziati che servono all’invocazione del metodo stesso, e non tutti gli assembly referenziati da una classe, a prescindere se utilizzati o no da una specifica invocazione di un metodo. Questo permette di caricare solo lo stretto necessario anche se una classe referenzia un assemby non utilizzato da un metodo.

Sinceramente non mi è venuto in mente un solo valido motivo per cui una direttiva using posta in un certo modo potesse influenzare l’attività del CRL a runtime, e sono rimasto alquanto dubbioso sulla effettiva validità. Prima che potessi avere il tempo di fare una prova specifica mi son trovato questo post di Scott Hanselmann, al quale rimando per una esauriente spiegazione, che dimostra come purtroppo ciò non sia affatto vero, cioè gli assembly referenziati vengono caricati tutti i memoria immediatamente, a prescindere se il metodo in questione li usa oppure no, ed a prescindere se le direttive using vengono poste all’interno o all’esterno della definizione di namespace.

Quindi la morale è: non credere mai a quello che leggi, neanche se lo leggi da questo blog :), ma sperimenta sempre.

Xobni – il tool di cui si sentiva la mancanza

Per chi utilizza Outlook in modo intensivo questo è davvero un must-have tool. Sto parlando di Xobni, un add-in per Outlook 2003/2007 che permette di gestire i messaggi di posta in modo molto efficiente. Tra le sue caratteristiche segnalo:

  1. Efficientissimo motore di ricerca di messaggi e/o persone con nutrito numero di opzioni;
  2. Gestione dei messaggi in thread;
  3. Estrazione automatica del numero di telefono del mittente dal messaggio di posta (spettacolare);
  4. Ricerca istantanea degli allegati legati ad un particolare mittente;
  5. Creazione di mail di invito ad un evento con estrazione automatica dei periodi di disponibilità dal proprio calendario;
  6. Statistiche estremamente dettagliate sulle mail scambiate con ogni mittente;
  7. Navigazione della mailbox in base al profilo della persona;

La feature che personalmente trovo estremamente comoda è la ricerca degli allegati legati ad una particolare persona. Quante volte si perde tempo a cercare un allegato di cui ci ricordiamo che la tal persona ce lo ha inviato senza ricordarci però in quale preciso messaggio ?

L’add-in è gratuito (particolare di una certa importanza), è attualmente scaricabile in versione beta con aggiornamento automatico alle versioni successive, è scritto da una azienda californiana, Xobni appunto, il cui significato è, curiosità, “Inbox” letto al contrario, richiede la presenza del .Net Framework 2.0 o successivo.

Davvero un ottimo tool.

Tools di comparazione files

Tra i tools che ogni buon sviluppatore dovrebbe possedere non può mancare quello forse più classico e scontato, ovvero un software che compara il contenuto di 2 files ed evidenzia le differenze.

A meno di non voler usare le funzionalità di comparazione presenti nei vari software di controllo del codice sorgente, il compare di files è una operazione abbastanza frequente.

Ho provato vari tools di comparazione, quello che uso e che a mio parere è uno dei più validi (soprattutto perchè a free :)) è DiffMerge ver. 3.1.0.

Oltre alla classica funzione di comparazione di 2 files con indicazione grafica delle differenze, questo software contiene utilissime feature quali:

a) merging dei contenuti operando su 3 files;

b) comparazione di 2 cartelle con indicazione dei files mancanti e dei files con contenuto diverso;

c) aggiunta di un comodo menù contestuale in Windows Explorer per una rapida comparazione di files;

d) è multipiattaforma;

e) (già detto) è gratuito;

PowerCommands for Visual Studio 2008

Ho installato già da un po’ di tempo i PowerCommands for Visual Studio 2008 (una estensione dell’IDE per aggiungere funzionalità) e devo dire che sono davvero utili.

Tra le funzionalità più interessanti segnalo:

Remove and Sort Usings: a livello di progetto, ordina gli statements using e rimuove automaticamente quelli inutilizzati (disponibile solo per progetti scritti in C#);

Collapse projects: come dice lo stesso nome, “collassa” uno o più items (non necessariamente progetti) per migliorare la visione d’insieme della solution;

Edit Project File: carica il file di progetto nell’editor (dopo aver scaricato il progetto stesso), fornendo la sintassi colorata di un file XML;

Open Command Prompts: apre il prompt dei comandi di Visual Studio a partire dal path fisico dell’item selezionato;

Clear Recent Project List: permette di eliminare tutti o alcuni progetti aperti di recente dalla lista. Se non ricordo male senza questo tool è necessario editare il registro per ottenere lo stesso risultato.

Il tool dispone di altri comandi interessanti.