E-Marketing

E-Marketing

 

Digitales Marketing und Omnichannel Marketing

 

Digital Marketing ist kein neues Wort mehr im Marketing. Doch, was unterscheidet Digital Marketing von Online Marketing? Vielleicht ist die Antwort etwas spitzfindig – aber technologisch erklärbar: denn Digital Marketing nutz sowohl online als auch offline Kanäle. Online Marketing funktioniert nur, wenn es eine aktive Internetverbindung gibt. Unter Digital Marketing fallen demnach auch Email Marketing, Games, E-Books oder Apps, die keine Internetverbindung benötigen.

 

Gerade so gesehen, wird mit dem Begriff digitales Marketing ein Paradigma angesprochen. In unseren Köpfen haben wir viele verschiedene Applikationen mit teilweise ähnlichen Funktionen und unterschiedlichen Schwerpunkten oder Ausrichtungen. Software-Applikationen, welche teilweise die gleichen Daten oder gleichartige Daten in unterschiedlicher Struktur enthalten. Damit die Herausforderungen des digitalen Marketings lösen zu wollen stösst an Grenzen.

 

Dem Begriff Digital Marketing gegenüber hat sich der Begriff Omnichannel Marketing entwickelt. Was bedeutet Omnichannel Marketing und welche Auswirkungen hat diese Entwicklung auf das Marketing und das Unternehmen als Ganzes? Denn mit Omnichannel Marketing sind sämtliche Unternehmensmedien gemeint und angesprochen werden sämtliche Anspruchsgruppen des gesamten Unternehmens, also nicht nur Interessenten und Kunden sondern auch Partner, Mitarbeitende, Lieferanten, Stakeholder und weitere.

 

Omnichannel Marketing bedeutet, dass über alle Kanäle hinweg Informationen zum Unternehmen, zu Produkten, zu Dienstleistungen verfügbar sind und zwar in gleichbleibender Qualität. Auch die kundenspezifischen Informationen sind in allen Kanälen konsistent, sei es in iOS oder Android Apps, im CRM, auf einer Webseite, in einem Blog, im ERP usw.

 

Diese Durchgängigkeit ermöglicht es dann, kanalübergreifende Geschäfts- und Verhaltens-Regeln zu realisieren. Ein wichtiger Faktor für Prognosen, basierend auf der Erkennung von Verhaltensmustern in diversen digitalen Marketing-Kanälen (Flood of Sensor Data-Analysen) ist. Omnichannel Marketing bringt aber nicht nur für das Unternehmen selbst Vorteile, es sorgt auch für ein kanalübergreifendes Kundenerlebnis und eine Multichannnel-Markenführung mit personalisierten Inhalten für Interessenten und Kunden.

 

Das Omnichannel Marketing ist im Zuge der digitalen Transformation ist für viele Unternehmen ein wichtiges Thema geworden. Die eigene Website, mobile Anwendungen und andere Unternehmensmedien wollen gleichzeitig mit Content bedient werden. Inhaltlich und technologisch stellt das viele Unternehmen vor neue Herausforderungen. Es brauch neue Lösungsansätze, die sich von der klassischen Applikationsentwicklung unterscheiden.

 

Omnichannel Marketing betrifft nicht nur die klassischen Marketing- und Werbemassnahmen sondern sämtliche Unternehmensmedien. Mit einem durchgängigen Omnichannel Marketing gehen keine Informationen mehr verloren und Interessenten, Kunden, Partner, Angestellte, Lieferanten – also das gesamte Universum Ihrer Anspruchsgruppen wird einheitlich und umfassend mit Informationen bedient.

  • Erstellen Sie hochwertige Multi-Channel Anwendungen für iOS und Android Apps mit JavaScript aus einer serverlosen Cloud-Plattform
  • Transformieren Sie Interessenten zu Kunden mit Hilfe von personalisierten Inhalten in Multi-Channel Anwendungen
  • Kreieren Sie innovative Oberflächen und überzeugen Sie Ihre Zielgruppen mit einem durchgehenden Auftritt über alle Ihre digitalen Kanäle hinweg.
  • Generieren Sie Prognosen basierend auf der Erkennung von Verhaltensmustern in ihren digitalen Marketing-Kanälen (Flood of Sensor Data-Analysen).
  • Wandeln Sie Kundenerlebnisse in profitable Entscheidungen mit Hilfe von kanalübergreifenden Geschäfts- und Verhaltens-Regeln (ausserhalb einer Applikation).
  • Integrieren Sie die neuen Möglichkeiten des digitalen Marketings in alle Ihre Geschäftsbereiche und in alle Ihre Geschäftsfelder.

 

 

Weitere Informationen zu Produkten finden Sie hier:

(Links)
Progress Sitefinity CMS       das Enterprise CMS System
Digital Experience Cloud    DEC für die Personalisierung von Webinhalten
odoo ERP                              Webseite für digitales Marketing, inklusive e-Shop

Squidex – Headless             schnell implementiert, extrem flexibel und performant

GraphQL:                              mehr über GraphQL API auf unserer Produktseite

Node.js                                  Webanwendungen mit node.js

 

Applikationen

Unter dem Begriff „Digitales Marketing“ versteht man heute meist das Zusammenspiel von verschiedenen Anwendungen. Rund um das Thema digitales Marketing gibt es Applikationen wie:

- CMS                         Content Management Systeme
- CRM                         Customer Relationship Management
- Apps                        native Apps, iOS, Android
- PIM                          Product Information Management
- MAM                                    Media Asset Management
- Shop                        e-Commerce Systeme

- ERP                          Enterprise Ressource Planning System
- Kundendienst        Ein Ticketing-System

- BI Tools                   Business Intelligence Anwendungen

 

Bei Software-Applikationen gibt es einerseits die Entwicklung des „Best in Case“, also Applikationen, die sich auf gewisse Anwendungen spezialisieren. Andererseits aber auch die Entwicklung hin zu generischen Anwendungen, die eine breite, aber nicht sehr tiefe Anwendungsvielfalt bieten. Im Einzelfall mag die eine oder andere Variante die Anforderungen für eine bestimmte Nutzung erfüllen.

 

Im Kontext mit dem Begriff des digitalen Marketings scheinen aber die Probleme im Zusammenspiel von unterschiedlichen Applikationen und im Abgleich von Daten gross zu sein, wenn nicht künftig sogar unüberwindbar.

 

Weshalb? Die Applikationsentwicklung basiert auf den folgenden Komponenten:
- Datenbank mit unterschiedlichen Modellen und Tabellen
- Methoden und Bibliotheken mit Funktionen
- Programmierung von Anwendungen auf Basis relationaler Datenabfragen
- Darstellung der Daten im GUI (grafische Benutzeroberfläche)
Dies entspricht einem geschlossenen Kreislauf von Dateneingabe und Datenausgabe. Zudem können Reports häufig nur in einzelnen Datenbankmodellen realisiert werden. Schon modellübergeifende Statistiken müssen auch innerhalb einer Applikation über eine interne API gelöst werden (ähnlich wie zwischen zwei voneinander getrennten Applikationen).

Einfach gesagt: mittels Programmierung werden Daten aus der Datenbank und aus verschiedenen Modellen für bestimmte Funktionen aufbereitet und zur Verwendung der Darstellung im GUI zur Verfügung gestellt.

 

Gerade vom Marketing sind nun verschiedene Anwendungen betroffen, wie die Liste der Applikationen oben zeigt. Will man Daten aus unterschiedlichen Applikationen zusammenführen oder einem Benutzer im gleichen GUI anzeigen, dann kann dies nur über Schnittstellen gelöst werden.

 

Ein Beispiel – vom Interessenten zum Kunden

 

CMS (Content Management Systeme)
Der Interessent sucht Informationen im Internet und landet auf der Webseite des Unternehmens. Er sieht sich diverse Seiten zu einem Produkt an.

CRM (Customer Relationship Management)
Im CRM des Unternehmens ist dieser Interessent bereits durch einen Telefonkontakt eines Verkäufers erfasst worden. Zu diesem Zeitpunkt war jedoch ein anderes Produkt im Fokus. Der Verkäufe hat Name und Vorname sowie E-Mail und Telefonnummer erfasst sowie den Inhalt des Gesprächs.

Shop (e-Commerce Systeme)
Der Interessent wird auf den Shop aufmerksam und bestellt das Produkt, welches er auf der Webseite gesehen hat. Leider erinnert er sich nicht mehr an das Verkaufsgespräch mit dem Verkäufer, der ihm gesagt hat, dass für seine Anwendung ein anderes Produkt besser geeignet ist. Daher bestellt der Interessent nun ein falsches Produkt. Durch seine Bestellung wird er im ERP System als Kunde angelegt.

ERP (Enterprise Ressource Planning System)
Im ERP gibt es einen neuen Kunden und dazu eine Bestellung. Die Lieferung wird ausgeführt. Das ERP erkennt nicht, dass ein anderes Produkt geeigneter gewesen wäre. Diese Informationen sind im PIM abgelegt.

PIM (Product Information Management)
Das PIM kennt die Informationen und Anwendungsbereiche beider Produkte. Des einen, das der Verkäufer empfohlen hat und dasjenige, welches der Kunde im Shop bestellt hat.

Kundendienst (Ein Ticketing-System)

Der Neukunde beschwert sich beim Kundendienst, dass er das gekaufte Produkt nicht gebrauchen kann. Der Kundendienst nimmt das auf und macht eine Retoure und liefert das richtige Produkt aus. Leider ist der Kundendienst nicht mit dem CRM verknüpft.

CRM (Customer Relationship Management)
Deshalb ruft der Verkäufer beim Kunden an du fragt nach, ob der Interessent immer noch an seiner Produktempfehlung interessiert ist.

So ist vielleicht digitales – aber definitiv kein erfolgreiches Marketing.

 

 

Applikationsentwicklung

