Jede Website ist auf ihre Weise einzigartig. Und doch besteht eigentlich jede Website aus Navigationen, Mitteilungen, Kontakten, Links, Downloads und Formularen. Schaut man genauer hin, gleichen sich bei allen Unterschieden in der Gestaltung auch die Funktionen: Mitteilungen werden in einer Druckansicht angezeigt oder weiterempfohlen, Ansprechpartner und Downloads werden einem Beitrag zugeordnet, Produkte in einen Warenkorb gelegt. Und doch werden diese Funktionen immer wieder neu programmiert - oder vom letzten Projekt kopiert. Diese Praxis macht die Entwicklung von Webportalen zeitaufwändig, teuer und fehlerhaft.
Ein Framework mit Komponenten
Im Business Content Management System contentXXL übernehmen flexible und in zahlreichen Projekten praxisbewährte out-of-the-box Komponenten die Realisierung häufig vorkommender Anforderungen. Diese Komponenten - ASP.NET User Controls - werden im browserbasierten Sitemanager WYSIWYG per Drag & Drop oder auch zur Laufzeit dynamisch über Programmcode in frei definierbare Seitentemplates platziert. Sie stellen sowohl die erforderlichen Datenstrukturen als auch häufig benötigte Funktionen bereit. Über zahlreiche Einstellungen kann das Verhalten der Komponenten beeinflusst werden. Die Gestaltung erfolgt über frei definierbare Templates. Bis zu diesem Zeitpunkt sind keine Programmierkenntnisse erforderlich.
Das macht die Codierung aber keinesfalls überflüssig, die Programmierer können sich vielmehr auf die oft zusätzlich erforderlichen kunden- bzw. branchenspezifischen Erweiterungen der Website und Fragen der Systemintegration konzentrieren. Eigene, vom Kunden oder dessen Dienstleister in Visual Studio programmierte Komponenten werden von den contentXXL Basisklassen abgeleitet und als User Controls im System registriert. Damit erben sie alle Möglichkeiten des Content Management Frameworks, wie z.B. Versionierung, Checkin/Checkout, zeitgesteuerte und mehrfache Veröffentlichung und Freigabe im Rahmen eines redaktionellen Workflows, Zugriffsrechte auf Objektebene, Mehrsprachigkeit, Import- und Export über Webservices, die Aufnahme in ein Kategoriesystem oder die Fähigkeit, Beziehungen zu anderen Inhaltsobjekten aufzubauen.
CMS und/oder Portal?
So gesehen steht contentXXL der Portalidee und damit dynamischen Lösungen wie Microsoft SharePoint, die Webseiten zur Laufzeit aus Datenbanken erzeugen, näher als klassischen CMS Systemen, die am Ende statische HTML Seiten zur Präsentation generieren. Allerdings lassen Portalsysteme hinsichtlich praktischer CMS Anforderungen wie z.B. der CI/CD gerechten Layout-Umsetzung oder Versionierung oft Fragen offen. Ihre Stärken liegen eher in der leichten Anpassbarkeit per Drag & Drop sowie Personalisierung oder auch in der Integration von verschiedenen Datenquellen zur Laufzeit.
contentXXL wurde dagegen von Anfang an als dynamisches Business Content Management System konzipiert. Der aktuelle Stand der Komponententechnologie ermöglicht es, allen klassischen CMS Anforderungen zu genügen, ohne auf die Vorteile der Portaltechnologie zu verzichten.

