Visual Studio Lightswitch Beta

Microsoft LightSwitch - Entwickeln ohne Codieren

29.10.2010 von Peter Monadjemi
Mit Microsofts Visual Studio Lightswitch sollen Anwender ohne tiefes Entwicklerwissen einfach Anwendungen erstellen können. Grund genug, einen detaillierten Blick auf das Konzept und die vorliegende Beta-Version zu werfen.

Geht es nach Microsoft, so sollen Anwender mit Hilfe von Visual Studio Lightswitch die Möglichkeit haben, relativ einfach eine auf einer Datenbank basierende Anwendung zu erstellen. Dieselbe soll dann als Silverlight-Anwendung in einem Fenster oder im Browser laufen.

Wer bislang - etwa auf Basis der .NET-Entwicklungsplattform - einfache Geschäftsanwendungen erstellen will, muss immer noch ein gehöriges Maß an Entwickler-Know-how mitbringen. Grundkenntnisse der Klassenprogrammierung sind da eine Selbstverständlichkeit, vielleicht auch ein Überblick über die aus mehreren 1000 Klassen bestehende API. Daneben können Kenntnisse der modernen Softwaretechniken wie Dependency Injection oder über den Umgang mit dem Model-View-Controller-Muster (MVC) keineswegs schaden.

Gar keine geringen Anforderungen für eine Anwendung, die im geringsten Fall vielleicht sogar nur abteilungsintern laufen soll. Daneben ist natürlich grundsätzlich die Wahl der richtigen Architektur und den entsprechenden Entwurfsmuster eine der großen Herausforderungen.

Die Kernkomponenten einer LightSwitch-Anwendung.

Hier soll Lightswitch Abhilfe schaffen, und den Anwendern Entscheidungen und Detailkenntnisse abnehmen. Anwender können damit zunächst das Datenmodell zusammenstellen ("Modell First") und daraus eine Benutzeroberfläche ableiten. Über diese werden die Daten erfasst und editiert. Als Ergebnis entsteht eine Silverlight-Anwendung, die dann ausgerollt werden kann, etwa in eine Azure Cloud.

Klingt einfach, und das soll es auch tatsächlich sein. Doch ganz ohne Programmierung wird es auch bei LightSwitch nicht gehen. Soll eine Validierungslogik für einzelne Eingabefelder hinzugefügt werden, geschieht dies traditionell prozedural in C# oder Visual Basic.

Bekanntes Konzept neu umgesetzt

Ganz neu ist die Idee des codefreien Entwickelns von Geschäftsanwendungen ohnehin nicht. Mit der objektorientierten 4GL-Sprache Clarion gab es Mitte der 80er Jahre bereits ein RAD-Werkzeug für datenbankgestützte Anwendungen, das Entwickeln ohne Codieren versprach, sich aber nicht durchsetzen konnte.

Auch das nach wie vor populäre Datenbanksystem Access aus eigenem Haus bietet seit Anfang der 90er Jahre einen ähnlichen, wenngleich nicht so flexiblen Ansatz. Microsoft griff bei der Entwicklung von LightSwitch allerdings keine Konzepte der IT-Frühzeit auf, sondern orientierte sich bei der Architektur unter anderem an den Arbeiten der Patterns&Practices-Gruppe in Redmond, die mit Prism ein Framework für die Entwicklung von WPF-Geschäftsanwendungen schufen.

Die technischen Komponenten von LightSwitch umfassen deshalb das Neueste, was der "Microsoft-Technology-Stack" zu bieten hat: von den WCF-RIA-Services, die für den Datenzugriff in einer Three-Tier-Anwendung zuständig sind, über Silverlight 4.0, mit dem die Oberfläche dargestellt wird, bis hin zum Entity Framework, das die Grundlage für den Daten-Layer bildet.