Mit einer Applikationsentwicklung werden zugleich Vorteile und Nachteile erschaffen. Je nach Anwendung überwiegen die Vorteile, nämlich dann wenn die Applikation für sich alleine steht und die Daten nicht in anderen Anwendungen zur Verfügung gestellt werden sollen. So können sehr individuelle Anforderungen erfüllt werden. Je spezifische solche Workflows jedoch sind, um so schwieriger ist es, die gespeicherten Daten in Verbindung mit anderen Workflows oder anderen Applikationen zu nutzen. Warum? Weil die Daten im System, der Software nur dann genutzt werden können, wenn Sie über die eigentliche Programmierung der Funktionen zur Nutzung zur Verfügung gestellt werden. Und dies immer im Kontext der Funktion selbst.

Will man neue Wege gehen, müssen drei Faktoren grundsätzlich getrennt werden:

- Datenhaltung
- Funktion
- Visualisierung

Dabei gibt es mehrere Lösungsansätze.

 

Microservices

Was sind Microservices?

Komplexe Applikationen sind letztlich eine Ansammlung von einzelnen Funktionen. Betrachtet man diese Funktionen als kleine oder kleinste Bausteine, dann wird es möglich, solche Funktionen von unterschiedlichen Applikationen im Zusammenspiel zu nutzen. Diese Aufgabe übernehmen Microservices.

Microservices ermöglichen, dass Applikationen beziehungsweise deren Funktionen in einzelne, miteinander kommunizierende Dienste aufgeteilt werden. Dies ermöglicht eine applikationsübergreifende Nutzung und Bearbeitung von Daten bei komplexen Softwareanwendungen.

Bereits in den 1990-er Jahren wurden die ersten service-orientierten Architekturen entwickelt. Das waren die Vorläufer von Microservices im heutigen Verständnis, also der sogenannten Container-Technologien. Weshalb erhält dieses Thema heute so viel Bedeutung?

Man unterscheidet zwischen monolithisch aufgebauten Applikationen und Webanwendungen. Webbasierte Lösungen zeichnen sich durch eine hohe Skalierbarkeit aus. Softwarearchitektur, Funktionsumfang, Nutzungs- und Bereitstellungsmodelle bieten bei Webanwendungen eine ausgeprägte Elastizität – sind dadurch offener und weniger starr als monolithisch programmierte Anwendungen. Webanwendungen können als „native“ Cloud-Systeme bezeichnet werden. Service-orientierte Strukturen (SOA) unterstützen die Flexibilität von Webanwendungen optimal. Und dank moderner Microservices können die service-orientierte Strukturen noch wesentlich verfeinert werden. Das bedeutet, es können kleinere Dateneinheiten ausgetauscht werden, was die Erstellung und Weiterentwicklung von Anwendungen schneller, flexibler und einfacher macht.

Dank eigenständiger Container lassen sich Microservices als geschlossene Einheiten unabhängig von anderen verwalten. Ein wesentlicher Unterschied zu klassenbasierten Modellen. Hier müssen immer alle Teile gleichzeitig produktiv sein.

Ein Beispiel ist die Adresse, bestehend aus Name, Vorname, Funktion, Anrede, Strasse, Nummer, Postleitzahl, Telefon, Mobile, E-Mail und weiteren Kontaktinformationen. Die Adresse ist ein Modell und beinhaltet alle Informationen. Demgegenüber kommt ein Microservice mit Telefon, Mobile und E-Mail aus, kennt aber trotzdem die zugehörige Adresse. Im Verbund lassen sich so Microservice-Container zu ganzen Anwendungen koppeln. Zudem sind Microservices plattform-unabhängig und können in unterschiedlichen Programmiersprachen entwickelt sein. Trotzdem funktionieren die Kommunikation und der Datenaustausch, gerade und sogar bei unterschiedlichen Webanwendungen.

Vorteile von Microservices auf einen Blick:

  • einfaches und schnelles Deployment
  • Risikominimierung für Fehler
  • sicheres und einfaches Zurückrollen
  • Technologiefreiheit
  • schrittweise oder singulare Migration
  • geringer Koordinationsaufwand auch bei komplexen Projekten
  • unabhängiges Deployment je Entwickler (Entwicklerteam)
  • konsequente Entkopplung der Module
  • digitale Transformation
  • agile Prozesse

 

CMS Systeme

Seit vielen Jahren werden Website-Inhalte über klassische CMS verwaltet. Damit konnte man individuelle Designs aufsetzen, einen WYSIWYG- Editor nutzen, oder Workflows und Freigabeprozesse regeln. Zu einer Zeit, als die Welt noch aus Web und Email bestand, genügte dies für ein eigenständiges Marketing. Ein CMS basiert auf dem herkömmlichen Ansatz der Applikationsentwicklung und die CMS-Architektur hat Auswirkungen auf Funktionalität, Integration und Erweiterbarkeit. Das CMS besteht aus einem monolithischen Kern, der Individual-Code macht es zudem schwer, andere Applikationen zu integrieren. Diese klassischen Architekturen stoßen aber besonders in einer Multikanal-Umgebung schnell an ihre Grenzen.

 

Ein traditionelles CMS besteht aus dem Frontend und dem Backend.

Im Backend werden Inhalte erfasst und verwaltet und im Frontend präsentiert. Die Visualisierung erfolgt aber nicht nur im Frontend, sondern im Zusammenspiele von Backend und Frontend. Bei einer einfachen Website enthält das Backend:

  • Eine einfache Oberfläche, um Content zu erstellen
  • Eine Datenbank zur Speicherung digitaler Assets
  • Eine Anwendungsebene zur Erstellung und Anwendung von Design-Frameworks

Das Frontend greift dann auf die Inhalte, die gespeicherten Assets und das im Backend erstellt Designs zu, um all dies auf einer HTML-Seite zu veröffentlichen.

 

Applikationsübergreifende Nutzung der Daten

Egal, welches CMS man einsetzt, die Anforderung an eine applikationsübergreifende Nutzung der Daten steigt. Geräteübergreifende Content-Nutzung bedeutet, dass das Kundenerlebnis über alle Plattformen hinweg durchgängig konsistent bleibt, denn auf Kundenseite steigen die Erwartungen an die User Experience.

Der Interessent oder Kunde entscheidet wie, wann und warum er mit einem Unternehmen in Verbindung tritt. Die Kundenerfahrung muss dabei auf allen Kanälen eine durchgehend gleich hohe Qualität haben und es dürfen keine Bruchstellen bei Prozessen entstehen. Dadurch steigt das Vertrauen des Interessenten und Kunden. Versteht es ein Unternehmen, seine digitalen Kanäle effektiv und kundenfreundlich zu gestalten, steigt die Umwandlungsrate (conversion rate) von Interessenten zu Kunden.

Mit diesem Wandel Schritt zu halten ist technologisch anspruchsvoll.

Es gibt immer mehr Endgeräte mit unterschiedlichen Bildschirmgrößen, neue Plattformen und digitale Kanäle. Es braucht eine neue Konzeption für die Datenhaltung, Datenausgabe, den Datenaustausch und die Weiterverarbeitung von Daten – nicht zuletzt aber auch intelligente, kanalübergreifende Reporting-Systeme.


 

Headless Systeme

Was sind die Unterschiede zwischen traditionellen CMS-Systemen und Headless-Anwendungen? Normale CMS-Systeme haben eine seitenbasierte, Headless-Systeme eine objektbasierte Architektur - was sind die Unterschiede? Welches sind die Vorteile der Headless-Architektur?

Das „kopflose“ Headless-System ohne ein Frontend aus. Es geht alles nur um das Backend. Die Inhalte werden in der reinsten Form ohne Präsentationsschicht, Templates, Design und Ähnliches erstellt. Über eine Schnittstelle können diese Inhalte von beliebigen Geräten oder Systemen abgerufen werden – und unterschiedlich dargestellt werden.

 

Die Merkmale von Headless

Die Schnittstelle
Die REST-API (Representational State Transfer-Application Programming Interface) ist wenig komplex und dennoch sehr flexibel einsetzbar. Die REST-API verwendet HTTP-Anfragemethoden wie PUT, GET, POST und DELETE. REST unterliegt grundsätzlich dem Architekturstil des Webs.

Verfügbarkeit
Ein REST-API steht auch externen Anwendungen zur Verfügung. Der Zugang funktioniert demzufolge nicht nur lokal auf dem Server selbst.

Content Negotiation
Per Content Negotiation fordern Clients (zum Beispiel ein Webbrowser) das Element im gewünschten Format an. Unterschiedliche Anwendungen benötigen unterschiedliche Dateiformate. Die URI/URL referiert bei REST deshalb nicht auf eine Ressource in einem bestimmten Format, sondern nur auf das Element an sich.

Abgeschlossene Nachrichten
Jede Nachricht an den Server ist für sich selbst abgeschlossen. Sie ist unabhängig von  vorhergehender oder nachfolgender Nachricht.

Links
Innerhalb von REST sind Objekte durch Hyperlinks miteinander verbunden. Damit ist eine einfache Navigation sicher gestellt.

Kommunikation mit unterschiedlichen Clients
Durch die Einhaltung dieser Architekturprinzipien funktioniert die Kommunikation zwischen Server/API und unterschiedlichen Clients problemlos. Deshalb ist die REST-Architektur perfekt für ein Headless-CMS-API geeignet.

Ausgabe auf unterschiedlichen Plattformen
Ein durchgehendes Kundenerlebnis über alle Plattformen hinweg ist mit einer geräteübergreifenden Content-Nutzung natürlich viel einfacher zu realisieren als mit einzelnen, für sich selbst abgeschlossenen Applikationen im Zusammenspiel. Headless bringt das Unternehmen weiter – und es geht dabei nicht nur um reine Zeit- und Kostenersparnis.

Inhalte zuerst
Inhalte bilden eine Brücke zwischen Ihrem Unternehmen und Ihren Interessenten und Kunden. Inhalte vermitteln Ihre potenziellen Kunden einen positiven Eindruck Ihres Unternehmens. Dabei sind vor allem die Qualität und die fehlerfreie Übermittlung der Inhalte entscheidend. Dies gilt sowohl für allgemeine Produktinformationen als auch für kundenspezifische Informationen. Nutzt man ein Headless-System, genügt es, ein Content-Element zu generieren, ohne es unterschiedlichen Ausgabekanälen anpassen zu müssen. Mit einem Headless-System wird ein Inhalts-Element überall unverfälscht dargestellt, ohne dass sich bei der Bearbeitung Fehler einschleichen können.

