
Wenn Du dieses Thema angeklickt hast, wirst Du vermutlich Interesse in der Entwicklung von Anwendungen haben. Das Programmieren von Anwendungen jeglicher Art ist zwar zeitaufwendig, aber man kann all seine Erfahrung und sein können in dieses Hobby einfließen lassen. Beispielsweise kann man seinen eigenen Browser schreiben, die ersten Erfahrung in der Programmierung von Hardware erlangen und vieles mehr.
Es gibt jedoch viele Punkte, welche für Anfänger unverständlich sind, bzw. einer Klärung bedürfen. Dieser Artikel soll auf viele Anfängerfragen eine Antwort geben und eine erste Einführung in die Entwicklung mit Microsoft Visual C# geben.
Wie sieht der Lernprozess aus?
Eine Programmiersprache kann man in gewisser Weise auch mit einer Fremdsprache vergleichen. Man muss zunächst ein Grundvokabular erlangen und auf die Grammatik achten, um einen einfacheren Einstieg zu erhalten. Man wird anschließend erkennen, dass ein fortlaufendes "Sprechen" (bei Programmiersprachen also das Programmieren) ein intensives Training darstellt. Das schönste ist dann aber, sich mit gleichgesinnten auf einer Plattform über dieses Hobby zu unterhalten und Erfahrungen auszutauschen.
Natürlich ist dieser Vorgang sehr zeitaufwendig. Wie auch bei Fremdsprachen benötigt man unter Umständen mehrere Jahre, um eine Sprache sprechen zu können. Aber auch in der Welt der Programmiersprachen gibt es viele kleine Helferlein, beispielsweise dieses Supportforum oder Anfängertutorials sowie Videotutorials. Durch ein visuelles Verständnis kann man schneller lernen und kommt schneller zum Ziel.
Nichts desto trotz ist aber auch anzumerken, das es sehr viele Stunden geben wird, in denen man vor einem Buch oder einem komplexen Text im Internet sitzen wird und darüber intensiv grübeln wird. Denn nur durch einen ausgeprägten Sinn für Logik können wir komplexe Strukturen der Entwicklung nachvollziehen.
Um eine kleine Zeitlinie abzubilden:
- Kennenlernen von Tools und den absoluten Grundlagen
- Erste Schritte mit den Tools und Überblick der Möglichkeiten
- Erstellen simpler Anwendungen um sich mit der Syntax zu identifizieren
- Hilfequellen und dessen korrekte Verwendung kennenlernen
- Leichten Quellcode analysieren und diesen versuchen zu verstehen
- Trainieren der logischen Denkweise
- Entwicklung eines Projekts, welches man einfach erweitern kann um die Anwendung mit dem eigenen Kenntnisstand zu erweitern (bspw. einen Browser, simpler Texteditor)
- Studieren von Entwicklungsarbeiten (oder Artikeln) um einen tieferen Einblick zu erlangen
- Über den Tellerrand schauen, indem man sich auch in eine andere Richtung wagt (bspw. ASP.NET, oder das .NET Compact Framework)
- Durch weitere Projekte üben und üben. Hierbei sind auch Vorstellungsforen (bspw. hier) förderlich, um Feedback von erfahrenen Entwicklern zu bekommen.
Nicht alle Punkte müssen umbedingt lange dauern. Es kann gut sein das man den einen oder anderen Punkt schneller abarbeiten kann, als andere. In der Regel sollte man aber lieber etwas "länger" auf einem Thema rumreiten, bis man es lückenlos verstanden hat.
Es ist kritisch, wenn man später absolute Grundlagen erneut aufarbeiten muss, nur weil man über einen elementaren Grundbaustein gesprungen ist. Deshalb sollte insbesondere hier viel Zeit investiert werden.
An welche Programmiersprache sollte ich mich halten, bzw. was wäre vorteilhaft?
Es gibt viele Programmiersprachen, die man lernen kann. In der Regel ähneln sich diese und wenn man eine Programmiersprache erlernt hat, fällt es einem wesentlich einfacher, weitere Sprachen zu erlernen. Bei den Programmiersprachen gibt es aber auch teilweise große Unterschiede, was die Verwendungsfähigkeit angeht.
Da dies ein .NET Forum ist, werde ich mich auf die Vorzüge dieser Sprache beschränken. Es gibt auch andere Sprachen, aber dies ist wegen dem sog. .NET Framework eines der universellsten und vorallem eine der Fortschrittlichsten.
Zunächst einmal muss erklärt werden, was genau das Framework ist. Das Microsoft .NET Framework ist eine "Sammlung" von bereits vor entwickeltem Quellcode, der eine schnelle und vor allem einfache Entwicklung erlaubt. Viele Operationen, wie z.B. das Löschen einer Datei können mit nur einer Zeile Quellcode erledigt werden.
Auf diesem "Fundament" ruhen die eigentlichen Programmiersprachen. Beim .NET Framework Visual C#, Visual C++, Visual J# und Visual Basic. Letztes dürfte wohl jedem schon einmal über den Weg gelaufen sein. Auch C++ ist sehr bekannt. C# erfreut sich einer immer größer werdenden Community und J# ist in der aktuellsten Version leider nicht mehr enthalten.
Bis auf Visual Basic ähneln sich die Sprachen von der Syntax (=wie sie formell geschrieben werden) sehr. Nur Visual Basic setzt auf eine einfachere Sprache, welche auch nur auf den ersten Blick "einfacher" erscheint. Letztenendes wird sich jeder Programmierer später auch nach einer anderen Sprache umschauen. Da die Syntax der anderen Sprachen "zusammenhängend" sind, muss der Visual Basic Programmierer später komplett umdenken und sich umstellen. Es ist (aus eigener Erfahrung) sehr schwer, sich von der Sprache zu anderen Sprachen hinzubewegen und ich empfehle es niemanden.
Ein Anfänger der Entwicklung wird sich sowieso an vieles gewöhnen müssen. Deshalb empfehle ich, gleich mit Visual C# einzusteigen. Dies bietet viele Vorteile gegenüber Visual Basic und ist im Endeffekt auch nicht schwer(er) zu lernen.
Okay - die Frage ist jetzt was man damit machen kann?
- Programmierung von Anwendungen für Microsoft Windows Systeme
- Programmierung von Computerspielen mithilfe des XNA-Frameworks
- Programmierung von interaktiven Websiten mithilfe von ASP.net
- Programmierung von Hardwarebauteilen mithilfe des .NET Micro Frameworks
- Programmierung von Mobilen Anwendungen für Windows Mobile mithilfe des .NET Compact Frameworks
Und das schöne dabei ist: Eigentlich alle diese Punkte können mit wenigen Klicks verbunden werden. Beispielsweise kann eine Anwendung mit einer Website Daten austauschen, die Daten können an die Mobile Plattform übergeben werden und dort wieder zurück-synchronisiert werden. Dies alles geht realtiv natlos und man kann in der Regel den gleichen Quellcode verwenden.
Das bedeutet ich kann Spiele, Anwendungen, Webanwendungen sowie Anwendungen für mobile Geräte mit nur einer einfachen Programmiersprache schreiben. Nachteil dieser schönen Welt ist jedoch, das die Anwendungen "eigentlich" nur auf Microsoft-Plattformen laufen. Es gibt zwar einen Versuch dies auch für Linux-Distributionen bereitzustellen, aber dies ist nur eine technische Spielerei und in keinster Weise in einer produktiven Umgebung zu empfehlen.
Wie man sehen kann, bietet das .NET Framework einen großartigen Einstieg in die Welt der Entwickler. Der erste Schritt in diese Welt wäre nun, sich in diesem Forum zu registrieren und ein Teil dieser Welt zu werden!
Welche Programme benötigte ich, was kosten diese und was kann ich damit machen?
Microsoft stellt allen Entwicklern eine kostenlose Version von Microsoft Visual Studio zur Verfügung. Diese "Suite" (mit dem Postfix "Express Edition") erlaubt die Entwicklung von Anwendungen und Webseiten.
Die Express-Edition von Microsoft Visual Studio ist kostenlos und darf auch für kommerzielle Zwecke genutzt werden. Dies bedeutet, das die erstellen Anwendungen später auch verkauft werden dürfen, wenn Ihr entsprechende Kunden findet.
Wer Anwendungen für die mobile Plattform entwickeln möchte, der muss sich die Professional Version von Microsoft Visual Studio zulegen. Diese Version ist jedoch sehr teuer und für viele Anfänger (was die Funktionen beinhaltet) total überladen.
Für die Entwicklung von Anwendungen, muss man sich das XNA-Framework zulegen. Dies werde ich in diesem Artikel aber nicht explizit ausführen.
Visual Studio ist eigentlich das einzige, was man für die Entwicklung von Anwendungen und / oder Webseiten benötigt. Alternativ kann man sich auch die MSDN Library herunterladen. Dies ist eine Art Dokumentation aller Funktionen. Hier kann man sich viele Informationen zu der ganzen Architektur aneinen. Diese Dokumentation kann man bei bestehender Internetverbindung aber auch in aktueller Fassung anschauen.
Hier findet man weitere Informationen zu Visual Studio und dessen Download.
Die ersten Schritte nach der Installation
An diesem Schritt gehe ich davon aus, dass Ihr euch Visual C# heruntergeladen habt, und die Anwendung bereits installiert habt. Öffnet einfach Visual Studio Express Edition. Ihr werdet bei dem ersten Start gefragt, für welche Umgebung die Anwendung konfiguriert werden soll. In unserem Fall wählen wir "C# Entwickler" aus und klicken auf OK. Anschließend dauert es einen Moment, bis die IDE (= Integrierte Entwicklungsumgebung) für unsere Zwecke konfiguriert wurde.
Die Oberfläche sieht zwar etwas anders aus, aber mit etwas Kenntnis anderer Microsoft Produkte lassen sich viele Funktionen bereits erahnen und / oder schneller finden. In diesem Schritt werde ich jetzt eine erste "Hallo Welt" Anwendung Schritt für Schritt erklären. Dies ist keine wirklich "besondere" Anwendung, aber das einfachste was man machen kann. In der Regel wird dieses Beispiel durchlaufen, um einen kleinen Einblick in den eigentlichen Verlauf der Programmierung zu geben.
Information: Die Screenshots können leicht von der installierten Anwendung abweichen, aber die hier vorgestellten Methoden und oder Funktionen sind in jeder Version zu finden.
Schritt 1: Erstellen eines neuen Projekts.
In diesem Schritt erstellen wir ein neues Projekt. Projekte sind eine Sammlung von Klassen, Formen und anderen Dateien, welche zusammen die spätere Anwendung darstellen sollen. Es gibt den sogenannten "Compiler" (Verb: "compile" zu Deutsch "kompilieren"), der aus der Ansammlung von Daten später eine .exe-Anwendung generiert. Voraussetzung dafür ist aber, das wir keinen syntaktischen oder logischen Fehler eingebaut haben.
Widmen wir uns nun aber der Erstellung einer simplen Anwendung.