Abb.: Module werden per Drag & Drop im browserbasierten Sitemanager platziert
Einheitliches Objektmodell
Das hierarchisch aufgebaute Objektmodell beginnt – von oben nach unten - mit Portalen. Dies sind logisch vollständig getrennte Websites innerhalb einer gemeinsamen Installation bzw. Datenbank. Bei Bedarf können diese Portale jedoch auch Gestaltungsrichtlinien (Template-Sharing) oder Inhalte (Content-Sharing) gemeinsam benutzen. Dies ist sehr nützlich bei der Realisierung von Auftritten für Firmengruppen, lokale Niederlassungen oder Verbände und Organisationen, die neben Unterschieden oft auch Gemeinsamkeiten aufweisen, z.B. einheitliche Gestaltung bei unterschiedlichen Produktspektrum in verschiedenen Ländern oder ähnlicher Aufbau mit unterschiedlichen Inhalten bei den Gemeinden eines Landkreises.
Hier werden Redundanzen vermieden und die Pflege und Wartung vereinfacht.
Portale bestehen aus Seiten. Seiten werden unter Bezug auf ein Seitentemplate angelegt und über die Angabe einer Elternseite verknüpft. So entsteht am Ende ein Seitenbaum, der über verschiedene enthaltene Navigationskomponenten für Flyouts, Multilevel-Navigationen und Pfadnavigationen flexibel dargestellt werden kann. Seitentemplates, die den Aufbau der später dynamisch erzeugten Webseiten bestimmen – z.B. 3-spaltig mit Kopf- und Fußzeile - sind natürlich auch wieder User Controls. Dadurch stehen dem Entwickler alle Möglichkeiten von ASP.NET zur dynamischen Variation von Inhalt und Gestaltung, z.B. beim Load-Event, zur Verfügung, z.B. für Personalisierungen auf Benutzer-, Rollen- oder Sprachebene oder auch zur Anpassung der Ausgaben für verschiedene Geräte bzw. Browser.
Beim Aufruf einer Seite werden Module dynamisch in das Seitentemplate geladen. Module sind nicht an eine Seite gebunden, sie können auch mehrfach auf verschiedenen Seiten platziert werden z.B. ein Login-Modul oder eine Suche auf allen Seiten eines Extranets oder ein Banner auf Seiten mit einem bestimmten Thema. Module können auch portalübergreifend verwendet werden, z.B. ein Modul „Corporate News“ für die Websites aller Niederlassungen. Grundsätzlich können Module natürlich beliebige Funktionen realisieren, z.B. ein Forum. Häufig stellen Module jedoch eine Liste von Objekten zur Verfügung, z.B. Links oder Mitteilungen. Diese Objekte existieren unabhängig von den Modulen im System und können manuell oder über frei definierbare Veröffentlichungsregeln für bestimmte Zeiträume in verschiedene Module veröffentlicht werden, z.B. für einige Tage auf die Startseite, für einige Monate in einen Themenbereich und parallel dazu zeitlich unbefristet in ein Archiv.
Objekte mit Sprachvarianten und Versionen
Die nächste Stufe der Hierarchie sind die Sprachvarianten der Objekte. Jedes Objekt kann in mehreren Sprachvarianten, z.B. englisch, deutsch und französisch vorliegen. Wird vom Besucher der Website automatisch (z.B. über die Browsersprache) oder manuell (z.B. über Flaggensymbole oder URL) eine Sprache gewählt, werden die Objekte damit aufgefordert, die gewünschte Sprachvariante darzustellen. Ist diese (noch) nicht vorhanden, können einzelne Objekte ersatzweise auch in einer Standardsprache (in der Praxis meist englisch) dargestellt werden. Das ermöglicht ein „Language Fallback“ auf Objektebene. Strukturell identische mehrsprachige Websites, z.B. eu.shuttle.com lassen sich so besonders einfach pflegen. Für strukturell unterschiedliche Sites, z.B. www.prominent.com, bietet das Content-Sharing auf verschiedenen Ebenen (Seite, Modul, Objekt) ebenfalls vielfältige Lösungsansätze.
Sprachvarianten von Objekten können in verschiedenen Versionen vorliegen. Das ermöglicht es dem Editor, bei Änderungen eine neue Version eines Objektes anzulegen, diese zu bearbeiten und über einen Workflow bzw. operativ über die Vergabe von Aufgaben freigeben zu lassen, während die vorige Version noch auf der Webseite zu sehen ist.