Unabhängigkeit von Seiten
Die Inhalte von CMS-Systemen sind seitenbasiert. Die Inhalte von Headless sind unabhänging von Seiten integrierbar.

Wiederverwendbarkeit
Einmal eingegebene Headless-Inhalte können sehr leicht wiederverwendet und auf unterschiedlichen Kanälen ausgegeben werden.

Zeit sparen und schnellere Prozesse
In einem traditionellen CMS müssen Inhalte zuerst erstellt, dann redigiert, bearbeitet und erfasst werden. Bei der Inhaltserfassung müssen sich Redakteure, oder Mitarbeiter, welche für Inhalte verantwortlich sind, nicht mehr damit beschäftigen, auf welche Art und Weise erstellte Inhalte auf den verschiedenen Geräten dargestellt werden. Viele CMS-Systemen bieten Editoren für die Gestaltung von Inhalten, deren Funktion meist sehr eingeschränkt werden muss. Trotzdem müssen bei den meisten CMS Systemen die Inhalte noch manuell ausgezeichnet (formatiert) werden. Beim Headless-Ansatz ist anders. Noch während ein Projekt technisch umgesetzt wird, kann der Content bereits integriert werden. So ist es möglich, Contentschreiber und Programmierer gleichzeitig arbeiten zu lassen, ohne dass der eine auf die Resultate des anderen warten muss. Mit Headless erzielt man höhere Reaktionszeiten dank Trennung von Inhalten und Design. Eine Anwendung, die sich nur auf die Auslieferung von Inhalten fokussiert, kann optimal performen und ist damit schneller.

Gestalterische Flexibilität
Die Darstellung wird bei einer Headless-Architektur nicht im CMS gelöst. Entwickler können für die Visualisierung verschiedene Frontend-Frameworks nutzen und Inhalte via API-Schnittstelle einbinden. Dies ermöglicht eine freie Wahl des Mediums oder des Kanals.

Kosten sparen
Im Vergleich zu CMS-Appliaktionen sind Headless-Systeme kostengünstiger, vor allem bei einer Gesamtkostenbetrachtung. Zudem können Headless-Systeme in der Cloud skaliert werden und passen sich so dem Wachstum eines Unternehmens an.

Benutzerfreundlichkeit
Traditionelle Content Management Systemen sind oft mit Funktionen überfrachtet. Sie werden dadurch umständlich in der Bedienung und langsam in der Anwendung. Headless-Systeme sind hingegen einfach und schlank zu bedienen, da sie ausschliesslich auf Inhalte ausgerichtet sind. So sind sie einfach in der Bedienung und bedienen alle Ausgabe-Kanäle von ein und demselben Backend aus.

Flexibilität
Manchmal scheitern gute Ideen an der Umsetzung, da das CMS genau die gewünschte Anwendung nicht bietet. Bei Headless können Programmierer unabhängig von einer Applikation Inhalte nutzen und visualisieren. Gleichzeitig können die Inhalte unabhängig von der Ausgabe erstellt werden und bei der Visualisierung können unterschiedliche Technologien miteinander oder nebeneinander eingesetzt werden.

Cloud Service und Skalierbarkeit
All-in-one CMS-Systeme laufen auf einem Server. Skalierbare, entkoppelte Auslieferung von Inhalten aus der Cloud ist fast ausschliesslich nur mit der Headless-Architektur umsetzbar.

 

Alles dreht sich um die API

Der wichtigste und zentrale Bereich des Systems ist die Schnittstelle, welche es ermöglicht, dass Inhalte auf den unterschiedlichsten Kanälen mit den unterschiedlichsten Systemen dargestellt werden können. Es gibt keine Einschränkungen, solange die Frontend-Lösungen webbasierte Kommunikationsprotokolle verstehen um die Daten bekommen und visualisieren zu können.

Native Apps
Mit einer Headless-API können Inhalte für Apps unabhängig von der Darstellung ausgegeben werden. Die Darstellung wird App-seitig umgesetzt.

Microservices
„API first” ermöglicht in Headless-Anwendungen eine einfache Integration in Drittsysteme. Das ist mit klassischen CMS-Systemen schwierig realisieren.

Zukunftssicherheit
Dank der Trennung von Inhalt und Design mit der Headless-Architektur ist die Investition in die Erarbeitung von Inhalten auch eine Investition in die Zukunft. Das Design einer Website kann jederzeit angepasst werden, ohne dass bei jeder Änderung das CMS wieder neu angepasst werden muss.

 

Das waren viele Vorteile von Headless – gibt es auch Nachteile?

Es gibt auch Nachteile.

Personalisierte Inhalte
Ein klarer Nachteil ist die Tatsache, dass mit einem Headless Ansatz personalisierte Inhalte sehr viel aufwändiger zu realisieren sind als mit einem normalen CMS.

WYSIWYG
Weil die Präsentation der Inhalte Sache der Entwickler ist, kann die WYSIWYG (What You See Is What You Get)-Bearbeitung nicht genutzt werden.

Fehlendes Frontend
Was zum einen ein Vorteil ist, kann aber auch ein Nachteil sein. Entweder man entwickelt ein eigenes Frontend – oder man nutzt eine bestehende, andere Applikation, um die Inhalte anzuzeigen.

Fehlende Funktionen
Funktionen wie Formulare, Bildergalerien oder Mitgliederbereiche müssen zusätzlich programmiert oder durch ein anderes System bereitgestellt werden.

Aus einem System werden viele
Das Gesamtsystem wird komplexer, da es aus mehreren unabhängigen Teilen aufgebaut ist.

Anforderungen an die API-Konfiguration
Zugriffsrechte erhöhen die Komplexität der Headless-API.

Personalisierung
Die Personalisierung und Ausspielung von Inhalten kann nicht im Backend gelöst werden - das muss im Frontend realisiert werden.

Betrieb von mehreren Softwaresystemen
Mit einem Headless CMS können mehrere Systeme betrieben werden. Es müssen die Anforderungen der jeweiligen Systeme beachtet werden.

API Fähigkeiten
Das Leistungsspektrum der Headless API muss breit und tief sein und darf keine Einschränkungen von Anwendungsfällen produzieren.

 

 

Headless wird immer wichtiger

Headless-CMS sind ein wichtiger Teil der Zukunft des Content-Managements.
Die Vorteile eines Headless CMS in der Übersicht:

  • Unbegrenzte Anzahl von Frontends
  • Kombinierbar mit unterschiedlichen Programmiersprachen
  • Flexiblere Gestaltung des Frontends
  • Kontinuität durch Entkopplung
  • Dynamische Daten

Es können viele Bereitstellungsebenen in verschiedenen Sprachen erstellt werden, um Content in beliebigen neuen Kanälen bereitzustellen. Im Backend ist die Erstellung von Inhalten nicht mehr an Programmiersprachen gebunden. Im Frontend können das Look & Feel und die Funktionalität mit Tools entwickelt werden, die unabhängig vom CMS einsetzbar sind. Die Inhalte werden mit der flexiblen APIs überall veröffentlicht.

Bedürfnisgerechten und interaktiven Content erstellen wird immer komplexer und die Erwartungen der Nutzer werden immer größer. Es entstehen laufend neue Kanäle und Nutzergeräte. Und es muss sichergestellt werden, dass die Inhalte so effizient wie möglich und überall bereitgestellt werden für heute und in Zukunft. Inhalte sind eine Investition in die Zukunft.

 

Vom Anbieter- zum Nachfragemarkt

Früher wurde die Kommunikation formal, inhaltlich und zeitlich integriert. Mit Hilfe von Kampagnen wurden Inhalten zu Marken, Produkten und Qualität zum Konsumenten transportiert. Natürlich geschieht das immer noch. Marken verbinden gemeinsame Visionen zwischen Anbieter und Kunde und sie schaffen dadurch Beziehungen.

Aber: heute bestimmt immer mehr der Kunde wann er welche Informationen vom wem konsumieren will.

Headless und Decoupled CMS sind erst die Anfänge. Betrachtet man den schnellen Wandel von statischen Webseiten zu CMS Systemen, dann liegt die Vermutung nahe, dass auch klassische CMS bald den Gewohnheiten und Bedürfnissen der Nutzer nicht mehr entsprechen. Deshalb ist ein Umdenken beim Erstellen und Veröffentlichen von Inhalten nötig. Smartphones, Internet of Things oder virtuelle Realitäten verlangen andere Technologien als ein CMS.

 

Squidex – Headless CMS

Squidex ermöglicht es Ihnen, Inhalte an einem zentralen Ort zu verwalten und in Ihren Tech-Stack für Apps, Websites und Services zu nutzen.

Was ist Squidex?
Eine Content-Management-Hub für alle Ihre Daten. Squidex verwaltet alle Ihre Inhalte wie:
- dynamische Elemente für Ihre mobilen Apps
- Blog-Posts und Artikel für Ihre Website
- Konfigurationsdaten für Ihr Backend
- umfangreiche und strukturierte Daten für Ihre Anwendung

Wie funktioniert Squidex?
Der Kern von Squidex ist ein Webservice. Es bietet APIs zur Verwaltung der Struktur Ihrer Inhalte, Sprachen, Einstellungen und natürlich der Inhalte selbst. Sie können die Inhalte aus Ihrem Backend, mobilen Apps, Websites und anderen Client-Anwendungen konsumieren. Natürlich bieten wir auch eine umfangreiche Benutzeroberfläche für Endanwender (Management UI).

Squidex Backend Administration
Die Squidex Backend Administration ist sehr intuitiv aufgebaut und beinhaltet

  • Settings
  • Sprachen
  • Benutzermanagement mit Rollen und Rechten
  • Dashboard mit Statistiken
  • Schemas
  • Clients
  • GraphQL für strukturiere Ausgaben

