Orchard (CMS)
# Orchard (CMS)

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.

## 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

| Version | Veröffentlichung |
| - | - |
| Zukünftige Version: 1.11 | angekündigt für das 4. Quartal 2016 |
| Aktuelle Version: 1.10.1 | 11. Mai 2016 |
| Ältere Version; nicht mehr unterstützt: 1.10 | 18. März 2015 |
| Aktuelle Version: 1.9.3 | 1. Februar 2016 |
| Ältere Version; nicht mehr unterstützt: 1.9.2 | 15. Oktober 2015 |
| Ältere Version; nicht mehr unterstützt: 1.9.1 | 30. Juni 2015 |
| Ältere Version; nicht mehr unterstützt: 1.9 | 5. Mai 2015 |
| Aktuelle Version: 1.8.2 | 5. Mai 2015 |
| Ältere Version; nicht mehr unterstützt: 1.8 | 28. März 2014 |
| Ältere Version; nicht mehr unterstützt: 1.7 | 30. Juli 2013 |
| Ältere Version; nicht mehr unterstützt: 1.6 | 27. Oktober 2012 |
| Ältere Version; nicht mehr unterstützt: 1.5 | 18. Juli 2012 |
| Ältere Version; nicht mehr unterstützt: 1.4 | 1. März 2012 |
| Ältere Version; nicht mehr unterstützt: 1.3 | 4. Oktober 2011 |
| Ältere Version; nicht mehr unterstützt: 1.2 | 13. Juni 2011 |
| Ältere Version; nicht mehr unterstützt: 1.1 | 11. April 2011 |
| Ältere Version; nicht mehr unterstützt: 1.0 | 17. Januar 2011 |
| Ältere Version; nicht mehr unterstützt: 0.8 (Beta) | 25. Oktober 2010 |
| Ältere Version; nicht mehr unterstützt: 0.5 (Beta) | 2. August 2010 |
| Legende:Alte VersionÄltere Version; noch unterstütztAktuelle VersionAktuelle VorabversionZukünftige Version ||

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

