Bills Neunte

… Gegeben sei ein Array:

Dim Zahlen() As Byte = {11, 22, 33, 44, 55, 66, 77}

Wie aus diesem Array per LINQ die ungeraden
Zahlen gefiltert werden, wurde
bereits gezeigt. Es geht aber auch anders,
in dem die Erweiterungsmethode Where
direkt aufgerufen wird:

Dim UngeradeZahlen = Zahlen.Where(CheckUngerade)

CheckUngerade ist (natürlich) ein Funktionsausdruck (Listing 2).

XML direkt

Über die Möglichkeit, XML-Inhalte per
LINQ abfragen zu können, wurde bereits
im dot.net magazin berichtet. Vollkommen
unabhängig von LINQ to XML ist
die Möglichkeit, XML-Literale nicht nur
direkt in den Quelltext eingeben, sondern
auf die XML-Struktur anschließend auch
direkt zugreifen zu können, ohne dass ein
XML-DOM und die vertrauten Klassen
im Namespace System.Xml involviert
wären. Listing 3 zeigt ein solches Konstrukt:

Der Befehl

Dim AlleTitel = Buecher...

gibt alle Titel-Elemente (als XElement-
Objekte) zurück. Der folgende Befehl ermittelt
(per LINQ) den Gesamtpreis:

Dim GesamtPreis = (From B As XElement In Buecher.Elements
Select CType(B.Elements("Preis").Value, Integer)).
Sum()
LINQ to SQL

Einer der für Visual Basic-Programmierer
wichtigsten Neuerungen ist LINQ to SQL,
mit dem sich die Inhalte einer SQL Server-
Datenbank objektorientiert abfragen und
wieder aktualisieren lassen. Unterstützt
wird dies durch die neue LINQ to SQL
Classes-Vorlage, die über eine Designer
die Auswahl von Datenbanktabellen ermöglicht
und mit Hilfe des Tools Sqlmetal.
exe hinter den Kulissen eine Klasse generiert,
in der über Attribute ein „Mapping“
zu den Datenbanktabellen vorgenommen
wird. Es spricht einiges dafür, dass dies in
Zukunft die bevorzugte Variante für die
Anbindung einer SQL Server-Datenbank
sein wird, wenngleich die neue Technik
auch Einschränkungen besitzt. Sie wird in
der nächsten Ausgabe des dot.net magazin
vorgestellt werden.

VBx

Angesichts der Neuerungen mit ihren
weitreichenden Bedeutungen in der aktuellen
Version bleibt für die Zukunft nur der
Hinweis, dass Microsoft unter dem Projektnamen
„VBx“ bereits verschiedene
Szenarien durchspielt, welche die künftige
Richtung von VB betreffen. Es scheint festzustehen,
dass die (oder eine) nächste Version
von VB auf der Dynamic Runtime
Library (DLR) aufsetzend und vom Ballast
der VB-Runtime-Funktionen befreit
als portable „Scripting-Sprache“ überall
zum Einsatz kommen soll, wo es sinnvoll
ist. Vielleicht auch als „VBA.NET“ in einer
kommenden Office-Version. Eine erste
Preview wird für April erwartet.

Neuerung Was bringt sie?
Typinferenz Der Compiler kann den Typ von lokalen Variablen aus der ersten Zuweisung ableiten und bereits zur Entwurfszeit entsprechende
Auswahllisten anbieten.
Objektinitialisierer Die Werte von Eigenschaften können beim Instanziieren auch ohne Konstruktor belegt werden.
Anonyme Typen Ein vollständiger Typ kann aus dem Nichts heraus angelegt werden.
Erweiterungsmethoden Eine Klasse kann um statische Methoden erweitert werden.
Partielle Methoden Methodenkopf und Methodenrumpf können mit dem Schlüsselwort „Partial“ auf mehrere partielle Klassen verteilt werden.
Entspannte Delegaten Auch bei Delegaten gibt es eine Art „Überladung“, in dem für einen Delegaten, der mehrere Parameter erwartet, eine Prozedur/
Funktion eingesetzt werden kann, die keine Parameter erwartet. Dies vereinfacht den Umgang mit Eventhandlern.
Lamdba-Ausdrücke Einer Variablen kann Funktionscode zugewiesen werden, der z.B. einer Prozedur zugewiesen oder ein Instanziieren eines
Predicate-Delegaten eingesetzt werden kann.
Nullable Types Die Struktur Nullable(Of Typ) gab es schon bei .NET 2.0 und VB8, mit der sich bei einer Value Type-Variablen prüfen ließ, ob diese einen Wert enthält. Bei VB 9.0 wird durch Anhängen eines ? an den Datentyp angeben, dass ein Nullable Type deklariert werden soll.
XML-Literale XML-Text kann direkt (und ohne Anführungsstriche) einer Variablen zugewiesen werden. Anschließend können einzelne XMLElemente
über die Variable typisiert angesprochen werden.

Tabelle 1: Die wichtigsten Neuerungen bei Visual Basic 9.0

Peter Monadjemi nennt sich gerne „VB-Kenner
der ersten Stunde“, was auch den Tatsachen
entspricht. Er ist positiv überrascht darüber, wie
es die Entwickler geschafft haben, VB mit der aktuellen
Version eine eigene Identität zu geben und
manche C#-Programmierer ein wenig neidisch zu
machen. Ob Oliver Sturm auch dazu gehört?

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.