Ausgabe auf verschiedene Marketing-Plattformen
Mit Squidex können Sie Ihre Marketing-Plattformen schnell um umfangreiche Inhalte erweitern. Die API ist intuitiv und einfach zu bedienen, so dass Sie diese genau so integrieren können, wie Sie es wollen.

Struktur definieren
Für jeden Inhaltstyp definieren Sie ein Schema.

Inhalte erstellen
Erstellen und verwalten Sie Ihre Inhalte im Verwaltungsportal und veröffentlichen Sie die Inhalte, wenn Sie bereit sind.

Erfahren Sie mehr zu Squidex auf unserer Produktseite.

Links:
Squidex – Headless: schnell implementiert, extrem flexibel und performant

 


Die Visualisierung von Inhalten

Bei der Visualisierung von Inhalten geht es im Wesentlichen und zwei Themen:

  • die Aufbereitung von Inhalten (Struktur der Daten)
  • die Darstellung der Daten (Formatierung und grafische Form)

 

GraphQL

Auch wenn die verfügbaren REST-API’s durchaus beeindruckend sind, gibt es dennoch interessante Alternativen wie zum Beispiel GraphQL.

GraphQL wurde von Facebook für eigene Anwendungen entwickelt. Diese flexible Abfragesprache und Laufzeitumgebung ist mit SOAP und REST ebenbürtig und überzeugt vor allem mit ihren Vorzügen bei komplexeren Abfragen als Web-API (Application Programming Interfaces), um Daten auszutauschen und weiterzuverarbeiten. Vor dem Hintergrund der zunehmenden Bedeutung und Komplexität mobiler Webapplikationen für Android und iOS zeigt sich die große Stärke von GraphQL als API-Basis: Man kann mit einer einzigen Query Zugriff auf alle gewünschten Daten erhalten. GraphQL ist nur eine Abfragesprache. Die Bibliotheken, welche die Applikation zur Umsetzung von GraphQL verwendet, kümmern sich lediglich darum, dass die Vorgaben eingehalten werden. GraphQL ist eine Abfragesprache für Webapplikationen, die sowohl lesende als auch schreibende Operationen beherrscht. Die Implementierung der Businesslogik und das Speichern der Daten wird jedoch durch die Applikation übernommen.

GraphQL auf einen Blick

  • Steigerung der Performanz
  • Anzahl nötiger Anfragen und die Menge übertragener Daten lässt sich reduzieren
  • der Client kann gleichzeitig mehrere Ressourcen anfragen
  • der Client erhält mit nur einem Request sämtliche benötigte Daten
  • flexible Abfragesprache mit einem typisierten Schema
  • Die API ist gut dokumentiert
  • Flexibilität ist durch Entkopplung von Frontend- und Backend-Entwicklung
  • nützliche Entwickler-Tools wie GraphiQL mit Autocomplete, Validierung, Mocking und API-Dokumentation


Mehr zu GRaphQL
Link zu Produktseite

 

Wie funktioniert GraphQL?
GraphQL ist eine SQL-ähnliche Abfragesprache inklusive Laufzeitumgebung und Typsystem. Nativen mobile Anwendungen für iOS und Android, zeigten aufgrund steigender Komplexität eine zunehmend schwächere Performance. GraphQL vermag dank seiner Schnittstellenarchitektur ein positives Verhältnis zwischen abgerufenen Informationen und notwendigen Serverabfragen zu erzielen und steigert dadurch die Performance. Dank des großen Angebots an einsatzbereiten Bibliotheken lässt GraphQL eine breite Auswahl der Programmiersprachen zu.

Flexibilität
GraphQL ermöglicht flexible Anpassungen bei der Entwicklung einer Schnittstelle. Serverseitig sind nur wenige Anpassungen vorzunehmen. Das Entwicklerteam, welches für die Schnittstelle verantwortlich ist, kann vollkommen unabhängig von dem Team agieren, das für die Client-Komponente verantwortlich ist. Dies ermöglicht es in einem Projekt, zeitlich unabhängig voneinander zu arbeiten (sofern eine Spezifikation mit genauen Angaben vorliegt). Sämtliche Veränderungen oder Erweiterungen der API können ohne Versionierung durchgeführt werden. Zusätzliche Felder lassen sich problemlos und ohne Beeinträchtigung existierender Clients hinzufügen. Neue Felder beeinflussen bestehende Anfragen auch nicht. Weitere benötigte Felder können im Schema als deprecated markiert und zu einem späteren Zeitpunkt gelöscht werden. Die Informationen über solche Markierungen lassen sich über Introspektion auslesen.

Die Abfragesprache
Mit Hilfe der Query Language wird ein unkomplizierter Zugriff und ein hohes Maß an Flexibilität der API erreicht. Dies ganz im Gegensatz zu anderen Schnittstellen-Architekturen, die nur sehr strikte Abfragen auf eine einzelne Ressource zulassen. Bei REST übermittelt der Server die angefragte Ressource komplett und jede Ressource wird über eine eindeutige URL angesprochen. Bei GraphQL existiert eine URL für sämtliche Daten. Die eigentliche Abfrage erfolgt über eine Zeichenkette in einer strukturierten Form. Sie gibt gleichzeitig die Struktur der Antwort vor. Der GraphQL-Server sendet lediglich die Daten, die der Client angefragt hat. Es gibt keine Limitierung für die Zahl abgefragter Ressourcen. Der Server antwortet mit einer JSON-Struktur, die der Form der Anfrage entspricht. Und man kann mit Hilfe des Schemas gezielt definieren, welche Datenfelder abgefragt werden sollen, respektive auf welche Felder man lesende als auch schreibende Rechte hat. Die Anfrage bestimmt die Struktur der Antwort. Der Server liefert nur die Felder zurück, die der Client bei der Anfrage angibt. Diese Eigenschaft kann das Transfervolumen der Applikation stark reduzieren.

Typsystem
Die API von GraphQL erlaubt, Datenstrukturen durch eigene, serverseitige Datentypen zu beschrieben. Diese geben die Datenstrukturen vor und schaffen den Rahmen für die Abfragen. Ein Datentypen kann aus einem oder mehreren Feldern bestehen und eigene Typangaben enthalten. So können Anfragen validiert und fehlerhafte Querys abgelehnt werden. Jede einzelne Ebene einer GraphQL-Abfrage entspricht einem bestimmten Typ, wobei jeder Typ ein Set verfügbarer Felder beschreibt. Dieses Typsystem kann automatisch feststellen, ob eine Abfrage korrekt oder nicht korrekt formuliert ist und so kann GraphQL bereits vor Abschicken der Query beschreibende Fehlermeldungen ausspielen. Anfragen erlauben, das gesamte Schema (oder natürlich auch nur Teile davon) und die Struktur einzelner Typen auszulesen. So lässt sich auf einfache Art eine vollständige Schnittstellenbeschreibung erzeugen und durch dieses Typsystem ist GraphQL weitgehend selbstdokumentierend. Im Gegensatz dazu können vergleichbare REST-APIs immer nur einen bestimmten und kompletten Datensatz pro Query (Abfrage) ausgeben.

Hierarchische Struktur
Die Daten haben eine hierarchische Struktur. Komplexe Anfragen lassen sich so in einem einzigen Request formulieren und beantworten, weil sich Beziehungen zwischen den einzelnen Objekten automatisch erzeugen lassen. Damit sind sogenannte „Round Trips“ (ein Austausch mehrerer Nachrichten zwischen Server und Client) nicht notwendig und die Schnittstelle ist performanter.

Laufzeitumgebung
GraphQL ist mit verschiedenen Server-Laufzeitumgebungen zum Ausführen der GraphQL-Abfragen plattform- und anwendungsübergreifend. Es stehen Bibliotheken für diverse Programmiersprachen zur Verfügung wie beispielsweise Go, Java, JavaScript, PHP, Python oder Ruby. Zum Aufgabenbereich der Laufzeitumgebung gehören die Umwandlung (das Parsen) und die Validierung von Abfragen. Auch die Serialisierung der Antworten (Umwandlung der Objekte in eine entsprechende Bytefolge) ist ausschliesslich Aufgabe der Laufzeitumgebung. Die GraphQL-Serverinstanz liefert exakt die in der Abfrage definierten Informationen aus - nicht mehr und nicht weniger Daten als angefragt. Weit verbreitet ist die Node.js-Implementierung, die sich leicht in Webserver oder Express.js-Anwendungen einbinden lässt.

Speichern der Daten
Das Ermitteln und das Speichern der Daten in einer Datenbank ist Aufgab der Webanwendung.

Plattform-unabhängig
Diese Trennung der Aufgaben ermöglicht eine plattform- und anwendungsübergreifende, extrem flexible API-Anwendung. Und die Schnittstelle lässt sich perfekt auf die Eigenheiten Ihrer Webapplikation abstimmen.

Einfache Anwendung
Die Einfachheit der Abfragesprache ermöglicht, dass erhaltene Antworten eins zu eins die gestellten Abfragen widerspiegeln. JavaScript-Format JSON (JavaScript Object Notation) ist dabei das schlanke und performante Ausgabeformat. Somit ist das Verschicken einer Abfrage keine große Herausforderung, sofern man die Struktur der kennt. GraphQL arbeitet mit Objektgraphen, nicht mit einzelnen Ressourcen und kann Relationen abbilden. Mit einer Anfrage lassen sich damit sowohl einzelne Objekte als auch Sätze von mehreren Objekten und ganze Objektbäume auslesen.

Risiken und Sicherheitsprobleme
GraphQL stellt bei offenen APIs dann ein Sicherheitsproblem dar, wenn das Abfrageverhalten von Drittanbieter-Clients nicht kontrolliert werden kann. Eine zu hohe Zahl an Querys könnte den Server zum Absturz bringen. Die Sicherheit und Absicherung der API muss mit Maßnahmen wie Timeouts und Einschränkung der Maximum Query Depth geregelt werden, um Angriffe durch komplexe oder große Anfragen zu blocken.

Caching
Ein Datencaching für nicht veränderliche Abfragen ist mit GraphQL machbar, jedoch komplizierter zu realisieren als mit einer REST API. Die Abfragen gehen in der Regel per POST an einen Endpunkt, HTTP-Caching ist nicht möglich. Es gibt jedoch Alternativen, unter anderem mit Facebook DataLoader, Apollo Engine Proxy, Apollo Client und Relay.

 

