05.10.2010, 21:34 Uhr

Visual Studio LightSwitch - Entwickeln ohne Codieren

Die Visual Studio-Familie hat Zuwachs bekommen. Mit Visual Studio LightSwitch stellte Microsoft im August die Beta 1 eines neuartigen Entwicklungswerkzeugs vor, das zwar in die vertraute Visual Studio-IDE integriert ist, aber einen ganz anderen Ansatz verfolgt.
Das Ziel von LightSwitch ist einfach: Anwendern ohne Programmierkenntnissen das Erstellen von datenbankbasierten Geschäftsanwendungen zu ermöglichen, ohne dass sie sich um Dinge wie Datenzugriffscode, die Auswahl eines ORM, Datenbindung und andere zeitraubende Details kümmern müssen, die auch erfahrene Entwickler zunehmend als lästige Ablenkung von den wichtigen Aufgaben bei der Entwicklung größerer Anwendungen empfinden. LightSwitch (zu Deutsch "Lichtschalter") verfolgt dazu einen Modell First-Ansatz, bei der zuerst das Datenmodell angelegt und daraus die Oberfläche (bei LightSwitch Screens) abgeleitet wird. Falls erforderlich werden zusätzliche Abfragen oder Validierungsregeln in C#- oder VB-Code hinzugefügt. Theoretisch lässt sich eine einfache Geschäftsanwendung, etwa eine Inventar- oder Mitgliederverwaltung, in weniger als einer Stunde zusammenstellen, ohne eine einzige Zeile Code eingeben oder etwas über Silverlight oder das .NET Framework wissen zu müssen. Auch das Deployment ist einfach und effektiv - ein Assistent kümmert sich um alle Details. In Zukunft wird ein direktes Deployment in eine Azure-Cloud möglich sein. Der Assistent richtet aber nicht die für jede LightSwitch-Anwendung erforderliche (SQL Server Express-) Datenbank ein. Dies muss durch Ausführen eines SQL-Skripts auf dem Zielcomputer geschehen, das beim Veröffentlichen des Projekts, sofern die entsprechende Option gesetzt wurde, angelegt wird.Technische DetailsNatürlich hat Microsoft mit LightSwitch nicht das sprichwörtliche Rad neu erfunden. LightSwitch basiert ausschließlich auf bereits vorhandenen Komponenten des aktuellen "Microsoft Technologie-Stacks" wie Silverlight 4.0, ASP.NET 4.0, Entity Framework und den WCF RIA Services. Technisch betrachtet ist eine LightSwitch-Anwendung eine Silverlight 4.0-Anwendung, die entweder im Browser (und damit auf allen offiziell unterstützten Plattformen) oder im Out-Of-Browser-Modus in einem eigenen Fenster ausführen kann. In diesem Modus stehen windows-spezifische Elemente wie eine Export To-Excel-Funktion oder OLE Automatisierung für die Ansteuerung von Office-Anwendungen zur Verfügung. Neu bei LightSwitch ist der Umstand, dass sich ein Anwender mit keinerlei technischen Details beschäftigen und sich nicht für eine von mehreren Datenzugriffsmethoden entscheiden oder sich mit anderen designrelevanten Fragen beschäftigen muss. Die einzige technische Entscheidung, die ein Anwender treffen muss ist die Wahl der Programmiersprache, die auf C# und VB beschränkt ist. Abb. 1: LightSwitch basiert auf Silverlight Screens statt FormsWer bei LightSwitch einen komfortablen Silverlight-Designer mit einer reichhaltigen Auswahl an Controls und der üblichen Fülle an Einstellmöglichkeiten erwartet wird eventuell enttäuscht. Bei LightSwitch heißen die Fenster Screens. Sie werden nicht entworfen, sondern direkt aus einer Tabelle abgeleitet. Es gibt keinen Designer und es lassen sich keine optischen Feinheiten wie die Vor- und Hintergrundfarbe eines Buttons einstellen. Dennoch muss man sich nicht mit dem schnell etwas eintönigen Standarddesign zufrieden geben, denn über Layout-Templates lässt sich das Aussehen eines Fensters komplett verändern (diese Möglichkeit ist in der Beta 1 aber noch nicht vorgesehen). Ein Beispiel Schritt für SchrittEine kleine "Projekt-Zeiterfassung" soll die Umsetzung einer typischen Geschäftsanwendung verdeutlichen. Der erste Schritt besteht darin, nach dem Start von LightSwitch ein neues Projekt anzulegen und eine von zwei Vorlagen zu wählen, die darüber entscheidet mit welcher Sprache programmiert wird. Die kleine Anwendung basiert auf drei Entitäten (Tabellen): Worker (mit den Feldern ID und WorkerName), Project (mit den Feldern ID, ProjectName und StartTime) und Job (mit den Feldern ID, WorkerID, ProjectID, StartTime und EndTime). Es fällt auf, dass ein ID-Feld bereits vorhanden ist, da ein Primärschlüssel Voraussetzung für eine Identität ist. Es fällt ferner auf, dass die Namen der Tabellen der (Default-) Datenbank ApplicationData ein Mehrzahl "s" erhalten, das sich nachträglich wieder entfernen lässt.Wurden die Entitäten definiert, müssen Beziehungen zwischen einzelnen Entitäten hergestellt werden. Dies geschieht durch Add Relationship in der Befehlsleiste einer Entität. Zwischen Project und Job soll eine 1:n-Beziehung bestehen, denn zu einem Projekt kann es mehrere Jobs geben. Zwischen Worker und Project soll es ebenfalls eine 1:n-Beziehung geben, denn an einem Projekt können mehrere Worker arbeiten. Die angelegten Beziehungen werden im Entitätsdesigner übersichtlich angezeigt. Damit ist das Datenmodell fertig - und fast schon die gesamte Anwendung. Abb. 2.: Zwischen Entitäten (Tabellen) werden Beziehungen hergestellt Damit neue Projekte, Jobs und Worker angelegt werden können, müssen Screens hinzugefügt werden, die sich direkt aus einer Entität ableiten. Ein Screen wird über Screens in der Befehlsleiste einer Entität hinzugefügt. Screens werden nicht frei gestaltet (es gibt kein Pendant zum WinForms-Designer), sondern basieren auf Templates - da über jeden Screen jeweils ein neuer Datensatz erfasst werden soll, wird jeweils die voreingestellte Vorlage "New Data Screen" übernommen. Der Screen-Name sollte z.B. "CreateNewProject" lauten, bei "Screen Data" wird die Entität ausgewählt, auf der der Screen basieren soll. Der Aufbau eines Screens wird in einer Baumansicht angezeigt, was am Anfang ein wenig gewöhnungsbedürftig ist, da das Hinzufügen und Entfernen von Controls (es können auch Silverlight-Custom Controls eingebunden werden) in dieser Baumansicht geschieht, in dem ein Zweig geöffnet und die Add-Auswahlliste geöffnet wird, die durch das grüne Pluszeichen nicht zu übersehen ist. Abb. 3: Screens basieren auf einer Vorlage Beim Screen für das Anlegen eines neuen Jobs sollen Projekt und Worker nicht über ihre ID, sondern direkt aus ihrer Tabelle ausgewählt werden. Dazu werden die ID-Felder entfernt und die beiden Entitäten Project und Worker als "Modal Window Picker"-Controls hinzugefügt. Damit ist das App fertig und kann über F5 gestartet werden. Auch wenn in jedem Editorfenster in der rechten oberen Ecke ein Write Code-Button angeboten wird, die Umsetzung kam bislang ohne Codierung aus. Bemerkenswert ist ferner, dass das Layout eines Screens zur Laufzeit geändert werden kann. Es fällt auch auf, dass ein LightSwitch-App aktuell noch relativ langsam ist, was auf den Umstand zurückzuführen sein dürfte, dass das Entwicklungswerkzeug aktuell erst als Beta 1 vorliegt. LightSwitch ist aber nicht "LightWeight" - das macht bereits der Umstand deutlich, dass bereits das umgesetzte Mini-Projekt über 700 Dateien umfasst und 80 Mbyte auf der Festplatte belegt. Soll eine App verteilt werden, geschieht dies mit Hilfe des LightSwitch Publich Application Wizard, bei dem auch die Möglichkeit besteht, eine (andere) Datenbank auszuwählen. Abb. 4.: Ein Assistent kümmert sich um das Bereitstellen der Anwendung FazitLightSwitch bietet einen erfrischend neuen Ansatz, wenngleich die aktuell vorliegende Beta 1 manches nur andeuten kann, und füllt eine Lücke, die seit Jahren zu einer Art "Anwendungstau" in vielen Unternehmen geführt haben dürfte. Fachanwendungen mussten entweder mit hohem personellem und zeitlichem Aufwand intern realisiert oder, mit den entsprechenden Kosten verbunden, extern vergeben werden. LightSwitch wird über Nacht keine Entwickler arbeitslos machen, aber dazu führen, dass sich die Aufgaben verlagern. Die "Gefahr", dass über Nacht unzählige schlecht designte Anwendungen in den Unternehmen auftauchen ist relativ gering, da man als Anwender nicht allzu viel falsch machen kann. LightSwitch kann als typisches RAD-Werkzeug auch die Rolle erfüllen, bei der die Fachabteilung einen Prototyp entwirft, der später von einem Entwicklerteam "richtig" implementiert wird. LightSwitch ist allerdings so konzipiert, dass eine aufwändige Entwicklung von Grund auf mehr und mehr überflüssig wird.Nach den Plänen von Microsoft soll Visual Studio LightSwitch irgendwann 2011 auf den Markt kommen und zu einem "angemessenen Preis" angeboten werden.Infos für Developers gibt es im LightSwitch Developer Center [1]. Empfehlenswert für das Einarbeiten in die auch für Profis neue Thematik ist das Light Switch-Training-Kit [2]. Beispiele gibt es unter [3].Links[1] http://msdn.microsoft.com/en-us/lightswitch/default.aspx[2] http://www.microsoft.com/downloads/en/details.aspx?FamilyID=AC1D8EB5-AC8E-45D5-B1E3-EFB8E4E3EBD1&displaylang=en [3] http://code.msdn.microsoft.com/lightswitchPeter Monadiemi


Das könnte Sie auch interessieren