Bunte Bausteine

Microsoft liefert beim .Net Framework zahlreiche Steuerelemente zur Erstellung von Windows- und Web-Oberflächen mit. Sie lassen jedoch viele Wünsche offen. Oft ist es ökonomischer, statt sich mit Eigenentwicklungen aufzuhalten, auf fertige Controls von Drittanbietern zurückzugreifen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 11 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

In den letzten Jahren hat sich ein großer Markt von visuellen und nicht visuellen .Net Controls etabliert, auf dem sich kommerzielle und nicht kommerzielle Anbieter tummeln. iX hat im Folgenden das Segment der visuellen Steuerelemente analysiert, zum einen nach Kriterien geordnet und zum anderen, wo es gestattet wurde, die Software auf der beiliegenden Heft-CD zusammengestellt. Obwohl die Tabellen recht umfangreich sind - einen Anspruch auf Vollständigkeit können sie nicht erheben.

Übersicht über die Softwarekomponentenarten im .Net Framework.

In .Net 1.x und 2.0 gibt es zwei Arten von visuellen Steuerelementen: clientseitige Windows-Forms-Steuerelemente und serverseitige Web-Forms-Steuerelemente (alias: ASP.Net-Server-Steuerelemente). Die obige Grafik gibt einen Überblick auch über die anderen Komponenten und damit eine Einordnung der hier untersuchten. In .Net 3.0 kommen Steuerelemente für die Windows Presentation Foundation (WPF) hinzu [4]. In der darauffolgenden Version (.Net 3.5 oder .Net 4.0) soll es für die Webprogrammierung clientseitige Steuerelemente (ASP.Net Atlas Client Controls) geben. Die Tabelle „Vergleich der Steuerelemente im .Net Framework“ gibt einen Ausblick auf die künftigen .Net-Versionen und Hinweise auf die Kompatibilität der Controls.

Windows-Forms- und WPF-Steuerelemente laufen stets clientseitig auf dem Desktop des Nutzers ab. Sie sind durch .Net-Klassen repräsentiert, die Linien, Grafiken und Texte zeichnen und auf Aktionen von Maus und Tastatur reagieren. Die Nutzung und Konfiguration der Steuerelemente erfolgt durch Instanziierung der Klassen und Übergabe von Werten an Attribute beziehungsweise Methoden der Klassen. Im Fall von WPF ist alternativ eine Instanziierung und Konfiguration durch XML, genauer durch die XML Application Markup Language (XAML) möglich (vgl. [4]).

ASP.Net-Steuerelemente sind hingegen bislang Server-Steuerelemente. Auch sie sind Klassen, die jedoch im Prozess des Webservers laufen. Diese Klassen erzeugen als Ausgabe HTML, WML, cHTML oder eine andere Seitenbeschreibungssprache, die der Webserver zum Client (dem Browser) sendet. Server-Steuerelemente können zudem Javascript, Cookies und andere Web-Artefakte erzeugen. An den Client wird aber normalerweise kein .Net-Programmcode übermittelt. Grundsätzlich könnte ein Server-Steuerelement zwar ActiveX- oder .Net-Code an den Client senden, dies ist jedoch verpönt.

Entwickler können ASP.Net-Server-Steuerelemente wie bei WPF durch XML-Fragmente instanziieren und konfigurieren. Die Regel ist, dass diese Controls in XML-Form zusammen mit HTML-Tags in einer .aspx-Seite zum Einsatz kommen, wobei das ASP.Net Page Framework die HTML-Elemente an den Browser durchreicht und die Server-Steuerelemente vorher umwandelt.

Mit der nächsten ASP.Net-Version, die derzeit unter dem Codenamen „Atlas“ als Vorabversion noch vor dem Beta-Stadium existiert, führt Microsoft ASP.Net-Client-Steuerelemente ein. Diese sendet ein Webserver in Form von XML-Tags an den Browser, der sie in HTML und Javascript wandelt. Ähnlich wie es zu jedem Server-Steuerelement eine .Net-Klasse gibt, existiert zu jedem Client-Steuerelement eine Javascript-Klasse. Hervorzuheben ist, dass es innerhalb der Desktop-Anwendungen eine Austauschbarkeit von Steuerelementen gibt: Windows-Forms-Steuerelemente kann ein Entwickler in WPF-Anwendungen einsetzen, und WPF-Steuerelemente sind in Windows-Forms-Anwendungen möglich. Auch die COM-basierten Steuerelemente aus der Prä-.Net-Ära (ActiveX-Steuerelemente) sind mit Einschränkungen noch verwendbar.

In der Web-Welt gibt es diese Austauschbarkeit nicht, weil die einen Steuerelemente nur serverseitig laufen und die anderen nur clientseitig. Die Desktop- und die Web-Steuerelemente sind ebenfalls nicht kompatibel miteinander, nicht einmal auf XML-Ebene. Microsoft hat leider auch mit WPF die Chance nicht genutzt, eine einheitliche Seitenbeschreibungssprache für Web- und Desktop-Anwendungen zu schaffen und damit eine Migration von Benutzeroberflächen zu ermöglichen.

