Was die Analytics Branche bewegt – eMetrics 2013

eMetrics2013

Hier einige rege diskutierte Themen und meine persönlichen Highlights zur eMetrics Conference 2013, die das erste Mal in Berlin stattfand. Die Konferenz drehte sich hauptsächlich um Web Analytics. Dennoch konnte man stark spüren, dass viele der anwesenden Experten zwar aus … Weiterlesen

Toolvergleich JMeter versus ProxySniffer

JmeterVsPS2

Es gibt  eine Vielzahl  von Tools im Internet, die sich ausführlich mit dem Thema Lasttests befassen. Es  gibt viele Tools die ganz einfach einen Server mit einer vorgebebenen Requestabfolge anfragen können, in der Regel  ein paar Logfiles aufbereiten und die … Weiterlesen

Mobile Strategy – Wie man gelangweilte Kunden begeistert

mobile-strategy-oft-out-of-scope

Was haben Internet, Social Media und Mobile gemeinsam? Am Anfang wollte sie niemand. In allen drei Fällen hat sich das geändert. Die mittlerweile überschwängliche Liebe für die Themen verführt uns jedoch oft zu Ungeduld und (vor-)schnellen Lösungen: schnell eine Facebook-Seite … Weiterlesen

Dinge einfach machen und Dinge einfach machen

SBD2013_DrChristianMaass

Ausgangslage bei Bertelsmann war, dass viele der Entscheider die digitalen Produkte selbst nicht nutzten. Christian Maaß, Leiter E-Commerce Bertelsmann AG, vergleicht dies mit der hypothetischen Situation, dass der Vorstandsvorsitzende von BWM selbst nicht Auto fährt. Wir brauchen mehr Personen die … Weiterlesen

Die grösste Herausforderung in dieser Transformation sind Menschen

marketing-geht-online

Im Fokus der Präsentation von Markus Heusser (CEO Technical Components Division und Mitglied der Konzernleitung von Dätwyler) steht Distrelec, ein B2B-Shop der ein Sortiment von über 200’000 elektronischen Produkte in kleinen Mengen verkauft. Speziell dabei ist, dass die Bestellung normalerweise … Weiterlesen

Kommunikation ist alles!

unsere-reaktion-kanaele

„Nehmen Sie die Veränderungen als Chance und nicht als Risiko oder als Stolpersteine“ sagt Daniel Röthlin, CEO von Ex Libris. Das grosse Thema, auf welches wir gespannt sein können ist „Kundenkommunikation in einer Cross-Channel Welt“. Kommunikation stammt aus dem Lateinischen … Weiterlesen

I’d rather ask for forgiveness than for permission

digitale-hebel

„87% of companies in Fortune 500 in 1955, no longer existed in 2011“ sagt Patrick Comboeuf, Director E-Business bei der SBB… Aber besser war der folgende Fakt: “38% der Vorschulkinder können ein Smartphone bedienen, aber erst 8% können ihre Schuhbändel … Weiterlesen

Die digitale Transformation ist passé

sechs-disziplinen

„Die digitale Transformation ist passé, wir sind in der digitalen Realität.“. Bogdan Sutter von PWC beginnt seine Präsentation mit einigen statistischen und demographischen Fakten (die wir gut in seiner Präsentation nachlesen können). So beispielsweise mit einem Reifemodell unserer Kunden. Den … Weiterlesen

Weckruf von Tim Renner

„13.15 Uhr, Weckruf am Smart Business Day – die stehen ja so früh auf wie die Musikindustrie“. Mit Bezug auf sein Thema steigt Tim Renner gleich auf unserer Beliebtheitsskala (wir fühlten uns alle wieder in der Schule).

Die Musikindustrie hat es versucht, die Kunden rechtlich dinghaft zu machen, die das getan haben, was die Kunden von der Musikindustrie wollten… Ohne seine Mixtapes, so seine Erläuterung, wäre sein Erfolg bei Frauen nie so gut gewesen. Seine Frau ist noch heute im Besitz dieser – aus Sicht der Industrie illegalen – Wunderwerke (aka Kassetten mit Musik drauf).

Als die Musik digital wurde, handelte die Industrie weiterhin extrem kundenunfreundlich: Mit Kopierschutz und mangelhaftem Angebot. Waren die Leute dort so ignorant und idiotisch? Nein.

Kernbotschaft:

Ein Geschäft, welches auf Kontrolle funktioniert, hat in einer digitalen Welt keine Chance.

Das alte Geschäftsmodell war genial. Der Kunde wollte ein Lied, musste aber zwölf kaufen (die Schallplatte). Und als CDs kamen, verkaufte die Industrie dasselbe Bundle nochmals. All dies verknüpft mit einer sehr präzisen Kontrolle des Timing und des Preises.

Was mit der Digitalisierung geschehen ist, war kein technisches Phänomen. Es war ein Ruf nach Freiheit: Eine Revolution. Als Mittel dagegen gibt es nur Gewalt oder Androhung von Gewalt.

