Portobello – Teil 1/Bekannte Grundlagen

this collection of articles are written in German simply due to the fact, that they should become the documentation of my framework and it is much easier for me to describe the stuff in German.

Warum ?
Einer der Stärken von Smalltalk ist der hohe interaktive Grad der Entwicklung. Ein wenig anders sieht es aus, wenn man den gesamten Entwicklungszyklung betrachtet – bis hin zum Packaging.

In älteren Versionen (vor 8.52) von VASmalltalk war das Packaging von Seaside-Anwendungen ein Abenteuer und sehr mühsam. Ein Grund ist sicherlich, dass diese Quelltexte von Squeak/Pharo kommen und Referenzen in den Quelltexten beinhalten, die der Packager von VASmalltalk nur mühsam bearbeiten kann.

Da ich – für mich – zum Schluss gekommen bin, dass ich versuchen will, GUI Entwicklungen nur noch im Browser durchzuführen und auf die Entwicklung von Fat-Client-Anwendungen möglichst verzichten will musste ich irgendwie den Entwicklungsprozess unter VA beschleunigen und vor allem das Packaging vereinfachen.

Im Endziel soll ein System geschaffen werden, dass sich unter Windows wie eine native Anwendung installieren lässt, aber einen Browser zur Ausgabe benötigt – und als Einzelplatzanwendung taugt.
Zusätzlich soll es aber auch bei Bedarf hinter einem Apache geschützt unter Linux laufen können und für als Mehrbenutzersystem gelten können.

Wie schon in der Vergangenheit heisst das fuer mich: Headless-Packaging um “echte” Serveranwendungen zu bekommen.

Es sollten die Plattformen Linux/x86 und Windows unterstützt werden. Die Entwicklung findet i.d.R. unter Windows statt – die Programme laufen aber – produktiv – auf Linux/64Bit Servern im Internet.

Das Packaging wurde auf “IC”-Basis umgestellt und die Anzahl der Komponenten wurde radikal reduziert.

Das Umstellen auf IC’s hat den Vorteil, dass man sich nicht um das “Reducing” kümmern muss – es wird nichts beim Packaging rausgeworfen – alles bleibt drinne. “Tote” Referenzen gibt es dann nicht mehr.

Inhalt des Basis-IC
Es gibt ein “Basis”-IC, dass aus dem Grundsystem von Smalltalk und zusätzlichen Applications besteht:

  • Base-Applications
  • Datenbanken (ODBC, DB2, Oracle)
  • TCP, Sst-Framework
  • Compiler, Management
  • XML

Zusätzlich zu den Paketen von Instantiations kommen dann noch eigene Pakete und von Squeak portierte Applikationen. Z.B.:

  • Seaside, jQuery, Javascript, jQueryMobile
  • CouchDB, JSON, ICU, SQLite, PostgreSQL, FreeImage
  • Glorp, Announcements, EMan
  • PDF und Postscript Support
  • TNetString, MessagePak, REST

Wenn man das dann alles zusammenwirft, bekommt man ein Basis-IC, von dem man (vergeblich🙂 ) hofft, dass es sich nicht so stark ändert. Es bildet aber eine Grundlage, mit der man so manches IT-Problem lösen kann.

Die Grösse des ICs bleibt im normalen Rahmen und zusätzliche Arbeiten zum Reduzieren der Dateigroesse scheinen mir daher unnötig.
Die Resultate bei beiden Plattformen:

  • win_base.ic (13 MByte)
  • win_seasidestarter.ic (17 KByte)

oder unter Linux:

  • unx_base.ic (11.5 MByte)
  • unx_seasidestarter.ic (14 KByte)

.
SeasideStarter IC
Das IC “seasidestarter” habe ich bereits früher vorgestellt. Es soll den Adapter starten, so dass Seaside arbeiten kann und zusätzliche ICs laden – aus denen dann die eigentliche Anwendung heraus gestartet wird.
Auch wenn dieses IC ein Leaf-IC ist, wird es so gepackt, dass ein rauswerfen unterbunden wird.

Config-Maps und Fixes
Die Version 8.52 glänzt nicht gerade, und es sind bereits zahlreiche Bugfixes erschienen, um Features überhaupt zum Laufen zu bekommen bzw. um Fehler zu beheben. Wieder einmal – und das meckere ich seit Jahren an – hat ein aktiver Kunde erheblich Probleme oder Mühen, sich über den aktuellen Stand an Bugfixes zu erkundigen. Etwas was auf open-source Projekten inzwischen üblich ist – kommerzielle Anbieter tun sich schwer damit.
Daher habe ich für das Basis-IC neue ConfigMaps erzeugt und den von mir benötigten Kram hineinkopiert mit den mir bekannten Fixes. Bei einer neuen Version von VA bedeutet das leider wesentlich mehr Arbeit, da das System nun vollständig durch meine ConfigMaps beschrieben werden und nicht unbedingt durch die Maps von Instantiations – aber ENVY ist dafür ja sehr gut zu gebrauchen.

Das alles hat noch nichts mit Portobello zu tun – aber diese Arbeiten bilden die Basis für das Portobello Framework.

This entry was posted in Smalltalk and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s