Wenn man WPF und ASP.Net betrachtet, die beide XML einsetzen, könnte man zumindest durch den Einsatz von XML-Transformationen (XSLT) einige Benutzeroberflächen zwischen den Welten migrieren: ein Hoffnungsschimmer.

Die Redmonder liefern mit dem .Net Framework eine Grundausstattung von Steuerelementen aus, zum Beispiel:

  • Ausgabe von Texten (Label)
  • Eingabefelder (TextBox, MaskedTextBox)
  • Datendarstellung in Tabellenform (DataGridView, GridView)
  • Baumdarstellung (TreeView)
  • Grafikanzeige (PictureBox, Image)
  • Menüs (MenuStrip, Menu)

In der .Net-Version 2.0 hat Microsoft die Anzahl der Steuerelemente stark erweitert: Für Windows Forms und für Web Forms sind neue hinzugekommen und unzulängliche Vorgänger wurden verbessert. Bei Windows Forms sehen die neuen Controls StatusStrip, ToolStrip und MenuStrip wesentlich besser aus als die Vorgänger StatusBar, ToolBar und MainMenu.

Abgelöst hat man die Datengitter: Aus dem ASP.Net-DataGrid wurde ein GridView, aus dem Windows Forms-DataGrid ein DataGridView. Die alten DataGrids bleiben zwecks Kompatibilität erhalten. Man fragt sich dabei aber, wie viele kreative Namen Microsoft noch einfallen, um in .Net 10.0 noch eine neue Bezeichnung zur Hand zu haben. Die Tabelle „Wichtige Steuerelemente in Microsofts .Net Framework 2.0“ stellt die Controls für Windows Forms und Web Forms gegenüber.

Endanwender sind heute von grafischen Benutzeroberflächen verwöhnt: Drag&Drop, Copy&Paste, Autovervollständigung, viele bunte Bilder und Animationen stehen ganz oben auf der Wunschliste jeder Firma, die eine neue Software in Auftrag gibt. Microsoft unterstützt viele Komfortfunktionen für die Benutzeroberfläche, hat in seine .Net-Steuerelemente aber längst nicht alles hineingepackt, was Windows beziehungsweise die heutigen Webbrowser können. Nicht mal eine klassische Master-Detail-Ansicht, bei der zu einem Datensatz direkt darunter die zugehörigen Datensätze aus einer anderen Datenquelle angezeigt wird, ist mit den Redmonder Steuerelementen zu machen. Allenfalls unter der Tabelle oder in einem separaten Fenster kann man die Details anzeigen.

Wenn Anwender eine konfigurierbare Liste im Stil von Microsofts Outlook fordern, bekommt der Softwareentwickler graue Haare, wenn er sich allein auf Microsoft verlassen soll. In Web Forms gibt es keinen aufklappbaren Kalender: Das mit ASP.Net mitgelieferte Steuerelement Calendar zeigt immer einen ganzen Monat an, was ungünstig ist, wenn man eine Reihe von Datensätzen mit Datumsangaben auf einer Bildschirmseite platzieren muss. Auch ein Steuerelement, dass die Gestaltung von HTML-Dokumenten erlaubt, gibt es in der Grundausstattung nicht.

Positiv gesagt: Microsoft lässt einen Markt für Drittanbieter frei, die mit eigenen reichhaltigen Steuerelementen die bestehende Infrastruktur erweitern können. Die iX-Marktübersichten im Bereich der .Net-Komponenten haben schon Tradition (s. [1], [2], [3]). Die aktuellen Tabellen „ASP.Net-Server-Steuerelemente“, „Windows Forms Steuerelemente“ und „Steuerelemente für Windows Forms und ASP.Net“ zeigen die verfügbaren Controls. Eine Erhebung für WPF- und ASP.Net-ClientSteuerelemente lohnt sich noch nicht, weil es hier bislang kaum Angebote gibt: Die Basisinfrastruktur ist zum jetzigen Zeitpunkt auch noch nicht fertig.

Bei der Erhebung der Daten war iX auf die Mithilfe der Hersteller angewiesen. Wer auf unsere wiederholten E-Mails mit der Bitte um Detailinformationen nicht reagierte, konnte keine Berücksichtigung finden; die Liste ist daher nicht vollständig.

Auch dieses Mal zeigt sich wieder: Man muss nicht immer Geld ausgeben. Die Open-Source-Gemeinde ist in Sachen .Net sehr aktiv und stopft viele von Microsoft hinterlassene Lücken. Im kommerziellen Umfeld gibt es zunehmend ganze Komponentensammlungen, bei denen der Entwickler nicht mehr ein einzelnes Steuerelement kauft, sondern ein Bundle aus verschiedenen Steuerelementen.

Platzhirsche sind die Firmen Infragistics, Developer Express, ComponentOne, Dart Communications, telerik, 9Rays und Syncfusion, die jeweils mit zehn oder mehr Produkten auf dem Markt präsent sind. Schon bei der letzten Marktanalyse [3] konnte man feststellen, dass kleinere Anbieter kommen und gehen. Wer sich heute ein Steuerelement von einem kleinen Anbieter kauft, kann nicht sicher sein, dass er dafür in zwei Jahren noch Unterstützung findet.