Klicke dazu auf "Datei" -> "Neu" -> "Projekt".
Anschließend öffnet sich der "Neues Projekt"-Dialog.

In diesem Dialog können wir den Typ unseres Projekts auswählen. Desweiteren können wir den Namen der Anwendung, sowie die Framework-Version festlegen.
Du wirst in dem späteren Verlauf deines Lernprozesses sehen, dass das Framework modular aufgebaut ist und in den jeweiligen Versionen funktionell erweitert wurde. Für die ersten "Gehversuche" wird das Framework 2.0 vollkommen ausreichend sein. Darüberhinaus ist das Framework in dieser Version (welches später auf dem Zielrechner installiert sein muss) auf jedem Computer ab Windows XP SP2 enthalten. Damit ist die Zielgruppe am "höchsten".
Mithilfe von sog. "Vorlagen", können wir bereits einen Projekttypen auswählen. Zur Auswahl stehen (je nach Visual Studio Version und Plugins) mehr oder weniger Projekttypen.
Hier eine kleine Übersicht der wichtigsten:
Windows-Forms-Anwendung (Windows-Forms-Application)Dieser Anwendungstyp dürfte jedem bestens vertraut sein. Es handelt sich hierbei um eine normale .exe-Datei, welche gestartet werden kann und eine graphische Oberfläche hat. (Beispiel dafür wäre der "Neues Projekt" Dialog)
Klassenbibliothek (Library)Die Klassenbibliothek ist eine Ansammlung von purem Quellcode und enthält in der Regel keine Oberflächen oder Elemente welche für die Entwicklung von Oberfläche benötigt werden. (diese werden "Control" genannt). In dem Prozess des Lernens wird man häufiger auf diese ".dll"-Dateien angewiesen sein und diese modular nutzen um die ersten Schritte möglichst "weich" zu machen.
Konsolenanwendung (Console Application)Eine Konsolenanwendung ist eine .exe-Anwendung, die jedoch keine graphische Oberfläche hat. Innerhalb dieser Anwendung kann man nur mit der Tastatur navigieren und muss Funktionen mihilfe von "Befehlen" abrufen. (Ein systemnahes Beispiel wäre die cmd.exe)
Wir werden in dieser Beispielanwendung die Windows-Forms-Anwendung wählen, sodass wir auch einen Einblick in die Oberflächengestaltung bekommen werden.
Mit einem Klick auf OK wird unser neues Projekt erstellt.