Die Grundbotschaft, welche er noch mit der katholischen Kirche und dem französichen Hadopi-Gesetz (three strike), ist der Verlust über die Kontrolle der Kunden.

Wenn es etwas illegal gibt, so gibt es den Kundenwunsch. Die Aufgabe der Firmen ist es, diesen Wunsch anzubieten. Eigentlich ganz einfach. Als Beispiel wo dies geschehen ist, nennt Tim das Angebot von Spotify, welches Auslöser für ein erneutes Marktwachstum ist. Die Konversion des Gratisangebotes mit Werbung zum Bezahlmodell sei übrigens 25%. Hier hat die Industrie gelernt loszulassen.

Anhang von seiner Tochter Victoria schliesst der seinen spannenden Beitrag mit dem schwierigen Augenblick, an welchem es zu entscheiden galt mit Angebot oder mit Repression zu reagieren.

GWT Blog-Serie – Die Vorteile für Entwickler (4/4)

Zum Abschluss meiner Blog-Serie will ich nun noch die Vorteile für Entwickler von GWT Anwendungen aufzeigen. In den Vorherigen Blogposts habe ich bereits erklärt was GWT ist, wie GWT die Performance der Browser optimal ausnutzt und dass sich GWT auf dem mobilen Markt mit jQuery Mobile und Sencha Touch messen kann.

GWT aus Entwicklersicht

Aus Entwicklersicht geht GWT einen komplett anderen Ansatz als andere Web Developer Frameworks. Normalerweise programmiert man in einem Web Developer Framework clientseitigen Code in JavaScript und serverseitigen Code in einer anderen Sprache wie z.B. Java, C# oder PHP.

Bei GWT wird der client- und der serverseitige Code in Java programmiert. Ein GWT Entwickler brauch theoretisch keine HTML Kenntnisse um eine Top Anwendung zu entwickeln. Praktisch gibt es jedoch viele Vorteile wenn man über diese verfügt, spätestens wenn man eigene Widgets programmieren möchte.

Quelle: The Future of GWT Report, 2012, Vaadin

Quelle: The Future of GWT Report, 2012, Vaadin

Vorteile von GWT

Als Entwickler bieten sich durch die Nutzung von Java als Frontend-Sprache diverse Vorteile. Aus einer Umfrage von Vaadin, haben sich die Entwickler für folgende Vorteile ausgesprochen:

Quelle: The Future of GWT Report, 2012, Vaadin

Quelle: The Future of GWT Report, 2012, Vaadin

Debugging

Aus meiner Erfahrung mit JavaScript Frontend Projekten, weiss ich, dass es nicht immer simpel ist JavaScript Code zu debuggen. Vor allem wenn ein Fehler in einer externen Library auftritt, kann das Debuggen sehr aufwändig werden. Clientseitiger Code kann mit GWT direkt in der IDE gedebuggt werden, als wäre es eine normale Java Anwendung, was eine grosse Erleichterung mit sich bringt.

Refactoring

Es können alle Refactoring Funktionen der IDE genutzt werden.

Community

Hinter GWT steht eine grosse Community. Bei Fragen zu GWT findet man z.B. auf Stackoverflow zu fast allen eine Antwort.

Testing

Automatisches Testen von clientseitigem Code ist immer schwierig in Web Anwendungen. Dank der strikten Trennung zwischen Logik und Layout kann auch der clientseitige Code mit allen bekannten Tools aus der Java Welt getestet werden. So können Tools wie JUnit, Test NG, JMock oder andere Mocking-Libraries eingesetzt werden.

Stateless Server

Dank der Stateless Servers lässt sich GWT sehr gut skalieren.

Back-Button Support

GWT verfügt über einem eingebauten Browser-Back-Button Support trotz der ausgiebigen Nutzung von AJAX-Requests. Als Entwickler muss man sich nicht selber darum kümmern.

Schnelles Entwickeln

Wenn man das Konzept von GWT verstanden hat, ist man extrem schnell im Entwickeln mit GWT.

Google App Engine Integration

GWT bietet volle Integration in Google App Engine. Als Entwickler kann man so schnell eine funktionierende App zusammenstellen und veröffentlichen ohne sich grosse Gedanken über den Backend-Server zu machen.

Nachteile von GWT

In der Umfrage von Vaadin wurde auch gefragt, wo die Nachteile von GWT liegen. Hier bin ich nicht mit allen Punkten gleicher Meinung.

Quelle: The Future of GWT Report, 2012, Vaadin

Quelle: The Future of GWT Report, 2012, Vaadin

Widgets

Es stimmt zwar, dass nicht genügend gute Widgets vorhanden sind. Aber ich empfinde das nicht als Nachteil. Denn eigene Widgets sind schnell programmiert. Wer eine coole Web Anwendung programmieren will, der muss so oder so die Widgets anpassen, damit sie seinen Ansprüchen entsprechen. Es gibt ausserdem viele Libraries wie z.B. Smart-GWT, welche besser Widgets anbieten.

Dev-Mode Refresh Time

