Skip to content

Instantly share code, notes, and snippets.

@NiccoMlt
Created December 13, 2020 17:57
Show Gist options
  • Save NiccoMlt/42ae298ec99fc8c03b7274df15403f65 to your computer and use it in GitHub Desktop.
Save NiccoMlt/42ae298ec99fc8c03b7274df15403f65 to your computer and use it in GitHub Desktop.
Confronto IDE C#

Confronto IDE C#

I principali ambienti di sviluppo integrati per .NET e C# sono:

Le soluzioni al momento consigliate sono Visual Studio (su Windows e MacOS) e Rider (su tutte le piattaforme).

Microsoft Visual Studio 2019

Visual Studio (da non confondere con Visual Studio Code, IDE estremamente differente) è un ambiente di sviluppo integrato pensato per l'ambiente Windows (la versione Mac è in realtà un rebrand di Xamarin Studio, a sua volta fork di MonoDevelop 4) in grado di supportare diversi linguaggi, come C/C++, C#/F#/VB.NET, JavaScript/TypeScript e Python.

Attualmente alla versione 16.8 (commercialmente detta 2019), è disponibile in versione Community (gratuita), Professional e Enterprise.

Si integra completamente con il compilatore Roslyn per .NET (per l'utilizzo dei pacchetti detti analyzers) e mette anche a disposizione numerosi plugin per il supporto allo sviluppo in ambiente .NET, come designer WYSIWYG per WinForms & WPF e diversi plugin commerciali.

Tra questi, JetBrains Resharper è uno dei più apprezzati: mette a disposizione una suite di strumenti per l'analisi del codice, la navigazione e il refactoring.

Struttura dell'IDE

Visual Studio Docs: Welcome to the Visual Studio IDE | C#

Questa immagine presenta Visual Studio con un progetto aperto e varie finestre degli strumenti di base:

  • Solution Explorer (in alto a destra) consente di visualizzare, esplorare e gestire i file del codice; consente di organizzare il codice raggruppando i file in soluzioni e progetti.

  • L'editor (al centro) visualizza il contenuto dei file e ne permette la modifica. Nella finestra è possibile modificare il codice o progettare un'interfaccia utente (ad esempio una finestra con pulsanti e caselle di testo).

  • Team Explorer (in basso a destra) consente di tenere traccia degli elementi di lavoro e di condividere il codice con altri utenti usando tecnologie di controllo della versione come Git e Team Foundation Version Control (TFVC).

Funzionalità principali

Le funzionalità più note di Visual Studio che offrono una maggiore produttività nello sviluppo del software includono:

Squiggles e azioni rapide

Il controllo ortografico durante la digitazione visualizza sottolineature ondulate (squiggles) che segnalano errori o problemi potenziali nel codice in tempo reale. Questi indizi visivi consentono di risolvere i problemi immediatamente senza attendere che l'errore venga rilevato durante la compilazione o quando si esegue il programma.

Se si passa il mouse su una linea ondulata, vengono visualizzate informazioni aggiuntive sull'errore. Sul margine sinistro può essere visualizzata anche una lampadina con le azioni, denominate quick actions, per risolvere l'errore.

Controllo ortografia durante la digitazione in Visual Studio

Pulizia del codice

Con il semplice clic di un pulsante è possibile formattare il codice e applicare eventuali correzioni del codice suggerite dalle impostazioni di stile del codice, dalle convenzioni .editorconfig (standard supportato ed esteso da Visual Studio) e dagli analizzatori Roslyn.

Lo strumento di code cleanup consente di risolvere i problemi nel codice prima di passare alla revisione del codice. Essendo principalmente basato su analyzers per Roslyn, attualmente è disponibile solo per il codice C#.

Pulsante Pulizia del codice in Visual Studio

Refactoring

Il refactoring prevede operazioni come la ridenominazione intelligente delle variabili, l'estrazione di una o più righe di codice in un nuovo metodo, la modifica dell'ordine dei parametri dei metodi e altro ancora.

Effettuare il refactoring in Visual Studio

IntelliSense

IntelliSense è un termine che indica diverse funzionalità che visualizzano le informazioni sul codice direttamente nell'editor e, in alcuni casi, scrivono automaticamente piccole parti di codice.

È come se si avesse a disposizione la documentazione di base all'interno dell'editor senza dover cercare le informazioni sul tipo altrove. Le funzionalità di IntelliSense variano a seconda del linguaggio.

Elenco dei membri di Visual Studio

Ricerca di Visual Studio

La quantità di menu, opzioni e proprietà disponibili in Visual Studio può sembrare a volte eccessiva. La funzionalità di ricerca di Visual Studio (CTRL + Q) è un ottimo modo per trovare rapidamente le funzionalità e il codice IDE in un'unica posizione.

Casella di ricerca in Visual Studio 2019

Live Share

Utilizzando il plugin Live Share (incluso con Visual Studio e disponibile anche per Visual Studio Code) è possibile apportare modifiche ed eseguire il debug con altri utenti in tempo reale, indipendentemente dal tipo di app o dal linguaggio di programmazione. Si può condividere il progetto in modo immediato e sicuro e, in base alle esigenze, si possono condividere sessioni di debug, istanze dei terminali, app Web localhost, chiamate vocali e molto altro ancora.

Gerarchia delle chiamate

La finestra Call Hierarchy mostra con una struttura ad albero i metodi che chiamano un metodo selezionato. Si tratta di informazioni che possono risultare utili quando si prevede di cambiare o rimuovere il metodo o quando si tenta di rilevare un bug.

Finestra Gerarchia di chiamata

CodeLens

CodeLens consente di trovare i riferimenti e le modifiche al codice, i bug collegati, gli elementi di lavoro, le revisioni del codice e gli unit test senza uscire dall'editor.

CodeLens

Vai a definizione

La funzionalità Go To Definition consente di passare direttamente alla posizione in cui viene definita una funzione o un tipo.

Vai a definizione

Visualizza definizione

La finestra Peek Definition mostra la definizione di un metodo o un tipo senza aprire un file separato.

Visualizza definizione

JetBrains Rider

Rider è un ambiente di sviluppo integrato basato sulla piattaforma Intellij (alla base di IDE quali IDEA, Android Studio, WebStorm, RubyMine, ecc...) e sugli strumenti della suite ReSharper per Visual Studio.

Supporta .NET Framework, .NET Core e Mono sulla maggiorparte dei target per .NET, oltre agli altri linguaggi disponibili come plugin per Intellij.

Struttura dell'IDE

La struttura dell'interfaccia è comune a tutti gli IDE basati sulla piattaforma Intellij.

Rider text editor with code completion

  • A sinistra è disponibile il Solution Explorer, che consente di visualizzare, esplorare e gestire i file del codice; consente di organizzare il codice raggruppando i file in soluzioni e progetti, come in Visual Studio.

    Solution explorer for Rider (left) and Visual Studio (right). They share of a lot of similarities.

  • Tramite il pannello di sinistra è anche possibile aprire la finestra Structure che mostra la struttura del file attualmente aperto nell'editor.

  • Al centro è presente l'editor, che visualizza il contenuto dei file e ne permette la modifica.

  • La barra in basso ospita diversi strumenti:

    • Finestra Unit Tests, che permette il lancio dei test in modalità normale o debug;
    • Emulatore di terminale connesso a una shell configurabile (di default CMD su Windows, shell di default dell'utente su Unix)
    • Finestra dedicata a Git;
    • Finestra Build output, nella quale vengono mostrati l'output della compilazione e i warning degli analyzer
  • La barra di destra presenta principalmente la vista dei warning (Errors in solution) e della copertura dei test (Unit tests coverage).

  • La barra degli strumenti in alto mette a disposizione diverse funzionalità:

    • Ricerca globale Rider (top) lists string search results clearly, with shortened filenames on the right, and a window to peek at files. In contrast, Visual Studio (bottom) presents it’s search results like an inconsiderate command line tool.

Scorciatoie più comuni

Command Visual Studio ReSharper IntelliJ
Open Solution or Project Ctrl+Shift+O Ctrl+Shift+O Ctrl+Shift+O
Open File or Folder Ctrl+O Ctrl+O
Show Action List Alt+Enter Alt+Enter Alt+Enter
Search Everywhere Ctrl+T
Double-Shift
Ctrl+N
Double-Shift
Double-Shift
Navigate To… Alt+`
Alt+Dead Grave
Ctrl+Shift+G Ctrl+Shift+G
Find Usages Shift+F12 Alt+F7 Alt+F7
Select In... Alt+F1 Alt+F1 Alt+F1
Settings... Ctrl+Alt+S Ctrl+Alt+S Ctrl+Alt+S
Find Action... Ctrl+Shift+A Ctrl+Shift+A Ctrl+Shift+A
Generate... Alt+Insert Alt+Insert Alt+Insert
Build Solution Ctrl+Shift+B Ctrl+Shift+B Ctrl+F9
Debug... Alt+Shift+F9 Alt+Shift+F9 Alt+Shift+F9
View Breakpoints... Ctrl+Alt+B Ctrl+Shift+F8 Ctrl+Shift+F8
Attach to Process... Ctrl+Alt+P Ctrl+Alt+F5 Ctrl+Alt+F5
VCS Operations Popup... Ctrl+Alt+Q Alt+` Alt+`
Refactor This... Ctrl+Shift+R Ctrl+Shift+R Ctrl+Alt+Shift+T
Inspect This... Ctrl+Alt+Shift+A Ctrl+Alt+Shift+A Ctrl+Alt+Shift+A
Code Cleanup... Ctrl+E, C
Ctrl+E, Ctrl+C
Ctrl+Alt+F
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment