{"id":876,"date":"2022-01-04T11:51:35","date_gmt":"2022-01-04T10:51:35","guid":{"rendered":"https:\/\/informatik.htwk-leipzig.de\/seminar\/?p=876"},"modified":"2022-04-09T22:22:51","modified_gmt":"2022-04-09T20:22:51","slug":"optimizely-cms","status":"publish","type":"post","link":"https:\/\/informatik.htwk-leipzig.de\/seminar\/lehrveranstaltungen\/betriebliche-informationssysteme\/2022\/optimizely-cms\/","title":{"rendered":"Optimizely CMS"},"content":{"rendered":"<p>Ein propriet\u00e4res CMS auf Basis des .NET Frameworks.<\/p>\n<p><!--more--><\/p>\n<h1>Was ist ein CMS?<\/h1>\n<p>In den Urspr\u00fcngen des Web wurden Websites durch die Ablage von statischen HTML-Dateien auf einem Webserver erweitert. Bei zunehmender Komplexit\u00e4t dieser Sites wurde dieses Vorgehen immer zeitintensiver, da sich Inhalte \u00fcber mehrere Seiten verteilen k\u00f6nnen. Zus\u00e4tzlich war es notwendig, dass ein Entwickler die \u00c4nderungen an den Dateien vornahm und auf dem Webserver aktualisierte. Die Inhalte konnten also nicht ausschlie\u00dflich durch die Redakteure verwaltet werden.<\/p>\n<p>Um die Aufw\u00e4nde in der Entwicklung zu reduzieren, wurden Web Application Frameworks eingef\u00fchrt, welche Anfragen an den Webserver abfangen und eine dynamisch erzeugte Antwort zur\u00fcckgeben.\u00a0 Die Antwort wird dabei durch den Quellcode der im Framework definierten Programmiersprache bestimmt.<\/p>\n<p>Aufbauend auf diesen Frameworks sollen <em>Content-Management-Systeme<\/em> (kurz CMS) die Inhalte einer Website durch den Redakteur bearbeitbar machen. Diese begr\u00fcndet die Definition von <em>Content-Management<\/em>:<\/p>\n<blockquote cite=\"1\"><p>Inhalt und Inhaltsverwaltung; gemeint sind die Konzepte und Hilfsmittel zur automatisierten Verwaltung und Pr\u00e4sentation von Dokumenten sowie anderen Inhalten im Internet und Intranet; angestrebt wird vor allem eine Kontrolle der Aktualit\u00e4t [\u2026]<\/p><\/blockquote>\n<p>Des Weiteren ist eine Definition von <em>System<\/em> notwendig, um den Begriff\u00a0Content-Management-System vollst\u00e4ndig zu beschreiben:<\/p>\n<blockquote><p>[&#8230;] Summe aller Hardware- und Software-Komponenten einer Datenverarbeitungsanlage aus der Sicht ihres Zusammenwirkens.<\/p><\/blockquote>\n<h1>Was ist Optimizely?<\/h1>\n<p>Optimizely ist eine Experimentation-Plattform, also einen Dienst zur Optimierung einer Website. M\u00f6gliche Angebote der Plattform sind unter anderem A\/B-Testing oder multivariates Tests. Diese Dienstleistungen wurden 2020 um das Software-Angebot des Episervers erg\u00e4nzt. Seitdem werden folgende Produkte und Dienstleistungen unter der gemeinsamen Marke als Software-as-a-Service angeboten:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Content<\/li>\n<li>E-Commerce<\/li>\n<li>E-Mail-Marketing<\/li>\n<li>Optimierung<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Hier wird Content, also\u00a0das Optimizely CMS als Produkt genauer betrachtet, welches die Funktionalit\u00e4t zum Content-Management beinhaltet.<\/p>\n<h2>Was ist Optimizely CMS?<\/h2>\n<p>Die Features des Optimizely CMS oder dem Software-as-a-Service Angebot Optimizely Content Cloud\u00a0lassen sich in zwei Gruppen unterscheiden. F\u00fcr den Redakteur relevante Managementfunktionen sowie Technologien, welche f\u00fcr den Entwickler interessant sind.<\/p>\n<ul>\n<li>Management\n<ul>\n<li>Approval Workflows<\/li>\n<li>Content-Management<\/li>\n<li>Media Management<\/li>\n<li>Authoring &amp; Layout<\/li>\n<\/ul>\n<\/li>\n<li>Technologie\n<ul>\n<li>Azure Hosting<\/li>\n<li>Search &amp; Navigation<\/li>\n<li>Headless<\/li>\n<li>Projektmanagement<\/li>\n<li>Integriertes A\/B Testing<\/li>\n<li>Targeting<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Besonders hervorzuheben ist die\u00a0Authoring &amp; Layout \u00a0Managementfunktion. Diese erm\u00f6glicht es, neben der textuellen und medialen Verwaltung von Inhalt, auch Layouts und dessen Bef\u00fcllung durch einen Redakteur in einen\u00a0WYSIWYG-Editor vorzunehmen. Des Weiteren ist als technologisches Feature noch die Headless-Funktion zu betrachten, welche neben einer traditionellen Ausgabe als HTML auch eine Ausgabe als JSON bieten, z.\u00a0B. zur Pr\u00e4sentation in einer Single-Page Application.<\/p>\n<p>Die anderen in der Liste \u00a0dargestellten Features sind eine von Optimizely getroffene Auswahl, der wichtigeren Funktionen des CMS. In der tats\u00e4chlichen Software sind folglich noch weitere Optionen verf\u00fcgbar.<\/p>\n<h2>Der Optimizely Technologie-Stack<\/h2>\n<p>Die folgenden Technologien werden im Technologie-Stack genutzt<br \/>\nund sind f\u00fcr die Entwicklung relevant:<\/p>\n<ul>\n<li>HTML und CSS<\/li>\n<li>C#<\/li>\n<li>ASP.NET Core<\/li>\n<li>Microsoft Visual Studio<\/li>\n<li>NuGet<\/li>\n<li>Microsoft SQL Server<\/li>\n<\/ul>\n<h2>Einordnung in die CMS-Landschaft<\/h2>\n<p>Das Konzept der Content-Management-Systeme ist eines der verbreitetsten im Bereich des Web. Dementsprechend gibt es eine gro\u00dfe Anzahl an Softwareangeboten in diesem Bereich, welche jeweils verschiedene Anforderungen bedienen. Um das Angebot von Optimizely besser einordnen zu k\u00f6nnen, wird hier eine Einsch\u00e4tzung zur Platzierung im Softwaremarkt vorgenommen.<\/p>\n<p>Konkurrenten im Bereich des Content-Managements sind unter anderem Systeme wie Liferay CMS oder SAP Hybris, welche ein Unternehmenssegment bedienen und einen vergleichbaren Funktionsumfang besitzen. Im Gegensatz dazu stehen Systemen wie WordPress, <a href=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/lehrveranstaltungen\/betriebliche-informationssysteme\/2021\/headless-cms-mit-strapi\/\">Strapi<\/a> oder Ghost, die eher an den Verbraucher-Markt gerichtet sind, und weitestgehend keine ganzheitliche L\u00f6sung bieten, sondern eine dominierende Funktion haben z.\u00a0B. Blogging oder Headless.<\/p>\n<h2>Hostingm\u00f6glichkeiten<\/h2>\n<ul>\n<li>Non-Cloud mit IIS und Windows Server<\/li>\n<li>Cloud-based mit <a title=\"Azure Web Apps\" href=\"https:\/\/azure.microsoft.com\/de-de\/services\/app-service\/web\/\">Azure Web Apps<\/a><\/li>\n<li>Cloud-based manged service von Optimizely in der <a title=\"Optimizely Digital Experience Platform (DXC) Service\" href=\"https:\/\/world.optimizely.com\/epiui\/CMS\/~\/link\/5d17930c8cda4653b6d50a78c589a51e.aspx\">Customer-Centric Digital Experience (DXP)<\/a><\/li>\n<li>Containerized hosting z.B. mit <a title=\"Kubernetes\" href=\"https:\/\/kubernetes.io\/de\/\">Kubernetes<\/a><\/li>\n<\/ul>\n<h1>Arbeiten mit Optimizely CMS<\/h1>\n<h2>Getting Started<\/h2>\n<h4>Vorraussetzungen<\/h4>\n<ul>\n<li>npm 6+<\/li>\n<li>Visual Studio 2015+<\/li>\n<li>SQL Server 2016 Express LocalDB (<a href=\"https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-downloads\" rel=\"nofollow\">download here<\/a>)<\/li>\n<\/ul>\n<h4>Setup<\/h4>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li>\u00a0Clone the Solution from <a href=\"https:\/\/github.com\/episerver\/musicfestival-vue-template\" rel=\"nofollow\">Github<\/a><\/li>\n<li>Run\u00a0<code>setup.cmd<\/code><\/li>\n<li>Open\u00a0<code>MusicFestival.Vue.Template.sln<\/code>\u00a0and hit\u00a0<code>Ctrl + F5<\/code>\n<ul>\n<li>Or build with\u00a0<code>build.cmd<\/code>, and set up the site on IIS or run\u00a0<code>site.cmd<\/code>.<\/li>\n<\/ul>\n<\/li>\n<li>Login on\u00a0<code>\/episerver<\/code> with either one of the following credentials:<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><strong>Name:<\/strong> cmsadmin\u00a0 <strong>Password:<\/strong> sparr0wHawk<\/p>\n<h2>On-Page Editing<\/h2>\n<p>Im WYSIWYG-Editor von Optimizely kann das Layout und der Inhalt der Webseite ver\u00e4ndert und angepasst werden. Mit Klicken auf ein editierbares Feld wird eine Eingabezeile ge\u00f6ffnet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1209\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/01\/Animation.gif\" alt=\"\" width=\"822\" height=\"380\" \/><\/p>\n<p>Die \u00c4nderung k\u00f6nnen au\u00dferdem in einer Property-Ansicht der jeweiligen Page oder des jeweiligen Blockes get\u00e4tigt werden. Diese Ansicht gibt au\u00dferdem einen \u00dcberblick \u00fcber alle ver\u00e4nderbaren Felder und andere Bearbeitungsm\u00f6glichkeiten.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1210\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/01\/properties.gif\" alt=\"\" width=\"2561\" height=\"1308\" \/><\/p>\n<p>Die get\u00e4tigten \u00c4nderungen m\u00fcssen dann ver\u00f6ffentlicht werden. Dieser Schritt persistiert die Daten und macht diese in der ausgew\u00e4hlten Umgebung verf\u00fcgbar. Im betrieblichen Umfeld kann hier z.B. eine \u00dcberpr\u00fcfung (Ready for Review) stattfinden.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1211\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/01\/publish.gif\" alt=\"\" width=\"577\" height=\"402\" \/><\/p>\n<h2>Versionskontrolle, Projektmanagement und Analyse<\/h2>\n<p>Die Funktionalit\u00e4t der Projects die Optimizely zur Verf\u00fcgung stellt, \u00e4hnelt dem Branching-Modell aus anderen Versionskontrollsystemen. So wird erm\u00f6glicht das \u00c4nderung nicht direkt am produktiven System gemacht werden m\u00fcssen oder sogar k\u00f6nnen. Das verhindert das Ver\u00f6ffentlichen von fehlerhaften \u00c4nderungen und bietet die M\u00f6glichkeit im Notfall auf \u00e4ltere Versionen zur\u00fcckrollen zu k\u00f6nnen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1212\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/01\/Bild_2022-01-11_130724.png\" alt=\"\" width=\"425\" height=\"274\" \/><\/p>\n<p>Auch f\u00fcr das Projektmanagement bietet das CMS M\u00f6glichkeiten. Im Reiter Tasks k\u00f6nnen je nach Arbeitsschritt Aufgaben (Tasks) angelegt werden, die dann bestimmten Bearbeitern zugeordnet werden k\u00f6nnen. So entsteht ein nachvollziehbarer Workflow, welcher vor allem f\u00fcr die Fehlernachverfolgung sehr hilfreich ist.<\/p>\n<p>Je nach Rolle und Rechten bietet das CMS au\u00dferdem umfangreiche Konfigurationsm\u00f6glichkeiten. Diese reichen von der Anlage neuer, beziehungsweise Bearbeitung bestehender Accounts \u00fcber Logging und Benachrichtigung bis hin zu automatisiertem Testen.<\/p>\n<h1>Quellen<\/h1>\n<dl>\n<dt>P. Fischer und P. Hofer., Lexikon der Informatik., Springer, Berlin, 15., \u00fcberarb. aufl edition, 2011. OCLC: 699729767.<\/dt>\n<dt><a href=\"https:\/\/www.optimizely.com\/de\/unternehmen\/presse\/aus-episerver-wird-optimizely\/\">Aus Episerver wird Optimizely<\/a><\/dt>\n<dt><a href=\"https:\/\/www.optimizely.com\/de\/produkte\/content\/\">Content Cloud<\/a><\/dt>\n<dt><a href=\"https:\/\/world.optimizely.com\/documentation\/developer-guides\/CMS\/learning-path\/developer-prerequisites\/\">Developer prerequisites<\/a><\/dt>\n<dt><a href=\"https:\/\/social.techcrunch.com\/2021\/01\/27\/episerver-rebrands-as-optimizely\/\">Following acquisition, Episerver rebrands as Optimizely<\/a><\/dt>\n<dt><a href=\"https:\/\/world.optimizely.com\/documentation\/developer-guides\/CMS\/learning-path\/deployment\/\">Deployment | Optimizely Developer Community<\/a><\/dt>\n<dt><a href=\"https:\/\/github.com\/episerver\/musicfestival-vue-template\">MusicFestival Vue.js Templates<\/a><\/dt>\n<dt><a href=\"https:\/\/world.optimizely.com\/documentation\/developer-guides\/CMS\/learning-path\/what-is-a-cms\/\">What is a CMS? | Optimizely Developer Community<\/a><\/dt>\n<dt><a href=\"https:\/\/de.wikipedia.org\/w\/index.php?title=Enterprise-Content-Management-System&amp;oldid=215250797\">Enterprise-Content-Management-System<\/a><\/dt>\n<dt><a href=\"https:\/\/www.enzyklopaedie-der-wirtschaftsinformatik.de\/lexikon\/is-management\/Systementwicklung\/Management-der-Systementwicklung\/Software-Qualitatsmanagement\/Qualitatsmerkmale-von-Software\/index.html\">Qualit\u00e4tsmerkmale von Software \u2014 Enzyklopaedie der Wirtschaftsinformatik<\/a><\/dt>\n<\/dl>\n","protected":false},"excerpt":{"rendered":"<p>Ein propriet\u00e4res CMS auf Basis des .NET Frameworks.<\/p>\n","protected":false},"author":41,"featured_media":932,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[49,51,50,28,38,47,52,48,46,53],"class_list":["post-876","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-betriebliche-informationssysteme","tag-net","tag-azure","tag-c","tag-cloud","tag-cms","tag-content","tag-headless","tag-management","tag-optimizely","tag-proprietaer"],"_links":{"self":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/comments?post=876"}],"version-history":[{"count":39,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/876\/revisions"}],"predecessor-version":[{"id":1233,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/876\/revisions\/1233"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/media\/932"}],"wp:attachment":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/media?parent=876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/categories?post=876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/tags?post=876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}