Node.js

Node.js ist eine JavaScript Runtime, die es erlaubt, dieselbe Programmiersprache auf Server- und Client-Seite zu nutzen. So ist node.js interessant für die Entwicklung von Webanwendungen und Anwendungsservern. Node.js kann für die generelle Programmierung eingesetzt werden, wie zum Beispiel einfache Command-Line Tools bis hin zu dynamischen HTTP-Servern.

Immer mehr erfolgreiche Webapplikationen laufen mit Node.js, weil es blitzschnell lädt, schön aus sieht und eine hohe Nutzerfreundlichkeit erzielt.

Node.js ist aber nicht nur eine Runtime Environment, sondern auch eine Library und damit ist Node.js einfach gesagt server-side JavaScript. Das Managen von Input und Output sowie read- und write-Vorgänge aus dem Netzwerk auf Festplattenspeicher ist nicht einfach. Node.js bietet deshalb eine ausgetüftelte Kombination von serverseitigem JavaScript-Code, asynchroner Programmierung, anonymen JavaScript Funktionen und einer komplett Ereignis-basierten Architektur – der super schnellen JavaScript Engine V8 aus Googles Chrome Browser. Node.js ist jedoch kein Webserver und funktioniert nicht wie ein Apache-Server auf Ubuntu und es gibt auch kein Config-File, welches auf HTML-Files verweist.

Vorzüge von Node.js

  • extreme Skalierbarkeit: Mit Node.js lassen sich skalierbare Applikationen schreiben, welche eine sehr grosse Anzahl von Verbindungen/ Anfragen gleichzeitig handhaben kann.
  • Schnelligkeit im Ausführen von I/O Bound Operations
  • optimales managen von Input und Output über ein Netzwerk
  • Multithreading
  • Blitzschnelle Ausführung von Webanwendungen: Mit Node.js kann man Webanwendungen erstellen, die sehr schnell in der Ausführung sind. In den meisten Fällen braucht es nicht einmal Ladezeit.
  • Alles in einer Technologie: Mit dem MEAN Stack kann man starke Anwendungen über alle Bereiche hinweg (Frontend, Backend, Datenbank) mit JS Technologien abdecken.
  • Node.js eignet sich für Chat Programme, auf welche viele Nutzer gleichzeitig zugreifen. Oder für Echtzeit Programme: Systeme auf welche mehrere Nutzer gleichzeitig zugreifen und Änderungen vornehmen und die Nutzer die Änderungen sehen sollen.

Link
Mehr zu node.js                   Link auf Produktseite

 

Node.js als Webserver

Als event-basierte Laufzeitumgebung wurde Node.js speziell für die Entwicklung von skalierbaren Netzwerkanwendungen entworfen. Wenn man Node.js als Webserver (HTTP-Server) einsetzen will, dann wird der Sever einfach aufgesetzt und dank der nützlichen Build-In Modulen und eingebauten Libraries von das auch automatisiert möglich. Node.js macht asynchrone I/O Vorgänge einfacher. JavaScript ist die Sprache, die in einem Browser läuft und dafür sorgt, dass eine Webseite dynamische Inhalte haben kann. Mit Node.js kann man JavaScript auch als Server-Applikationen schreiben und damit hat man im Frontend und im Backend die gleiche Programmiersprache. Der Browser besitzt eine sogenannte JavaScript Engine, die den Code interpretiert und ausführt. Beim Chrome Browser heißt diese Engine V8. Die V8 Engine ist in C++ geschrieben, gut optimiert und leistungsfähig. Die einfachste Möglichkeit, JavaScript Code auf dem Server laufen zu lassen, ist also die V8 Engine auf dem Server bereitzustellen.

JavaScript, das im Browser ausgeführt wird, unterliegt aus Sicherheitsgründen gewissen Restriktionen. Die Engine V8 erlaubt es demnach nicht, auf das Dateisystem zuzugreifen, Datenbanken zu benutzen oder Funktionen des Betriebssystems zu verwenden.

Node.js Core Library
V8 z.B. keine Möglichkeiten auf das Dateisystem zuzugreifen oder auf direktem Weg Funktionen des Betriebssystems zu verwenden. Im Backend werden solche Funktionen jedoch benötigt. Das NodeJS Ecosystem enthält deshalb die NodeJS Core Library und damit beispielsweise Methoden, mit denen http Requests und Responses verarbeitet werden können. Mittels Wrapper ist es dann möglich, die in NodeJS Core enthaltenen Funktionen und die C++ Implementierungen mittels JavaScript Code aufzurufen.

Die Libuv Library - Multithreading in Node.js
Ein JavaScript Programm kann sich zu einem Zeitpunkt nur um genau eine einzige Sache kümmern, ist deshalb Single-Threaded, weil die V8 nur in einem Thread läuft. Für eine Server-Anwendung ist das unbrauchbar, soll der Server doch hunderte oder  tausende von Anfragen zum gleichen Zeitpunkt bewältigen können. Mit der Libuv Library sind parallele Ausführungen jedoch möglich. Die Libuv realisiert als zentrale Komponente die Event-Loops, welche dafür sorgen, dass es sich bei NodeJS um eine sogenannte „event getriebene asynchrone JavaScript Laufzeitumgebung“ handelt. Die Libuv erzeugt standardmäßig einen Threadpool der Größe vier, auf den Aufgaben verteilt werden können und kann Tasks an das Betriebssytem weitergeben, welches sich dann um die Terminierung kümmert. Multithreading ist ein guter Ansatz, wenn es darum geht rechenintensive Tasks zu verteilen. Bei einem Datei-Download ist nicht die Rechenleistung massgeblich, sondern die Netzwerkverbindung ist der Flaschenhals und deshalb werden C++ Methoden (asynchrone primitiv Typen) genutzt, mit denen solche Aufgaben an das Betriebssystem delegiert werden können. So können mit Node.js viele Verbindungen gleichzeitig bearbeitet werden. Bei jeder neuen Anfrage wird die Callback-Funktion ausgeführt. Gibt es jedoch nichts zu tun, befindet sich Node.js im Ruhezustand. HTTP ist ein Basiselement in Node.js - dadurch ist Node.js sehr gut als Grundlage für Web-Bibliotheken oder Frameworks geeignet.

Node.js hat jedoch auch ein paar Nachteile
Node.js ist nicht für rechenintensive Aufgaben geeignet: Falls es um CPU-lastige Aufgaben geht, in denen viel Rechnerkapazität verwendet wird, dann ist Node definitiv nicht der richtige Ansatz.

Oftmals fehlende Rückwärtskompatibilität: Wenn neue Versionen von Node.js veröffentlicht werden, kann es sein, dass man den bestehenden Code anpassen muss. Man sollte davon ausgehen, dass Mehraufwand für die Programmierung entstehen kann, einfach auch deshalb, weil sich Node.js immer noch im Wandel befindet.

Fazit
Im Vergleich zu Node.js kommt einem eine C# und .NET Applikation ungemein umständlich und schwerfällig vor. Oft hängt man aber trotzdem an der Vorstellung, dass Komplexität ein Qualitätsmerkmal ist und dass C# und .NET im ernsthaften Unternehmenskontext die sicherer und bessere Wahl ist.

Beachtet man aber die Nachteile einer monolitischen Applikation und die Tatsache, dass heute ja eigentlich alles webbasiert entwickelt wird, gibt es nur noch wenige Argumente, die für Komplexität sprechen. Wer glaubt, schwierige Probleme seien nur kompliziert zu lösen, hat vieles nicht verstanden. Daher ist es wichtig, anders zu denken, und sich für Neues zu öffnen. Node.js zeigt klar auf, wie man den über 15 Jahre angesammelten Ballast von .NET hinterfragen kann.

 

Vue.js

 

Vue.js ist ein Webframework zum Erstellen von Single-Page-Webanwendungen nach dem MVVM Muster. Seit der Einführung von Vue.js - dem progressiven Framework - gab es einen großen Hype um das neue JavaScript Framework. Daher ist es wichtig zu verstehen, welche Probleme das Framework löst und ob es empfehlenswert ist, es einzusetzen und, ob der Einsatz von Vue.js eine zukunftssichere Entscheidung ist.

 

Blicken wir etwas zurück auf die letzten beiden Jahrzehnte der Web-Entwicklung. Webseiten waren zu Beginn reine Dokumente, basierend auf HTML-Dateien. Statische Webprojekte waren das non plus ultra. Später kamen die ersten CMS Systeme und mit Hilfe von CSS2 konnte das Erscheinungsbild einer HTML-Datei gestaltet werden. JavaScript-Dateien steuerten mit wenig logischer Funktionalität Änderungen des Stylings nach bestimmten Benutzerinteraktionen oder die Überprüfung von Formularen im Webbrowser. AJAX revolutionierte 2005 die Webapplikationen mit einem neuen Ansatz, welcher das asynchrone Laden von JavaScript und XML ermöglichte. Gerade ein Jahr später erfolgte die Lancierung von jQuery. Das waren die „guten alten Zeiten der Webentwicklung“.

 

Im Oktober 2014 wurde die HTML5-Spezifikation veröffentlicht. Danach entwickelte sich die Webtechnologie rasend schnell und substituierte viele klassische Applikationen. Die in Computern eingesetzte Hardware wurde besser. Und viele Anwendungen wurden webbasiert entwickelt, Smartphones gewannen an Beliebtheit.

 

Der Trend begann, Funktionalitäten und Logik vom Server in den Client zu überführen. „Mobile First“ und „Offline First“ gewannen mehr Bedeutung. Neue Frameworks und Mikro Bibliotheken wurden entwickelt, welche der Komplexität und Anforderungen mit neuen Formaten gerecht wurden. Angular und React wuchsen zu den meist verwendeten Frameworks heran. Angular ist ein komplettes Web Applications Framework, während React zu der Kategorie der Mikro Bibliotheken gehört.

 