Abb.: Die contentXXL Objekthierarchie ermöglicht die einheitliche Handhabung verschiedener Objekttypen wie Mitteilungen, Kontakte oder Dokumente durch ein übergreifendes Framework
Objekte gliedern und in Beziehung setzen
Da contentXXL keine an sich bedeutungslosen Textfragmente sondern konkrete Objekte wie eine Pressemitteilung oder einen Kontakt verwaltet, liegt es nahe, diese nach Ordnungskriterien zu gliedern (Taxonomien wie z.B. Organisationsstruktur, Leistungsangebot, Produktportfolio) oder zwischen diesen Objekten eine inhaltliche Beziehung auf einer semantischen Ebene herzustellen (Ontologien). So könnte beispielsweise einem Produkt oder einer Leistung ein Kontakt als Anprechpartner (Beziehungstyp), weitere verwandte Produkte, Informationen zu Anwendungen und Referenzen, Dokumente zum Download sowie weiterführende Links zugeordnet werden. Die Zuordnung erfolgt sprachübergreifend auf Objektebene entweder automatisch über ein Kategoriesystem oder auch manuell per Drag und Drop – und zwar völlig unabhängig von der konkreten Darstellung auf einer Webseite. So entsteht über den inhaltlichen Zusammenhang ein dichtes Netz an Informationen.
Die Verknüpfung der Objekte folgt der Philosopie der Topic Maps. Somit kann beispielsweise nicht nur einfach eine Verbindung zwischen einer Mitteilung und einem Kontakt hergestellt werden, sondern auch die Art der Beziehung (z.B. „ist Autor von“ oder „ist Ansprechpartner für“) kann abgebildet werden. Die Beziehungen können als XTM-Datei nach ISO13250 ausgegeben und grafisch visualisiert werden.
Die Darstellung der verwandten Inhalte erfolgt flexibel gestaltbar über Templates. Der aktuelle Status der Veröffentlichung oder auch die Zugriffsrechte werden dabei automatisch berücksichtigt. Wird die Veröffentlichung eines Dokumentes aufgehoben oder der aktuelle Benutzer hat entsprechend seiner Rolle keine Leserechte für das Objekt, dass entfällt es einfach in der Darstellung. Änderungen des Objektes erfolgen an einer zentralen Stelle, z.B. für einen Kontakt idealerweise im Active Directory. Die beschriebene Funktionalität steht über die API auch für selbst programmierte Module zur Verfügung. Spezielle Anwendungen sind z.B. alternative Navigationen nach Lebenslagen und Behördenwegweiser im Bereich e-Government aber letztlich natürlich auch jede Darstellung von Produkten und Leistungen eines Unternehmens.
Topic Maps
Topic Maps bieten eine Möglichkeit, auf der Basis eines etablierten Standards Informationsfragmente in Zusammenhang zu stellen und diese so zu Wissen zu organisieren. Gegenüber einem klassischen Index – einer meist alphabetischen Liste von Themen (Topics) und Verweisen auf deren Vorkommen (Occurences) - bieten Topic Maps eine umfassendere Sicht auf die inhaltlichen Zusammenhänge (Associations) der einzelnen Themen unter Beachtung von Beziehungstypen und –rollen (Association Types and Roles) sowie Sichtweisen (Scopes).

