Visual C# 2012 Grundkurs

Einführung in Visual Studio 2012

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Einführung in Visual Studio 2012 zeigt die wichtigsten Schritte der Software-Entwicklung sowie das Erstellen der "Hello World"-Anwendung in Visual Studio.

Transkript

In diesem Kapitel nutzen wir Visual Studio 2012, um das gleiche einfache Konsolenprogramm zu schreiben, das wir im vorangegangenen Abschnitt bereits mithilfe von Notepad und dem CSC-Compiler geschrieben haben. Bei der Gelegenheit können wir eine kleine Einführung in Visual Studio geben, wie man die wichtigsten Schritte der Softwareentwicklung mit Visual Studio unternimmt. Wenn wir Visual Studio starten, sieht es so aus. Es hat in der Mitte eine Informationsfläche, die man auch schließen kann. Dann sieht die ganze Sache schon ein bisschen aufgeräumter aus. Geschlossen habe ich das mit der Tastenkombination Strg+F4, aber man kann auch mit "File", "Close" im Menü diese Fläche schließen, wenn es sein muss. In dieser aufgeräumten Oberfläche wollen wir ein Projekt anlegen für unsere HelloWorld-Anwendung. Also sage ich mal "File", "New Project". Jetzt bekomme ich eine Menge Auswahl , welche Arten an Projekten ich da mit Visual Studio erstellen kann. Hier ist schon das Richtige angewählt, was wir machen wollen, nämlich in Visual C# eine Konsolenapplikation. Wir wollen diese Konsolenapplikation "HelloWorld" nennen. Das Schöne daran ist, dass uns das Visual Studio gleich einen Rahmen erzeugt für eine Applikation. Diesen Rahmen erkennen wir von dem Beispiel mit Notepad und im CSC wieder. Sie enthält eine Klasse, die "Program" heißt, und darin eine Methode, eine statische Void-Methode "Main". Wir können in dieser Main-Methode direkt losschreiben. Es gibt ein paar Elemente zusätzlich in dem Programm, und bevor wir die HelloWorld-Anwendung schreiben, möchte ich diese Elemente erklären. Das eine ist, dass hier lauter solche Using-Deklarationen stehen. Ich lösche alle, die oben stehen , raus, bis auf "System". Wenn Sie sich erinnern, haben wir hier vorher "System.Console.WriteLine" aufgerufen, um den String "("HelloWorld");" auf der Konsole auszugehen. Dieser Typ heißt "System.Console". Wenn wir in einem Programm versuchen würden, so etwas nachzumachen also einen Typ mit einem Namen zu schreiben, der einen Punkt in der Mitte hat, dann wird der C#-Compiler darüber meckern. Wie kommt dieser Name "System.Console" zustande? Ganz einfach, die Klasse "Console" liegt in einem "Namespace-System". Und in diesem Programm, das Visual Studio für uns vorbereitet hat, passiert etwas Ähnliches. Hier wurde ein "Namespace" angelegt, "HelloWorld", und in diesem Namespace befindet sich eine Klasse mit dem Namen "Program". Wenn jetzt irgendjemand versuchen wollte, diese Program-Klasse zu benutzen, müsste er praktisch schreiben: "HelloWorld.Program". Das ist der komplette Name. Da es aber sehr viel Zeit kostet und sehr umständlich ist, wenn man den Namen immer zusammen mit der Namespace schreiben müsste, gibt es diese Using-Deklaration. Was wir machen ist, wir sagen, "Benutze alle Elemente, die im Namespace-System liegen, so als ob sie ohne Namespace geschrieben worden wären. Damit können wir dieses "System.Console" verkürzen und schreiben "Console.WriteLine". Das sind also die beiden Unterschiede zu dem Konsolenprogramm. Hier oben stehen Using-Deklarationen und ein Stück weiter darunter definieren wir dann selbst eine Namespace . Jetzt haben wir das Programm geschrieben. Wir können es jetzt mit "Build", "Build Solution" kompilieren. Wir sehen da unten, der Build ist erfolgreich durchgelaufen und wir können die Anwendung starten, entweder mit dem Debugger oder ohne den Debugger. In diesem Fall ist es so, dass ich die Anwendung ohne Debugging starten möchte. Es ist sehr empfehlenswert, sich diese beiden Tastenkürzel zu merken, dass man die Taste "F5" drückt zum Starten mit Debugger, Strg+F5 ohne Debugger, weil sonst wird man verrückt bei der ganzen Geschichte. Ich starte das mal. Das Programm hat, wie erwartet, funktioniert. Jetzt schauen wir , was sich ansonsten noch ergeben hat. Wir sehen, es ist eine Solution erzeugt worden, eine Lösung. Diese Solution heißt genauso wie unser Projekt. Das haben wir am Anfang so bestimmt, beim Anlegen des Projekts. Darin ist also dieses C#-Projekt untergebracht mit dem Namen "HelloWorld". Dann gibt es hier so einige Sachen. Es gibt eine Datei "AssemblyInfo.cs". Da stehen ein Haufen Deklarationen drinnen. Die werden benutzt, um dem erzeugten Assembly ein paar Informationen zu verpassen, die man dann wiederum im Windows Explorer sehen kann, oder die man per "Reflection", das ist eine Technologie zum Untersuchen von "Assemblies", damit wieder auslesen kann für verschiedene Zwecke. Ich klappe das aber mal zu, diese Assembly-Info hat nämlich im Augenblick für uns überhaupt keine Bedeutung. Dann haben wir eine Abteilung "References". Es gibt einige Assemblies, die von vornherein hier referenziert werden. Das Programm würde natürlich ohne all diese Assemblies wunderbar funktionieren. Das Einzige, was ich hier drin lasse, ist das "Assembly System". Dann haben wir eine Konfigurationsdatei. Mit dieser Datei könnten wir Konfigurationsinformationen abspeichern. Das brauchen wir aber im Augenblick für unsere HelloWorld-Zwecke auch nicht. Deswegen tue ich jetzt eins, ich lösche die Konfigurationsdatei schlichtweg heraus. Dann haben wir letztendlich unsere "Program.cs", die wir geschrieben haben. Jetzt muss ich mal den Beweis antreten, dass unser Programm immer noch funktioniert. Ich mache also ein "Rebuild". Dieser "Rebuild" ist erfolgreich durchgelaufen und ich drücke die Tastenkombination Strg+F5, um das Programm zu starten. Es ist alles noch da, wie gehabt. Jetzt wollen wir die Sache mit diesem "Calculator" noch mal einbauen. Jetzt kommt etwas, was hier ganz wunderbar ist, nämlich, ich kann jetzt in diese Solution ein weiteres Projekt einfügen. Ich sage also "Add", "New project" und jetzt verwende ich eine Visual C# Class Library. Diese Class Library nenne ich jetzt "Calculator". Es wurde vom Visual Studio jetzt ein zweites Projekt erzeugt. Es liegt neben unserem HelloWorld-Projekt, und auch für dieses Projekt wurden so einige Dinge voreingestellt. Es gibt wieder so einen Haufen Referenzen hier drinnen, die man fürs Erste löschen kann. Sie werden sehen, dass Sie die Dinge, die hier eingebunden werden, relativ häufig brauchen. Es ist also weder Verschwendung noch überflüssiges Zeug, sondern meistens ist es so, dass Sie in den Programmen, die Sie schreiben, die Referenzen auf diese DLLs auch wirklich benötigen werden. Dann wird auch gleich eine Klasse angelegt, die hier sinnigerweise "Class1" heißt. Damit kann man im Grunde genommen weniger anfangen, aber was wir tun können, sie umbenennen. Genau das tu ich jetzt. Ich benenne diese Datei hier um in "Calculator". Das Schöne daran, wenn ich das umbenenne, ist, dass ich gefragt werde: "You are renaming a file. Would you also like to perform a rename in this project of all reference of the code element Class1?" Es heißt auf gut Deutsch nichts anderes als: Hier befindet sich eine Klasse "Class1". Wollen Sie die vielleicht auch gleich umbenennen?" Dann sage ich, mit Dank natürlich: "Ja." Jetzt habe ich das Ganze hier umbenannt. Ich merke gerade, ich habe ein kleines bisschen Unsinn gebaut. Das will ich noch mal gerade bügeln. Wir haben vorhin unsere CalculatorLib nicht Calculator genannt, die haben wir CalcLib benannt. Das will ich jetzt umbenennen, D.h. man kann in diesem Solution-Explorer, in dieser Baumansicht unserer Solution, mit allen Elementen, die wir angelegt haben, sehr leicht irgendwelche Änderungen vornehmen. Das Projekt heißt jetzt CalcLib und es gibt einige Properties, also Eigenschaften, die wir einstellen können zu diesen Projekten. In dem Fall möchte ich dieses Calculator in "CalcLib" umbenennen. Der Namespace, wenn man jetzt neue Elemente anlegt, dann würde hier gleich ein Namespace angelegt werden von Visual Studio, und den würde ich genauso benennen, eben "CalcLib". Hier nehme ich den Namespace "CalcLib" auch her, und das ist eigentlich der wahre Grund, warum ich diese ganzen Umbenennungen noch mal vorgenommen habe, weil es ein bisschen ungünstig ist, ein und denselben Namen für eine Klasse zu verwenden und für den Namespace, in dem diese Klasse drinnen liegt. Das wäre es also gewesen mit dem Anlegen dieses Library-Projekts. Jetzt kann ich wie vorhin in meinen Calculator schreiben. Ich kann eine "public static" und jetzt sehen Sie schon, während des Tippens gibt mir Visual Studio Vorschläge. Ich habe jetzt "stat" geschrieben, und schon gibt mir Visual Studio den Vorschlag, dass es sich um das Static-Keyword handeln könnte. Ich brauche nur noch auf die Leertaste zu drücken, und dann ergänzt mir Visual Studio diesen Text. Diese Technik nennt sich "Intellisense" und sie ist extrem hilfreich beim Schreiben von Programmen. Wenn Sie sich mal dran gewöhnt haben, dann schreiben Sie Codes mindestens doppelt so schnell wie vorher "public static int Add(int a, int b)", das ist das Gleiche wie vorhin, und "return a + b;". Das ist unser Calculator. Auf die gleiche Weise würden wir jetzt "subtract, divide, multiply" usw. machen. Das spare ich mir jetzt alles. Diese Calculator-Bibliothek wollen wir jetzt in unserem HelloWorld-Programm benutzen. Und was machen wir dazu? Wir setzen eine Referenz darauf. Ich drücke mit der rechten Maustaste mal drauf, auf "References". Jetzt sieht man, es gibt einige Möglichkeiten. Das, was Sie auch am meisten brauchen werden, ist gleich der 1. Menüpunkt "Add Reference". Da bekommen Sie ein paar Möglichkeiten, was Sie alles auswählen können. Meistens startet dieser Dialog so, dass er Ihnen anbietet, was es alles an Projekten in Ihrer Solution noch so gibt. In unserer Solution gibt es eben diese CalcLib. Die kann ich an der Stelle direkt anwählen und hätte damit eine Referenz auf die erzeugt. Aber es kommt noch besser. Hier finden Sie nämlich alle System-Assemblies, die Sie irgendwie zum Programmieren brauchen können. Ich hatte ja schon mal erwähnt, dass das .NET-Framework einige zigtausend Klassen hat, und diese Klassen befinden sich jetzt alle in diesen Bibliotheken hier. Wenn ich z.B. irgendetwas mit XML machen wollte, dann könnte ich Referenzen auf System.Xml, System.Xml.Link usw. einführen. Mache ich jetzt aber alles nicht, ich bleibe bei meiner CalculatorLib, die binde ich hier ein. Jetzt sehen wir, nebst "System" haben wir noch "CalcLib" als Referenz. Jetzt kann ich zurückgehen in den Quelltext meines HelloWorld-Programms und kann sagen "int i = Calclib.Calculator". Dadurch, dass ich die Referenz eingebunden habe, ist jetzt in Intellisense bekannt, dass wir eine Namespace CalcLib" haben, und eine Klasse "Calculator" in diesem Namespace drinnen. Das ist ein bisschen anders als vorher mit der Konsolenanwendung, dass wir nämlich eine Namespace haben. Um es schön zu machen, würde ich dieses "CalcLib" jetzt rausnehmen, und sage einfach "using CalcLib". Sie sehen, ich tippe "ca", und das System, das Intellisense, erkennt mir bereits den "CalcLib" Namespace und bietet mir den an. Ich brauche nur noch den Strichpunkt tippen, und schon steht dieses "CalcLib" da. "= Calculator.Add(3,5);". Jetzt möchte ich mit einem "Console.Writeline" das Ganze rausschreiben. Da kommt jetzt noch so ein schöner Trick von Visual Studio. In Visual Studio gibt es nämlich sog. "Code Snippets". Diese Code Snippets sollten Sie sich als Visual-Studio-Entwickler einmal anschauen, sich ein paar davon herausnehmen, und die auch wirklich zu benutzen lernen. Eins der wichtigsten Code Snippets, die ich, zumindest als Trainer, wenn ich irgendwelche Software vorführe, schreibe ich meistens kurz eine Konsolenanwendung. Dann möchte ich mit "Console.WriteLine();" irgendetwas ausgeben, damit die Leute sehen, ob das funktioniert hat, was ich da vorführe. Dafür gibt es dieses Code Snippet "cw". Was ich tue ist, ich drücke einfach auf die Tabulator-Taste und jetzt wird dieses Code Snippet ausgeführt. Es erzeugt mir den Code für ein "Console.WriteLine();" und stellt den Cursor auch gleich hier in diese Klammer rein. Ich kann also unmittelbar loslegen, hin zu schreiben, was ich ausgeben will. Das finde ich schon eine ziemlich elegante Angelegenheit. Jetzt können wir dieses "(3 + 5 = ");" schreiben, und ich hänge noch mal unser "i" dran. Damit wäre die Sache erledigt. Jetzt sage ich "Build", "Rebuild Solution", siehe da, alles ist in Ordnung. Hier kommt normalerweise auch eine "Error List". Wenn Sie jetzt z.B. ein Rebuild machen, haben keinen Fehler, aber Warnungen drin, dann empfiehlt es sich, manchmal in diese Error List hineinzuschauen. Einfach mal in ein Projekt, das Sie entwickeln, immer mal nachgucken, ob es irgendwelche Warnungen gibt. Ich empfehle persönlich immer, die Projekte so zu entwickeln, dass sie nie Warnungen aufzeigen. Es gibt auch noch so ein Output-Fenster. Das zeigt ein bisschen Informationen an über den Build-Process. Das ist allerdings nicht so wahnsinnig interessant für den Moment. Jetzt können wir die Applikation ausführen: Also "Debug", " Start Without Debugging – "3+5=8". Es funktioniert genauso wie bei unserer Konsolenapplikation. Nur, wir haben das Ganze jetzt schon komfortabler entwickelt, und mit Intellisense auch eine der wahnsinnig tollen Möglichkeiten von Visual Studios" aufgezeigt. So lässt es sich arbeiten. In diesem Abschnitt habe ich gezeigt, wie man eine einfache HelloWorld-Anwendung mit Visual Studio entwickelt. Ich habe diese HelloWorld-Anwendung erweitert, sodass man eine Bibliothek benutzen kann, die wir erst entwickelt, und dann verwendet haben.

Visual C# 2012 Grundkurs

Schreiben Sie eigene Programme in C# und lernen Sie dazu alle Schlüsselwörter und die meisten Konstrukte kennen, um sicher mit dieser Programmierspreche umzugehen.

7 Std. 1 min (44 Videos)
Ein paar Vorkenntnisse wünschenswert, sonst super!
Tobias D.

Sehr viel Wissen des Trainers und absolut hilfreich in der C#-Programmierung. Leider ist das Training (aus meiner Sicht) viel zu schnell für Einsteiger, vor allem, wenn man dies parallel via Visual Studio nachstellen möchte.

 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!