Visual Studio.Net

Highlight des .Net-Megaprojekts ist natürlich die C#-Sprache mit ihrem Nebenprodukt Visual Basic.Net. C# und seine Java-ähnlichen Features, wie z. B. Speicherbereinigung und Namensraumhierarchie, haben viel Aufmerksamkeit erregt. VB.Net wurde dagegen viel weniger beachtet, wodurch eine einfache Tatsache leicht übersehen werden konnte: VB.Net ähnelt C# so sehr, dass man sich fragen muss, weshalb Microsoft überhaupt zwei separate Sprachen geschaffen hat. Sicher, die Syntax von VB.Net ist umfangreicher, während C# eher an C erinnert, dennoch basieren beide Sprachen auf demselben Programmierrahmen und kompilieren in einen fast identischen MSIL-Code.

Nur bei oberflächlicher Betrachtung kann eine Ähnlichkeit von VB.Net zu früheren Versionen von Visual Basic festgestellt werden. Mit VB.Net versucht Microsoft, Visual Basic als brauchbare Sprache für die Entwicklung von Unternehmensanwendungen zu etablieren, indem u.a. grundlegende Features wie Vererbung, Namensräume und Multi-Threading hinzugefügt wurden, wobei die einfache Syntax noch teilweise erhalten blieb.

Dennoch kann Microsoft nicht von der Tatsache ablenken, dass die Umstellung von einer vielgelobten Skriptsprache auf eine rein objekt-orientierte Sprache mit Schwierigkeiten verbunden ist. Es stellt sich die grundlegende Frage: Werden Millionen von mit Visual Basic 6.0 arbeitenden Entwicklern sich nun für VB.Net entscheiden, nur weil diese Sprache einige syntaktische Ähnlichkeiten mit Visual Basic aufweist? Tatsächlich wäre für die meisten Visual Basic 6.0-Entwickler eine Umstellung auf die leistungsstärkere Sprache C# auch nicht schwieriger, was allerdings auch für eine Umstellung auf Java gilt.

VS.Net ist nicht nur mit C# und VB.Net verfügbar, sondern auch mit Visual C++ .Net und Visual J# (wobei für Visual J# bis zu seiner Markteinführung Ende des Jahres lediglich Vorbestellungen möglich sind). Alle mit VS.Net erhältlichen Sprachen kompilieren in MSIL-Code, wie dies auch 20 andere Sprachen tun, die gegenwärtig über MSIL-Compiler verfügen, so u.a. COBOL, Perl und Python. Indem C# mit den höchsten Leistungsmerkmalen ausgestattet wurde, machte Microsoft jedoch klar, dass C# die erste Wahl für die Microsoft.Net-Entwicklung darstellt.

Sowohl C# als auch VB.Net bieten durch verwalteten Code eine Absicherung gegen Programmierfehler. Das bedeutet, dass der Programmcode in einer Laufzeitumgebung (auch „Sandkasten“ genannt) verarbeitet wird, in der sämtliche Aufrufe an das zugrunde liegende Betriebssystem und an Speicheradressen an eine „sichere“ Programmierschnittstelle gehen, welche den direkten Zugang zu einigen besonders leistungsstarken und daher besonders komplizierten Features von C++ verhindert. Erfahrene C#-Entwickler können jedoch den Trick anwenden, bestimmte Teile des Codes als „nicht sicher“ zu markieren, um so direkten Zugriff auf die Speicher und die OS-Bibliotheken zu erhalten, wobei zugunsten von mehr Leistung teilweise auf den Schutz durch den verwalteten Code verzichtet wird. Java bietet diese Option nicht (ebenso wenig wie natürlich VB.Net), wobei dahingestellt bleibt, ob dies einen Vorteil oder Nachteil bedeutet.

Erklärtes Ziel von C# ist es, eine für die Schaffung von Unternehmensanwendungen geeignete Sprache mit der syntaktischen Einfachheit von Visual Basic zu liefern. Böse Zungen behaupten, dass es sich bei C# lediglich um eine Nachahmung von Java handelt, was allerdings schwer zu belegen ist: Beide Sprachen basieren auf C und werden in einer verwalteten Laufzeitumgebung ausgeführt, worin sich der Großteil der Ähnlichkeiten wie Syntax, Speicherbereinigung und Namensraumhierarchie begründet. C# behält außerdem die Enumerationen aus C++ bei, was in Java nicht der Fall ist. Die größte Ähnlichkeit mit Java weist C# in der Handhabung der Komponenten wie Eigenschaften, Methoden, Ereignissen und Attributen auf.

Die Diskussion um „Java hat dies – C# hat jenes“ geht jedoch völlig am eigentlichen Punkt vorbei. Wenn eine Sprache Objekt-Orientierung, eine brauchbare Syntax und ausreichende Funktionen liefert, sollte man ihren Wert vor allem an den Leistungen des Frameworks festmachen und nicht an vergleichsweise geringen Abweichungen in der Syntax. Letzten Endes verfügt C# über nur 60 Anweisungen, kann jedoch Tausende von .Net-Framework-Klassen verwenden. Und da sowohl .Net als auch J2EE für die Entwicklung von Anwendungen der Unternehmensklasse konzipiert wurden, darf es nicht überraschen, wenn sich die beiden Systeme vom Sandkasten für die Ausführung von verwaltetem Code über das Standardverfahren für den Datenbankzugriff bis zur Vorlage für die Erstellung interaktiver Webseiten stark ähneln. Ein Vergleich von Java mit C# oder von J2EE mit .Net ergibt erheblich mehr Ähnlichkeiten als Unterschiede.

Page: 1 2 3 4 5 6

ZDNet.de Redaktion

Recent Posts

Ermittlern gelingt weiterer Schlag gegen Ransomware-Gruppe LockBit

Sie decken die Identität des Kopfs der Gruppe auf. Britische Behörden fahnden mit einem Foto…

6 Tagen ago

Apple stellt neuen Mobilprozessor M4 vor

Er treibt das neue iPad Pro mit OLED-Display an. Apple verspricht eine deutliche Leistungssteigerung gegenüber…

7 Tagen ago

Cyberabwehr: Mindestens zwei kritische Vorfälle pro Tag

Davon entfällt ein Viertel auf staatliche Einrichtungen und 12 Prozent auf Industrieunternehmen.

7 Tagen ago

Tunnelvision: Exploit umgeht VPN-Verschlüsselung

Forscher umgehen die Verschlüsselung und erhalten Zugriff auf VPN-Datenverkehr im Klartext. Für ihren Angriff benötigen…

7 Tagen ago

Online-Banking: 42 Prozent kehren Filialen den Rücken

Weitere 40 Prozent der Deutschen erledigen ihre Geldgeschäfte überwiegend online und gehen nur noch selten…

7 Tagen ago

Google veröffentlicht neues Sicherheitsupdate für Chrome

Zwei Schwachstellen in Chrome gehören nun der Vergangenheit an. Von ihnen geht ein hohes Risiko…

7 Tagen ago