22.04.2010, 22:22 Uhr

Visual Studio 2010 Express - moderne Anwendungsentwicklung zum Nulltarif

Pünktlich zum 12. April 2010 stand die Express Editionen von Visual Studio 2010 zum Download bereit, in Kürze wird es auch die lokalisierten Fassungen geben. Der Nachfolger von ,,Visual Studio 2008 Express" ist nicht nur deswegen attraktiv, weil er auf dem.NET Framework 4.0 basiert, sondern weil die wichtigsten Verbesserungen des großen Visual Studio auch bei der freien Variante zur Verfügung stehen.
Die Express-Familie besteht auch im aktuellen Release aus den Mitgliedern Visual C# Express, Visual Basic Express, Visual C++ Express (allerdings ohne MCF-Support) und Visual Web Developer Express. Ein Visual F# Express gibt es noch nicht, dafür mit Visual Studio 2010 Express Phone Edition eine Variante von Visual C# 2010 Express, mit der sich ,,nur" Apps für das neue Windows Phone 7 Series-Betriebssystem und die Game-Plattform XNA entwickeln lassen, und die aktuell nur als Vorabversion zur Verfügung steht. Die Express-Editionen richten sich traditionell an Hobby-Entwickler, Schüler, Studenten und die zunehmende Zahl an Pensionären, für die ein Visual Studio Professionell alleine aufgrund des Preises nicht in Frage kommt. Express bedeutet jedoch nicht, dass Microsoft eine Version zur Verfügung stellt, mit der sich keine ernsthafte Software-Entwicklung betreiben ließe. Microsoft sorgt (aus strategischen Gründen) dafür, dass Entwickler auch bei den Express Editionen nicht auf die neusten Modetrends aus Redmond verzichten müssen.

Abbildung 1: Die Express Editionen von Visual Studio 2010 basieren auf derselben IDE wie die übrigen Visual Studio 2010-Editionen

1-2-3 Datenlayer

Ein echtes Highlight ist der Umstand, dass der vollständige Entity Framework Designer auch in den Express Editionen von C# und Visual Basic zur Verfügung steht (anders als LINQ to SQL). Auch die Möglichkeit, aus einem Modell eine Datenbank abzuleiten, wird geboten. Wie einfach sich dank Entity Framwork ein Datenlayer für eine SQL Server-Datenbank anfertigen lässt, soll die folgende Schrittfolge demonstrieren.

Schritt 1: Anlegen eines neuen Projekts und Hinzufügen einer Vorlage vom Typ ,,ADO.NET Entity Data Modell". Die Vorlage erhält den Namen ,,NWModell.edmx" (intime Kenner der Microsoft-Demodatenbanken ahnen bereits, wie es weiter geht).

Schritt 2: Auswahl der voreingestellten Option ,,Generate from database" und im nächsten Schritt Auswahl bzw. Anlegen der Verbindung, über die Datenbank angesprochen wird.

Schritt 3: Auswahl der Tabellen, die Teil des Entitätsmodells sein sollen. Für die kleine Übung sollen nur die Tabellen Employees, Orders und Order Details dabei sein.

Damit ist der Assistent mit seiner Arbeit fertig und Visual Studio zeigt den Entititätsmodelldesigner an, mit dem z.B. die Tabellen (Entitäten) bearbeiten, Beziehungen entfernt oder hinzugefügt und neue Entitäten angelegt werden. Kurz, hier wird das Datenmodell definiert, für das der Designer eine Klassenstruktur anlegt, die den programmatischen Datenlayer darstellt.

Abbildung 2: Für eine Entity Framework-Datenquelle stehen eigene Vorlagen zur Verfügung

Schritt 4: Auf dem Formular/Fenster werden ein DataGrid und zwei Buttons platziert.

Schritt 5: Im Programmcode wird unterhalb der Klassendefinition eine Variable definiert, die das komplette Entitätsmodell repräsentiert:

NwEntities db;

Schritt 6:

Der erste Button soll die Daten abrufen. Seine Click-Prozedur erhält ledgilich zwei Befehle:

db = new NwEntities();
dataGridView1.DataSource = db.Employees;

Schritt 7:

Der zweite Button ist für das Aktualisieren zuständig. Seine Click-Prozedur enthält ebenfalls nur zwei Befehle:

intAnzahl= db.SaveChanges();
MessageBox.Show(String.Format("{0} Records aktualisiert.", Anzahl));

Mehr ist nicht zu tun. Auch wenn das entstandene Konstrukt kaum ein seriöser Entwickler als echten Datenlayer bezeichnen würde, ist eine voll funktionsfähige Anwendung entstanden, in der sich Daten aus einer SQL Server-Datenbank abrufen, im Rahmen der Benutzeroberfläche aktualisieren und Änderungen in die Datenbank zurückschreiben lassen. Und dass ohne, dass eine einzige Zeile "Datenzugriffscode" geschrieben werden musste.