Abb. 3: Der inhaltliche Zusammenhang der einzelnen Objekte liefert zusätzliche Navigationen
Kategorienavigation
contentXXL Objekten - auch jenen, die selbst programmiert wurden - können mehrsprachige Kategorien aus einer Baumstruktur zugeordnet werden. Diese Baumstruktur oder Taxonomie kann als Navigation visualisiert oder auch „flachgeklopft“ als A-Z Index angeboten werden. Die einzelnen Einträge erzeugen dann unter Beachtung von Sprache, Veröffentlichungsstatus und Zugriffsrechten als Treffermenge alle Objekte, denen die jeweilige Kategorie zugeordnet wurde. So lassen sich beispielsweise Produktsystematiken oder Lebenslagen (Behördenwegweiser) einfach pflegen und darstellen.
Out-of-the-box Komponenten
Das Grundsystem beinhaltet die Funktionen des Content Management Frameworks und zahlreiche Module, die für die Realisierung einer typischen Website häufig benötigt werden.
Die folgenden Komponenten sind enthalten:
- Webmenü, Mutilevel-Navigation, Pfadnavigation, Sitemap
- Newsmodul für Ankündigungen und Mitteilungen ermöglicht verschiedene Darstellungen,
- Kommentarfunktion, Weiterempfehlung und Bewertung für Inhaltsobjekte sowie weitere Web 2.0 Funktionen
- Kontaktmodul für Adressdaten von Personen und Einrichtungen, A-Z Register, Suche usw.
- Linkmodul zur Veröffentlichung und Zuordnung von internen und externen Links
- HTML-Modul für unstrukturierte Inhalte, z.B. Banner
- Newsletter Manager für Erstellung, Verwaltung und Versand von Newslettern in verschiedenen Formaten
- Kategoriemodul zur Herstellung von Beziehungen zwischen verschiedenen Inhalten und dem Aufbau von
- Stichwortverzeichnissen (A-Z) sowie alternativen Navigationen
- Volltextsuche
- Loginmodul zur Anmeldung für geschlossene Benutzergruppen im Intranet oder Extranet optional mit
- Active Directory Integration
- Formularmodul zur einfachen Erstellung webbasierter Mail-Formulare mit Validierung, Sicherheitsabfragen (Capcha).
Das Grundsystem kann mit folgenden Premiummodulen erweitert werden:
- Dokumentenmodul zur zeitgesteuerten Veröffentlichung von Dateien mit Metainformationen, Volltextsuche und Filterfunktion
- Eventmodul für Termine und Veranstaltungen mit Kalenderfunktion, Rubriken und Volltextsuche
- Produktkatalog / Shop mit Warenkorb- und Bestellfunktion
- Forummodul auch als Kommentarfunktion
- Filebox zur Darstellung von Datei-Verzeichnissen
- Bildergalerie zur einfachen Bereitstellung von Bilderserien mit automatischer Berechnung mehrerer
- Bildgrößen und Diashow Template
- Umfragemodul zur Erstellung und Durchführung von Umfragen und Bewertungen
- XML Modul zur Darstellung externer XML-Datenquellen über XSLT
- Active Directory Connector zum Abgleich der Benutzerdaten und Rollen
- SharePoint Connector zur optimalen Zusammenarbeit mit SharePoint über Webservices
- Cache Sync für Installationen mit Load Balancing
Alle Komponenten arbeiten eng zusammen, d.h. das Forum kann zum Kommentieren von Mitteilungen verwendet werden, das Umfragemodul zur Bewertung von Produkten usw.
Über die hier genannten Komponenten hinaus sind auch brachenspezifische Module wie z.B. City-Directory, Gastgeberverzeichnis oder Behördenwegweiser verfügbar. Die genannten Module sind aus Intranet- bzw. Internetprojekten im Bereich e-Government entstanden.
Schlanke Architektur
Bei der Entwicklung von contentXXL setzten die Entwickler ohne Altlasten und Technologiemix auf das Potential von Microsoft Windows Server, ASP.NET und SQL Server. Die Verwaltung der Daten erfolgt im Microsoft SQL Server 2000, Ressourcen wie Grafiken oder Dateien werden im Dateisystem gespeichert und über die Datenbank verwaltet. Der Datenzugriff erfolgt über flexibel anpassbare ASP.NET Formulare per ADO.NET. Die im Content Management Framework zusammengefasste Business Logik wird über eine API zur Verfügung gestellt.
Module können dieses Framework zur Verwaltung von Inhalten benutzen. Inhalte können über Webservices importiert bzw. exportiert werden.
Ford – der Präsident oder das Auto?
contentXXL beinhaltet bereits im Grundsystem eine Volltextsuche auf Objektebene, d.h. es wird nicht einfach nur ermittelt, ob das Wort „Ford“ irgendwo auf einer Seite vorkommt, sondern die Treffer werden gruppiert nach Objekttypen (z.B. Kontakten und Produkten) ausgewiesen. Die Suche kann auf die Besonderheiten der einzelnen Objekttypen eingehen, so dass die Anwender in der Regel schneller die gesuchten Inhalte finden. Die Suche benutzt dafür die (Volltext-) Möglichkeiten des SQL Servers bzw. des Index Servers, d.h. auch Dateien wie Office- und PDF-Dokumente können in die Suche einbezogen werden. Selbst programmierte Module können der Suche ihre Treffer ebenfalls zur Verfügung stellen. Die Treffermenge kann über Templates flexibel gestaltet werden und berücksichtigt den Status der Veröffentlichung, Zugriffsrechte sowie Sprachvariante.
Rechte und Rollen
Die Zugriffsrechte können auf bestimmte Funktionen des Sitemanagers, z.B. Kategoriepflege, beschränkt werden. Darüber hinaus können Rechte auf den Ebenen Seite, Seitenteilbereich (Modul), Objekt (z.B. ein bestimmtes Word-Dokument) und Sprachvariante eines Objektes vergeben werden. Rechte werden in der Praxis meist für Rollen vergeben, aber auch die Vergabe an einzelne Benutzer ist möglich. Bei der Erstellung neuer Inhalte werden die Rechte größtenteils aus dem Zusammenhang vererbt.
Rollen und Rechte können zu Sicherheitsrichtlinien zusammengefasst werden, z.B. „Vertraulich Geschäftsleitung“. Diese Richtlinien werden dann an Objekte gebunden. Bei einer Änderung der Richtlinie werden die Zugriffsrechte automatisch für alle Objekte geändert, die die entsprechende Richtlinie benutzen. Dies ermöglicht die einfache Verwaltung auch von komplexen Rechtesituationen, z.B. in Intranets oder Extranets.
Die Vergabe von Zugriffsrechten auf der Ebene einzelner Objekte lässt interessante Einsatzfälle zu, so entfallen z.B. Objekte einer Liste oder Menüpunkte, auf die der Besucher keinen Lesezugriff, hat automatisch. Die Vergabe von Schreibzugriffen ist nicht an eine spezielle Redakteursrolle gebunden und kann sehr genau definiert werden, z.B. nur für einen Teilbereich einer Webseite. Die Zugehörigkeit der Benutzer zu Rollen kann sich über den Active Directory Connector aus der Mitgliedschaft in Windows Gruppen ergeben. Das Rechtesystem ist erweiterbar und beinhaltet neben Lese- und Schreibrechten auch modulspezifische Rechte wie z.B. „Benutzer darf HTML verwenden“ u.ä.
Templating
Die vollständige Trennung von Inhalten und Gestaltung ist ein wesentliches Leistungsmerkmal jedes CMS. Bei contentXXL wird zwischen Seitentemplates, Modultemplates und Objekttemplates unterschieden.
Seitentemplates beinhalten im wesentlichen die Seitenaufteilung für die spätere Platzierung von Modulen und werden aufgrund des optional enthaltenen Programmcodes am besten direkt in Visual Studio bearbeitet. Modultemplates dienen der typ-übergreifenden Gestaltung von Modulen. Beispielsweise können eine Kontaktliste und ein Mitteilungsbereich das gleiche Moduletemplate verwenden. Das erleichtert die Implementierung einheitlicher Gestaltungsrichtlinien hinsichtlich Geometrie und Farbgebung erheblich.
Objekttemplates beschreiben die Darstellung jeweils eines einzelnen Objektes - z.B. eines Kontaktes - in den verschiedenen möglichen Ansichten wie Listenansicht, Detailansicht, Druckansicht, Trefferliste bei Volltextsuche usw.
contentXXL beinhaltet einen browserbasierten Template Manager mit wahlweise WYSIWYG oder HTML-Ansicht zur Bearbeitung von Styles, Modultemplates und Objekttemplates. Verfügbare Platzhalter werden automatisch angezeigt und im Quellcode hervorgehoben. Die Platzhalter betreffen zum einen Attribute, d.h. Informationen wir z.B. Autor, Titel, Vorschautext aber auch Funktionen wie z.B. den Link auf die Einzelansicht eines Objektes [morelink] oder Hinweise auf die aktuell ausgewählte Sprache, den aktuellen Benutzers usw. Logische Ausdrücke gestatten kontextabhängig verschiedene Ausgaben, z.B. „mehr…“ in deutsch und „more…“ in englisch. So können mehrere Sprachen in einem Template behandelt werden.
Bei zahlreichen zu unterstützenden Sprachen gibt es jedoch auch andere Verfahren, wie symbolische Platzhalter oder gar die Verwendung völlig verschiedener Templates. Die WYSIWYG-Ansicht vermittelt einen ersten Eindruck der Darstellung, aber Templater sollten natürlich wissen, wie HTML und Browser funktionieren – programmieren im Sinne von ASP.NET müssen sie jedoch nicht. Interessant für Entwickler ist die Möglichkeit, eigene Platzhalter für entsprechende ASP.NET Codefragmente zu definieren.