LightSwitch ist kein Tool der Sorte "Klicki Bunti", das Anwendern zu einem schnellen Erfolgserlebnis verhilft, am Ende aber so viele Limitierungen besitzt, dass es für einen Praxiseinsatz nicht in Frage kommt. Auch bei LightSwitch kann programmiert werden, wobei sich diese Codierung in der Regel auf das Hinzufügen typischer Validierungslogik oder das Schreiben von Abfragen beschränkt, die über einen nachträglich hinzugefügten Button in einen Screen integriert wird.

Modell First

Eine Herausforderung, der sich auch erfahrene Entwickler immer wieder aufs Neue stellen müssen, ist, eine solide Grundlage für eine Anwendung zu finden.

Der Ansatz, nach dem man zuerst die Oberfläche erstellt, dann mit dem Datenbankentwurf fortfährt und zum Schluss die Geschäftslogik auf die entstandenen Formularmodule verteilt, ist schon länger nicht mehr zeitgemäß.

LightSwitch nimmt Anwendern Entscheidungen dieser Art ab, indem es konsequent einen Modell-First-Ansatz verfolgt, zu dem es keine Alternative gibt. Unmittelbar nach dem Start des auf Visual Studio 2010 basierenden Tools muss sich der Anwender mit der Wahl der Projektvorlage für eine der beiden Programmiersprachen entscheiden, die LightSwitch zu bieten hat: C# oder Visual Basic. Diese Wahl gleich an den Anfang zu stellen ist allerdings insofern nicht optimal, weil der Einstieg in LightSwitch mit einer Entscheidung beginnt, mit der die adressierte Zielgruppe ein wenig überfordert sein dürfte.

Modell First: Am Anfang steht bei LightSwitch das Anlegen einer Tabelle.

Anschließend wird durch Auswahl des Create-Table-Links in der sehr übersichtlich gehaltenen Startseite eine neue Tabelle angelegt, die in der LightSwitch-Terminologie (das Entity Framework lässt grüßen) als Entität bezeichnet wird.

Alternativ kann eine bereits vorhandene SQL-Server-Datenbank als externe Datenquelle eingebunden werden. Da ein Datenmodell im Allgemeinen nicht mit einer Tabelle auskommt, werden weitere Tabellen hinzugefügt und zwischen diesen Beziehungen eingerichtet.

Screens statt Formulare

Generationen von Entwicklern sind mit dem Microsoft-Formular-Designer aufgewachsen - einem der "Hauptschuldigen" für den Spaghetti-Code, auf dem bei manchen Dax-100-Unternehmen die internen geschäftskritischen Anwendungen basieren.

Bei LightSwitch gibt es weder einen Formulardesigner noch ein klassisches "Code-behind"-Modell. Die Oberfläche besteht aus einzelnen Screens (Silverlight-Fenster), deren Aufbau direkt aus einer Tabelle abgeleitet wird. Zwar können Details wie die Position eines Feldes und die Frage, ob es bearbeitbar oder ein Nur-Lese-Feld sein soll, eingestellt werden, weitergehende Designmöglichkeiten jedoch bietet LightSwitch absichtlich nicht.

Für jedes Feld lässt sich zudem auswählen, durch welches Standard-Control es repräsentiert werden soll. Das Einbeziehen von Silverlight-Custom-Controls ist vorgesehen, was dazu führen dürfte, dass in naher Zukunft eine Fülle an LightSwitch-Grids als kostenpflichtiges Zubehör zur Auswahl steht.

Die Oberfläche einer LightSwitch-Anwendung besteht aus einzelnen Screens.

Die Umsetzung einer Anwendung verläuft streng datengesteuert, optische Spielereien sind nicht vorhanden. Die Optik einer LightSwitch-Anwendung wirkt aktuell daher ein wenig hausbacken. Silverlight hätte in diesem Punkt natürlich einiges zu bieten. Es dürfte daher nur eine Frage der Zeit sein, bis die LightSwitch-Standard-Shell und das LightSwitch-Standard-Thema (Blue) erweitert werden.