Probleme mit Steuerelementen gibt es genug, wie der Autor in der Praxis immer wieder feststellt. Die komplexen Komponenten sehen in bestimmten Situationen auf bestimmten Plattformen manchmal nicht so aus, wie sie sollten. Dann ist das Anwendergeschrei groß und der Entwickler dankbar, wenn die Hersteller-Hotline einen Patch oder zumindest einen Workaround präsentieren kann. Einige Firmen bieten ihre Komponentensammlungen im Abo-Modell an: Gegen eine Jahresgebühr gibt es alle paar Wochen die aktuelle Version frei Haus. Für solche Aktualisierungsintervalle würde man Microsoft allerdings steinigen.

Open-Source-Produkte scheinen eine Alternative zu sein. Sogar einige kommerzielle Hersteller bieten den Quellcode ihrer Produkte im Rahmen einer Subscription an. In der Praxis ist dies jedoch keine Lösung, denn kaum ein Entwickler im Unternehmenseinsatz hat die Zeit, sich durch Tausende Zeilen fremden Codes zu wühlen, um die kleinen Fehler, die andere gemacht haben, zu finden. Die Erfahrung zeigt: Ein guter Support hilft eindeutig besser als der Quellcodezugang.

Schaut man auf die Tabellen, sieht man, dass Komponenten zur Erzeugung von Diagrammen zumindest bei den Anbietern sehr beliebt sind. Weitere große Lücken, die Microsoft hinterlassen hat, sind Grids, komplexe Menüs und HTML-Eingabe-Steuerelemente. Im Trend ist bei den Web Forms-Steuerelementen die Unterstützung für Ajax. Dabei haben die Firmen schon eigene Ajax-Frameworks gebaut und warten nicht auf die nächste Version von ASP.Net (Codename „Atlas“, siehe [5]). Einige Anbieter bieten Steuerelemente auch auf Basis des Component Object Model (COM) für klassische Anwendungen an. Andere Hersteller haben Komponentenarchitekturen wie Java Server Faces (JSF) als weitere Absatzmärkte entdeckt. Dies war aber nicht Teil der Markterhebung, sondern ist beim Betrachten der Hersteller-Websites aufgefallen.

Steuerelemente, die die von Microsoft im .Net Framework gelassenen Lücken schließen, gibt es wie Sand am Meer. Die Qual der Wahl hat der Entwickler, der seinen Anwendern viel „Buntes“ präsentieren will oder muss. Dabei sollte man nicht immer nur die Funktionen im Auge haben, sondern sich auch die Frage nach der Komplexität stellen. Weniger ist manchmal mehr, weil es überschaubarer und wartbarer ist. Die Fluktuation auf dem Markt bewirkt außerdem, dass man vielleicht besser auf einen großen etablierten Anbieter statt auf die innovative, aber kleine Softwareschmiede aus dem Billiglohnland setzen sollte.

Dr. Holger Schwichtenberg
unterstützt mit seiner Firma www.IT-Visions.de viele Unternehmen beim Einsatz von .Net. Er hält Vorträge auf Fachkonferenzen und ist Autor zahlreicher Fachbücher.

[1] Holger Schwichtenberg; Sprachen und Entwicklungstools für das .Net Framework; Nette Vielfalt; iX Special „Programmieren mit .Net“; 1/2003, S. 21

[2] Holger Schwichtenberg; Softwarekomponenten im .Net Framework; Bausteinkasten; iX 10/04, S. 86

[3] Holger Schwichtenberg; Sprachen, Werkzeuge und Komponenten für .Net; Reiches Angebot; iX Special „Programmieren mit .Net 2.0“; 1/2006, S. 14

[4] Holger Schwichtenberg; Microsofts WinFX-Erweiterung für .Net; Klassensprung; iX 7/06, S. 124

[5] Christoph Leisegang, Stefan Mintert, Bastian Spanneberg; Fünf serverseitige Ajax-Frameworks; Die Nullnummern; iX 9/05, S. 66

Im aktuellen Printmedium finden Sie dazu über 100 Controls auf der beigelegten CD sowie eine detaillierte Marktübersicht.

Mehr Infos

iX-TRACT

  • Etliche Windows-Forms- und ASP.Net-Forms-Steuerelemente - visuelle .Net Controls zur Erstellung von Windows- beziehungsweise Webanwendungen - liefert Microsoft bereits mit dem Framework aus.
  • Da die von Hause aus beigelegten Controls nur den Grundbedarf abdecken, hat sich ein großer Drittanbietermarkt etabliert, in dem Open-Source- und kommerzielle Produkte zu finden sind.
  • Entwickler, die ihr Softwareprodukt im Zweifel über Jahre pflegen und gegebenenfalls anpassen müssen, sollten vor der Produktentscheidung genau überlegen, welchem Komponentenanbieter sie einen Support über einen längeren Zeitraum zutrauen können.

(wm)