Montag, 18. Oktober 2010

Vendor Lock In?

Eigentlich ist es mir viel zu speziell, mich beim Hosting auf die Google App Engine festzulegen. Zumal die Erfahrungen durchaus auch Schattenseiten gezeigt haben.
Wo sind die Haken? Nun, eine Spring-Anwendung braucht immer eine Weile, bis sie aktiv ist. Und dieser Vorgang findet bei der Google App Engine alle Nase lang statt. Und selbst immerhalb einer solchen Sitzung dauert es gelegentlich unerfreulich lange, bis einige Dinge, die für mich essenziell sind, abgearbeitet sind. Vielleich nutze ich aber auch die Datenschicht nicht optimal, aber hey - das will ich ja gar nicht zwingend tun.
Der Vorteil bisher ist, daß ich davon ausgehen kann, daß der größte Teil, dessen, was ich da so zusammenstöpsele auch ohne die Google App Engine in jedem Web Container wie Tomcat laufen würde.

Lediglich in dem Moment, wie ich ein Datenmodell mit JDO schreibt, legt man sich durch einige Details auf die Google App Engine fest, weil diese in der JDO Implementierung einige Beschränkungen hat. Ein paar Stellen im Editing stellen hier auf Abhängigkeiten dar, die aber alle auflösbar konstruiert sind. Bisher habe ich es noch nicht versucht, mich auf eine andere JDO Implementierung zu stürzen, sondern erst einmal eine zweite Website damit umzusetzen. Das hat immerhin schon einmal den Framework gedanken belegt, daß es nicht nur eine Lösung für ein Problem ist.

Mittwoch, 13. Oktober 2010

Die Bausteine

Also kurz zusammengefaßt: Ich habe kein "schönes" CMS gefunden, bei dem man auch für mich verständlich einfach Programmierung hinzufügen kann. Und ich fand das Hostingangebot bei Googles App Engine recht interessant.

Was brauche ich nun, um meine Website zu realisieren?
1. Daten als Model für die Darstellung
2. Controller, die entscheiden, was passieren soll - zur Not eben nur, welcher View zu wählen ist
3. Views

Für die Daten nehme ich am einfachsten so einen netten Persistenzlayer, bei dem ich das Modell einfach in meiner Systemsprache beschreibe, ohne externe XML-Dateien oder sonstige Prozesse. Bei der Google App Engine drängt sich da ein wenig JDO auf, mit dem ich einfach mein Datenmodell beschreiben konnte. Es gibt da ein paar Haken, aber bisher habe ich die nach ein paar Tagen Frust darüber, daß wir nicht in einer idealen Welt leben, verdrängen können.

Über diese Daten wollte ich dann gerne die Templates schreiben. Nicht so, wie man das sonst immer sieht, sondern objektorientiert. Das ist für michverständlicher als alles, was ich von OpenCMS, Vosao, Joomla et al kenne. Ich kenne das vom CoreMedia CMS mit der Content Application Engine. Ich suche mir also ein Objekt heraus und Suche ein Template anhand der Java-Klasse dieses Objektes. Die Templates selbst schreibt man dann einfach als JSP. Diesen Template-Lookup mußte ich mir selbst schreiben, aber das war als solches in ein paar Stunden erledigt.

Danach wurde die Lösung schwergewichtiger, da ich ja wenig coden wollte. Als Controller und zur Integration der Logik, die die Templates heraussuchte, habe ich mir das Springframework aufgehalst. Warum das? Mit den den vielen schönen Features von Version 3 - insbesondere den @Controllern - kann man so schön einfach das URL Handling bauen. Die Implementierungen sind schlank, die Konfiguration sehr bequem.

So, und damit ist ein System zur Darstellung von strukturierten Daten im Web fertig. Es ist kein CMS und es ist auch keine Content Application Engine. Es ist mehr so wie im "Anhalter durch die Galaxis": Es schmeckt so ähnlich wie Tee, ist aber keiner. Was dabei insbesondere fehlt, ist die Möglichkeit die Daten einzugeben und zusammenzustöpseln, wie dies ja auf der anderen Seite die Templates nutzen würden, um daraus wieder HTML, CSS und alle seine Freunde zu machen.

Dienstag, 12. Oktober 2010

Doch wieder bekannte Welten

Da ich gar nicht so scharf darauf bin, mir eine Serverbetreuung an's Bein zu binden - das war mal anders - fand ich das Angebot der Google App Engine sehr charmant. Es gibt - anders als bei Amazon - einen kostenlosen Einstieg und man kann sich mit der Technik vertraut machen.
Eine Hoffnung hat sich allerdings auch hier wieder zerschlagen: Ich habe wieder kein für uns verständliches CMS mit der Option auf eigene Erweiterungen gefunden. Ich hätte doch so gerne tausende üblicher Standardfunktionen "eingekauft" - d.h. fertig implementiert vorgefunden. Wir haben hier Vosao eine Zeit lang im Test gehabt und nach großem Anwenderfrust ist es nun wieder abgeschaltet. Hier fehlt nun natürlich die Diskussion aller auf der Google App Engine mögliche CMS. Also bitte Kommentare zu mir.
Da die Website zugegebenermaßen durchaus eine richtige Anwendung werden soll und nicht nur ein paar Seiten darstellen, liegt eine Eigenprogrammierung nahe, aber das Ziel bleibt, sowenig Code wie möglich zu schreiben und ausgereiftes Material zu kombinieren.
So wäre man nun wie bei PHP mit der App Engine genauso enttäuscht, gäbe es da nicht noch ein paar nette Möglichkeiten am Rande (ja, das hätte man auch mit PHP machen können, wenn man ein geeignetes Framework kennt. Anyone?): Man kann ja selberbauen. Natürlich sollte es dann auch mehr wie bei einem Fertighaus sein als Stein auf Stein.
Dafür bietet die App Engine Python und Java als Sprachen samt entsprechender Frameworks. Python mag ich nicht. - Ich kenne es auch nicht wirklich außer für ein paar sehr kleine Scripts. Java kenne ich. Und insbesondere kenne ich bei Java auch die Fertigteile, die ich in der PHP-Welt bisher nicht gefunden habe.

Montag, 11. Oktober 2010

Richtungsentscheidung

Wir wollen eine Website bauen, die durchaus kommerzielle interessen verfolgt, aber im initialen Schritt nichts bis wenig Kosten soll. Werbung, Besucheranalyse, Gästebuch, Forum, kostenpflichtige Bereich, MItgliedschaft etc. sollen einmal dazukommen und dennoch soll erst einmal eine Schlichte Site entstehen.
Das Projekt soll von einem initialen Stand wachsen können, inhaltlich wie technisch. Mit einem einfachen Blog oder vergleichbarem ist es offensichtlich nicht getan.
Also schaut man sich nach einem CMS um, das man auch mit Funktionalität erweitern kann, die wir so im Hinterkopf haben.
Dazu stellt sich die Frage, für welchen technischen Rahmenbedingungen man günstiges Hosting bekommen.
Günstiges Hosting bekommt man für PHP und eine Datenbank sehr einfach, nur habe ich bis heute kein CMS oder Framework für PHP gefunden, mit dem ich umgehen kann. Liegt das an mir oder an den CMS/Frameworks oder habe ich nicht an der richtigen Stellen gesucht?
Die Suche im Bereich PHP geht durchaus weiter, und jeder ist gerne aufgefordert, mir hier eine geeignete technische Basis zu nennen! Zum Thema skalierendes Hosting habe ich dann aber noch etwas anderes entdeckt, mit den ich nun schon recht weit gekommen bin...

Freitag, 8. Oktober 2010

Falscher Name

Im Grund habe ich gerade diese Blog unter dem falschen Namen angelegt :-)
Die Software, an der ich gerade bastele, ist ein Framework für inhaltsgetriebene Webanwendungen. - Ich sag jetzt mal nicht CMS. - Eigentlich will ich sogar so wenig wie möglich basteln, denn das Internet ist voll von guter, fertiger Software. Ein Ziel, welche Bereiche das Ergebnis abdecken soll, ist natürlich auch schon definiert.

Ich will also mit vorhandenen Bausteienen eine bestimmte Zielform erstellen, oder? Klar, daß das Projekt "Tangram" heißen mußte...

Tangram ist das beim Weg nach Europa entstandene Wort für ein im Ursprung ein chinesisches Spiel: Qi Qiao Ban. Ansonsten fragt doch Tante Google oder Onke Wiki.