<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ric&#039;s Blog &#187; CodeCharge</title>
	<atom:link href="http://blog.rki-home.de/tag/codecharge/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rki-home.de</link>
	<description>Interessantes oderso...</description>
	<lastBuildDate>Wed, 04 May 2011 08:42:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>CodeCharge: Custom Blocks innerhalb Panels</title>
		<link>http://blog.rki-home.de/2008/10/26/codecharge-custom-blocks-innerhalb-panels/</link>
		<comments>http://blog.rki-home.de/2008/10/26/codecharge-custom-blocks-innerhalb-panels/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 14:24:10 +0000</pubDate>
		<dc:creator>ric</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[CodeCharge]]></category>
		<category><![CDATA[Custom Blocks]]></category>
		<category><![CDATA[Panels]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://blog.rki-home.de/?p=228</guid>
		<description><![CDATA[Dieser Artikel bezieht sich auf CodeCharge Studio 4.01.00.06. Andere Versionen könnten sich abweichend verhalten! Seit ein paar Wochen arbeite ich an einem Projekt, welches die Vorgabe hat, komplett in CodeCharge enwickelt zu werden. Dabei bin ich immer wieder an die Grenzen dieses mächtigen Werkzeuges gestossen. Ein häufiges Problem ist für mich, die Custom-Block-Möglichkeiten der Template-Klasse [...]]]></description>
			<content:encoded><![CDATA[<p><em>Dieser Artikel bezieht sich auf <strong>CodeCharge Studio 4.01.00.06</strong>. Andere Versionen könnten sich abweichend verhalten!</em></p>
<p>Seit ein paar Wochen arbeite ich an einem Projekt, welches die Vorgabe hat, komplett in CodeCharge enwickelt zu werden. Dabei bin ich immer wieder an die Grenzen dieses mächtigen Werkzeuges gestossen. Ein häufiges Problem ist für mich, die Custom-Block-Möglichkeiten der Template-Klasse an Stellen zu verwenden, die CodeCharge anscheinend nicht dafür vorgesehen hat und daher nicht ohne weiteres zulässt.<span id="more-228"></span></p>
<p>Es gibt drei unterschiedlich zu behandelnde Fälle, Custom Blocks zu plazieren, soweit ich das überblicke:</p>
<ul>
<li><strong>in der obersten Ebene, ausserhalb aller Components</strong><br />
Hier gibt es gar keine Probleme. Man kann seine Custom Blocks einfach definieren:</p>
<pre>
&lt;!-- BEGIN mein_custom_block --&gt;
   mein html code undso mit {meine_variable}
&lt;!-- END mein_custom_block --&gt;
</pre>
<p>und per benutzerdefinierten PHP-Code z.B. im &#8220;Before Show&#8221;-Event der Seite so verwenden:</p>
<pre>
global $Tpl;
$first = true;
foreach ($mein_array as $element)
{
   $Tpl->SetVar("meine_variable", element);
   $Tpl->Parse("mein_custom_block", !$first);
   $first = false;
}
</pre>
</li>
<li><strong>innerhalb eines Blockes <em>(z.B. Row)</em> einer Component <em>(z.B. Grid)</em></strong><br />
Das funktioniert fast genauso. Man muss der Template-Klasse nur die eigene Block-Variable nennen:</p>
<pre>
global $Tpl;
$first = true;
$Tpl->SetBlockVar("mein_custom_block","");
foreach ($mein_array as $element)
{
   $Tpl->SetVar("meine_variable", element);
   $Tpl->Parse("mein_custom_block", !$first);
   $first = false;
}
</pre>
<p>Diese ersten beiden Fälle sind auch dokumentiert: <a href="http://docs.codecharge.com/studio40/html/ProgrammingTechniques/HowTo/WorkingWithPages/CustomTemplateBlocks.html">Working with Custom Template Blocks</a>
</li>
<li><strong>innerhalb eines Panels (bzw. Update-Panels)</strong><br />
Will man einen Custom-Block innerhalb eines Panels verwenden, was ja das Mittel der Wahl sein soll, sobald man ganze Bereiche der Webseite einfach ein bzw. ausblenden muss (z.B. wegen Zugangsberechtigungen), dann funktionieren die ersten beide Vorgehensweisen nicht mehr. Custom-Blöcke werden hier nicht berücksichtigt, ja sogar vor dem Anzeigen entfernt.</p>
<p>Das liegt daran, dass der Template-Klassen-interne Zeiger auf der darüberliegenden Ebene stehen bleibt, sobald man sich im &#8220;before show&#8221;-Ereignis des Panels befindet.<br />
Die Abhilfe dazu sieht so aus, dass man </p>
<ol>
<li>sich die aktuelle Position des Template-Klassen-Zeigers merkt (in unserem Fall müsste &#8220;/main&#8221; darin stehen),</li>
<li>dann den Zeiger mit dem Panel-Pfad-Überschreibt (z.B. &#8220;/main/Panel mein_panel&#8221;),</li>
<li>hier wie bei den anderen beiden Fällen, die Template-Operationen durchführt und </li>
<li>danach den Zeiger wieder auf den ursprünglichen Punkt richtet (also in unserem Beispiel wieder auf &#8220;/main&#8221;).</li>
</ol>
<pre>
global $Tpl;
// (1):
$aktueller_zeiger = $Tpl->block_path;
// (2):
$Tpl->block_path = $aktueller_zeiger . "/Panel mein_panel";
// (3):
$first = true;
foreach ($mein_array as $element)
{
   $Tpl->SetVar("meine_variable", element);
   $Tpl->Parse("mein_custom_block", !$first);
   $first = false;
}
// (4):
$Tpl->block_path = $aktueller_zeiger;
</pre>
<p><strong>Benötigt man übrigens in seinem Panel lediglich eine Template-Variable (also {meine_variable}) ohne einen Custom-Block, so braucht man sich nicht mit diesem Workaround abgeben. Template-Variablen alleine funktionieren innerhalb von Panels wie gewohnt und völlig problemlos.<br />
</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rki-home.de/2008/10/26/codecharge-custom-blocks-innerhalb-panels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firebug, &#8220;syntax error&#8221; und DOCTYPE</title>
		<link>http://blog.rki-home.de/2008/10/22/firebug-syntax-error-und-doctype/</link>
		<comments>http://blog.rki-home.de/2008/10/22/firebug-syntax-error-und-doctype/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 12:35:50 +0000</pubDate>
		<dc:creator>ric</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[CodeCharge]]></category>
		<category><![CDATA[DOCTYPE]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[syntax error]]></category>

		<guid isPermaLink="false">http://blog.rki-home.de/?p=207</guid>
		<description><![CDATA[Heute sind wir über ein interessantes Phänomen bei einem CodeCharge-Projekt gestolpert: bei bestimmten Seiten hatte der Firebug einen &#8220;syntax error&#8221; in Zeile 1 festgestellt und die erste Zeile des HTML-Codes zitiert: &#8220;&#60;!DOCTYPE (&#8230;)&#8221;. Nachfolgene JavaScript-Aufrufe gaben teilweise weitere Fehler aus, teilweise aber auch nicht. Damit konnten wir zunächst gar nichts anfangen. Eine Suche bei Google [...]]]></description>
			<content:encoded><![CDATA[<p>Heute sind wir über ein interessantes Phänomen bei einem CodeCharge-Projekt gestolpert: bei bestimmten Seiten hatte der Firebug einen <strong>&#8220;syntax error&#8221; in Zeile 1</strong> festgestellt und die erste Zeile des HTML-Codes zitiert: &#8220;<strong>&lt;!DOCTYPE</strong> (&#8230;)&#8221;. Nachfolgene JavaScript-Aufrufe gaben teilweise weitere Fehler aus, teilweise aber auch nicht.<br />
<span id="more-207"></span><br />
Damit konnten wir zunächst gar nichts anfangen. Eine Suche bei Google ergab nicht viel, ausser dass vereinzelt Leute auch solche Probleme meldeten, aber meistens keine sinnvolle Lösung präsentieren konnten. Unter anderem wurde darauf hingewiesen, dass dieser Fehler vorkommt, sobald man ein <strong>script-Tag </strong>im Code stehen hat, welches ein <strong>leeres src-Attribut</strong> besitzt.<br />
Bei uns gab es aber keine leeren src-Attribute &#8211; die Lösung war aber gar nicht so weit davon entfernt. In diesem speziellen Fall haben wir wegen der URL-Lesbarkeit diverse <strong>mod_rewrite</strong>-Regeln in unserem Projekt, die dummerweise mit den (leider nicht absoluten) Pfadangaben der CodeCharge-JavaScript-Dateien kollidierten. Erschwert hat die Fehlersuche, dass durch die mod_rewrite-Regeln die Script-Datei zufälligerweise auf die jeweilige aufrufende(!) HTML- bzw PHP-Seite umgeleitet wurde. Wenn man also im Firebug die Fehlerzeile anzeigen wollte, bekam man genau den HTML-Code der aufgerufenen Webseite. Wenn wir aufmerksamer gewesen wären, hätten wir merken müssen, dass eigentlich die erste Zeile der jeweiligen JavaScript-Datei als Fehler genannt wurde&#8230;</p>
<p><strong>Zusammengefasst:</strong> Das Problem lag daran, dass die externen JavaScript-Dateien nicht geladen werden konnten, stattdessen wurden HTML-Seiten durch ungünstig gewählte mod_rewrite-Regeln geladen, die natürlich einen &#8220;syntax error&#8221; erzeugten.<br />
Das steht dem Fehlverhalten bei leerem src-Attribut in script-Tags nicht entgegen, denn der Webserver gibt normalerweise eine Standard-Seite (z.B. index.html) zurück, wenn nur ein Verzeichnis aufgerufen wird (bei leerem src-Attribut wird von Webserver automatisch der komplette Pfad der Basis-Seite ohne Dateiname verwendet), oder eben, falls nicht vorhanden, eine Fehler-Seite, die meistens HTML-Code beinhalten und eben nicht JavaScript.</p>
<p><strong>Die Lösung:</strong> Man muss nur dafür sorgen, dass alle eingebundenen JavaScript-Dateien auch tatsächlich geladen werden, bzw auch den Inhalt haben, der tatsächlich gebraucht wird.<br />
Bei uns hiess das, die mod_rewrite-Regeln soweit anpassen, dass solche Script-Dateien nicht umgeleitet werden. CodeCharge-seitig wäre das zu aufwendig geworden, denn es handelte sich hier um HTML-Code der von CodeCharge generiert wird und nur schwer beeinflusst werden kann, ohne dass bei neuem Generieren die Anpassungen wieder überschrieben geworden wären.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rki-home.de/2008/10/22/firebug-syntax-error-und-doctype/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CodeCharge 4 &#8211; Testbericht Teil 2</title>
		<link>http://blog.rki-home.de/2008/08/27/codecharge-4-testbericht-teil-2/</link>
		<comments>http://blog.rki-home.de/2008/08/27/codecharge-4-testbericht-teil-2/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 15:52:58 +0000</pubDate>
		<dc:creator>ric</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[CodeCharge]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://blogs.rki-home.de/ric/2008/08/27/codecharge-4-testbericht-teil-2/</guid>
		<description><![CDATA[Gestern abend bin ich bei dem Task Manager Demo hängen geblieben. Zum einen konnte ich die &#8220;Home Page&#8221; per F7 innerhalb CodeCharge nicht öffnen, zum anderen fehlte die komplette Tabellenstruktur. Ich habe auch keinen Hinweis in dem Demo gefunden, wie die Struktur aussehen soll. Nun gut, vielleicht habe ich versucht, einen zu grossen Schritt zu [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern abend bin ich bei dem Task Manager Demo hängen geblieben. Zum einen konnte ich die &#8220;Home Page&#8221; per F7 innerhalb CodeCharge nicht öffnen, zum anderen fehlte die komplette Tabellenstruktur. Ich habe auch keinen Hinweis in dem Demo gefunden, wie die Struktur aussehen soll.<br />
<span id="more-54"></span><br />
Nun gut, vielleicht habe ich versucht, einen zu grossen Schritt zu machen. Mein neuer Ansatz: die vorhandene Dokumentation sichten. Eigentlich wollte ich zuerst ins Forum schauen, aber zu dem Zeitpunkt war die Subdomain des Forums (<a href="http://forums.codecharge.com/">forums.codecharge.com</a>) nicht erreichbar. Ich bin dann auf die Seite http://support.codecharge.com/tutorials.asp gekommen, wo diverse PDF-Dokumente aufgelistet sind. Dummerweise war die Subdomain docs.codecharge.com, auf der die PDF-Dateien liegen, auch nicht erreichbar! Es stellte sich aber als schlechtes Timing heraus, denn ein paar Minuten später konnte ich alle herunterladen.</p>
<p>Ich nehme mir jetzt mal das 162 Seiten starke Dokument &#8220;Quick Start Tutorials&#8221; vor.</p>
<p><strong>Hello World</strong><br />
Wir fangen an &#8211; wie kann es anders sein &#8211; mit dem klassischen &#8220;Hello World&#8221; Projekt. Es wird einem schön Schritt für Schritt gesagt, was man tun muss. Diese Schritte werden teilweise von Screenshots begleitet, wobei ich das Gefühl habe, dass diese Bilder oft nicht zum aktuellen Abschnitt passen, bzw. dass die passenden Bilder etwas zu spät kommen. Aber das sollte einen nicht aufhalten.<br />
Eine Stelle, über die ich gestoplert bin, weil nicht explizit darauf hingewiesen wurde (und das passende Bild dazu natürlich erst einen Absatz später gezeigt wurde), ist die Angabe des Strings in &#8220;Source Name&#8221;, nachdem man &#8220;Source Type&#8221; auf &#8220;Expression&#8221; gesetzt hat: ich hatte nämlich die Anführungszeichen vergessen, was zu einem PHP-Fehler führte. Das ist mir aber auch erst klar geworden, nachdem ich mir den generierten Code angeschaut hatte.<br />
Gravierender ist der Punkt, den ich gestern schon bemängelte: Die &#8220;Live Page&#8221;-Option funktioniert einfach nicht. Die Adresse, die in der IE-Fehlermeldung als falsch erklärt wird, funktioniert, wenn man sie manuell in einem Browser (auf der selben Maschine!) aufruft. Diverse Forums-Einträge zeigen, dass ich nicht der einzige bin, der das &#8220;Hello World&#8221;-Tutorial nicht komplett erfolgreich beenden kann. Lösungen werden keine geboten. Eine finale Antwort eines ellenlangen Threads war nicht schlecht, an die ich mich wohl auch halten werde: &#8220;<em>I never use that option&#8230;</em>&#8220;.</p>
<p>Somit ist das erste Tutorial quasi fertig und das End-Ergebnis ist &#8220;lauffähig&#8221;, wenn auch nicht alles innerhalb CCS so funktioniert hat, wie beschrieben.</p>
<p><strong>Employee Directory</strong><br />
Das nächste Tutorial soll ein Mitarbeiterverzeichnis erzeugen, wobei zunächst erstmal diverse Projekteinstellungen vorgestellt werden, darunter auch die Datenbankverbindungen. Da CodeCharge mit vielen verschiedenen Programmiersprachen und auch Datenbanksystemen arbeiten kann, sehen hier leider die Projekteinstellungs-Screens teilweise recht unterschiedlich aus. Auch wird auf ein paar Datenbankverbindungs-Details eingegangen, die es in meinem Fall gar nicht gibt&#8230;ein wenig irritierend ist das schon.<br />
Nachdem man alle Projekteinstellungen durchgegangen ist, darf man jetzt den &#8220;Grid Builder&#8221; verwenden, um vermutlich eine Tabelle mit Daten aus der Datenbank anzuzeigen. Um die darzustellenden Felder auszuwählen, kann man den Visual Query Builder verwenden, der mit CCS kommt. Hier soll man zwei Tabellen auswählen&#8230;die ich natürlich nicht habe. Wer den ersten Teil dieses Testberichts gelesen hat, mag sich vielleicht erinnern, dass ich gestern vor einem ähnlichen Problem stand: die Datenbank ist natürlich leer! Es gibt keine einzige Tabelle! Auch im Tutorial ist dazu nichts erwähnt. Zumindest ist mir nichts aufgefallen und ich werde es wohl übersehen haben, wenn es beschrieben wurde.<br />
Ein Blick ins Forum (ok, das war gelogen, mehrere Blicke) und die Lösung findet sich in einem Antwort-Post eines YesSoftware-Forum-Moderators, der einem anderen verzweifelten Tutorial-Anwender erklärt, die Tabellenstruktur befünde sich hier: <em>C:\Program Files\CodeChargeStudio3\Examples\Intranet\Intranet_MySQL.sql</em>. Und das stimmt! Mein Gott, Walter! Warum denn nicht gleich so <img src='http://blog.rki-home.de/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /><br />
Ab hier geht alles recht relativ leicht. Besonders schön sind die Einstellmöglichkeiten für die Sortierung der Tabelle und man kann diverse Seiten-Navigationsdesigns auswählen. Ausserdem gibt es für das Seitenlayout unzählige Styles aus denen man auswählen kann. Das hat schon was &#8211; ohne so ein Tool würde man eine nicht unerhebliche Zeit allein zum Zusammenschustern von einigermassen lesbaren Tabellen benötigen.<br />
Die weiteren Schritte bestehen hauptsächlich darin, die Such-Felder mit der HTML-Tabelle und den DB-Tabellen zu verknüpfen. Wenn man damit fertig ist, steht das Publishen an.<br />
Wenn man aber, wie ich, den Security-Teil des Tutorials übersprungen hat, wie es der Text einem vorschlägt, wird man vor einem Problem stehen. Man hat nämlich laut Tutorial eine Login-Seite eingerichtet und die Seite mit der Tabelle auf Restricted gestellt, damit nur eingeloggte User mit einem bestimmten Level diese Tabelle sehen dürfen. Dummerweise habe ich aber eben jenen Teil übersprungen, der die projektweiten Userdaten definiert. Somit funktioniert das Login-Formular gar nicht und man kann seine tolle Tabelle nicht anschauen <img src='http://blog.rki-home.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
Gut ich bin ja nicht auf den Kopf gefallen und habe diese Einstellungen noch vorgenommen und jetzt kann ich mir die sehr hübsche, funktionsreiche und eigentlich total easy erstellte Tabelle anschauen und darin blättern, bzw. suchen. Genial &#8211; ich bin wirklich begeistert!</p>
<div align="center"><a href='http://blogs.rki-home.de/ric/files/2008/08/grid.png' title='Employee Directory'><img src='http://blogs.rki-home.de/ric/files/2008/08/grid.thumbnail.png' alt='Employee Directory' /></a></div>
<p>Spätestens jetzt kann ich wirklich sagen, dass CodeCharge ungeheuer mächtig ist und einem wirklich verdammt viel Arbeit abnimmt, sobald man sich darin zurechtfindet.<br />
Ich habe bis jetzt wohl nur an der Oberfläche gekratzt, denn es stehen mir noch unzählige Builder zur Verfügung, von denen ich noch nichts weiss. Ich bin wirklich gespannt, was da noch für Tools versteckt sind.</p>
<div align="center"><OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" id="Player_ed87a3c5-8b55-4f31-811f-b45f57f5c82c"  WIDTH="300px" HEIGHT="250px"> <PARAM NAME="movie" VALUE="http://ws.amazon.de/widgets/q?ServiceVersion=20070822&#038;MarketPlace=DE&#038;ID=V20070822%2FDE%2Frisbl0f-21%2F8003%2Fed87a3c5-8b55-4f31-811f-b45f57f5c82c&#038;Operation=GetDisplayTemplate"><PARAM NAME="quality" VALUE="high"><PARAM NAME="bgcolor" VALUE="#FFFFFF"><PARAM NAME="allowscriptaccess" VALUE="always"><embed src="http://ws.amazon.de/widgets/q?ServiceVersion=20070822&#038;MarketPlace=DE&#038;ID=V20070822%2FDE%2Frisbl0f-21%2F8003%2Fed87a3c5-8b55-4f31-811f-b45f57f5c82c&#038;Operation=GetDisplayTemplate" id="Player_ed87a3c5-8b55-4f31-811f-b45f57f5c82c" quality="high" bgcolor="#ffffff" name="Player_ed87a3c5-8b55-4f31-811f-b45f57f5c82c" allowscriptaccess="always"  type="application/x-shockwave-flash" align="middle" height="250px" width="300px"></embed></OBJECT> <NOSCRIPT><A HREF="http://ws.amazon.de/widgets/q?ServiceVersion=20070822&#038;MarketPlace=DE&#038;ID=V20070822%2FDE%2Frisbl0f-21%2F8003%2Fed87a3c5-8b55-4f31-811f-b45f57f5c82c&#038;Operation=NoScript">Amazon.de Widgets</A></NOSCRIPT></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.rki-home.de/2008/08/27/codecharge-4-testbericht-teil-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeCharge 4 &#8211; Testbericht</title>
		<link>http://blog.rki-home.de/2008/08/26/codecharge-4-testbericht/</link>
		<comments>http://blog.rki-home.de/2008/08/26/codecharge-4-testbericht/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 19:06:19 +0000</pubDate>
		<dc:creator>ric</dc:creator>
				<category><![CDATA[Movies]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[CodeCharge]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://blogs.rki-home.de/ric/2008/08/26/codecharge-4-testbericht/</guid>
		<description><![CDATA[Da ich möglicherweise demnächst an einem Projekt für einen Kunden arbeiten werde, der mit CodeCharge Studio (kurz CCS) arbeitet, schreibe ich hier einen (kurzen?) Erfahrungsbericht zusammen. Interessant ist es für mich allemal, da einem CCS alle möglichen stupiden Arbeiten abnehmen soll, die man als PHP-/MySQL-/Webentwickler sonst immer wieder mühsam zusammenfrickeln muss (es sei denn man [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich möglicherweise demnächst an einem Projekt für einen Kunden arbeiten werde, der mit <a href="http://www.yessoftware.com/index2.php">CodeCharge Studio</a> (kurz CCS) arbeitet, schreibe ich hier einen (kurzen?) Erfahrungsbericht zusammen.<br />
Interessant ist es für mich allemal, da einem CCS alle möglichen stupiden Arbeiten abnehmen soll, die man als PHP-/MySQL-/Webentwickler sonst immer wieder mühsam zusammenfrickeln muss (es sei denn man hat sich über die Jahre hinweg bereits ein kleines Framework aufgebaut). Somit ist auch schon klar, dass meine Schwerpunkte bei PHP, MySQL und eventuell AJAX, bzw. JScript liegen werden.<br />
<span id="more-49"></span><br />
Ich bin wohl vor ca. 5 Jahren schon einmal mit CodeCharge in Berührung gekommen, als ich im Auftrag meines damaligen Arbeitgebers die komplette, ausgelagerte Entwicklungs-Abteilung von Hamburg nach München überführen musste, damit die Entwicklung direkt im Hause meines Arbeitgebers vonstatten gehen konnte. Ich arbeitete mich damals in die vorhandenen Projekte ein und übernahm dann selbst einige davon, führte aber auch neue Mitarbeiter in die Projekte ein.<br />
Diese Projekte waren wohl mit CodeCharge realisiert worden, was mir aber bei der Übergabe niemand gesagt hatte. Daher waren wir quasi gezwungen, den vorhandenen Code manuell zu verändern bzw. grosse Teile neu zu schreiben. </p>
<p>Seit dem habe ich mit CCS nichts mehr am Hut gehabt. Letzten Monat konnte ich aber bei dem bereits erwähnten Kunden kurz beim Arbeiten mit CCS über die Schulter schauen, wobei ich mir noch kein so rechtes Bild davon machen konnte.</p>
<p>Daher jetzt ein erster Testbericht:<br />
Das CodeCharge Studio 4 lässt sich als 20-Tage-Trial-Version herunterladen. Die 20 Tage beschränken sich anscheinend tatsächlich auf Arbeitsdauer und zählt nicht einfach ab Installation die Kalendertage herunter. Zumidest lässt es sich jetzt starten, obwohl ich das Studio bereits vor einigen Wochen installiert hatte und mangels Zeit noch nicht benutzten konnte.</p>
<p><strong>Erstes Problem:</strong> ich kann kein Projekt-Verzeichnis auf einem Netzlaufwerk verwenden! In meinem Fall ist es sogar eigentlich nur ein Shared-Folder, zu meinem Linux-Host-System, da ich CCS in einer virtuellen Windows-Maschine laufen lasse. Aber die Doppel-Slashes scheinen CCS zu stören:</p>
<div align="center"><a href='http://blogs.rki-home.de/ric/files/2008/08/error-1.png' title='Projektpfad ist “falsch”'><img src='http://blogs.rki-home.de/ric/files/2008/08/error-1.thumbnail.png' alt='Projektpfad ist “falsch”' /></a></div>
<p>Nagut, halb so wild, wird eben ein lokales Verzeichnis benutzt <img src='http://blog.rki-home.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
Das Studio kommt bereits mit diversen Demos geliefert. Ich habe mir den &#8220;Task Manager&#8221; zum Testen ausgesucht. Nach erfolgreichem Anlegen des Projektes sehe ich nun auf der linken Seite eine Übersicht aller Elemente des Projektes in Form eines Trees, aufgeteilt in Pages, Diagrams, Connections, Ressources und Common Files. Oben gibt es ein recht übersichtliches Menü, sowie zwei Icon-Bars, ganz so wie man es zum Beispiel aus MS Word kennt. Rechts gibt es eine Toolbox und ein Properties-Fenster, unten sitzt eine Message-Box, vermutlich für Warnungen und Fehlermeldungen im Code und der grosse mittige Bereich ist für den Code des jeweiligen ausgewählten Dokumentes vorgesehen:</p>
<div align="center"><a href='http://blogs.rki-home.de/ric/files/2008/08/project.png' title='Projektansicht'><img src='http://blogs.rki-home.de/ric/files/2008/08/project.thumbnail.png' alt='Projektansicht' /></a></div>
<p>Im Grossen und Ganzen sieht es nach einer klassischen Aufteilung des Bildschirms aus, wie bei Microsofts &#8220;Visual Studio&#8221; oder der Developer IDE der Eclipse Foundation. Letztere war übrigens die vergangenen Jahre das Entwicklungs-Werkzeug meiner Wahl.</p>
<p><strong>Zweites Problem:</strong> Routinemässig richte ich für jedes meiner Projekte eine Versionskontrolle ein. Früher ging das für mich unter Visual Studio mit SourceSafe, später unter Linux mit CVS und inzwischen mit SVN, welches gegenüber CVS moderner ist. CCS bietet auch eine &#8220;Source Control&#8221; an, welche sich aber anscheinend standardmässig auf CVS stützt. Jedenfalls wird bei mir gleich das Fehlen der &#8220;Cvs EXE&#8221; bemängelt, es wird mir aber die Angabe einer Applikation angeboten:</p>
<div align="center"><a href='http://blogs.rki-home.de/ric/files/2008/08/error-2.png' title='No CVS exe'><img src='http://blogs.rki-home.de/ric/files/2008/08/error-2.thumbnail.png' alt='No CVS exe' /></a></div>
<p>Ich sehe hier auf die Schnelle leider keine Möglichkeit SVN (bzw TortoiseSVN) innerhalb von CodeCharge zu benutzen. Da sich TortoiseSVN sowieso direkt in Windows integriert, sehe ich hierbei aber keinen übermässigen Nachteil, wobei es schön gewesen wäre, das innerhalb von CCS zu haben.</p>
<p><strong>Drittes Problem:</strong> ist eigentlich gar kein Problem. Bevor ich irgend etwas von den Programmier-Tools ausprobieren will, versuche ich, das Demo-Projekt so wie es ist auf meinem Apache2-Entwicklungsserver zum Laufen zu bekommen. Dafür habe ich folgende Publish-Optionen: Intranet und FTP. Na toll! Mit Intranet wird wohl ein Netzlaufwerk oder ähnliches gemeint sein, was quasi das erste genannte Problem adressiert. Will ich jetzt aber nicht, weil mein Produktionsserver, wenn ich einen benutzte, nicht im Intranet sitzen würde! FTP &#8211; hmm. Wer benutzt heutzutage noch FTP bitteschön? Ok, viel zu viele, aber das ist doch asbach-uralt und unsicher wie sau! Aber hier war ich wohl etwas zu voreilig, denn hinter FTP versteckt sich bei CCS auch die Möglichkeit, eine sichere Verbindung zu verwenden, sprich: SFTP! Das ist es, was ich will! <img src='http://blog.rki-home.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>Viertes Problem:</strong> ist kein CodeCharge-spezifisches Problem, aber es kostete mich dennoch einen haufen Zeit. Und zwar geht es um die Datenbank-Verbindung. In meinem Fall: MySQL &#8211; natürlich unter Linux. Dafür musste ich auf meiner Windows-Maschine erstmal einen ODBC-Treiber für MySQL installieren und die Datenbank-Verbindung in der Windows-Verwaltung einrichten. Das ging natürlich nicht auf Anhieb. Jedesmal dieser dämliche 10061-Fehler, obwohl ich für den DB-User extra _alle_ Hosts zulasse und keine Firewall laufen lasse. Naja, im Endeffekt war es die Zeile mit &#8220;bind-address&#8221;, die ich aus der my.cnf entfernen musste UND ein Neustart der kompletten MySQL-Applikation, ein einfaches Reload reichte leider nicht, worauf ich auch erst nach einigen Versuchen gekommen war&#8230;</p>
<p>Jetzt kann ich endlich das Demo-Projekt auf den Test-Server spielen und die DB-Verbindung funktioniert sogar sowohl im Entwicklungs-Modus als auch im Test-Modus und ich kann das Projekt über den Browser aufrufen. ABER: die Tabellen fehlen noch. Die Anwendung läuft, spuckt aber Meldungen aus, dass die Tabelle &#8220;tasks&#8221; nicht existiert. Das kann ich sogar bestätigen &#8211; mit einem kurzen Blick auf die Datenbank: es existiert keine einzige Tabelle.</p>
<p><strong>Fünftes Problem:</strong> Man kann die Home-Page des Projektes innerhalb von CodeCharge öffnen &#8211; übrigens einfach ein integrierter Internet Explorer vom System. Jedenfalls kommen nach dem Aufruf im Message-Fenster ein paar Meldungen, die aussagen, dass der Content generiert wird und zusätzlich poppt ein Status-Fenster mit Fortschrittsbalken auf. Das ist aber so schnell wieder weg, dass ich nicht sehen kann, was eigentlich da fortschreitet, es sieht aber so aus, als ob das der normale Publish-Vorgang wäre. Sofort erscheint eine Fehlermeldung:</p>
<div align="center"><a href='http://blogs.rki-home.de/ric/files/2008/08/error-3.png' title='Internetadresse falsch!'><img src='http://blogs.rki-home.de/ric/files/2008/08/error-3.thumbnail.png' alt='Internetadresse falsch!' /></a></div>
<p>Sehr witzig! Die Adresse war am Anfang tatsächlich falsch, aber nachdem ich die passende Option in den Projekteinstellungen korrigiert hatte, kam der selbe Fehler wieder, nur diesmal mit der _richtigen_ Adresse <img src='http://blog.rki-home.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
Im Browser (IE und FF), auf der selben Maschine, lässt sich genau diese Seite nämlich öffnen! Tja, was nun?<br />
Könnte sein, dass dieser Fehler damit zusammenhängt, dass keine Tabellen generiert worden sind.<br />
Ich komme jetzt erstmal  nicht weiter. Schauen wir mal, wie es morgen aussieht <img src='http://blog.rki-home.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rki-home.de/2008/08/26/codecharge-4-testbericht/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