AngularJS entwickelte sich als Tool für komplexe Webapplikationen. Ein AngularJS Projekt ist mächtig und bietet viel Funktionalität. Das schwergewichtige Framework erleichtert zwar die Realisation eines grossen Webprojekts, bei kleinen Webprojekten ist es jedoch zu umständlich. Der ursprüngliche Vorteil, auch einzelne Webseiten zu verwalten wich dem Ansatz, nur noch das gesamte Projekt verwalten zu können. Das steht im Widerspruch zur Effizienz bei der Entwicklung kleiner Projekte oder von Projekten mit kurzer Lebensdauer.

 

Die Entstehung von Vue.js

Erfunden wurde das Framework einem ehemaligen Mitarbeiter von Google, der mit seinem Team an Ideen und Konzepten für noch nicht veröffentlichte Software-Produkte arbeitete und dafür Prototypen mit AngularJS baute. Die Nachteile des AngularJS Frameworks für Prototypen waren unübersehbar. Deshalb wurde ein neues Framework entwickelt, welches bestens für kleine Prototypen geeignet war.

Vue zeichnet sich vor allem durch die Möglichkeit einer progressiven Integration in grössere Projekte aus. Der Kern des Frameworks ist minimal gehalten. Vue.js installiert notwendige Bestandteile wie Routing, State-Management und vieles mehr als separate Projekte.

Was macht Vue.js effizienter für kleine Projekte?

 

AngularJS      „Two-way Data-binding“ / „Dependency Injection“
Vue.js             One-way Data-flow“ / „Dirty Checking“

Durch diese progressive Natur ist Vue.js in sehr kleinen Projekten genauso komfortabel wie bei der Entwicklung von komplexen Prozessen auf dem Client. Das macht Vue.js zum flexiblen und mächtigen Tool zugleich. Man erzielt schon mit wenigen Zeilen Code erstaunliche Ergebnisse.

 

Vue.js ist eine neue Konzeption – und nicht einfach eine reduzierte Version von AngularJS und verfolgte ab frühestem Stadium bereits andere Prinzipien und die Komplexität zu verringern. Eine der größten Stärken von Vue.js ist, dass diese Zusatzfeatures nicht automatisch im Kern von Vue.js mitgeliefert werden, sondern je nach Bedarf hinzugenommen werden können. Damit können sowohl kleine Webprojekte als auch komplexere Applikationen realisiert werden. Vue.js passt sich einfach an die Projektkomplexität an. Wichtigste Bestandteile von Vue.js sind zudem die Verwendung eines Virtual DOM und das Deklaratives Rendering bei Single File Components.

 

Die Vorteile von Vue.js

Virtual DOM

Single File Components

Template Sektion

Script Sektion

Deklaratives Rendering

Style Sektion

Wiederverwendbarkeit

Aufteilen in mehrere Dateien

 

 

Virtual DOM

Das virtuelle DOM von Vue.js ist eines der Pro-Argumente schlechthin, wenn es um die Bibliothek geht. DOM steht für Document Object Model und ist eine interne Repräsentation der Website oder Webseite, die plattform- und sprachenunabhängig ist. Das virtuelle DOM ist als Abstraktion des DOM aus dem Browser leichtgewichtiger und schneller im Abarbeiten von Befehlen. Vue.js ist sowohl reaktiv als auch deklarativ und erlaubt visuelle Elemente zu erstellen und diese erst bei Anfrage zu darzustellen. Auch dann, wenn sich bestimmte Zustände und Daten in den Komponenten ändern.

 

Das Virtual DOM ist eine Baumstruktur, die aus dem HTML-Code der Web-Anwendung aufgebaut wird, den der Server dann an den Browser sendet. Jeder Knoten des Baumes entspricht einem HTML-Element, Verschachtelungen werden als Vater-Kind-Beziehungen der Knoten verdeutlicht. Es gibt verschiedene Tools zur Darstellung des DOMs. Diese Visualisierung ist jedoch für den Webseiten-Benutzer nicht sichtbar. Dieses abstrakte Duplikat des eigentlichen DOMs ist jedoch um einiges leichter, da nur eine Struktur enthält, die sich tatsächlich auch verändern lässt. Denn: sobald DOM-Updates erfolgen sollen, werden diese zuerst einzeln im virtual DOM vorgenommen. Ein intelligenter Algorithmus vergleicht im Anschluss die Unterschiede in einem Zug im tatsächlich gerendertem DOM.

 

Single File Components

Vue.js setzt auf Single File Components.  In einer Vue-Datei kann man folgendes definieren:

  1. Das Markup als Template in HTML
  2. Die Logik als Skript in JavaScript
  3. Der Style in CSS

Alles in einer einzigen Datei,  die daher auch ihren Namen hat – die Single File Component. Durch dynamisches Bundling ist es jedoch trotzdem möglich, HTML, JavaScript und CSS in getrennte Dateien abzulegen — dennoch gilt hier der Grundsatz einer abgeschlossenen Komponente. In der Regel werden alle drei Bestandteile in eine Datei geschrieben. Kleine Komponenten haben den Vorteil, testbar, wartbar und leicht erweiterbar zu sein. Diese Komponenten folgen daher dem Prinzip des Separation of Concerns. Dieses Prinzip bedeutet, dass man Zuständigkeiten strikt voneinander trennt. Eine einzelne Komponente erfüllt genau ihre Aufgabe, nicht mehr und nicht weniger. Dadurch kann gewährleistet werden, dass die Komponente universell einsetzbar ist. Single File Components bestehend aus Template, Script und Style managen so das Aussehen und Verhalten einer Komponente. Diese Single File Components lassen sich nun baumartig miteinander verbinden (virtuelle DOM).

 

Script
Eine Vue Komponente kann global oder lokal registriert werden. Das ist abhängig von der Architektur des Projektes.


Deklaratives Rendering
Die Daten und der DOM werden verbunden. Die Mustache Syntax und das Binden von Dateiattributen per v-bind werden vermischt. Ändert sich der Wert, wird das Template automatisch angepasst. Das Ganze funktioniert ebenfalls in die andere Richtung. Bindet man ein Datenmodell an ein Input Feld, so wird der Wert des Modells automatisch angepasst, sobald der Nutzer ihn verändert.

Style
Der Style muss nicht in purem CSS3 geschrieben werden. Der Einsatz von SCSS oder SASS ist über das Sprachattribut setzbar. Der Vue Loader kann das Attribut scoped dazu nutzen, um die dort gesetzten Styles nur spezifisch bei der Komponente einzusetzen. Das Attribut scoped verhindert zwar nicht das Setzen von globalen Styles für alle Paragraphen, aber sorgt dafür, dass nicht andere Paragraphen anderer Komponenten ebenfalls zentriert in der Größe von 2em geschrieben werden.

Wiederverwendbarkeit
Mit Mixins und Slots können Komponenten dynamisch und wiederverwendbar gestaltet werden. Slots sind so etwas wie Platzhalter. So kann die Elternkomponente einen beliebigen Inhalt in den Slot einer Kindkomponente einfügen, ohne dass die Kindkomponete wissen muss, was dieser Inhalt darstellt. Mixins werden in der Form einer Vue Komponente geschrieben. Komponenten können diese Mixins integrieren, um den Funktionsumfang ebenfalls zu nutzen.

Aufteilung in mehreren Dateien
Vue.js zwingt einen nicht, eine Single File Component immer in eine einzelne Datei zu schreiben. Es ist durchaus auch möglich, das HTML, CSS und JavaScript in mehrere Dateien abzulegen. Dadurch können CSS und JavaScript ausgelagert und in die Datei des Templates importiert werden.

Konfiguration eines Vue.js Projektes
Mit Vue.js ist es möglich, den Funktionsumfang der grafischen Oberfläche auch zu einem späteren Zeitpunkt zu ändern. Man ruft das User Interface erneut auf und nimmt die Anpassungen vor. Wird für mehrere Projekte immer wieder das gleiche Setup benötigt, kann man eine Voreinstellung speichern. Nachdem die Konfiguration eines neuen Projektes gespeichert ist, generiert die Vue CLI automatisch das Setup mit vorgeschriebenen Templates.

Single-Page Anwendung
Diese Webanwendung besteht aus einem einzigen HTML Dokument, dessen Inhalte dynamisch nachgeladen werden.

Entwurfsmuster
Ein Entwurfsmuster in der Softwareentwicklung ist eine bewährte Lösungsschablone für wiederkehrende Probleme.

Performance
Einer der grössten Vorteile von Vue.js ist die Geschwindigkeit. Vue.js ist sehr schlank, und performt sehr schnell. Ein Grund dafür ist die bessere Implementierung des virtual DOM. Vue.js braucht relativ wenig Overhead und arbeitet bestens mit Komponenten. Die Single-File-Components, die allen Code von HTML über CSS bis Javascript in einer Datei unterbringen, sind in Kombination mit Webpack vorkompiliert, was dem Browser Arbeit erspart und zusätzlich für Performance sorgt.

Die Vorteile von Vue.js auf einen Blick
Man pickt sich genau das heraus, was man braucht. Die Vorteile von Vue.js sind zum einen der kleine Kern, der dadurch auch zu einer geringen Dateigröße an ausgeliefertem JavaScript führt, zusammen mit der Erweiterbarkeit des Funktionsumfangs, der sich dementsprechend an die Projektkomplexität anpasst.

 

Internet of Things (IoT) im Marketing

Ansätze von Internet of Things im Digital Marketing
Unabhängig davon, ob es um Online Marketing, Omnichannel Marketing oder Digital Marketing geht – es ist eine Herausforderung, die richtige Botschaft im richtigen Zeitpunkt am richtigen Ort an die Konsumenten zu übermitteln. Unter IoT versteht man identifizierbare Objekte, die über das Internet miteinander vernetzt sind.

Soll eine Botschaft oder Werbung nicht mehr als nervig oder irrelevant angesehen werden, sondern mehr wie eine nette Empfehlung, wird Internet of Things ein Thema im Marketing. Internet of Things ist klar Technologie getrieben. Deshalb orientieren sich die neuen Formen der Kommunikation auch an Technologien wie RFID (Radio Frequency Identifikation) oder NFC (Near Field Communication). Mit der Verbreitung von IoT Geräten für Konsumenten wird IoT zum Hype.

