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.
Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.
Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…
Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…
Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…
Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.
Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…