Ich habe bereits die "wichtigsten" Elemente beschriftet.
Der erste Schritt wird nun sein, in der Toolbox (links) das Control "Button" anzuklicken und per Drag & Drop auf die Form zu ziehen. Anschließend können wir nach belieben die Größe anpassen. Für diese "Lerneinheit" streben wir auch an, den angezeigten Text des Buttons zu ändern.
Der Text ist eine von vielen Eigenschaften eines Controls. Dieser wird auf der rechten Seite, innerhalb der "Eigenschaften" angezeigt. Es gibt auch weitere Eigenschaften wie bspw. Name, Size (Größe), Visible (Sichtbar), Enabled (Nutzbar/Aktiviert), Location (Ort) und weitere. Ein experimentieren mit diesen Werten hilft meistens mehr, als das stumpfe Lernen was man wie einstellen sollte.
Die Controls auf innerhalb der Toolbox haben viele gleiche Eigenschaften, aber manche haben auch wiederrum ganz andere Eigenschaften. Man sollte sich damit etwas auseinandersetzen, um ein Grundverständis davon zu erhalten.
Darüberhinaus fügen wir unserer Form noch ein "Label" hinzu. Ein Label kann genutzt werden, um die Elemente auf der Form zu bezeichnen und dem Anwender zu vermitteln was er wo hinschreiben soll.
Auch hier können wir die Text-Eigenschaft nutzt, um einen anderen Wert zuzuweisen. Nach einem kurzen Experimentieren kann folgendes Ergebnis zu sehen sein:

Wir haben jetzt den Formdesigner kennengelernt. Ein Werkzeug um die visuelle Schnittstelle zwischen Nutzer und Logik zu entwickeln. Natürlich würde jetzt nichts passieren, wenn wir die Anwendung starten würde, da wir zwar eine "hübsche" Oberfläche haben, aber keinen Quellcode der sich dahinter verbirgt. Dies wird der nächste Schritt sein.
Die bereits angesprochenen Eigenschaften kann man auch mithilfe von Quellcode verändern. Man nennt dies "Veränderung zur Laufzeit". Zur Laufzeit deshalb, weil das ganze passieren soll, wenn ein sogenanntes Event ausgelöst wird. Wenn ein Event ausgelöst wird, soll eine bestimmte Logik abarbeitet werden.
Im Prinzip kann man sich eine Anwendung aus einer Verschachtelung von sehr vielen Events vorstellen. Die Anwendung reagiert auf Benutzereingaben (beispielsweise einen Klick auf unseren Button) und erhält danne inen "Impuls." Dieser Impuls stößt einen Stapel von Quellcode an, der dann abgearbeitet werden soll.

Jedes dieser "Events" kann man (man nennt es) abonnieren. Dies bedeutet, dass jemand im Hintergrund "zuhört", ob dies eintritt. Wenn es eintritt, so kann man definieren was passieren soll.
Um im Thema weiter voranschreiten zu können, klicke mit deiner Maus zweimal auf den Button. Nach einem kurzen Moment wird Du in den Quellcode katapultiert und siehst folgenden Quellcode:
Visual C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MeineErsteAnwendung
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
Dieser Quellcode ist teil der Projektvorlage und wurde bereits vollautomatisch für dich generiert. Durch den "doppelklick" auf den Button hast Du dessen Standard-Event abonniert. In diesem Fall "button1_Click".
In Visual C# gibt es (wie in anderen Sprachen auch), die Möglichkeit, Quellcode mithilfe von Kommentartext zu beschriften. In C# verwendet man dazu folgende stilistischen Identifikationsmerkmale:
Visual C#
// Dies ist ein einzeiliger Kommentar. /* Mein mehrzeiliger Kommentar */
Hier der obere Quellcode nochmal mit meinen Kommentaren zum besseren Verständnis erweitert:
Visual C#
/* Dies sind die "Namespaces" [=Kategorien] des Frameworks, die wir für unsere Anwendung benötigen
* Hier sind bereits einige Standard-Namespaces vorhanden. Wenn wir auf Funktionen
* von anderen Namespaces des Frameworks oder anderen Klassenbibliotheken zugreifen möchten,
* so müssen wir sie hier einmal importieren.
* */
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
// Dies ist der Namespace der eigenen Anwendung. Dieser wird bei sehr komplexen Anwendungen
// für eine einfache und übersichtliche Gliederung genutzt.
namespace MeineErsteAnwendung
{
/* Der Name der Klasse. [hier: Form1]. Wenn wir später auf dieses Objekt zugreifen, benötigen wir
* dessen Namen. Der Doppelpunkt signalisiert, das diese Klasse von einer anderen Klasse erbt.
* Die Vererbung ist ein sehr wichtiges Thema der Entwicklung (bei Objektorientierten Sprachen, wie diese)
* und würde das Thema im Umfang sprengen.
* Ein lückenloses Verständis der objektorientierten Entwicklung sollte höchste Priorität haben!
* */
public partial class Form1 : Form
{
/* Der Konstruktor. Diese Methode wird bei jedem Erstellen des Objekts aufgerufen,
* und der Quellcode innerhalb der geschweiften Klammern wird auswgeführt.
* Dies ist ebenfalls Thema der objektorientierten Entwicklung,
*/
public Form1()
{
InitializeComponent();
}
/* Ein Event. Hier das Click-Event des "button1"-Controls.
* Dieses Event haben wir mithilfe des Doppelklicks generiert und
* damit abonniert. Wenn jemand auf diesen Button klickt, wird
* der Quellcode zwischen den geschweiften Klammern ausgeführt.
*/
private void button1_Click(object sender, EventArgs e)
{
// Bei einem Klick wird dieser Quellcode abgearbeitet ....
}
}
}
Hier gehts zu weiteren Informationen der objektorientierten Entwicklung.
Wie ändern wir nun die Text-Eigenschaft unseres Labels (label1)?
Visual C#
private void button1_Click(object sender, EventArgs e)
{
// Mithilfe der Punktnotation können wir
// auf Eigenschaften und Methoden eines Elements zugreifen.
// Die Form lautet im Allgemeinen wie folgt:
// [Name des Controls].[Eigenschaft] = [Neuer Wert];
// Sollten wir eine Methode aufrufen wollen, so müssten wir
// folgende Form nutzen:
// [Name des Controls].[Methode]();
label1.Text = "Mein erster Schritt ist getan!";
// Spezifische Anmerkungen zu C#:
// -> Alle Quellcodezeilen werden am Ende mit einem ";"-Zeichen abgeschlossen
// -> Um zwischen Controls und Text zu unterscheiden, wird jeglicher Text
// in ""-Zeichen geschrieben.
}
Wenn wir diesen Quellcode eingefügt haben, und auf das <| - Zeichen klicken (siehe Grafik; alternativ Taste "F5"), wird unsere Anwendung gestartet. Wir können diese jetzt testen.
Mit einem Klick auf unseren Button wird unser Quellcode ausgeführt, welcher zur Laufzeit die Eigenschaft "Text" unseres Labels ändert:

Herzlich Glückwunsch! Wenn Du diesen Dialog sehen kannst, hast Du Deine erste Anwendung erstellt. Natürlich eng an diesem Leitfaden - aber das Ergebnis zählt.
Sollte Dir dies Spaß gemacht haben empfehle ich Dir, das Openbook von GalileoComputing. Dies Buch ist kostenlos und vermittelt Schritt für Schritt mit guten Beispielen und hilfreichen Erklärungen alle elementaren Dinge. Desweiteren werden im späteren Verlauf des Buches auch weitere Verbesserungsideen und Techniken erläutert.
Darüberhinaus sind auch folgende Links und Quellen von Interesse!
- Microsoft Developer Network (MSDN)
- Dieser Thread
- Diese Codeschnipsel, die Dir während der Programmierung wirklich helfen können.
- Diese Übersicht von Artikeln, die ebenfalls hilfreich sind!
Und natürlich dieses Forum! Solltest Du eine Frage haben oder ein Problem haben, klicke hier und erstelle einen neuen Thread binnen weniger Sekunden. Unsere freundliche und kompetente Community wird sich anschließend deiner Annehmen und Dir mit Rat und Tat zur Seite stehen.
Dieser Artikel ist Eigentum des Autors und darf ohne eine schriftliche Gehnehmigung nicht auf anderen Websiten oder Medien publiziert werden. Dies gilt auch für evtl. Attachments sowie optionale außenstehende Resourcen.
Verwendete Grafik: © Oxygen Design
Dieser Beitrag wurde von Dennis Alexander bearbeitet: 09. Feb 2010 - 19:56


Hilfe


















RSS Feed