NDepend

Il grafico delle dipendenze NDepend in Visual Studio

Se sei uno sviluppatore .NET, allora è molto probabile che tu sia un utente Visual Studio. Ci sono alternative ad esso, certo. Ma il prodotto del gigante di Redmond è il go-to quando si tratta di sviluppare per il framework .NET.

Per un nuovo arrivato, però, le cose possono confondersi perché Visual Studio non è una cosa sola.

Invece, è disponibile in diverse forme e dimensioni.

Quale dovresti scegliere? Quali sono le caratteristiche che contano per il vostro caso d’uso?

Siccome Visual Studio non è gratuito – la maggior parte delle edizioni non lo sono, almeno – volete ottenere il miglior bang per il vostro denaro.

Questo è ciò di cui parlerà questo articolo. Come suggerisce il titolo, ci concentreremo sulle differenze tra le edizioni enterprise e professional dell’ambiente di sviluppo integrato (IDE).

Entro la fine del post, avrete imparato abbastanza per prendere una decisione informata su quale versione dell’IDE si adatta meglio alle vostre esigenze.

Vorresti che la tua edizione di Visual Studio avesse un supporto completo per gli strumenti di architettura?

Scarica una prova gratuita di NDepend e controlla tutta la visualizzazione dell’architettura che puoi ottenere senza dover aggiornare la tua edizione di VS. Vedi anche: Case Study: 2 semplici principi per ottenere un’alta manutenibilità del codice

Iniziamo.

Enterprise vs. Professional: Quale è il Visual Studio giusto per te?

Per capire le differenze tra le edizioni professionali ed enterprise di Visual Studio, devi prima tenere a mente che Microsoft offre l’IDE in modo graduale.

  1. Visual Studio Community è il meno costoso (è gratuito).
  2. Successivo è Visual Studio Professional.
  3. E, infine, Visual Studio Enterprise è il più ricco di funzionalità e il più costoso.

Ogni edizione ha tutte le caratteristiche dell’edizione sottostante, più altre.

Quindi la domanda “quali sono le differenze tra Visual Studio Enterprise e Professional” equivale davvero a ciò che il primo può fare che il secondo no.

Caratteristiche che solo Visual Studio Enterprise ha

Vediamo le caratteristiche esclusive di Visual Studio Enterprise, suddivise per categorie.

Caratteristiche dell’ambiente di sviluppo integrato

Iniziamo con le caratteristiche relative all’IDE stesso. Visual Studio Enterprise ha una particolare attenzione per gli architetti del software, quindi questa edizione ha ovviamente diverse caratteristiche relative all’architettura del software.

1A. Validazione e analisi architetturale

Immaginate questo scenario.

State sviluppando un’applicazione che segue il modello architettonico a n strati. Quindi vorresti evitare che il livello di presentazione acceda direttamente al livello dei dati. Vorreste permettergli di accedere solo al livello della logica di business.

Dalla versione 2010 di Visual Studio Enterprise, è possibile eseguire una validazione architetturale su un’applicazione usando i diagrammi dei livelli architettonici. Potreste integrare tale validazione nel vostro processo di compilazione, per esempio. Se una classe facesse riferimento ad un namespace in qualche livello a cui non dovrebbe accedere, la compilazione fallirebbe.

Nell’ultima versione, questa caratteristica è stata anche migliorata per offrire una convalida delle dipendenze dal vivo. Invece di dover aspettare che la compilazione fallisca, Visual Studio, utilizzando la potenza degli analizzatori di Roslyn, vi darà un feedback in tempo reale ogni volta che state per introdurre una dipendenza non valida.

Grafico delle dipendenze e matrice delle dipendenze

1B. Rilevamento della duplicazione del codice

La duplicazione del codice è uno dei peggiori problemi in una base di codice. Visual Studio Enterprise può aiutare gli sviluppatori e gli architetti ad affrontare questo problema con una caratteristica conveniente: l’analisi dei cloni di codice. Con questa caratteristica, Visual Studio può localizzare i possibili duplicati di codice in modo da poterli eliminare.

Debugaggio e diagnostica avanzati

Gli sviluppatori passano una quantità considerevole di tempo nel debugger. Controlliamo quindi le caratteristiche esclusive di Visual Studio Enterprise per questo settore.

La prima caratteristica è IntelliTrace. Invece del tradizionale debug in tempo presente, IntelliTrace vi permette di eseguire il debug di un’esecuzione passata della vostra applicazione. È possibile salvare i dati di IntelliTrace da un sacco di fonti diverse, tra cui un’applicazione distribuita in produzione!

Anche nel campo del debugging, abbiamo l’integrazione del debugger Code Map.

Questa caratteristica offre un nuovo tipo di esperienza durante il debug permettendovi di visualizzare il metodo corrente – e anche i metodi precedenti chiamati – come diagrammi che si integrano con il debugger e si aggiornano in tempo reale mentre passate attraverso il vostro codice.

Infine, arriviamo a .NET Memory Dump Analysis. Questa funzione permette di analizzare i file di dump di memoria per identificare e risolvere i problemi di prestazioni, come le perdite di memoria o le allocazioni non necessarie.