Dies ist tatsächlich so, dass es etwas lange dauert, bis man seinen Code testen kann. Aber GWT hat den Super Dev Mode eingeführt, womit sich client code ohne neues Kompilieren schnell testen lässt. Für mich persönlich reichte der normale Dev Mode bis anhin. Den Super Dev Mode habe ich noch nicht ausprobiert.

Getting started with GWT is difficult

Weil der Ansatz wie man Webanwendungen entwickelt von GWT ganz anders ist als bei anderen Web Development Frameworks, braucht es einer ernsthaften Einarbeitung, bis man alle Konzepte verstanden hat. So können in clientseitigem Code zum Beispiel nicht alle Features von Java verwendet werden (z.B. kein Reflection).

Viele Wege führen nach Rom

Es werden immer wieder neue Konzepte eingeführt, welche dann ältere ablösen. Das bringt Vor- und Nachteile. So gibt es z.B. verschiedene Ansätze für die Kommunikation zwischen Server und Client oder verschiedene Möglichkeiten wie man Events behandelten kann. Bei der Entwicklung von GWT Anwendungen sollten sich die Entwickler am Anfang auf eine Technik einigen, wenn die entsprechenden Problemstellungen zur Anwendung kommen.

Persönliche Erfahrung mit GWT

Ich startet im Zuge meiner Bachelor Arbeit an der ZHAW in Winterthur mit dem Programmieren in GWT (2012).

Die Aufgabe bestand darin, ein Framework zu entwickeln, womit sich mobile Apps im Baukastenformat erstellen lassen. Der Benutzer der Anwendung sollte die Möglichkeit haben, verschiedene Module auszuwählen und diese dann als App zu publizieren. Der ganze Inhalt sollte im Web verwaltet werden können, wie in einem CMS. Die Entwickler sollten ausserdem die Möglichkeit haben, dass Framework individuell mit neuen Bausteinen zu erweitern, ohne den Core zu bearbeiten. Ein weiteres Key-Feature sollte die Skalierbarkeit sein. Es sollte möglich sein, das App-CMS auf einem Server zu betreiben und damit tausende Apps zu verwalten.

Architektur

Ich habe mich dann für GWT mit MVP-Architektur  für das Frontend und Google App Engine für das Backend entschieden. Alles wird in Java programmiert. Für die Persistenz wurde JDO verwendet.

Somit konnte ich das Framework losgelöst von den App-Bausteinen programmieren. Jeder Baustein konnte dann im Anschluss wiederum für sich entwickelt werden.

MVP-Archtiektur

Die MVP-Architektur ähnelt sehr der MVC-Architektur. MVP heisst Model-View-Presenter.

Ein Baustein besteht aus Client- und Serverklassen. Auf Serverseite bestehen hauptsächlich Model-Klassen. Die Clientklassen werden unterteilt in View-,Presenter- und Eventklassen sowie Proxy-Interfaces für die Servermodels.

MVP Klassendiagramm

MVP Klassendiagramm, Quelle: http://www.gwtproject.org/articles/mvp-architecture.html

AppController

Als Einstiegspunkt des Bausteins steht auf Clientseite der AppController. Dieser ist für die Logik verantwortlich, welche nicht in einem Presenter behandelt werden kann. So lädt dieser zum Beispiel die notwendigen Presenter-Klassen, welche dann für den Rest verantwortlich sind.

Model

Ein Model stellt eine Businessentität dar. Mit Hilfe von JDO-Annotationen werden diese Klassen auf dem Server persistiert. Der Client greift auf ein Proxy-Objekt zu und kann so direkt mit dem Server kommunizieren.

View

Eine View enthält alle UI Komponenten für diesen Baustein. In einer View werden alle Elemente angeordnet und mittels CSS designt. Ein View weiss nicht, welcher Inhalt in die Felder kommt, sondern nur, dass z.B. drei Labels und ein Bild dargestellt werden müssen.

Presenter

Im Presenter wird die ganze Logik abgebildet. Der Presenter lädt die Daten vom Server und bestimmt welche Daten durch die View dargestellt werden. Ausserdem ist er für das EventHandling der UI Komponenten und das History Management verantwortlich.

Um die Kommunikation zwischen View und Presenter zu gewährleisten, werden im Presenter Display-Interfaces definiert, welche von der View implementiert werden.

Struktur
MVP Struktur

MVP Struktur, Quelle: http://www.gwtproject.org/articles/mvp-architecture.html

Entwickeln mit GWT

Wer jetzt auf den Geschmack gekommen ist und mit GWT entwickeln möchte, der Informiert sich am besten unter gwtproject.org. Dort gibt es einige gute Tutorials. Pflicht für jeden Einsteiger ist das MVP Tutorial:

http://www.gwtproject.org/articles/mvp-architecture.html

http://www.gwtproject.org/articles/mvp-architecture-2.html

Wer diese zwei Artikel intensiv durchexerziert wird sehr schnell Spass am Entwickeln mit GWT finden und schnell die Vorteile erkennen gegenüber anderer Frontend Frameworks.

Page 10 of 199« First...89101112...203040...Last »