Entwickeln ohne Codieren: Was MS LightSwitch leistet

07.10.2010
Von Peter Monadjemi
Microsofts "Visual Studio LightSwitch" verspricht Anwendern, Geschäftsanwendungen ohne Codieren erstellen zu können. Trotz einiger Einschränkungen sieht die erste Betaversion vielversprechend aus.

Die .NET-Entwicklungsplattform kommt in die Jahre. Auch wenn der Funktionsumfang mit der aktuellen Version 4.0 noch einmal kräftig gewachsen ist, am Prinzip der Entwicklung hat sich für klassische Desktop-Anwendungen seit der Einführung im Jahr 2002 nichts geändert. Nach wie vor erfordert auch das Anfertigen einfacher Geschäftsanwendungen, die eventuell nur auf Abteilungsebene eingesetzt werden sollen, ein solides Entwickler-Know-how. Neben Grundkenntnissen der Klassenprogrammierung gehören dazu ein Überblick über die aus mehreren 1000 Klassen bestehende API und zunehmend Kenntnisse über moderne Softwaretechniken wie Dependency Injection oder über den Umgang mit dem Model-View-Controller-Muster (MVC). Die größte Herausforderung besteht heutzutage oft in der Wahl der richtigen Architektur und den damit einhergehenden Entwurfsmustern zu ihrer Umsetzung. Fähigkeiten, die reine Anwender im Allgemeinen nicht mitbringen.

Gesucht wurde daher ein Werkzeug, das einem Anwender all diese Entscheidungen und Detailkenntnisse abnimmt. Mit LightSwitch, das im August nach einer mehrjährigen und regelrecht im Geheimen vorgenommenen Entwicklung offiziell vorgestellt wurde, versucht Microsoft, diese Lücke zu schließen. Die Idee dahinter ist, dass Anwendern im Rahmen eines "Modell-First"-Ansatzes die Gelegenheit geboten wird, zuerst das Datenmodell und anschließend daraus abgeleitet eine Benutzeroberfläche zusammenzustellen, mit der diese Daten erfasst und editiert werden. Am Ende dieser Umsetzung entsteht eine auf Silverlight basierende Anwendung, die nur noch ausgerollt werden muss, zum Beispiel in eine Azure-Cloud. Was sich in der Theorie einfach anhört, sollte es in der Praxis auch 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.

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-andPractices-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.

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, als der Einstieg in LightSwitch mit einer Entscheidung beginnt, mit der die adressierte Zielgruppe ein wenig überfordert sein dürfte.

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 Umsetzung einer Anwendung verläuft streng datengesteuert, optische Spielereien sind nicht vorhanden. Die Optik einer LightSwitch-Anwendung wirkt deshalb momentan 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. Gegenwärtig 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 wie etwa 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. Das 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, dass vom Modell-First-Ansatz nicht viel übrig bleibt? Ähnlich wie bei Microsoft Access dürfte der Übergang vom Anwender über den Anwender als Entwickler bis hin zum Profi-Entwickler fließend sein. (ue)

Auf einen Blick

  • Das Kernkonzept von LightSwitch ist, dass Anwender ohne jegliches Entwickler-Know-how in die Lage versetzt werden, eine auf einer (SQL-Server-) Datenbank basierende Anwendung zu erstellen, die als Silverlight-Anwendung entweder in einem Fenster oder im Browser läuft. Da die Benutzeroberfläche direkt aus dem Datenmodell abgeleitet wird, gibt es keine Notwendigkeit und auch keine Möglichkeit, diese zu gestalten.

  • LightSwitch hat Potenzial, auch wenn die erste Betaversion noch einige Wünsche offen lässt.

  • Die Aussicht, mit wenigen Mausklicks zu einer voll funktionsfähigen Geschäftsanwendung zu kommen, ist für viele Unternehmen attraktiv, die dazu in der Vergangenheit auf Tools wie Microsoft Access oder Visual Basic 6.0 gesetzt haben und für die das .NET-Framework aufgrund seiner Komplexität nie in Frage kam.

  • LightSwitch wird keine Entwickler arbeitslos machen, sondern eher dazu beitragen, dass sich Anwender und Entwickler wieder etwas näherkommen.

  • LightSwitch ist nicht der indirekte Nachfolger von Microsoft Access, denn dafür bietet es zu wenige "Einstellmöglichkeiten". Stattdessen verkörpert es eine überfällige neue Generation von Entwicklungswerkzeugen.

  • Derzeit liegt LightSwitch in der Beta 1 vor, es soll 2011 als eigenständiges Produkt auf den Markt kommen.

Codieren erlaubt

LightSwitch ist kein Tool der Sorte "Klicki Bunti", das Anwendern zu einem schnellen Erfolgserlebnis verhilft, am Ende aber so viele Limitierungen aufweist, 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 werden.