Strumenti di test

Siamo finalmente agli strumenti di test. Quest’area è, a mani basse, quella in cui Visual Studio Enterprise supera le altre edizioni dell’IDE. Inizieremo parlando di alcune delle caratteristiche relative ai test unitari automatizzati e poi procederemo a coprire le caratteristiche che possono aiutare con i test manuali, esplorativi e UI.

3A. Test automatizzati

Test unitari

Iniziamo con i test unitari dal vivo.

Il testing è dove Visual Studio Enterprise supera le altre edizioni dell'IDE.Quando abilitate questa funzione, Visual Studio eseguirà automaticamente i test unitari che hanno un impatto sulle modifiche che avete appena fatto alla vostra applicazione e vi presenterà i risultati in tempo reale. Questa funzione supporta i framework NUnit, xUnit.net e MSTest.

Siccome stiamo parlando di test unitari, spostiamo ora la nostra attenzione su un argomento che sicuramente susciterà qualche controversia: la copertura dei test.

Forse pensate che arrivare al 100% di copertura del codice sia vitale per la salute di un’applicazione, o forse no. Ma molto probabilmente sarete d’accordo che conoscere i dati di copertura dei test è comunque utile. Visual Studio Enterprise vi offre questa metrica in modo nativo.

Quando mirate a scrivere buoni test unitari, un obiettivo che dovreste sempre perseguire è l’isolamento. Un buon test unitario dovrebbe essere tenuto il più possibile separato e indipendente, non solo dagli altri test ma anche dalle preoccupazioni dell’infrastruttura. Dettagli come l’orologio della macchina o la lingua non dovrebbero interferire con il risultato del test.

Fornire questo isolamento non è sempre facile. Visual Studio Enterprise cerca di risolvere questo problema con Microsoft Fakes.

Microsoft Fakes vi permette di usare stub e shim per simulare dipendenze esterne nel vostro codice.

Un caso d’uso classico sarebbe quello di simulare una data specifica per testare un bug sensibile al tempo. Visual Studio Enterprise può andare oltre anche questo. Attraverso IntelliTest, è possibile generare automaticamente una suite di test unitari per il vostro codice, insieme a dati di test fasulli.

Test UI automatizzati

Che dire dei test automatizzati che non sono test unitari?

Visual Studio Enterprise può soddisfare anche queste esigenze. Con i test UI codificati, si possono creare test automatizzati che guidano l’applicazione attraverso la sua interfaccia utente. Lo farete registrando un test manuale e salvandolo. Dopo che il test è stato registrato, è possibile specificare i valori per i parametri e metterlo a punto utilizzando un editor speciale.

3B. Test manuali

Un codice base non dovrebbe però vivere solo di test automatici. I test manuali sono ancora una parte vitale di una strategia di qualità completa, e Visual Studio Enterprise può soddisfare anche queste esigenze.

E lo strumento principale utilizzato per farlo è il Microsoft Test Manager, che è una soluzione completa che permette all’utente di completare i seguenti compiti:

  • registrare e riprodurre le azioni eseguite durante sessioni di test esplorativi (cioè, noncripted) sessioni di test
  • creare e gestire piani di test per test manuali
  • copiare suite di test e casi di test su molti progetti
  • registrare e raccogliere dati sulle sessioni di test manuali pianificate

Utilizzando questa funzione, uno sviluppatore, tester o analista di test può avere una visione molto ampia su ciò che sta accadendo nel progetto, in termini di test. Pensatelo come un pannello di controllo centralizzato su tutte le cose relative ai test.

Visual Studio Professional Vs. Visual Studio Enterprise: Il Verdetto

Microsoft offre Visual Studio sotto un modello di offerta a livelli. Quindi, analizzare le differenze tra Visual Studio Professional e Visual Studio Enterprise (rispettivamente il secondo e il terzo livello) equivale a coprire le caratteristiche presenti nel secondo ma assenti nel primo. Ed è quello che abbiamo fatto in questo post.

Certo, non abbiamo menzionato tutte le caratteristiche esclusive di Visual Studio Enterprise, per brevità. Ma sono sicuro che l’articolo ha chiarito che Visual Studio Enterprise è rivolto principalmente agli architetti del software e agli esperti di QA.

Quindi, qual è il verdetto?

Direi che non si può sbagliare con Visual Studio Professional. È una scelta eccellente per la maggior parte degli sviluppatori. Per gli architetti di software, però, Visual Studio Enterprise potrebbe avere senso, a patto che abbiate un sacco di budget. Ma se non ce l’avete, molti plugin nell’ecosistema di Visual Studio possono aiutarvi a ottenere le caratteristiche di VS Enterprise in modo ala carte.

Carlos Schults
Autore Collaboratore

Carlos Schults è un .NET con esperienza sia nello sviluppo desktop che web, e ora si sta cimentando con il mobile. Ha una passione per la scrittura di codice pulito e conciso, ed è interessato alle pratiche che aiutano a migliorare la salute delle app, come la revisione del codice, i test automatici e la build continua. Potete leggere di più di Carlos su carlosschults.net.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *