Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

A Brief History of C#

Geschrieben von: Christoph Wille
Kategorie: C#

Ein wichtiger Bestandteil des Microsoft .NET Framework ist die Programmiersprache C# (sprich "C Sharp"). Diese Programmiersprache wurde von Grund auf für das Microsoft .NET Framework designed, und kommt von der Windows Anwendungsentwicklung bis hin zur ASP.NET Programmierung zum Einsatz. Große Teile des .NET Frameworks wurden sogar mit C# entwickelt.

Ich möchte hier am Anfang darauf hinweisen, daß dies ein 10,000 Meter-über-Grund Überblick über die Features von C# und das .NET Framework ist. Dieser Artikel soll als Appetizer dienen, sich die Zeit zu nehmen, in das Microsoft .NET Framework SDK einzutauchen.

Warum sollte man C# lernen?

Als ASP Programmierer stellt sich natürlich die Frage, warum man C# lernen sollte - statt VBScript hat man ja jetzt einen vollen Visual Basic Compiler zur Verfügung. Der Grund liegt in den vielen Detailänderungen, die ASP.NET und der neue Visual Basic Compiler mit sich bringen. Oft ist es einfacher, eine Seite völlig neu zu schreiben (und zu optimieren), anstatt sie an ASP.NET anzupassen - und dann sind die Features von C# so herausragend, daß es sich wirklich auszahlt, den Umstieg zu wagen.

C# ist eine moderne Programmiersprache, die für Programmierer entwickelt wurde, die Firmenanwendungen schreiben: sie ist modern, einfach zu erlernen, vollständig objektorientiert und vor allem eines: Typsicher (ein integer ist ein integer ist ein integer © Ferengi). Wenn man einen integer als String behandeln möchte, so muß man diese Funktionalität explizit anfordern. Für die einen eine schlechte Nachricht, für die anderen eine gute: der Variant Datentyp ist tot.

C# ist zu großen Teilen von C und C++ abgekupfert (nur die besten Sachen, allerdings) - wenn man also etwas C++ kann, wird man sich sehr schnell in C# zurechtfinden. Weil wir gerade bei dieser Verwandtschaftsbeziehung sind, einige Unterschiede zu C++: es gibt keine Pointer, und die Speicherverwaltung wird von einem Garbage Collector übernommen - nie wieder Speicherlecks, Ausnahmefehler, und das Herumpfuschen mit dynamischer Speicherverwaltung fällt auch weg!

Ebenfalls ein Unterschied zu C++, den C++ als auch VB Programmierer sehr begrüssen werden, ist daß es nur einen einzigen Bereichsauflösungsoperator gibt: den Punkt (.). Keine Doppelpunkte (::), keine Pfeile (->) mehr. Das fällt unter die Einfachheit der Sprache, genauso wie es eine strikte Compilerprüfung gibt, daß man keine uninitialisierten Variablen verwendet (das hat fast jeder C Programmierer schon gemacht...).

Besonders hervorhebenswert ist auch, daß C# ein starkes Exception Handling hat, das auf der Runtime des .NET Frameworks aufsetzt - dadurch wird die Fehlerbehandlung beinahe zu einem Vergnügen. Und außerdem kann man seine eigenen Exceptions generieren - ein deutlicher Fortschritt zur Fehlerbehandlung, wie sie aus COM bekannt ist.

Und als letzten Punkt möchte ich nochmal auf das .NET Framework hinweisen: es wurde zu großen Teilen in C# entwickelt - also dürfen Sie mal raten, welcher Compiler am meisten getestet und optimiert wurde... noch Fragen, warum man einen Blick auf C# riskieren sollte?

Die Common Language Runtime

Die Common Language Runtime (oder später nur noch Runtime) ist der eigentliche "Hammer" von Microsoft .NET - es ist eine Runtime, die die Ausführung von Code überwacht und viele nützliche Services zur Verfügung stellt. Auf diese werde ich in dieser Sektion eingehen.

C#, und alle anderen Compiler die die Runtime unterstützen, kompilieren nicht auf Maschinencode, sondern auf die sogenannte Intermediate Language (IL). Zusätzlich zur IL wird noch Metadata generiert, die den Code beschreibt. Die IL und Metadata erlauben es der Runtime, den Code verschiedener Sprachen miteinander direkt kommunizieren zu lassen, als auch strikte Sicherheit (security) und Typsicherheit (type safety) zu garantieren.

Ein "extremer" Ausfluß der Runtime ist, daß ich ein Objekt in C# schreiben kann, von diesem in VB ableite, und schließlich wieder in C# verwende. Mit COM war das nicht möglich, ganz zu schweigen von den C++ Compilern, wo C++ DLL's eines Compilerherstellers mit denen eines anderen nicht kompatibel sind.

Ein weiteres "cooles" Feature ist der Garbage Collector. Ich deklariere und verwende Variablen, und wenn mein Programm sie nicht mehr braucht, wird der Speicher, den sie belegen automatisch freigegeben. Diese Freigabe erfolgt allerdings nicht immer sofort, sondern eine kleine Zeitspanne ist dazwischen - deshalb ist es wichtig, Resourcen, die "teuer" sind (zB Datenbankverbindungen), explizit zu schließen. Obwohl dies bereits jetzt der "gute Ton" war, wird es in Zukunft noch wichtiger werden.

Der Ausdruck Intermediate Language wird bei einigen den schalen Nachgeschmack der Langsamkeit hinterlassen haben. Dem ist aber dank hervorragender JIT (just in time) Compiler nicht so - der IL Code wird bei Erstausführung auf Native Code kompiliert. Ab diesem Zeitpunkt wird nur noch der Native Code ausgeführt. Der Geschwindigkeitsunterschied zu "normal" kompiliertem C++ sollte üblicherweise deutlich kleiner als 5 Prozent sein.

Das .NET Framework

Sie wollten immer schon eine schier unendliche Bibliothek an Funktionen zu Ihrer Verfügung haben? Dann ist das .NET Framework genau das, auf das Sie gewartet haben. Hier finden Sie hunderte Klassen, von Collections bis hin zur Serviceprogrammierung, vom Windows Applikationsframework hin zu den Web Frameworks für ASP.NET.

Man kann stundenlang in der Dokumentation herumbrowsen ohne auch nur annähernd alles gesehen zu haben. Diese Stunden sind hervorragend investiert, weil man lernt über Klassen, die einem später möglicherweise sogar Tage an Entwicklungsaufwand ersparen können - von denen man ohne browsen möglicherweise nichts gewußt hätte.

Das .NET Framework enthält auch die Datentypen, die in C# als Basisdatentypen zur Verfügung stehen. Also wenn Sie sich über "einfache" Datentypen wie Integer informieren möchten, dann finden Sie diese im System Namespace der Dokumentation.

Schlußbemerkung

Dieser Artikel war wirklich der kürzeste Überblick über C# und das Microsoft .NET Framework, der noch informativ sein kann. Wie in der Einleitung bereits bemerkt, soll der Artikel das Interesse wecken, sich frühzeitig mit dieser neuen Technologie auseinanderzusetzen. Es werden weitere Artikel zur Programmierung von ASP.NET mit C# auf AspHeute folgen.

Zum Abschluß noch eine schamlose Werbung: das Buch Presenting C# enthält zwei Kapitel, die sich nur mit C# und dem .NET Framework im Detail auseinandersetzen.

Verwandte Artikel

C# XML-Kommentare — Dokumentation von selbst
Datenbankzugriff mittels ADO.NET
Datentypen in C#
Die String Klasse in C#
Einführung: C#-Klassen in ASP.NET
Einstieg in Visual Studio.NET - die erste Webanwendung mit Visual C#
Kontrollstatements in C#
Last but not least - .NET 1.0 ist da!
Schleifenbefehle in C#
Sprachenintegration in .NET
Was ist neu in ASP.NET
Web Services 101 in ASP.NET

Links zu anderen Sites

Die aspDEdotnet Diskussionsliste
Introducing C#
Presenting C#

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Eine weitere sehr hilfreiche Resource ist das deutsche ASP.NET Wiki, das als zentrale Anlaufstelle für Tips, Tricks, Know How und alles Nützliche was man in seinem Alltag als (ASP).NET-Entwickler so braucht und entdeckt gedacht ist.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.