Abb.: Templates beinhalten das HTML-Design und Platzhalter
Die so erstellten Templates werden in der Datenbank verwaltet und vom System bei Bedarf als komplette ASP.NET Templates (*.ascx) in das Dateisystem generiert. Dabei werden die symbolischen Platzhalter wie z.B. [author] oder [morelink] durch die entsprechenden Databinder ersetzt.
Das folgende Statement in der Quelldatei (*.ascx)
/datalist>
wird über Code-Behind im Content Management Framework abgearbeitet:
…
contacts.itemtemplate = page.loadtemplate(mytemplatepath)
contacts.datasource = contentxxl.contacts.getcontactsbymoduleid(10)
contacts.databind()
…
Das contentXXL Template zur Listenformatierung kann beispielsweise so aussehen:
Es wird in den folgenden Databinder (template.ascx) umgesetzt:
Und es ergibt die folgende Ausgabe:

Während contentXXL intern bisher ausschließlich mit Steuerelementen vom Typ Datalist arbeitete, können ab Version 2.6 jetzt auch Repeater verwendet werden. Damit können nun auch tabellenlose Layouts im Sinne der insbesondere im Bereich e-Government empfohlenen Barrierefreiheit erzeugt werden. Auch die Verwendung variabler Schriftgrößen sowie die Ausgabe einer alternativen Textversion für spezielle Lesegeräte sind möglich. Aufeinander abgestimmte Templates und Moduleinstellungen können zu Sets zusammengefasst werden. Dies ermöglicht die einfache Konfiguration von Modulen mit einem Mausklick.