Auch die klassische Datenbindung über eine Datenquelle ist mit auf der Basis des Entity Frameworks möglich. Dazu sind allerdings zwei Durchläufe erforderlich und es müssen zwei Datenquellen angelegt werden. Beim Anlegen der ersten Datenquelle wird nach Auswahl von ,,Database" anstelle von ,,DataSet" die Option ,,Entity Data Model" selektiert und das Datenmodell wie beschrieben angelegt. Beim Anlegen der zweiten Datenquelle wird die Option ,,Object" gewählt und es werden im nächsten Schritt die vom Entity Framework generierten Klassen ausgewählt, wodurch pro Klasse eine eigene BindingSource-Komponente hinzugefügt wird. Danach können die Tabellen und Felder wie gewohnt per Drag&Drop auf dem Formular abgelegt werden. Da anders als bei einem DataSet keine TableAdapter generiert werden, müssen die BindingSource-Komponenten im Programmcode in (z.B. in Form_Load) mit dem Entitätsobjekt verbunden werden:

db = new NORTHWNDEntities();
employeesBindingSource.DataSource = db.Employees;


Wurden die Tabellen Employees, Orders und Order Details zur Datenquellen hinzugefügt und die Employees-Tabelle durch einzelne Controls, die beiden anderen Tabellen jeweils durch ein DataGridView repräsentiert, sorgen die Beziehungen zwischen den drei Tabellen dafür, dass nach Auwahl eines Employee-Datensatzes die Bestellungen und die Details zu diesen Bestellungen aufgelistet werden.

Das Ganze funktioniert auch im Rahmen einer WPF-Anwendung, wenngleich die Controls nicht ganz den von WinForms gewohnten Komfort bieten und es z.B. keine Navigationsleiste gibt. Das Navigieren muss per Code mit Hilfe der angelegten ViewSource durchgeführt werden:

employeesViewSource.View.MoveCurrentToNext();

Trotz der an Einfachheit kaum noch zu steigernden Vorgehensweise beim Anlegen einer Datenquelle auf der Basis von Entity Framework ist das Ganze eine komplexe Angelegenheit, die, sobald es an die richtige Anwendungsenwicklung geht, einiges an intimen Know-how voraussetzt.
Für alle, die nur an einem möglichst einfachen Zugriff auf eine SQL Server Express- oder SQL Server Compact-Datenbank interesiert sind, ist LINQ to SQL,Microsofts anderer OR-Mapper, der bei den Express Editionen ebenfalls zur Verfügung steht, die deutlich einfachere Alternative, auch wenn er in Zukunft nicht mehr weiterentwickelt werden soll.

Abbildung 3: Die WinForms-Datenbindung basiert auf einer Datenquele und dem Entity Framework

Mehr Komfort für WPF

Microsoft hat sich für Visual Studio 2010 ein paar Verbesserungen für WPF (Windows Presentation Foundation) einfallen lassen, die auch in den beiden Express Editionen zur Verfügung stehen. Dazu gehören Kleinigkeiten, wie der Umstand, dass im XAML-Editor auch für XAML-Properties Intellisense-Auswahllisten angeboten werden, was z.B. das Einrichten einer Datenbindung ein wenig erleichtert, dass Brushes über einen komfortablen Editor eingestellt werden können, oder dass Ressourcen wie Style-Elemente über das Property-Fenster ausgewählt werden können. Dazu gehört aber vor allem, dass der WPF-Designer endlich ein Drag&Drop-Databinding unterstützt und die Bindungseinstellungen, die einer Dependency-Property zugewiesen werden sollen, relativ komfortabel in einem ,,Verbindungsdesigner" eingestellt werden können. Entwickler, die sich bislang mit der WPF-Datenbindung schwer taten, erhalten damit eine wichtige Hilfestellung. Mit dem "Brush-Designer", mit dem sich Farberverläufe zusammenstellen lassen, weht erstmals ein Hauch von Expression Blend durch Visual Studio.

Mehr Komfort bei Visual Studio

Von den mit Visual Studio 2010 eingeführten Verbesserungen und der Umstellung der IDE auf WPF profitieren natürlich auch die Express Editionen. Dazu gehören Komfortverbesserungen wie die Möglichkeit, nicht existierende Typen in einer Deklarationsanweisung nachträglich definieren zu können, der Umstand, dass beim Selektieren eines Bezeichners oder Schlüsselwortes alle gleichlautenden Worte im Quelltext hervorgehoben werden und die Verbesserung beim Intellisense, die darin besteht, dass alle Typennamen angezeigt werden, in denen die bereits eingegebenen Buchstaben enthalten sind. Auch der Multimonitor-Support, der auf dem Umstand basiert, dass sich die IDE-Fenster aus dem Anwendungsfenster heraus bewegen lassen, steht bei den Express Editionen zur Verfügung.

Download-Tipps

Die Express Editionen stehen einzeln wie auch als Gesamtpaket im Rahmen einer ISO-Datei zur Verfügung. Speziell für die Installation der Web Edition empfiehlt sich der Web Installer 2.0, mit dem die Installation sehr komfortabel und anwenderfreundlich durchgeführt wird, und den Microsoft für eine große Palette von Web-Anwendungen vorgesehen hat. Lässt man den SQL Server Express weg, ist eine Express Edition auch über eine etwas langsamere Internet-Verbindung schnell installiert.

Abbildung 4: Für die Installation von Visual Web Developer bietet sich der Microsoft Web Installer 2.0 an




Peter Monadiemi



Das könnte Sie auch interessieren