Architektur und Defizite

Eine LightSwitch-Anwendung ist eine Silverlight-Anwendung, die entweder als klassisches Windows-Programm oder im Browser läuft. Je nachdem, ob es sich um eine einfache Two-Tier- oder eine klassische Three-Tier-Anwendung (bestehend aus Präsentations-, Geschäfts- und Datenschicht) handelt, wird entweder ein direkter Datenzugriff oder ein Zugriff über die WCF-RIA-Services verwendet.

Der Umstand, dass sich die Datenschicht auch in der Cloud befinden kann, wenn man beim späteren Deployment als Datenbank SQL Azure verwendet, mag im Moment noch etwas futuristisch anmuten, wird aber in einigen Jahren gerade für Unternehmensanwendungen, bei denen es keine Compliance-Regeln zu beachten gibt, eine attraktive Option sein. Schließlich muss sich der Anwendungsautor keine Gedanken um das Hosten auf Unternehmens-Servern machen.

Natürlich ist es noch etwas verfrüht, auf Grundlage der ersten Beta ein abschließendes Urteil über die Möglichkeiten von LightSwitch zu fällen. Ein klares Defizit, besonders wenn man Microsoft Access als Maßstab nimmt, ist die fehlende Reporting-Möglichkeit. Hier wurde vom Hersteller bereits für die nächste Version eine Nachbesserung in Aussicht gestellt. Aktuell empfiehlt Microsoft die Export-to-Excel-Funktionalität und den Zugriff auf Excel oder Word per OLE-Automatisierung - beide Optionen stehen jedoch im Browser-Modus nicht zur Verfügung. Eine derart eklatante Lücke dürfte von Drittanbietern schnell gefüllt sein.

Ein wenig ärgerlich ist ferner, dass die hier getestete Betaversion offenbar nur dann funktioniert, wenn die SQL-Server-Instanz "SQLEXPRESS" heißt. Eine Möglichkeit, dies zu ändern, gibt es bislang anscheinend nicht. Offen ist auch, inwieweit künftig Datenbanken anderer Hersteller etwa von Oracle unterstützt werden. Hier dürfte nach der ersten Beta noch einiges passieren - zumindest von einer Unterstützung für Access-Datenbanken ist die Rede). Speziell bei Oracle dürfte LightSwitch auf wenig Begeisterung stoßen, hat der Microsoft-Konkurrent doch mit seinem Application Developer Express (APEX) ein vergleichbares Produkt im Angebot, das bereits in Version 4.0 vorliegt.

Nicht ganz ohne Know-how

Auch wenn LightSwitch indirekt die Möglichkeit suggeriert, sich durch den Prozess für das Erstellen einer Geschäftsanwendung hindurchklicken zu können, ganz ohne Know-how geht es nicht.

Dieses betrifft weniger die Programmierung von Abfragen und Validierungsregeln in C# oder Visual Basic, sondern vielmehr die generelle Vorgehensweise beim Abbilden der Geschäftslogik.

Trotz des einfachen Ansatzes ist LightSwitch ein Werkzeug mit vielen "Einstellmöglichkeiten". Nicht umsonst fasst Microsoft das Know-how zu LightSwitch in einem "Entwicklerportal" zusammen - ein Widerspruch zur ursprünglich ins Auge gefassten Zielgruppe. Werden es am Ende doch wieder die klassischen Entwickler sein, die im Auftrag ihrer Anwender mit LightSwitch arbeiten und das Tool eventuell so umgestalten, das vom Modell-First-Ansatz nicht viel übrig bleibt?

Ähnlich wie bei Microsoft Access dürfte der Übergang vom Anwender zum Anwender als Entwickler bis hin zum Profi-Entwickler fließend sein.

LightSwitch auf einen Blick

Dieser Artikel basiert auf einem Beitrag unserer Schwesterpublikation Computerwoche.