Zwei Betriebsarten

Das Fiona-7-Gem kann in zwei Modi betrieben werden, „legacy“ und „standalone“. Wenn man eine bestehende RailsConnector- oder FionaConnector-Applikation zu Fiona 7 migrieren möchte, sollte der Legacy-Modus verwendet werden. Auch bei einer neuen Rails-Applikation kann der Legacy-Modus nützlich sein, beispielsweise, wenn sie mit einer bestehenden Fiona-Instanz betrieben werden soll.

Der Standalone-Modus ist für neue Rails-Anwendungen konzipiert, die mit einer anfänglich leeren Instanz betrieben werden. Dieser Modus bietet die höchstmögliche Kompatibilität mit Scrivito, wodurch die Entwicklung der Anwendung nahezu denselben Mustern folgt wie bei einer Scrivito-Anwendung.

Unterschiede zwischen “Legacy" und “Standalone"

Anders als im Standalone-Modus können im Legacy-Modus der RailsConnector und der FionaConnector gemischt betrieben werden.

Wenn man eine bestehende RailsConnector- oder FionaConnector-Applikation um das Fiona-7-Gem im Legacy-Modus erweitert, dann ändert sich das Verhalten der Applikation erst einmal nicht. Die Applikation kann dann Schritt für Schritt auf Fiona 7 umgestellt werden. Dadurch ist es zum Beispiel möglich, Fiona-7-Funktionalität zu nutzen und nach und nach Bearbeitungselemente („edit marker“) durch In-Place-Editing zu ersetzen. Zusätzlich können die bestehenden Vorlagen und Attribute mit der neuen Technik bearbeitet und verwendet werden.

Im Standalone-Modus werden Attributnamen um den Namen der Vorlage erweitert, in der sie verwendet werden. Dadurch ist es möglich, Attribute wie bei Scrivito zu verwenden: individuell (mit jeweils individuellem Typ) je Vorlage. Als ein Nebeneffekt müssen Attribute wie „title_navigation“ für jede Vorlage angelegt werden, in der sie benötigt werden, obwohl alle denselben Typ haben.

Für Software-Entwickler ist es wichtig zu wissen, dass APIs wie „fiona7_tag“ und „fiona7_tag_list“ nur im Legacy-Modus verfügbar sind.

Technischer Hintergrund

Die Wahl zwischen dem Legacy- und Standalone-Modus entscheidet darüber, ob der RailsConnector oder Fiona 7 die führende Rolle in der Applikation spielt.

Es gibt drei funktionelle Aspekte der Applikation, die von der gewählten Komponente abhängen:

  1. Eine globale Klasse „Obj“
  2. Ein globaler „CmsController“
  3. Die Routen „/:id/:name“ und „/:permalink“

Im Legacy-Modus wird davon ausgegangen, dass „Obj“ von „RailsConnector::BasicObj“ erbt und „CmsController“ von „RailsConnector::DefaultCmsController“. Ferner werden die Routen „/:id/:name“ und „/:permalink“ vom RailsConnector bedient. Demzufolge hat die Anbindung von Fiona 7 an eine bestehende Applikation erst einmal keinen (negativen) Effekt hat – alles bleibt, wie es war.

Im Standalone-Modus dagegen übernimmt Fiona 7 vollständig die Kontrolle und schaltet den RailsConnector weitestgehend aus.

Die globale Klasse „Obj“ legt auch fest, was mit der Instanzvariablen „@obj“ geschieht: im Legacy-Modus ist dies ein gewöhnliches RailsConnector-Objekt, im Standalone-Modus ist „@obj“ eine Instanz von „Scrivito::BasicObj“.