Arbeiten mit .NET: Materialien/ Programmierkurs C-Sharp: Einleitung

C# ist eine Programmiersprache die vom Softwarehersteller Microsoft im Rahmen seiner .NET-Initiative eingeführt wurde. Bei der Namensgebung wurde sich an einer Notation in der Musik orientiert: C# ist ursprünglich ein Symbol durch ein Kreuz um einen Halbton erhöhten Ton c, das cis - englisch "C sharp" (Aussprache: ßie scharp; auf Deutsch: scharfes C; auch als Wortspiel auf "see sharp" - scharf sehen).

EntstehungsgeschichteBearbeiten

Microsoft entwickelte die .NET-Technologie und darin als ein Teilprojekt C# aus verschiedenen Beweggründen:

Einerseits sah sich Microsoft lange durch die Java-Technologie bedroht, da ihre Bedeutung, gerade im so wichtigen Serverbereich, stieg.
Zusätzlich waren die bisherigen Technologien von Microsoft (COM und DCOM) veraltet und ausgereizt.

Daher entschloss sich Microsoft eine Konkurrenz-Plattform zu Java zu entwickeln. Anders Hejlsberg (und andere große Namen in diesem Bereich) wurde von Borland geholt, wo er zuvor mit 'Delphi' bereits eine objektorienterte Sprache entwickelt hatte.

Die Behauptung, dass C# nur eine Kopie von Java sei ist falsch. Anders Hejlsberg hat bei der Entwicklung von .Net zwar das Grundkonzept der Java-Umgebung weitestgehend übernommen, bei der Sprache selbst wurden allerdings Konzepte aus vielen anderen Programmiersprachen zusammengeführt.
Die Syntax wurde größtenteils von Java und C++ übernommen, das Eventkonzept wurde von Delphi inspiriert. Es finden sich auch Bestandteile von VisualBasic.

Technische RelevanzBearbeiten

VerbreitungBearbeiten

C# fand erst in letzter Zeit weite Verbreitung. Das hat durchaus Gründe:
Eigentlich sollte das .NET-Framework beim Betriebssystem Windows XP schon integriert sein, nur wurde es nicht rechtzeitig fertig. So mussten nun Anwender, die für das .NET-Framework entwickelte Programme ausführen wollten, die Laufzeitumgebung nachinstallieren.

Gerade hier lag anfangs das Problem. Nach dem Microsoft für das .NET-Framework viel positive Presse bekommen hatte, hoffte die Marketingabteilung auf einen zugkräftigen Namen, und benannte alles .NET. Dieser „Schuss“ ging allerdings nach hinten los, nachdem Microsoft sein Onlineidentifizierungssystem ".NET Passport" taufte. Viele Anwender steckten daher das .NET-Framework mit .NET Passport unter einen Hut. Da .NET Passport bedenklich war, zumindest im Bezug auf den Datenschutz, weigerten sich viele Anwender, das .NET-Framework zu installieren. Diese Verwechslung gibt es heute noch, wie man in den FAQs des Mono-Projektes (Der Open-Source Port des .NET-Frameworks, unter anderem für Linux und MacOS X) sehen kann.

Des Weiteren sind zwar .NET-Applikationen prinzipiell betriebssystemunabhängig, allerdings wird von Microsoft das Framework nur für Windows bereit gestellt. Der entsprechende Port für andere Betriebssysteme ist erst seit einiger Zeit weit genug entwickelt, um zumindest Serverprogramme schreiben zu können. Das von Microsoft für Oberflächen bereitgestellte Paket Windows.Forms ist noch nicht portiert. Das vom Mono-Projekt selbstentwickelte betriebssystemunabhängigere GTK# ist da schon vielversprechender, aber ebenfalls noch nicht fertig.


AnwendungsgebieteBearbeiten

C# ist nicht für jede Anwendung geeignet. Wer z.B. ein Betriebsystem oder einen Treiber entwickeln möchte, sollte eher zu C oder C++ greifen, denn C# benötigt eine Laufzeitumgebung und hat damit doch einen etwas zu großen Overhead.

Mit C# lassen sich zwar prinzipiell Spiele entwickeln, und es gibt auch erste Projekte hierfür, allerdings wird es noch eine lange Zeit dauern, bis C# sich hier durchsetzt. Es sei daher nur der Vollständigkeit halber angemerkt, dass Microsoft auch .NET Assemblies für DirectX zur Verfügung stellt.

Wer Serverprogramme schreiben will, welche keine graphische Oberfläche benötigen, hat durchaus eine gute Wahl getroffen. Durch Mono kann C# bezüglich Betriebsystemsunabhängigkeit hier mit Java mithalten.

Bei der Entwicklung für Mobile Devices ist C# nur bedingt zu empfehlen. Auf Handys hat es sich nicht durchgesetzt und wird dies voraussichtlich nicht tun, sie sind ganz klar in der Hand Javas. Bei PDAs sieht es schon etwas anders aus. Hier ist das .NET Compact Framework relativ weit verbreitet.

Bleibt da noch die Gruppe, die wohl die meisten Leser interessieren dürfte: Desktopapplikationen. Solange sie für die Windowswelt sein sollen, haben Sie mit der Entscheidung C# zu lernen eine gute Wahl getroffen. Das Framework an sich beseitigt die sogenannte DLL-Hell, die gerade C++ Programmierer mit der Windows-API haben.

C# schafft es, durch das etwas bessere Eventkonzept, die Oberflächenentwicklung im Vergleich zu C++ und Java (wobei hier Sun bestimmt bald nachlegen wird) sehr zu vereinfachen und im Gegensatz zu VisualBasic ist sie ebenfalls sehr gut geeignet, ganze Frameworks und Lowlevel API's zu entwickeln. Und falls das Monoproject weiter mit so großen Schritten vorrankommt wie in letzter Zeit, spricht nichts dagegen, dass Ihre Anwendungen auch unter anderen Betriebsystemen laufen.


EntwicklungsumgebungenBearbeiten

Um mit diesem Buch arbeiten zu können, braucht man auf jedenfall ein Entwicklerframework. Für Windows stellt Microsoft eines in Form des .NET Framework SDK bereit, allerdings wird dabei nur ein Kommandozeilencompiler mitgeliefert. Das Monoprojekt stellt eines für Linux, MacOS und Windows bereit.

Es ist allerdings dringend zu empfehlen, sich auch eine integrierte Entwicklungsumgebung zuzulegen, da diese viele Dinge vereinfacht.
Nachfolgend sollen die wichtigsten kurz vorgestellt werden.

Visual Studio .NETBearbeiten

Das Visual Studio .NET ist eine Entwicklungsumgebung von Microsoft. Wer in C# mit seinen Entwicklungen Geld verdienen will, dem sei es ans Herz gelegt. Nicht unbedingt, weil es das Beste ist, sondern eher das am weitesten verbreitete. Wenn Quell-Code in C# weitergegeben wird, wird meistens ein Visual Studio Project erwartet. Auch der meiste Beispielcode der im Internet zu finden ist, wird so bereitgestellt.
Seit neuestem vertreibt Microsoft über seine Website die kostenlose Express Version.


Microsoft stellt viele verschiedene Versionen bereit, nachfolgend die wichtigsten:

  • MS Visual C# Express Edition

... ist die Einsteiger-Variante neu und für lau! Für alle die mal schnell reinschnuppern wollen. Es lassen sich auch kommerzielle Applikationen erstellen. [1]

  • MS Visual C#.NET Standard

... ist die Einsteiger-Variante und kostet um die 100 €. Hier sind die Möglichkeiten aber sehr beschränkt.

  • Visual Studio .NET Professional

... ist insgesamt ein sehr mächtiges Tool und beinhaltet eigentlich alles, was man für .NET Entwicklung braucht. Außerdem sind alle bekannten .NET-Sprachen (VB.NET, C++.NET, J#...) installierbar. Der Preis liegt um die 900 €.

  • Visual Studio .NET Academic

... ist vom Funktionsumfang mit VS Professional gleich zu setzen und die Version für Lehrer, Schüler und Studenten. Sie darf nicht kommerziell, sondern nur für die Lehre eingesetzt werden, dafür hat sie einen vergünstigten Preis von um die 100 €.

  • Visual Studio .NET Enterprise Architect

... liefert das gleiche wie die Professional-Version, allerdings werden noch weitere Werkzeuge mitgeliefert, wie z.B. Ergänzungsmodul für Visio u.v.m. Der Preis liegt bei ca. 2.900 €.

SharpDevelopBearbeiten

SharpDevelop ist eine Quelloffene Entwicklungsumgebung und kann zumindest mit Visual Studio .NET Professional mithalten. Allerdings mit dem Unterschied, dass sie kostenlos ist und bei ic#code heruntergeladen werden kann. Lesern, die Programmierneulinge sind oder in C# mal reinschnuppern wollen, sei die SharpDevelop Entwicklungsumgebung ans Herz gelegt.

Borland C# BuilderBearbeiten

Auch Borland stellt eine Entwicklungsumgebung für C# bereit. Dabei gibt es ebenfalls verschiedene Versionen mit ähnlichem Produktumfang wie beim Visual Studio .NET. Eine kostenfreie Version von "Borland Delphi 2005 Personal" wurde auf einigen Computer-Fachzeitschriften beiliegenden Datenträgern verteilt (u.a.: c't 13/2005). Einen dafür benötigten persönlichen Freischaltschlüssel verschickt Borland nach Registrierung per E-Mail. Borland Delphi 2005 Personal ermöglicht das Erstellen von Delphi-, Delphi für .NET- und C#-Anwendungen.

MonoDevelopBearbeiten

Dies ist die Entwicklungsumgebung des Mono-Projekts. An einer stabilen Version wird momentan zwar noch gearbeitet, sie ist einen Versuch jedoch wert.
Sie stellt zur Zeit die einzige Entwicklungsumgebung für GNU/Linux-Systeme dar.

Weitere Informationen: http://www.monodevelop.com/