November 2017

Band 33, Nummer 11

Visual Studio: Codebearbeitung und Debuggen in Visual Studio für Mac

Von Alessandro Del Del | November 2017

Visual Studio für Mac ist die leistungsfähige neue native Entwicklungsumgebung von Microsoft, die perfekt die Vision „Mobile First, Cloud First“ des Unternehmens verkörpert. Sie unterstützt Sie beim Erstellen plattformübergreifender Anwendungen mit Xamarin und .NET Core (und von Spielen mit Unity) unter Verwendung Ihrer vorhandenen .NET-Kenntnisse und Ihrer bevorzugten Programmiersprachen (z. B. C# und F#). Eine Einführung in Visual Studio für Mac finden Sie unter msdn.com/magazine/mt790182. In diesem Artikel konzentriere ich mich auf einige leistungsstarke Features im Code-Editor und die Debugtools, die Ihnen helfen, Ihre Produktivität zu steigern.

Ein von Roslyn unterstützter Code-Editor

Visual Studio für Mac ermöglicht es Ihnen, Code in C# und F# unter macOS zu schreiben. Dies ist möglich, weil die IDE die .NET-Compilerplattform nutzt, die auch als Projekt „Roslyn“ bezeichnet wird (github.com/dotnet/roslyn). Roslyn bietet plattformübergreifende Open Source .NET-Compiler, die reichhaltige Code-Analyse-APIs bereitstellen. Wie in Visual Studio 2015 und 2017 unter Windows unterstützt Roslyn den Code-Editor in Visual Studio für Mac und bietet eine erweiterte Codierungserfahrung mit farbiger Syntax, IntelliSense, Liveerkennung von Codeproblemen, Korrekturen und Refactorings. Die offizielle Dokumentation erläutert die Verwendung von Codekorrekturen und Refactorings im Allgemeinen (bit.ly/2jKt69D). In diesem Artikel konzentriere ich mich daher speziell auf Features und Fähigkeiten wie das Generieren von Typen, das Entfernen von redundantem Code, das Navigieren im Code, das Hinzufügen von Unterstützung für benutzerdefinierte Sprachen und Codeausschnitte. Alle diese Features stehen für Xamarin- und für .NET-Core-Projekte zur Verfügung.

Direktes Generieren von Typen

Eines der wichtigsten Produktivitätsfeatures im Code-Editor ist die Möglichkeit, neue Typen beim Codieren zu generieren, ohne dass der aktive Editor den Fokus verliert. Beispielsweise können Sie den Namen eines Typs schreiben, der noch nicht vorhanden ist. Wenn der Code-Editor den Typnamen als ein Codeproblem hervorhebt, können Sie mit der rechten Maustaste darauf klicken (oder ALT+EINGABETASTE drücken) und „Schnelle Problembehebung“ > „Typ generieren“ auswählen. Abbildung 1 zeigt ein Beispiel, das auf der Generierung eines Typs namens „Person“ basiert.

Generieren eines neuen Typs im aktiven Editor

Abbildung 1: Generieren eines neuen Typs im aktiven Editor

Die erste Option (das Generieren der Klasse „Person“ in einer neuen Datei) generiert eine neue Klasse namens „Person“ mit dem internen Modifizierer in einer neuen Datei namens „Person.cs“. Die zweite Option (das Generieren der Klasse „Person“) generiert eine neue Klasse namens „Person“ mit dem internen Modifizierer in der aktuellen Datei. Die dritte Option (Generieren der geschachtelten Klasse „Person“) generiert eine neue private Klasse mit dem Namen „Person“ in dem Typ, der zurzeit im Code-Editor aktiv ist (in diesem Fall würde die neue Klasse innerhalb der Klasse „Program“ generiert). Sie können dann den internen oder privaten Modifizierer entweder manuell oder durch Klicken mit der rechen Maustaste auf den Modifizierer ändern und dann „Schnelle Problembehebung“ auswählen. In allen Fällen wird die neue Klasse mit einem leeren Konstruktor generiert. Die vierte Option (Generieren eines neuen Typs) zeigt stattdessen ein Dialogfeld an, in dem Sie angeben können, welcher Typ (Klasse, Schnittstelle oder Enumeration) erstellt werden soll. Außerdem können Sie den Zugriffsmodifizierer und das Ziel angeben. Und dies sind längst nicht alle Möglichkeiten: Sie können die gleiche Technik verwenden, um dem neu generierten Typ Member hinzuzufügen. Sie können eine noch nicht vorhandene Eigenschaft, ein Feld oder eine Methode einfach zuweisen oder aufrufen und die schnelle Problembehebung zum problemlosen Hinzufügen nutzen. Abbildung 2 zeigt, wie eine neue Eigenschaft namens „LastName“ der Klasse „Person“ hinzufügt wird. Die Option zum Generieren der Variablen „LastName“ bietet je nach aktuellem Kontext verschiedene Vorschläge an.

Generieren eines neuen Member

Abbildung 2: Generieren eines neuen Member

In diesem Fall nimmt der Code eine Zuordnung vor, sodass der Code-Editor Ihnen vorschlägt, eine neue Eigenschaft oder ein neues Feld zu generieren. Basierend auf dem Code weist der Code-Editor dem neu generierten Member auch den richtigen Typ zu, d. h. er generiert eine Eigenschaft (oder ein Feld) vom Typ „string“. Der Code-Editor kann Methodenaufrufe analysieren und passende Methodensignaturen generieren. Dieses Feature ist Teil der Tools für Coderefactoring und hilft Ihnen, sich beim Schreiben auf den Code zu konzentrieren.

Entfernen von redundantem Code

Der Code-Editor in Visual Studio für Mac hebt auch redundanten Code hervor, der nicht benötigt und nicht verwendet wird. Redundanter Code ist leicht erkennbar, da er ausgegraut ist. Hinter den Kulissen wird der redundante Code anhand einiger Regeln der Quellanalyse hervorgehoben, die dazu führen, dass der redundante Code als Problem betrachtet wird. (Sie können diese Regeln steuern, aber das sprengt den Rahmen dieses Artikels.) Meistens werden Sie Beispiele für redundanten Code finden, der auf unnötigen using-Direktiven basiert, aber die Erkennung redundanten Codes ist nicht darauf beschränkt. Ein leerer Konstruktor und der interne Modifizierer sind beispielsweise in Abbildung 3 als redundant markiert.

Entfernen von redundantem Code

Abbildung 3: Entfernen von redundantem Code

Wenn Sie mit der rechten Maustaste auf redundanten Code klicken, den Sie an seiner helleren Farbe erkennen, können Sie die schnelle Problembehebung auswählen und Visual Studio zeigt dann einen Codefix an, der den unnötigen Code entfernt. Außerdem wird ein Untermenü mit dem Namen „Optionen“ angezeigt, das die folgenden Möglichkeiten bietet:

  • Unterdrücken der aktuellen Fehlererkennung.
  • Weiteres Konfigurieren der Analyseregel in den Visual Studio-Einstellungen.
  • Anwenden des Codefix für mehrere Probleme des gleichen Typs auf Dokument-, Projekt- oder Lösungsebene.

Ebenso können Sie im Beispiel oben leicht redundante interne Modifizierer für Typdefinitionen korrigieren („internal“ ist in der Tat der Standardmodifizierer in C#). Diese Technik gilt für jede Analyseregel, die redundanten Code im Editor hervorhebt.

Das Navigieren zwischen Codedateien und Membern in einer Codedatei ist ein ausgesprochen häufig verwendeter Vorgang. Wenn dabei integrierte, leistungsfähige Navigationstools verfügbar sind, wird die Produktivität erheblich gesteigert. Visual Studio für Mac bietet eine Reihe von robusten Tools, die das Navigieren zwischen Dateien, Typen und Membern erleichtern. Zunächst einmal können Sie schnell zwischen den Codedateien wechseln, indem Sie STRG+TAB drücken. Durch diese Aktion wird ein Popupfenster geöffnet, in dem Sie eine Liste der Dateien in Ihrer Lösung anzeigen können. Wenn Sie STRG gedrückt halten und erneut TAB drücken, wird die Liste durchlaufen, und wenn Sie die Taste loslassen, wird die ausgewählte Datei im Editor geöffnet. Für die Quellcodenavigation werden in den folgenden Abschnitten weniger bekannte Produktivitätsfeatures beschrieben, die unglaublich nützlich sind.

Die Tools „Alle Verweise suchen“ und „Navigieren“

Mit dem Tool „Alle Verweise suchen“ können Sie nach allen Verweise auf einen Typ oder Member in der Lösung suchen. Um dieses Tool in Aktion zu sehen, klicken Sie im Code-Editor einfach mit der rechten Maustaste auf einen Typ oder Membernamen, und wählen Sie dann „Alle Verweise suchen“ aus. Die Verweise werden im Bereich „Suchergebnisse“ angezeigt. Abbildung 4 zeigt dies.

Suchen nach Typ- oder Memberverweisen

Abbildung 4: Suchen nach Typ- oder Memberverweisen

Im Bereich „Suchergebnisse“ sehen Sie (von links nach rechts) das Projekt, das den Verweis enthält, die Codedatei einschließlich der Position, den Quelltext, der das Objekt enthielt, auf das verwiesen wurde, und den vollständigen Pfadnamen der Quelldatei. Mit einem Doppelklick auf einen Verweis wird die entsprechende Codedatei geöffnet und der Cursor auf dem ausgewählten Vorkommen positioniert. Beachten Sie, dass der Quelltext in der Spalte „Text“ grundlegende farbige Syntax aufweist. „Alle Verweise suchen“ ist sehr leistungsfähig, aber manchmal möchten Sie Ihre Suche ggf. nach bestimmten Typ- und Membermerkmalen filtern. Dazu können Sie das Tool „Navigieren“ verwenden, das Sie aufrufen, indem Sie mit der rechten Maustaste auf einen Typ oder einen Member klicken und dann „Navigieren“ auswählen. Es wird ein Untermenü mit den folgenden Suchoptionen geöffnet:

Nach Verweisen aller Überladungen suchen findet alle Verweise auf eine Methode und ihre Überladungen.

Basissymbole ermöglicht es Ihnen, die Liste der Basistypen und Schnittstellen zu ermitteln, von denen der Typ, für den Sie „Navigieren“ aufgerufen haben, erbt oder die er implementiert. Bei Methoden findet „Navigieren“ die Liste der Methoden, die die aktuelle Methode überschreibt.

Abgeleitete Symbole ermöglicht es Ihnen, die Liste der Typen zu ermitteln, die von dem Typ erben, für den Sie „Navigieren“ aufgerufen haben. Bei Methoden wird die Liste der Methoden gefunden, die die Methode überschreiben, für die Sie „Navigieren“ aufgerufen haben.

Erweiterungsmethoden ermittelt alle Erweiterungsmethoden für den Typ, für den Sie „Navigieren“ aufgerufen haben, die in der aktuellen Lösung definiert sind.

Memberüberladungen ähnelt „Erweiterungsmethoden“, ermittelt aber die in der aktuellen Lösung definierte Liste der Methodenüberladungen.

Implementierende Member zeigt (wenn der Aufruf für eine abstrakte Klasse oder eine Schnittstelle erfolgt) die Liste der Typen und Member an, die diesen Typ oder diese Schnittstelle implementieren.

Das Tool „Navigieren“ zeigt die Suchergebnisse im Bereich „Suchergebnisse“ genau so wie „Alle Verweise suchen“ an.

Die Scrollleiste und der Minikartenmodus

Der Scrollleiste des Code-Editors zeigt farbige Markierungen an, die Codeprobleme wie Warnungen und Fehler, Haltepunkte, ToDo-Elemente und einen farbigen Punkt am oberen Rand darstellen, der rot ist, wenn die aktive Datei Fehler enthält, gelb, wenn die aktive Datei Warnungen enthält, oder grün, wenn keine Probleme erkannt werden. Außerdem stellt die Scrollleiste den sogenannten Minikartenmodus zur Verfügung. Wenn dieser Modus aktiviert ist, zeigt die Scrollleiste eine Vorschau des Quellcodes für die einfache Navigation an, wie in Abbildung 5 gezeigt.

Der Minikartenmodus der Scrollleiste

Abbildung 5: Der Minikartenmodus der Scrollleiste

Sie aktivieren den Minikartenmodus, indem Sie mit der rechten Maustaste auf die Scrollleiste klicken und „Minikarte anzeigen“ auswählen. Sie können auf einen Bereich auf der Karte klicken, und der Code-Editor bewegt den Cursor an die entsprechende Stelle. Um den Minikartenmodus zu deaktivieren, klicken Sie erneut mit der rechten Maustaste auf die Scrollleiste und wählen „Aufgaben anzeigen“ aus. Der Minikartenmodus ist besonders nützlich bei langen Dateien und hilft Ihnen, die gesamte Datei visuell darzustellen.

Durchsuchen von Objekten in einer Codedatei

Visual Studio für Mac bietet visuelle Möglichkeiten zum einfachen Durchsuchen von Typen und Membern innerhalb einer Codedatei. Jedes Fenster des Code-Editors zeigt Breadcrumbs an, auf die Sie klicken können, um eine Liste der im aktiven Editor definierten Typen anzuzeigen. Wenn Sie einen Typ auswählen, können Sie auf einer zusätzlichen Registerkarte die Liste aller seiner Member anzeigen. Außerdem können Sie den Bereich „Dokumentgliederung“ verwenden, um eine visuelle Darstellung der Typstruktur in der aktiven Datei zu erhalten (siehe Abbildung 6).

Durchsuchen von Objekten in einer Codedatei

Abbildung 6: Durchsuchen von Objekten in einer Codedatei

Beachten Sie, wie verschiedene Symbole die verschiedenen Arten von Membern darstellen. Möglicherweise kennen Sie den Bereich „Dokumentgliederung“ bereits wegen seiner Funktionen zum Anzeigen der visuellen Hierarchie der Benutzeroberfläche. Sie können ihn aber auch verwenden, um eine Übersicht über die Struktur eines Typs zu erhalten. Dies ist sehr hilfreich. Sie können einfach in der Dokumentgliederung auf ein Objekt doppelklicken. Der Editor bewegt den Cursor dann auf seine Definition.

Arbeiten mit Codeausschnitten

Visual Studio für Mac unterstützt IntelliSense-Codeausschnitte: vorgefertigte Codeblockvorlagen, die an Ihre Bedürfnisse angepasst werden können. Wenn Sie bereits Erfahrung mit Visual Studio unter Windows haben, wissen Sie bereits, was Codeausschnitte sind. In Visual Studio für Mac haben Sie zwei Optionen, um einen Codeausschnitt einzufügen. Die erste Option besteht darin, mit der rechten Maustaste auf den Code-Editor zu klicken und dann die Option „Vorlage einfügen“ auszuwählen. Eine Liste der verfügbaren Codeausschnitte wird angezeigt, und Sie wählen einfach den gewünschten Codeausschnitt aus. Die zweite Option ist das Auswählen eines Codeausschnitts aus der IntelliSense-Vervollständigungsliste während der Eingabe. Abbildung 7 zeigt ein Beispiel, in dem ein Codeausschnitt markiert ist (Sie drücken zwei Mal die TABTASTE, um den Codeausschnitt einzufügen).

Hinzufügen eines Codeausschnitts

Abbildung 7: Hinzufügen eines Codeausschnitts

Codeausschnitte werden durch das Symbol (...) dargestellt und sind damit sofort erkennbar. In beiden Fällen beschreibt eine QuickInfo den Zweck des Codeausschnitts, wenn Sie die Maus über seinem Namen positionieren. Mit Visual Studio für Mac können Sie auch neue benutzerdefinierte Codeausschnitte erstellen und vorhandene Codeausschnitte in der IDE bearbeiten, ohne dass Sie externe Tools benötigen. Um dies zu ermöglichen, wählen Sie „Einstellungen“ im Visual Studio-Menü und dann im Dialogfeld „Einstellungen“ das Element „Codeausschnitte“ unter „Text-Editor“ aus. Dort wird eine Liste der Codeausschnitte (gruppiert nach Sprachen) angezeigt. Wenn Sie einen vorhandenen Codeausschnitt auswählen, klicken Sie einfach auf die Schaltfläche „Bearbeiten“, um den Code zu bearbeiten. Wenn Sie stattdessen auf „Hinzufügen“ klicken, haben Sie die Möglichkeit, einen neuen Codeausschnitt zu erstellen. Dies geschieht im Dialogfeld „Neue Vorlage“, in dem Sie eine Tastenkombination, eine Beschreibung, einen MIME-Typ, eine Sprachgruppe und natürlich den Quellcode angeben. Abbildung 8 zeigt ein Beispiel.

Erstellen eines benutzerdefinierten Codeausschnitts

Abbildung 8: Erstellen eines benutzerdefinierten Codeausschnitts

Beachten Sie, dass das Symbol „$“ verwendet wird, um Bezeichner für Ersetzungen zu kennzeichnen, während der $selected$$end$-Ausdruck den aktuellen Codeausschnitt einschränkt. Wenn Sie Bezeichner zum Ersetzen markieren, können Sie in den Feldern auf der rechten Seite des Dialogfelds auch weitere Informationen zum Bezeichner selbst (z. B. seinen Standardwert und eine QuickInfo, die seine Bedeutung beschreibt) angeben. Klicken Sie anschließend einfach auf „OK“, und schließen Sie das Dialogfeld „Einstellungen“. Nun befindet sich Ihr neuer Codeausschnitt in der Codeausschnittbibliothek und kann über IntelliSense im Code-Editor verwendet werden. Es sollte erwähnt werden, dass vorhandene Codeausschnitte bearbeiten werden können, um eine Tastenkombination zuzuweisen, falls diese noch nicht verfügbar ist. Sie können die Tastenkombination dann im Code-Editor eingeben und einen Codeausschnitt so schneller einfügen. Wenn Sie wie ich arbeiten und zahlreiche Codeausschnitte verwenden, können Sie mit der Option, diese aus der IDE heraus zu erstellen, viel Zeit sparen.

Hinzufügen benutzerdefinierter Sprachen

Einer der Aspekte, die Sie an Visual Studio für Mac schätzen werden, ist die Möglichkeit, neue Sprachen hinzuzufügen, die nicht im Lieferumfang von Visual Studio für Mac enthalten sind und deren Grammatik auf den De-facto-Standards TextMate und Sublime Text basiert. Visual Studio für Mac unterstützt beide Standards und ermöglicht das Hinzufügen von Sprachbundles, die Bearbeitungsfeatures wie farbige Syntax, Codeausschnitte und Wortvervollständigung bieten. Angenommen, Sie möchten beispielsweise Syntaxunterstützung für die Bearbeitung von SWIFT-Dateien hinzufügen. Dies kann auf einem Mac sehr sinnvoll sein. In TextMate oder Sublime Text installieren Sie ein SWIFT-Sprachbundle und exportieren das Paket des Sprachbundles dann auf den Datenträger. Anschließend können Sie das Sprachbundle in Visual Studio für Mac importieren. Dazu verwenden Sie den Knoten „Sprachbundles“ des Dialogfelds „Einstellungen“. Dort können Sie auf „Hinzufügen“ klicken und das zuvor exportierte Sprachpaket auswählen. Nun können Sie SWIFT-Dateien öffnen (oder auch andere Dateitypen abhängig davon, welches Paket Sie importiert haben) und Funktionen wie farbige Syntax und Codeblockfaltung nutzen.

Mit dem Code-Editor können Sie auch Codeausschnitte einfügen, wenn das ausgewählte Sprachbundle diese enthält. Natürlich unterstützt Visual Studio für Mac keine Kompilierung von Quelldateien oder das Erstellen und Veröffentlichen von Anwendungen auf der Basis externer Sprachbundles. Stattdessen können Sie die Ausführung externer Tools (z. B. von Compilern) mit dem Befehl „Benutzerdefinierte Tools bearbeiten“ im Menü „Optionen“ automatisieren.

Debugproduktivität mit Bereichen und der Debug-Klasse

Debuggen ist enorm wichtig, und Visual Studio für Mac wird mit erstklassigen Debugtools ausgeliefert, die jeder Entwickler benötigt, um qualitativ hochwertige Anwendungen produktiv erstellen zu können. Die offizielle Dokumentation (bit.ly/2xgJkx0) beschreibt die gebräuchlichsten Werkzeuge wie Haltepunkte, Datenvisualisierung und bedingte Datenflusssteuerung. Ich werde einige andere nützliche Features beschreiben, die Sie vielleicht insbesondere dann kennenlernen möchten, wenn Sie mit dem Debuggen in Visual Studio unter Windows vertraut sind und erwarten, die gleichen Tools auf dem Mac vorzufinden. Beginnen wir mit der Klasse „System.Diagnostics.Debug“, mit der Sie die Auswertung eines Ausdrucks aus dem C#-Code in den Bereich „Anwendungsausgabe“ ausgeben können, ohne die Ausführung einer Anwendung zu unterbrechen. Angenommen, Sie verwenden eine .NET Core-Konsolenanwendung, die mit dem folgenden Code auf die Benutzereingabe wartet:

string inputString = Console.ReadLine();
Debug.WriteLine($"The entered string is {inputString.Length} characters long");

Die Methode „Debug.WriteLine“ gibt den Ausdruck im Bereich „Anwendungsausgabe“ aus, ohne die Ausführung der Anwendung zu unterbrechen. Abbildung 9 zeigt dies. In diesem Fall ist der Ausdruck eine interpolierte Zeichenfolge, die die Länge der vom Benutzer eingegebenen Zeichenfolge enthält.

Die Ausgabe eines Ergebnisses einer Auswertung im Bereich „Anwendungsausgabe“

Abbildung 9: Die Ausgabe eines Ergebnisses einer Auswertung im Bereich „Anwendungsausgabe“

Und Sie sind nicht auf die WriteLine-Methode beschränkt, sondern können alle anderen unterstützten Methoden wie „Assert“, „Equals“, „Fail“, „Write“, „WriteIf“ und „WriteLineIf“ verwenden (Details finden Sie unter bit.ly/2ydS8jO).

In Visual Studio für Mac gibt es andere Möglichkeiten, Ausdrücke auszuwerten und Objektwerte während des Debuggens zu untersuchen. Sie können Haltepunkte und Datenvisualisierungen verwenden, aber Sie können auch den Überwachungsbereich nutzen, dessen Aufgabe darin besteht, Variablen, Methoden und Ausdrücke visuell zu überwachen. Im Unterbrechungsmodus ist das Überwachungsfenster automatisch aktiviert, und Sie können darauf klicken, um ein neues Objekt für die Überwachung hinzuzufügen. Abbildung 10 zeigt ein Beispiel, das auf dem Wert einer Eigenschaft basiert.

Überwachen von Objekten mit dem Überwachungsbereich

Abbildung 10: Überwachen von Objekten mit dem Überwachungsbereich

Für jedes Objekt, das Sie überwachen, werden seine Member und deren Werte angezeigt. Sie können auch auf den Wert klicken und ihn ändern, um zu untersuchen, wie sich Ihr Code mit einem anderen Objektwert verhält. Der Überwachungsbereich bietet außerdem Verknüpfungen mit der Datenvisualisierung, die Sie am Augen- bzw. Bleistiftsymbol erkennen können. Zwei weitere Debugbereiche sind ebenfalls ausgesprochen hilfreich: der Threadbereich und der Aufruflistenbereich. Beide Bereiche werden in Abbildung 11 gezeigt.

Überwachen von Threads und Methodenaufrufen mit den Thread- und Aufruflistenbereichen

Abbildung 11: Überwachen von Threads und Methodenaufrufen mit den Thread- und Aufruflistenbereichen

Der Threadbereich zeigt die Liste der ausgeführten Threads an und ist nützlich, um die Codepositionen zu verstehen, an denen die verschiedenen Threads Ihrer App angehalten werden. Er zeigt die Thread-ID, den Namen und die Position des Codes an, der sich auf jeden Thread bezieht. Sie können auch einen Namen für Threads eingeben, wenn noch kein Name vorhanden ist. Der Aufruflistenbereich zeigt die Hierarchie der Methodenaufrufe an, und Sie können ihn auch für die Anzeige von Aufrufen aktivieren, die nicht in Ihrer Lösung enthalten sind, z. B. von Interopframes. Klicken Sie dazu mit der rechten Maustaste auf den Bereich, und aktivieren Sie die Option „Externen Code anzeigen“. Durch die Nutzung all dieser Funktionen verfügen Sie über eine vollständige und leistungsstarke Suite von Debugtools, die Ihnen zusammen mit Haltepunkten, dem Bereich für lokale Variablen und der Datenvisualisierung die umfassende Kontrolle Ihrer .NET Core- und Xamarin-Lösungen ermöglichen.

Zusammenfassung

Visual Studio für Mac unterstützt Sie nicht nur bei der Entwicklung plattformübergreifender Anwendungen für mobile Geräte und die Cloud mit Xamarin und .NET Core unter macOS, sondern bietet auch alle Produktivitätstools, die Sie zum Schreiben von qualitativ hochwertigem Code benötigen. Dies beinhaltet Produktivitätsfeatures im Code-Editor und in den Debugtools, mit denen Sie sich in dieser IDE zu Hause fühlen werden. Dies gilt insbesondere dann, wenn Sie über Erfahrung mit Visual Studio unter Windows verfügen.


Alessandro Del Sole ist seit 2008 ein Microsoft MVP. Er wurde bereits fünf Mal als MVP des Jahres ausgezeichnet und ist der Autor zahlreicher Bücher, eBooks, Videoanleitungen und Artikel zur .NET-Entwicklung mit Visual Studio. Del Sole arbeitet als Senior .NET-Entwickler mit dem Schwerpunkt auf .NET und der Entwicklung mobiler Apps, Training und Beratung. Er ist Autor eines Buchs mit dem Titel „Beginning Visual Studio for Mac“ (bit.ly/2hsRxYx), das bald erscheinen wird. Sie können ihm auf Twitter folgen: @progalex.

Unser Dank gilt dem folgenden technischen Experten bei Microsoft für die Durchsicht dieses Artikels: Mikayla Hutchinson


Diesen Artikel im MSDN Magazine-Forum diskutieren