IoT Geräte können wir schon heute überall finden, obwohl wir sie eigentlich gar nicht merken. Es sind Geräte, die unseren Alltag mit neuster Technik erleichtern, wie zum Beispiel Smart Thermostats, Connected Autos, Activity Trackers, Smart Outlets oder Tracking Sensors.

Produkte und IoT
Ein gutes Beispiel für Digital Marketing mit IoT ist die Haarbürste Kérastase Hair Coach, ein Produkt von L’Oreal und Withings. Das Gyroskop analysiert typische Kämmbewegungen und die dabei eingesetzte Kraft. Mit einem Konduktivitätssensor merkt die Bürste zudem, ob man sich die nassen oder trockenen Haare kämmt. Die Daten werden an eine Smartphone-App übergeben, in der dann personalisierte Haarpflege-Tipps aufbereitet werden (wobei auch der Wetterbericht, also Informationen zur Luftfeuchtigkeit mit einbezogen werden). Die Haarbürste ist mit einem Mikrofon ausgestattet, mit dessen Hilfe man Informationen abrufen kann.

Ein weiteres Beispiel ist der Kühlschrank Hub 2.0 von Samsung. Er bietet die Möglichkeit, Apps von anderen Anbieter zu integrieren. Der Kühlschrank meldet, was noch im Kühlschrank liegt, was wir wieder nachkaufen müssen und - wo WO wir dies tun können.

Hier zeigt sich, wie optimal Omnichannel Marketing mit der Integration von smarten Produkten funktionieren muss. Denn bei einer Aktualisierung der Informationen müssen die Daten nicht nur an das Gerät, sondern auch an alle anderen Kanäle übergeben werden – vom CRM über den Blog, die PIM-Lösung, die Webseite bis hin zum IoT Gerät.

Mittlerweile gibt es bereits verschiedene IoT-Plattformen. Denn diese Technologie ist datenintensiv, nicht zuletzt deshalb, weil die Geräte selbst auch Daten sammeln und lernfähig sind. Die Datenflut muss in Echtzeit bewältigt werden und zusätzlich wird mehr Flexibilität gewünscht. Analytics/Big Data-Fähigkeiten, Cloud-basierte Skalierbarkeit und der Aufbau von Microservice-Strukturen sind die aktuellen Herausforderungen von IoT.

 

Digitales Marketing mit Progress

Progress hat in den letzten Jahren eine breite und sehr professionelle Palette an Werkzeugen und Softwaretools entwickelt. Progress geht den konsequenten Weg des Digital-Marketings in vorbildlicher Weise. Das Enterprise CMS System Sitefinity wurde um weitere, interessante Plattformen ergänzt. So richtet sich die Angebotspalette von Progress heute an alle Unternehmen, die sich vornehmen, digitales Marketing professionell, effizient und effektiv umzusetzen.

Mit den Werkzeugen von Progress erstellt man hochwertige Multi-Channel Anwendungen für iOS und Android Apps. Die Anwendungen basieren auf JavaScript Frameworks und werden aus einer serverlosen Cloud-Plattform ausgeliefert. Auch personalisierte Inhalte sind so in Omnichannel-Umgebungen realisierbar. Somit ist es möglich, mit Hilfe von personalisierten Inhalten auch in Multi-Channel Anwendungen Interessenten zu Kunden zu transformieren und die Conversion-Rate zu messen.

Dank der umfangreichen JavaScript Frameworks kreiert man kanalübergreifende, innovative Oberflächen und überzeugt Zielgruppen mit einem durchgehenden Auftritt über alle Ihre digitalen Kanäle hinweg.

Basierend auf der Erkennung von Verhaltensmustern in digitalen Marketing-Kanälen (Flood of Sensor Data-Analysen) generiert man aussagekräftige Statistiken und Prognosen, die für die Strategie und Entscheidungsfindung herangezogen werden können und auch für die dynamische Erstellung von weiteren personalisierten, zielgruppenspezifischen Inhalten verwendet werden. So wandelt man Kundenerlebnisse in profitable Entscheidungen mit Hilfe von kanalübergreifenden Geschäfts- und Verhaltens.

Mit den Entwicklertools von Progress integrieren wir für Sie die neuen Möglichkeiten des digitalen Marketings in alle Ihre Geschäftsbereiche und in alle Ihre Geschäftsfelder.


Progress

https://www.progress.com/solutions/mobility

 

 

Schnelle, native Apps mit hohem Nutzererlebnis

Wie programmiert man hochwertige Multi-Channel Anwendungen für iOS und Android Apps mit JavaScript aus einer serverlosen Cloud-Plattform? Wie funktioniert der Support und Unterhalt für eine native App? Normalerweise ist nicht nur die Programmierung für iOS und Android Apps aufwändig, sondern vor allem der Support und Unterhalt. Das Ziel mit Multi-Channel Anwendungen ist es, eine gleichbleibende Qualität für mobile Endgeräte, responsive Web, Chat und weitere Anwendungen auszuliefern um damit ein einheitliches Benutzererlebnis zu gewährleisten.

Progress® Mobility Solution bietet eine end-to-end JavaScript Plattform für die Programmierung von nativen Anwendungen für alle möglichen Kanäle. Mit dieser sicheren und serverlosen Cloud Plattform können viele bestehende Anwendungen und Betriebsumgebungen, welche für die Omnichannel-Anwendungen nicht geeignet sind, ersetzt werden.

Diese end-to-end JavaScript Plattform liefert native Apps aus und zwar auf einen One-Code Basis. Um diese Plattform nutzen zu können, benötigt man ganz normale Entwickler-Kenntnisse.

Was bedeutet der Begriff UX Apps?
Wie erzielt man Kunden-Bindung über Emotionen durch UX- und UI-Design? Unter User Experience (UX) versteht man alle Erfahrungen und Empfindungen, die eine Person mit einem Produkt, einem Service oder einer Software hat. Und dies in einer Multichannel-Anwendung. Das User Interface (UI) schafft Benutzerfreundlichkeit aus grafischer Sicht. Es besteht aus Grafikdesign, Branding und Front-End-Entwicklung.

Das Nutzererlebnis
Wie lange Ihre Zielgruppe in der App verweilt und wie oft sie in die App zurückkehrt, wird stark vom Nutzererlebnis bestimmt. Das Nutzererlebnis ist somit der zentrale Erfolgsfaktor. Er besteht aus einem Mix von Inhalt, App-Funktionalität und Design. Aber auch die Performance gehört heute zum Nutzererlebnis. Mit der Progress® Mobility Solution end-to-end JavaScript Plattform werden Daten sicher und schnell ausgeliefert, auch bei komplexem Programmiercode.

Moderne, serverlose Architektur
Mit unabhängigen Microservices setzen wir Design, Entwicklung, Deployment und Skalierbarkeit auf einen neuen Standard ohne proprietäre Einschränkungen. Diese end-to-end Plattform bietet hohe Sicherheit und End-Benutzer Support

Vorteile für Ihr digitales Marketing

  • schneller Auslieferung von Inhalten und Dienstleistungen
  • tiefere Entwicklungskosten mit Nativ Script
  • erhöht das Nutzererlebnis und die Nutzerbindung mit nativen Apps
  • Benutzer erhalten schneller und gezielter die gewünschten Informationen
  • tiefere Entwicklungskosten für das Frontend (bis 60%)
  • tiefere Entwicklungskosten dank der JavaScript Technologie
  • schnellere Umsetzungszeiten („Time to Market“ bis 75% kürzer)
  • Integration von Unternehmensdaten
  • hoher Schutz für Ihre Daten

https://www.progress.com/solutions/web-experience

Erhöhung des Nutzererlebnisses mit Personalisierung

Wie erstellt man personalisierte Webinhalte in Multichannel-Anwendungen für ein noch besseres Nutzererlebnis und um die Geschäftsprozesse zu optimieren? Interessenten und Kunden wollen heute personalisierte Inhalte, die auf Ihr Interesse zugeschnitten sind – egal für welchen Kanal sie sich entscheiden. Vor diesem Hintergrund ist die Komplexität der technischen Umsetzung eine echte Herausforderung. Doch mit Progress ist es einfacher, kreative, interessante Lösungen zu realisieren, welche das Nutzererlebnis in Multichannel-Anwendungen durchgehend mit gleicher Qualität garantieren. Und dies erst noch ohne Erhöhung der Komplexität.

Im Gegensatz zu Lösungen, die durch Erhöhung der Komplexität auch teurer sind, kann mit Enterprise-Class von Progress® eine erfolgreiche Kombination aus Marketing- und IT-Knowhow realisiert werden. So können neue Inhalte und Nutzererlebnisse schnell und einfach erstellt und ausgeliefert werden. Das Marketing wird proaktiv verbessert und die Abhängigkeit von der IT für tägliche Arbeit wesentlich reduziert.

Ihre Vorteile sind
- Omni- und Multichannel Anwendungen
- erstellen von personalisierten Inhalten
- analysieren und verbessern von Kundenerlebnissen
- reduzieren der Kosten für die Erstellung von Mobile-Apps und Webseiten und deren Inhalte

Enterprise-Class von Progress® garantiert eine flinke und agile Webpräsenz. Mit einer benutzerfreundlichen Plattform und standardisierten Technologie kann man in Echtzeit in diversen Kanälen kommunizieren, Inhalte anpassen oder personalisieren. Mit Hilfe der Machine Learning Technologie werden das Engagement Ihrer Nutzer und sowohl die Konversionsrate als auch der Umsatz erhöht. Auch die Effizienz wird erhöht und die Auslieferung von Inhalten bis zu 60% schneller. Nebst Zeitersparnis bei der Inhaltserstellung sind auch die erhöhte Sicherheit und eine stabile Plattform für das Deployment die relevanten Erfolgsfaktoren. Mit der Enterprise-Class Plattform von Progress® werden Inhalte mehrsprachig in Multichannels ausgeliefert, die Flexibilität wird erhöht und die Übersicht verbessert.

https://www.progress.com/solutions/modern-ui

