Orchard ist ein quelloffenes, auf dem .Net-Framework basierendes Content-Management-Framework und Content-Management-System, das unter dem Dach der Microsoft-Stiftung Outercurve Foundation entwickelt wird.

Das ausgegebene Ziel des Orchard-Projekts ist es, das Erstellen von individuellen .NET-basierten Anwendungen zu ermöglichen, wiederverwendbare Komponenten für diesen Zweck bereitzustellen sowie eine Community um das Projekt aufzubauen.

Technik und Architektur

Orchard wird vollständig in C# für die .NET-Platform entwickelt. Da großer Wert auf höchstmögliche Flexibilität und Erweiterbarkeit gelegt wurde, verfügt Orchard über eine ausgefeilte Architektur, die stark von Dependency Injection Gebrauch macht. Zudem wird auf ASP.NET MVC in Verbund mit der Razor-Syntax anstatt auf klassische ASP.NET Webforms zurückgegriffen. Dies ermöglicht auch die problemlose Erzeugung von validem (X)HTML. Die Verwendung der neuesten Technologien und Funktionen von .NET bedeutet jedoch auch, dass Orchard ab Version 1.8 das .NET Framework in Version 4.5 und als Webserver IIS 7 oder neuer erfordert.

Die Entwickler greifen auf eine ganze Reihe von quelloffenen Bibliotheken zurück, um die Funktionalitäten umzusetzen. Dazu gehören u. a. Autofac als IoC-Container, NHibernate zur Datenbankabstraktion und Lucene.NET zur Integration der Suchfunktion.

Orchard unterstützt in der Grundinstallation zurzeit die Datenbanken Microsoft SQL Server, SQL Server Compact Edition und MySQL beziehungsweise SQL Azure unter Windows Azure.

Unter dem Namen Orchard Core wird zurzeit eine Neuimplementierung des CMS auf Basis von ASP.NET Core entwickelt. Ein Release Candidate soll im September 2017 zur Verfügung stehen.[veraltet]

Erweiterbarkeit

Aufgrund der durchdachten Architektur ist eine Erweiterung Orchards auf verschiedenen Ebenen möglich. Jede Erweiterung ist dabei ein Modul, welches in der Orchard-Gallery veröffentlicht werden kann. Grundsätzlich ist jedes Modul eine ASP.NET-MVC-Anwendung, die eine oder mehrere Arten von Modul-Typen enthalten kann.

Mögliche Arten von Modulen sind:

Themes

Das Erscheinungsbild einer mit Orchard realisierten Website, also Design und Layout, lässt mit sogenannten Themes steuern. Diese enthalten typischerweise CSS-Stylesheets und JavaScript, ASP.NET MVC Razor Templates, die aus HTML und Code in Razor-Syntax bestehen sowie eine Placement.info-Datei, die Informationen darüber bereithält, an welcher Stelle eines Layouts welcher Inhalt angezeigt wird.

Widgets

Orchard bietet die Möglichkeit Widgets zu entwickeln und in die Seite einzubinden. Widgets sind kleine Bausteine, die beispielsweise Schlagwörter zu einem Blog-Post, Twitter-Feeds oder ähnliches anzeigen. Widgets bilden entweder Inhalte auf der Webseite ab oder rüsten Layout-Funktionen nach.

Extension Module

Extension Module enthalten Funktionen, die das CMS im Hintergrund antreiben. Diese haben keinen direkten Einfluss auf das Erscheinungsbild einer Website oder verfügbare Funktionen, sondern stellen grundlegende Methoden zur Verfügung, die in der Regel in den Bereich der Infrastruktur des Systems fallen und durch ein Modul genutzt werden.

Content Module

Content Module sind Erweiterungen, die sowohl die Logik für das Anlegen, Anzeigen und Bearbeiten als auch die nötigen Informationen für die Darstellung von Inhalten bereitstellen.

Versionen

Aus Orchard hervorgegangene Projekte

Bei der Entwicklung von Orchard entstanden sogenannte Clays. Clays sind dynamisch typisierte, hierarchisch aufgebaute C#-Objekte, die gegenüber der ExpandoObject-Klasse des .NET-Frameworks einige Vorteile bieten. In Orchard werden Clays u. a. verwendet, um die Inhalte einer Webseite zu speichern. Da die Entwickler einen allgemeinen Nutzen in dem Konzept von Clays erkannten, entschieden sie sich, Clay auszugliedern und als separates Projekt verfügbar zu machen. Mit Veröffentlichung der Version 1.7 wurde zu Gunsten der Leistung auf die Verwendung von Clay verzichtet.

Lizenz und Unabhängigkeit von Microsoft

Orchard steht unter der New BSD License, kann also ohne Einschränkungen unentgeltlich genutzt, weitervertrieben und geändert werden, ohne dass Änderungen veröffentlicht werden müssen. Der Quellcode ist öffentlich in der Quellcodeverwaltung des Projektes zugänglich.

Zwar wurde das Projekt von Microsoft initiiert und wird aktiv durch Angestellte von Microsoft entwickelt, jedoch liegen die Rechte an dem Projekt bei der Microsoft eigenen, unabhängigen Open-Source-Stiftung Outercurve Foundation.

Eine Beteiligung der Community an der weiteren Entwicklung des Systems ist ausdrücklich erwünscht und wird aktiv unterstützt. Die Kontrolle über das Projekt liegt in den Händen des Orchard Steering Committees, welches sich zurzeit aus fünf Personen zusammensetzt, die durch die Community gewählt wurden. Eines der fünf Mitglieder des Steering Committees ist zurzeit Microsoft-Mitarbeiter.

Literatur

Bücher

  • John Zablocki: Orchard CMS: Up and Running (englisch). O’Reilly & Associates, Sebastopol, CA 2012, ISBN 978-1-4493-2021-8

Artikel

  • Bertrand Le Roy: Orchard CMS: Orchard Extensibility In: MSDN Magazine January 2012, Volume 27, Number 1, S. 56 ff. ISSN 1528-4859

Videotrainings

  • Kevin Kuebler: Orchard Fundamentals (online), Pluralsight, 2011
  • Kevin Kuebler: Advanced Orchard (online), Pluralsight, 2012

Weblinks

  • Orchard Projektwebseite
  • Orchard Entwicklerwebseite
  • Clay Projektwebseite

Einzelnachweise


Question Orchard CMS + Custom module with data access · Issue 2599

GitHub Developing

GitHub An Example of Creating a

Orchard Core

Orchard Core