Abb.: Aus den Templates generiert contentXXL automatisch ASP.NET Code
Medienmanagement im Browser
Benötigte Dateien wie z.B. Grafiken oder Dokumente verwaltet der Benutzer in einem komfortablen Ressourcen Manager. Diese Medienverwaltung vereinfacht das Management der Ressourcen durch die Vergabe von Metadaten, die automatische Bereitstellung von Vorschaubildern, eine integrierte Volltextsuche sowie einen detaillierten Verwendungsnachweis für jede Ressource. In Verwendung befindliche Ressourcen können – ohne Fehler auf der Webseite zu erzeugen - in andere Verzeichnisse verschoben werden, ein unbeabsichtigtes Löschen wird verhindert. Ein einfach zu bedienender browserbasierter Bildeditor ist enthalten. Die Verwendung von Skripts für komplexere Bildoperationen wird unterstützt. Externe Mediendatenbanken können eingebunden werden.
Optimierung für Suchmaschinen
Was nützt das beste Content Management System, wenn die damit verwalteten Seiten nicht mehr so gut in Suchmaschinen gefunden werden, wie die bisher manuell editierten statischen HTML Seiten. contentXXL arbeitet deshalb durchgehend mit suchmaschinen-freundlichen URLs, Sonderzeichen und Parameter, die auf eine dynamische Herkunft der Daten hindeuten, z.B. xyz.aspx?tabid=123, werden konsequent vermieden. So kann jeder Zustand einer Seite, beispielsweise die Einzelansicht eines Kontaktes direkt adressiert werden. Zusätzlich können auch sprechende URLs vergeben werden. Metainformationen werden automatisch gebildet und können manuell ergänzt werden. Durch die Möglichkeit, Inhalte als RSS Newsfeed zur Verfügung zu stellen, kann die Verlinkung mit anderen Sites erhöht werden. So bestehen alle Voraussetzungen für ein erfolgreiches Ranking der Website.
Aðgangsheimildir
Die Benutzeroberfläche von contentXXL ist komplett über Sprachdateien in Form von XML-Dateien lokalisierbar. In den Formularen vorhandene Labels werden zur Laufzeit mit den Inhalten der Sprachdatei ersetzt und im Hauptspeicher zwischengespeichert. So kann die Sprache der browserbasierten Anwendung zur Laufzeit einfach gewechselt werden. Diese Lokalisierungsschnittstelle kann auch in selbst programmierten Modulen verwendet werden. contentXXL Solutionpartner in Island nutzen dies bereits: „Aðgangsheimildir“ heißt nämlich nichts anderes als „Zugriffsrechte“.
Skalierbarkeit und Caching
Die beschriebene Funktionalität wirft natürlich die Frage nach der Performance auf. Der dynamische Zusammenbau einer Webseite aus zahllosen Komponenten unter Beachtung aller Optionen wie Verfügbarkeit der gewünschten Sprachvariante, Status der Veröffentlichung und Zugriffsrechten würde zumindest bei höheren Zugriffszahlen die Datenbank sehr beanspruchen. Deshalb werden einmal abgefragte Datasets im Hauptspeicher gehalten. Darüber hinaus ist es möglich, komplette generierte Seiten für eine bestimmte Zeit im Speicher zu halten (ASP.NET Page Caching). Ein Cache Dependency Management sorgt dafür, dass bei redaktionellen oder administrativen Änderungen die betroffenen Objekte aus dem Cache entfernt werden.
Diese Verfahrensweise ist besonders bei einer großen Anzahl anonymer Besucher sinnvoll, deren Aktivitäten sich auf bestimmte Bereiche konzentrieren. Wie eu.shuttle.com zeigt, lassen sich so einige Millionen PIs (Page Impressions) / Monat mit verhältnismäßig geringem Hardwareeinsatz mühelos verkraften. Bei höheren Leistungsanforderungen oder zur besseren Ausfallsicherheit kann contentXXL auch im Cluster betrieben werden.
Einfach zusammenarbeiten
Ein Schwerpunkt wurde bei contentXXL auf die einfache Zusammenarbeit und Integration von aktuellen Microsoft-Lösungen gelegt. So sind Connectoren für Active Directory und Windows SharePoint Services verfügbar.
Mit dem SharePoint Connector können contentXXL Inhalte in SharePoint oder auch umgekehrt SharePoint Inhalte im CMS dargestellt werden. Auch ein Import von Inhalten, beispielsweise aus einer SharePoint Dokumentenbibliothek, über Webservices ist möglich. So kann beispielsweise Microsoft Infopath zur Datenpflege für das Internet direkt in einem SharePoint Web eingesetzt werden. Basierend auf dem SharePoint Eventhandler kann die Aktualisierung im CMS bei Änderungen automatisch erfolgen. Grundlage der Connectoren ist eine generalisierte Webservice Schnittstelle, die den Import und Export von Inhalten über Webservices inklusive beliebiger serverseitiger XSLT Transformationen ermöglicht. Der Webservices Layer wird auch zur Bereitstellung von Inhalten als RSS Newsfeed verwendet. Diese Schnittstelle ist offen für eigene Assemblies zur Integration weiterer Systeme
Fazit
Die angebotenen Features decken einen hohen Prozentsatz von in Ausschreibungen häufig geforderten Leistungsmerkmalen „out-of-the-box“ ab. Insbesondere mehrsprachige Websites mit mehreren Mandanten für mittelständische Unternehmen, Kommunen und Verbände können schnell, sicher und kostengünstig erstellt und betrieben werden. Die Entwickler können sich auf die kundenspezifischen Erweiterungen und die Systemintegration konzentrieren.
contentXXL ist zertifiziert für Windows Server 2003 und Webservices / .NET Connected.
contentXXL wird auf CPU-Basis lizenziert. Im Unternehmen können mit einer Lizenz beliebig viele Websites mit einer unbegrenzten Anzahl von Sprachen und Benutzern betrieben werden. Die Kosten für das Grundsystem betragen 4.500 €. contentXXL ist bei zahlreichen mittelständischen Unternehmen, Kommunen und Verbänden im Einsatz.
Portamundi bietet als Microsoft Certified Partner ein umfassendes Programm für Solution- und Vertriebspartner wie Agenturen und Systemhäuser an. Das Programm wendet sich insbesondere an Unternehmen, die bereits mit anderen CMS Anbietern zusammenarbeiten und ihr Portfolio angesichts des Erfolges der Technologie am Markt mit einer .NET Lösung abrunden wollen. Der Einstieg in das Partnerprogramm erfolgt in der Regel in Form eines mehrtägigen Workshops mit der gemeinsamen Erstellung eines Prototyps für ein aktuelles Projekt.
Unter www.futureXXL.de können Sie die Arbeit als Redakteur mit contentXXL ohne Registrierung sofort ausprobieren.
Fragen an die Entwickler:
1) Wann und warum fiel die Entscheidung für das .NET Framework? Standen Alternativen zur Diskussion?
Die Entscheidung für .NET fiel bereits anhand der ersten Beta-Versionen des Frameworks. Die technischen Leistungsmerkmale und die Entwicklungsumgebung überzeugten sofort. Java war eine Alternative, schien uns aber weniger geeignet, die anspruchsvollen zeitlichen und finanziellen Vorgaben unserer Zielgruppe zu erreichen. Mit dem Release der .NET Version 1.0 gingen auch die ersten Portale online. Die frühe Entscheidung für .NET und die damit verbundene inzwischen langjährige Projekterfahrung mit der Lösung bildet die Basis unseres heutigen Erfolges.
2) Wie hat das .NET Framework die Entwicklung positiv beeinflusst? Was waren die größten Hindernisse, die überwunden werden mussten?
Das Denken in Komponenten hat die Architektur und Benutzeroberfläche der Anwendung nachhaltig beeinflusst, so konnten wir als erste ein Drag & Drop von Komponenten WYSIWYG im Browser anbieten. Das größte Problem zu Anfang war, dass es keine Erfahrungen im Betrieb von komplexen .NET Anwendungen gab, auf die man hätte zurückgreifen können. Das hat sich aber mit der rasch wachsenden Community schnell geändert. Die schwierigste Umstellung war nicht der Schritt von Active Server Pages in VB Skript auf ASP.NET in VB.NET und C#, sondern der Schritt von Spagetticode auf objektorientierte Programmierung.
3) Wurden bei der Umsetzung Schwachstellen im .NET Framework deutlich oder gibt es Dinge, die Microsoft hätte anders oder besser lösen können?
Technische Probleme konnten schnell gelöst oder umgangen werden. Natürlich hätten uns die jetzt mit der angekündigten Version 2.0 zur Verfügung gestellten Leistungsmerkmale wie Seitentemplates oder Personalisierung damals sehr geholfen. Problematisch war für uns die Anfangs recht unklare Positionierung von .NET durch Microsoft. Das hat unsere Kunden verunsichert. Inzwischen ist das kein Problem mehr – im Gegenteil: zahlreiche Kunden kommen, weil sie sich bereits für .NET als Technologie entschieden haben und ein dazu passendes CMS suchen.
4) Wieso erfolgte die Entscheidung zunächst für Visual Basic und welche Eigenschaften der Sprache sprachen für die Entscheidung?
Wir versprachen uns von der Entwicklung in VB.NET einen leichteren Umstieg vom vertrauten VB Skript – ein Irrtum wie sich später herausstellte. Die Probleme lagen eher in der objektorientierten Denkweise und Programmierung. Heute wird zunehmend C# eingesetzt. Bisher ergaben sich aus der Mischung beider Sprachen keine praktischen Probleme.
5) Wie sieht die Zukunft des Projekts aus? Gibt es bereits Überlegungen das .NET Framework 2.0 zu nutzen?
Für die neue Framework Version sind insbesondere die Anwendungen gut vorbereitet, die bereits bisher stark komponentenorientiert aufgebaut sind. So können wir den neuen Standard für Drag & Drop von Komponenten im Browser problemlos nutzen, weil die Anwendung bereits heute so arbeitet. Insgesamt überwiegen aber die inhaltlichen Ziele der Weiterentwicklung gegenüber den technologischen. Hier definieren wir die Schwerpunkte gemeinsam mit unseren Solutionpartnern, die das System in ihren Projekten erfolgreich einsetzen.