Innovative Benutzeroberflächen (UI) über alle Kanäle hinweg

Das Nutzererlebnis ist ein Treiber für den Erfolg einer modernen App. Mit einzigartigen, intuitiven und benutzerfreundlichen Oberflächen werden Erwartungen übertroffen. Die Entwicklung einer geeigneten und funktionierenden Benutzeroberfläche ist mit mehr technischen Herausforderungen verbunden als eh und je. Die Menge an digitalen Berührungspunkten sowie neue Entwicklungsumgebungen und Architekturen verkomplizieren die Entwicklung moderner Benutzeroberflächen. In letzter Zeit findet jedoch eine Standardisierung der Entwicklerframeworks statt – und zwar über alle Bereiche der Unternehmen hinweg. Mit Progress® Modern UI ist es dennoch einfacher geworden, denn Progress bietet damit umfassende Entwickler-Werkzeuge, um kanalübergreifende Nutzererlebnisse zu schaffen. Eine breite Palette an Komponenten-Bibliotheken, die sowohl .NET als auch JavaScript Frameworks umfassen, können heute für die Entwicklung eingesetzt werden und sind Wegbereiter für die Zukunft. Damit ist es möglich, ein konsistentes Look & Feel zu realisieren, egal, welches Medium die Zielgruppe nutzt.

Mit diesen hunderten von Komponenten, mit out-of-the-box Oberflächen, unlimitierten Möglichkeiten der Individualisierung lassen sich einzigartige Nutzererlebnisse realisieren und in verschiedene Kanäle integrieren.


https://www.progress.com/solutions/cognitive-predictive-maintenance

 

Der Schlüssel zu operationeller Excellence: Erkennung und Vorhersage von Anomalien

Die Flut von Daten, die alle Geräte erzeugen, müssen analysiert und ausgewertet werden. Die IoT Technologie (Internet of Things) hilft, ein eigenes Anwendungskonzept zu erstellen (Proof of Concept). Progress unterstützt hier mit einer IIoT Research License. Damit kann ein Unternehmen einen Mehrwert aus der Datenflut generieren, indem die Daten von Geräten, Maschinen für Auswertungen und Machine Learning genutzt werden. So können sensorische Daten in intelligente Aktionen gewandelt werden.

Maschinen und Geräte erzeugen massenhaft Daten, die ein extremer Mehrwert für das Unternehmen sein können. Es braucht Machine Learning, um aus diesen Daten einen Nutzen für das Management und die Organisation zu erzielen. Die Progress® Cognitive Predictive Maintenance Solution automatisiert Data Science (die Analyse von Massendaten), um für die Organisation eine ausgezeichnete Kontrolle über Massendaten zu erzielen.

Progress® Cognitive Predictive Maintenance Solution
Die Progress® Cognitive Predictive Maintenance Solution nutzt eine patentierte Meta-Learning-Anwendung, für die Erkennung und Vorhersage von Anomalien und um diese Informationen für das Data-Science zur Verfügung zu stellen.

Mit Hilfe von Progress® Cognitive Predictive ist es möglich:

  • Downtime zu reduzieren durch geplanten Unterhalt
  • unbenkannte Benutzer zu lokalisieren und identifizieren
  • unbekannte Fehler zu lokalisieren
  • jedes Asset zu analysieren
  • die Data-Science Effizienz zu erhöhen
  • mehr Informationen für strategische Entscheide zu generieren
  • komplexe Aufgaben im Distributionsprozess  zu lösen
  • die Uptimezeit zu optimieren
  • die Auslastung zu verbessern
  • die Qualität zu optimieren
  • die Effizienz des Systems zu optimieren (Overall Equipment Effectiveness, OEE)

Dank der Erkennung von künftigen Veränderungen können Informationen frühzeitig angepasst werden. Dies gilt auch in Bezug auf die technische Laufzeitumgebung.

https://www.progress.com/datarpm

 

Erkennung und Vorhersage von Anomalien

Die Flut von sensorischen Daten, die alle Geräte erzeugen, können mit Progress gefasst werden. Sie können einen grossen Mehrwert für das Unternehmen sein. Die auf diesen Daten basierende Erkennung und Vorhersage von Anomalien kann Downzeiten verhindern und die Uptime-Qualität verbessern. Die Qualität der Services wird optimiert und die Auslastung verbessert.
Bei businesskritischen Anwendungen lohnt es sich, Progress® Cognitive Predictive Maintenance Solution einzusetzen, um Umsätze zu erhöhen und die Effizienz der Betriebsumgebung zu verbessern.

https://www.progress.com/corticon

 

Fundierte Entscheidungen für profitable Geschäftsmodelle

Corticon ermöglicht es der IT, Businesslogik ausserhalb einer Applikation zu nutzen. Progress® Corticon® ergänzt bestehenden Anwendungen mit raffinierten und automatisierten Entscheidungsprozessen bei gleichzeitiger Reduktion des Entwicklungsaufwandes und iterativer Änderungen.

Corticon Geschäftsmodell Studio
Progress® Corticon® (Server) besteht aus dem „Geschäftsmodell Studio“, in welchem die Regeln definiert werden. In einen eigenen Interface können Modelle nach Businesslogik getestet und verifiziert werden. Hier können auch hochentwickelte Analysetools verwendet, ein Anwendungsfall-basiertes Testing und Szenario-basierte Modelltests durchgeführt werden. Zudem steht ein Template-basiertes Reporting für die Dokumentation und das Audit zur Verfügung.

Entscheidungsplattform
Ohne eine teure Datenintegration und ohne Middleware oder ohne komplexes SQL Coding werden mit dem Enterprise Data Connector des Corticon Servers Daten aus allen möglichen Applikationen des Unternehmens für eine ausgeklügelte Entscheidungsplattform aufbereitet und zugänglich gemacht. Der Corticon Server mit Corticon Studio skaliert Daten basierend auf definierten Modellen und Testing-Anwendungen in eine verdichtete Darstellung als Entscheidungs-Ebene für strategische oder taktische Entscheide auf der Grundlage Ihrer Geschäftsanforderungen.

Warum Corticon?
Progress Corticon kann einfach bedient werden, dennoch ist Corticon sehr mächtig und liefert absolut genaue Entscheidungsdaten. Corticon reduziert die Komplexität der unterschiedlichsten Software-Anwendungen (Applikationen) ohne Begrenzung von Benutzern, Performance-Einschränkungen, Plattform- oder Sprach-Limitationen. Mit einem automatisieren und performanten Entscheidungsmanagement werden die Unternehmensstrategie schneller und gezielter umgesetzt und die Softwareanwendungen schneller mit Änderungen und neuen Inhalten bedient. Mit Progress Corticon wird das gesamte Unternehmen in die Zukunft geführt und gleichzeitig die IT von fast unlösbaren Aufgaben entlastet. Corticon bietet eine intuitive Benutzeroberfläche mit individuell konfigurierbaren Kalkulationstabellen. Manager und Entscheidungsträger können damit Entscheidungsgrundlagen erarbeiten – ohne dass eine einzige Zeile Prrogrammcode geschrieben weden muss.

Performance
Progress Corticon bietet eine so hohe Performance, dass in Millisekunden Auswertungen von Millionen von Transaktionsdaten pro Tage verfügbar sind. Dies ist dem Design-Time-Inferencing™ (DeTI) möglich - ein Algorithmus, der in Corticon eingebaut ist. Damit lassen sich die Linearität der Unternehmendaten skalieren, auch wenn die Geschäftsmodelle sich ändern oder komplexer werden.

Genauigkeit
Die Integrität der Corticon Berechnungsmodelle wird duch ein Diagnose Tool sicher gestellt. Damit kann man neue Regeln testen und die Resultate verifizieren, Probleme oder Konflikte aufzeigen ohne zu befürchten, dass falsche oder irreführende Daten und Ergebnisse angelegt werden.


https://www.progress.com/nativescript

 

Elegante, native Multichannel (cross-platform) Mobile Apps

Mit einer einzigen Code-Basis, das heisst mit Hilfe der nativen App-Entwicklungsumgebung, lassen sich performante und benutzerfreundliche Apps für beide Plattformen programmieren: für iOS und Android. Die gängigen Technologien für die Webentwicklung wie JavaScrip, Angular, React, GraphQL, node.js, HTML/CSS leisten heute bessere Ergebnisse als die plattformspezifische App-Entwicklung. Und: es sind alles OpenSource Technologien, ohne Lizenzen nutzbar. Hier schliesst sich der Kreis, denn schon ganz zu Beginn der webbasierten Anwendungen war JavaScript die Basis-Technologie.

Gartner Magic Quadrant
Im bekannten Gartner Magic Quadrant (Benchmark für Software) wurde Progress 2019 als “Leader First Ever” positioniert. Und in der Tat: Progress ist der führende Anbieter von zukunftsweisender Software. Begonnen hat das ursprünglich mit Telerik und den weltweit in der Softwareentwicklung eingesetzten Telerik-Bibliotheken. Progress bietet heute Anwendungen für die plattform- und kanalübergeifende Distribution und Analyse von Inhalten (Multiexperience Development Platforms).

Bild:  gartner magic quadrant 2019 progress ??? Google??

https://www.google.com/search?q=gartner+magic+quadrant+2019+progress&client=firefox-b-d&sxsrf=ACYBGNRxvNRpqbCgL_ePT1rriujuqvWZ_Q:1575712656462&source=lnms&tbm=isch&sa=X&ved=2ahUKEwj9-p-Jo6PmAhUIyaQKHf3rDhMQ_AUoAXoECAsQAw&biw=1272&bih=645

NativeScript
Dieses Tool wurde von Progress für die nativen App-Entwicklung hervorgebracht. NativeScript ist ein OpenSource Entwickler-Framework, welches freien Zugang direkt zur nativen App-Entwicklung und Plattform Schnittstelle bietet. Diese Framework beinhaltet Komponenten von JavaScript, TypeScript oder Angular. NativeScript ermöglicht eine signifikante Vereinfachung und Verbesserung beim Coding für den Austausch von Inhalten in Web- und App-Applikationen.