VisualStudioTutorial: Unterschied zwischen den Versionen
Justus (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(17 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
[[Bild:VSLogo.png|thumb|300px|Visual Studio Splash]] | [[Bild:VSLogo.png|thumb|300px|Visual Studio Splash]] | ||
{{:VisualStudioTutorial/Projekte}} | {{:VisualStudioTutorial/Projekte}} | ||
{{:VisualStudioTutorial/Referenzen}} | {{:VisualStudioTutorial/Referenzen}} | ||
{{:VisualStudioTutorial/Anwendungseinstellungen}} | |||
{{:VisualStudioTutorial/Refactoring}} | {{:VisualStudioTutorial/Refactoring}} | ||
Zeile 14: | Zeile 15: | ||
{{:VisualStudioTutorial/Klassendiagramme}} | {{:VisualStudioTutorial/Klassendiagramme}} | ||
{{:VisualStudioTutorial/SpieleWeitergeben}} | |||
{{:VisualStudioTutorial/Tastenkombinationen}} | {{:VisualStudioTutorial/Tastenkombinationen}} | ||
== Referenzen == | == Referenzen == | ||
<references /> | <references /> | ||
[[Kategorie:VideoTutorials]] | [[Kategorie:VideoTutorials]] | ||
<noinclude>[[Kategorie:VisualStudio]]</noinclude> | <noinclude> | ||
[[Kategorie:Tools | [[Kategorie:VisualStudio]][[Kategorie:Tutorials]] | ||
</noinclude> | |||
[[Kategorie:Tools]] |
Aktuelle Version vom 23. Oktober 2020, 15:38 Uhr
Visual Studio ist eine Entwicklungsumgebung für .NET.
![](/images/thumb/0/0f/VSLogo.png/300px-VSLogo.png)
Projekte
Visual Studio unterstützt neben unterschiedlichen Sprachen auch unterschiedliche Projekttypen. Für uns interessant ist die Sprache C# und die Projekttypen
- MonoGame Windows Project
- Das ist ein leeres Spiel für Windows. Hier wird automatisch eine Klasse angelegt, die von Microsoft.Xna.Framework.Game[1] abgeleitet ist. In dieser sind die Basis-Methoden des Spiels definiert.
- MonoGame Cross Platform Desktop Project
- Ein MonoGame Template mit OpenGL GrafikAPI damit es sowohl auf Windows als auch auf Mac und Linux laufen kann.
- MonoGame Shared Project
- Dieser Projekttyp wird zu einer MonoGame-Library kompilliert. Es ist somit keine ausführbare Datei, es werden nur Klassen und Methoden zur Verfügung gestellt, die ein Spiel benutzen kann.
Man kann durchaus andere Projekttypen wie Class Library benutzen.
Solution
Mehrere Projekte können in einer Solution zusammengefaßt werden. Dadurch kann man einfacher referenzierte Projekte ändern und muß auch nur ein Visual Studio aufmachen.
Projekte referenzieren
Man kann in einem Projekt andere Projekte und Libraries referenzieren. Dazu macht man einen Rechtsklick auf das Projekt und Add Reference.... Im darauf folgenden Dialog kann man entweder
- global installierte Assemblies auswählen (Tab .Net)
- eine Library im Dateisystem suchen (Tab Browse)
- ein Projekt referenzieren (Tab Projects)
Hierbei muß man allerdings beachten, daß keine zirkulären Abhängigkeiten entstehen. Diese kann der Compiler nicht automatisch auflösen und wirft eine entsprechende Fehlermeldung. Als Abhilfe kann man versuchen, bestimmte Klassen in ein drittes Projekt auszulagern.
Sichtbarkeit
Als internal markierte Klassen, Felder und Methoden sind innerhalb eines Projektes sichtbar. Man kann auch Projekte als friend markieren, diese können dann auch auf Internals zugreifen.
Anwendungseinstellungen
Um Einstellungen der Anwendung zu speichern kann man dem einem Projekt eine Settings File hinzufügen. Visual Studio erstellt dann automatisch einen Designer, in dem man Defaultwerte vorgeben kann. Man kann hier auch einstellen, ob eine Einstellung systemweit oder nur für den aktuellen Benutzer gilt.
![Hinzufügen einer Einstellungsdatei](/images/thumb/3/3f/AddingSettings1.png/300px-AddingSettings1.png)
Für das folgende Beispiel nehme ich als Klassenname Settings1 an. Dort wird eine Einstellung Wert definiert, deren Defaultwert Bla ist.
![Bearbeiten einer Einstellungsdatei](/images/thumb/b/b4/EditingSettings1.png/300px-EditingSettings1.png)
Die erzeugte Klasse ist ein Singleton.
// Einstellungen holen
Settings1 s = Settings1.Default;
// gibt "Bla" auf der Konsole aus
Console.WriteLine(s.Wert);
s.Wert = "Blubb";
// gibt "Blubb" auf der Konsole aus
Console.WriteLine(s.Wert);
// speichert die Einstellungen
s.Save();
// setzt die Einstellungen auf ihre Defaultwerte zurück
s.Reset()
// danach muss man wieder speichern
Refactoring
Als Refactoring bezeichnet man verschiedene Verbesserungen an der Quelltextstruktur ohne die Funktionalität zu ändern.
- Methode extrahieren
- Um eine Methode zu extrahieren markiert man die zu extrahierenden Zeilen. Rechtsklick und Auswahl von Refactor -> Extract Method... öffnet ein Fenster, in dem man den Namen für die neue Methode angeben kann. Diese wird dann automatisch mit den passenden Parametern und dem richtigen Rückgabetyp generiert.
- Variablen und Klassen unbenennen
- Um eine Variable oder Klasse umzubenennen öffnet man das Kontextmenü für den Klassennamen und geht auf Refactor -> Rename... oder benennt die Variable oder Klasse an Ihrer Definition um. Daraufhin ercheint ein kleines rotes Rechteck rechts unter dem neuen Namen.
- Extract Interface
- Man kann sich auch ein Interface aus einer Klasse generieren lassen.
Visual Studio versucht diese Aktionen automatisch (nur auf Befehl) durchzuführen. Wenn es einmal nicht klappen sollte, gibt es Bescheid. Trotzdem sollte man danach das Programm testen.
Leider kann Visual Studio keine Klassen automatisch zusammenführen oder trennen, dies muß man von Hand machen. Auch erkennt es mehrfach geschriebenen Code beim Methoden extrahieren nicht. Daher muß man von Hand ähnliche Stellen suchen und durch die neue Methode ersetzen.
Debuggen
Visual Studio enthält einen integrierten Debugger. Um ihn zu starten drückt man F5 oder auf .
Breakpoints
Mit Hilfe eines Breakpoint kann man ein Programm zur Laufzeit untersuchen. Der Debugger hält das Programm an der Stelle des Breakpoints an. Dort kann man dann Variablenwerte prüfen oder das Programm Schrittweise ausführen.
In VisualStudio setzt man Breakpoints indem man entweder links in den grauen Bereich neben einer Codezeile klickt oder die Anweisung
System.Diagnostics.Debugger.Break();
benutzt. Ein Rechtsklick auf den roten Punkt, der den Breakpoint darstellt fördert weitere Möglichkeiten wie Zähler und Bedingungen für das Anhalten zutage.
Man kann das Programm mit F10, F11 und Shift+F10 oder kann man in eine Zeile reinspringen (für aufgerufene Methoden, über diese drüber springen bzw. aus einer Methode in die aufrufende Methode zurückspringen.
Klassendiagramme
Mit Visual Studio lassen sich UML ähnliche Klassendiagramme anlegen. Dazu geht man in einem Projekt auf Add -> New Item... -> Class Diagram.
Vorhandene Klassen lassen sich einfach aus dem Solution Explorer in das Diagramm ziehen. Mit dem Kontextmenü kann man dann Klassen bearbeiten und neue hinzufügen. Die Eigenschaften der Klassen werde direkt aus dem Quelltext ausgelesen und dann auch dort gespeichert. Das heißt, daß zum Beispiel im Diagramm neu angelegte Methoden auch einen Rumpf in der Klassendefinition bekommen. Da Visual Studio aber nicht wissen kann, was die Funktion machen soll, wirft sie erst einmal eine NotImplementedException[2].
![Klassendiagramm](/images/8/83/Klassendiagramm.png)
Spiele weitergeben
Um das Spiel weiterzugeben können sie in den Build-Ordner ihres Projeks Navigieren und dort die Binaries zu einen Zip-Archiv packen. Bei der Standard x86 Config gibt es:
- bin\Windows\x86\Debug
- bin\Windows\x86\Release
Bei der x64 Config sind es die folgenden Ordner:
- bin\x64\Debug
- bin\x64\Release
Das Spiel muss mit jeder Config einmal kompiliert werden damit die Binaries in den vorher genannten Ordnern aktuell sind.
Referenzen
- ↑ http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.aspx MSDN Artikel zu Game
- ↑ http://msdn.microsoft.com/en-us/library/system.notimplementedexception.aspx MSDN Artikel zur Klasse NotImplementedException
Tastenkombinationen
Visual Studio kenn sehr viele Tastenkombinationen[1]. Hier möchte ich einige nützliche aufführen. Ich gehe von der Einstellung C# aus, die man beim ersten Start auswählen kann. Man kann diese Einstellung auch nachträglich mit Tools -> Options -> Environment -> Keyboard setzen.
Quelltext bearbeiten
- Quelltext formatieren
- Strg + K, D
- Markierten Text auskommentieren
- Strg + E, C
- Markierten Text einkommentieren
- Strg+E, U
- Neue Datei erstellen
- Strg+N
- Zu einer Definition springen
- F12
- Breakpoint setzen
- F9
Debuggen und Kompillieren
- Programm ausführen
- F5
- Programm ohne das Starten des Debuggers ausführen
- Strg + F5
- Solution erstellen (kompillieren)
- F6
- Projekt erstellen (kompillieren)
- Shift + F6
- Build abbrechen
- Strg + Pause
- Einzelschrittausführung starten
- F11
- nächster Schritt im Programm
- F11
- Während des Debuggens in eine Methode reinspringen
- F10
- Während des Debuggens aus einer Methode rausspringen
- Shift + F10
- Debugausführung beenden
- Strg + F5
- Debugausführung neustarten
- Strg + Shift + F5
Referenzen
- ↑ http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=e5f902a8-5bb5-4cc6-907e-472809749973 Visual C# 2008 Keybinding Reference Poster