I principali ambienti di sviluppo integrati per .NET e C# sono:
- Microsoft Visual Studio 2019, soluzione ufficiale e di riferimento;
- MonoDevelop, che è stato alla base di Xamarin Studio e Visual Studio per Mac, ma che è ormai quasi abbandonato;
- JetBrains Rider, basato su Intellij IDEA e Resharper;
- Visual Studio Code con plugin Microsoft C# (basato su OmniSharp);
- OmniSharp supporta anche GitHub Atom, Adobe Brackets, Vim, GNU Emacs e Sublime Text;
- Eclipse con plugin Eclipse aCute.
Le soluzioni al momento consigliate sono Visual Studio (su Windows e MacOS) e Rider (su tutte le piattaforme).
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.
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).
Le funzionalità più note di Visual Studio che offrono una maggiore produttività nello sviluppo del software includono:
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.
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#.
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.
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.
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.
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.
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.
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.
La funzionalità Go To Definition consente di passare direttamente alla posizione in cui viene definita una funzione o un tipo.
La finestra Peek Definition mostra la definizione di un metodo o un tipo senza aprire un file separato.
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.
La struttura dell'interfaccia è comune a tutti gli IDE basati sulla piattaforma Intellij.
-
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.
-
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à:
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 |