<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://simia.net/index.php?action=history&amp;feed=atom&amp;title=Architektur</id>
	<title>Architektur - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://simia.net/index.php?action=history&amp;feed=atom&amp;title=Architektur"/>
	<link rel="alternate" type="text/html" href="http://simia.net/index.php?title=Architektur&amp;action=history"/>
	<updated>2026-05-10T14:50:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://simia.net/index.php?title=Architektur&amp;diff=2155&amp;oldid=prev</id>
		<title>Denny at 00:01, 24 March 2019</title>
		<link rel="alternate" type="text/html" href="http://simia.net/index.php?title=Architektur&amp;diff=2155&amp;oldid=prev"/>
		<updated>2019-03-24T00:01:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 00:01, 24 March 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{pubdate|27|January|2006}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{pubdate|27|January|2006}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die bisherige Version des DSA4 Werkzeugs ist in C++ programmiert. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;FÃ¼r &lt;/del&gt;die Daten entschied ich mich damals &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fÃ¼r &lt;/del&gt;ein XML-Datenformat, was zu der Anbindung von Xerces &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fÃ¼hrte&lt;/del&gt;. Die GUI wurde mit wxWindows gemacht (die ersten Versionen, falls sich noch jemand erinnert, beruhten auf MSXML und native Windows GUI &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Elemente&lt;/del&gt;). Der Wechsel auf Xerces und wxWindows wurde &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;durchgefÃ¼hrt&lt;/del&gt;, um &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PlattformunabhÃ¤ngig &lt;/del&gt;zu sein. Und &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tatsÃ¤chlich&lt;/del&gt;: der Code compilierte auch unter Linux (dank hier an die Portierer). Aber richtig laufen tat er nie, es waren immer irgendwelche Bugs in der Linuxversion, die ich nicht in der Windowsversion nachvollziehen konnte.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die bisherige Version des DSA4 Werkzeugs ist in C++ programmiert. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Für &lt;/ins&gt;die Daten entschied ich mich damals &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;für &lt;/ins&gt;ein XML-Datenformat, was zu der Anbindung von Xerces &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;führte&lt;/ins&gt;. Die GUI wurde mit wxWindows gemacht (die ersten Versionen, falls sich noch jemand erinnert, beruhten auf MSXML und native Windows GUI &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Elementen&lt;/ins&gt;). Der Wechsel auf Xerces und wxWindows wurde &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;durchgeführt&lt;/ins&gt;, um &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Plattformunabhängig &lt;/ins&gt;zu sein. Und &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tatsächlich&lt;/ins&gt;: der Code compilierte auch unter Linux (dank hier an die Portierer). Aber richtig laufen tat er nie, es waren immer irgendwelche Bugs in der Linuxversion, die ich nicht in der Windowsversion nachvollziehen konnte.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;AuÃŸerdem &lt;/del&gt;war das verwendete C++ viel zu kompliziert. Ich benutzte massig Templates (vor allem &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fÃ¼r &lt;/del&gt;die Rassen, Kulturen und Professionen), was den Code sehr schwer lesbar und bearbeitbar machte. Auch &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;das &lt;/del&gt;ein schlichtes compilen war eine recht anspruchsvolle Prozedur. Ich gehe davon aus, dass deswegen nie im &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;grÃ¶ÃŸeren MaÃŸe &lt;/del&gt;Entwicklungsarbeit von anderen als von mir geleistet wurde: mein Code war schlicht zu kompliziert. Aus de selben Grund habe ich selber ja in den letzten Monaten den Code nicht angefasst.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Außerdem &lt;/ins&gt;war das verwendete C++ viel zu kompliziert. Ich benutzte massig Templates (vor allem &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;für &lt;/ins&gt;die Rassen, Kulturen und Professionen), was den Code sehr schwer lesbar und bearbeitbar machte. Auch ein schlichtes compilen war eine recht anspruchsvolle Prozedur. Ich gehe davon aus, dass deswegen nie im &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;größeren Maße &lt;/ins&gt;Entwicklungsarbeit von anderen als von mir geleistet wurde: mein Code war schlicht zu kompliziert. Aus de selben Grund habe ich selber ja in den letzten Monaten den Code nicht angefasst.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dies ist die wichtigste Lektion &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fÃ¼r &lt;/del&gt;die neue Version: deutlich einfacherer Code. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ã„nderungen mÃ¼ssen &lt;/del&gt;auch ohne sich extrem reinzuarbeiten &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mÃ¶glich &lt;/del&gt;sein. Idealerweise sollte das ganze Werkzeug interpretiert sein. Kein compilen mehr. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ã„ndern&lt;/del&gt;. Neustart. Fertig.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dies ist die wichtigste Lektion &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;für &lt;/ins&gt;die neue Version: deutlich einfacherer Code. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Änderungen müssen &lt;/ins&gt;auch ohne sich extrem reinzuarbeiten &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;möglich &lt;/ins&gt;sein. Idealerweise sollte das ganze Werkzeug interpretiert sein. Kein compilen mehr. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Ändern&lt;/ins&gt;. Neustart. Fertig.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wie ich das erreichen will verrate ich in den &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nÃ¤chsten BlogeintrÃ¤gen &lt;/del&gt;genauer (deswegen habe ich auch nicht so viel geschrieben die letzten Tage -- und weil ich auf Dienstreisen in Kaiserslautern und &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;DÃ¼sseldorf &lt;/del&gt;war -- ich wollte &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;zunÃ¤chst &lt;/del&gt;ein halbwegs tragbares Konzept haben. Das kommt jetzt die &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nÃ¤chsten &lt;/del&gt;paar Tage. Hier schonmal eine grobe &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ãœbersicht &lt;/del&gt;-- ich werde im Folgenden genauer auf die Begriffe und den Aufbau eingehen.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wie ich das erreichen will verrate ich in den &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nächsten Blogeinträgen &lt;/ins&gt;genauer (deswegen habe ich auch nicht so viel geschrieben die letzten Tage -- und weil ich auf Dienstreisen in Kaiserslautern und &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Düsseldorf &lt;/ins&gt;war -- ich wollte &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zunächst &lt;/ins&gt;ein halbwegs tragbares Konzept haben. Das kommt jetzt die &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nächsten &lt;/ins&gt;paar Tage. Hier schonmal eine grobe &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Übersicht &lt;/ins&gt;-- ich werde im Folgenden genauer auf die Begriffe und den Aufbau eingehen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mozilla, die Open Source Gruppe die uns nicht nur Firefox und Thunderbird beschert hat, hat, was die Basis ihrer Tools ist, ein umfangreiches, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;so genanntes &lt;/del&gt;Mozilla Application Framework erstellt. Im &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;GroÃŸen &lt;/del&gt;und Ganzen ist es ein &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;supermÃ¤chtiges &lt;/del&gt;Biest -- ich will es soweit &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;zÃ¤hmen&lt;/del&gt;, damit das DSA4 Werkzeug darauf &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;lÃ¤uft&lt;/del&gt;. Hierbei gibt es eine Hauptengine, die XULRunner &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;heiÃŸt&lt;/del&gt;. XUL ist so etwas wie HTML, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;bloÃŸ fÃ¼r &lt;/del&gt;GUIs von Anwendungen (und man kann &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tatsÃ¤chlich &lt;/del&gt;auch HTML und JavaScript in XUL mit benutzen). Das bedeutet, das User Interface des neuen DSA4 Werkzeugs zu &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ã¤ndern &lt;/del&gt;wird so leicht sein wie HTML-Seiten schreiben, ja, sogar mit CSS arbeitet das ganze zusammen. Interessant ist hierbei vor allem das Verwenden von JavaScript, das eine dynamische GUI erlaubt. Die Applikationslogik hingegen kann entweder in JavaScript implementiert werden, oder auch in C++ oder Java (oder Python), um dann &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ã¼ber &lt;/del&gt;XPCOM (oder PyXPCOM) darauf zuzugreifen. Potenziell also kann man auch Teile des bisherigen Codes wiederverwenden! &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;SchlieÃŸlich&lt;/del&gt;, die Daten werden in RDF gespeichert, einer XML-basierten Sprache, die aber deutlich Vorteile zu XML (und ein paar Nachteile) aufweist.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mozilla, die Open Source Gruppe die uns nicht nur Firefox und Thunderbird beschert hat, hat, was die Basis ihrer Tools ist, ein umfangreiches, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sogenanntes &lt;/ins&gt;Mozilla Application Framework erstellt. Im &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Großen &lt;/ins&gt;und Ganzen ist es ein &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;supermächtiges &lt;/ins&gt;Biest -- ich will es soweit &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zähmen&lt;/ins&gt;, damit das DSA4 Werkzeug darauf &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;läuft&lt;/ins&gt;. Hierbei gibt es eine Hauptengine, die XULRunner &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;heißt&lt;/ins&gt;. XUL ist so etwas wie HTML, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;bloß für &lt;/ins&gt;GUIs von Anwendungen (und man kann &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tatsächlich &lt;/ins&gt;auch HTML und JavaScript in XUL mit benutzen). Das bedeutet, das User Interface des neuen DSA4 Werkzeugs zu &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ändern &lt;/ins&gt;wird so leicht sein wie HTML-Seiten schreiben, ja, sogar mit CSS arbeitet das ganze zusammen. Interessant ist hierbei vor allem das Verwenden von JavaScript, das eine dynamische GUI erlaubt. Die Applikationslogik hingegen kann entweder in JavaScript implementiert werden, oder auch in C++ oder Java (oder Python), um dann &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;über &lt;/ins&gt;XPCOM (oder PyXPCOM) darauf zuzugreifen. Potenziell also kann man auch Teile des bisherigen Codes wiederverwenden! &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Schließlich&lt;/ins&gt;, die Daten werden in RDF gespeichert, einer XML-basierten Sprache, die aber deutlich Vorteile zu XML (und ein paar Nachteile) aufweist.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All dies &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;unterstÃ¼tzt &lt;/del&gt;das Mozilla Application Framework von Haus aus. Anhand von Thunderbird und Firefox sieht man ja, dass das durchaus zu brauchbaren Applikationen &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fÃ¼hren &lt;/del&gt;kann. Ich hoffe, dass es auch hier aufgeht.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All dies &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;unterstützt &lt;/ins&gt;das Mozilla Application Framework von Haus aus. Anhand von Thunderbird und Firefox sieht man ja, dass das durchaus zu brauchbaren Applikationen &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;führen &lt;/ins&gt;kann. Ich hoffe, dass es auch hier aufgeht.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{tag|DSA4 Werkzeug}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{tag|DSA4 Werkzeug}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Nodixpost}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Nodixpost}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Denny</name></author>
		
	</entry>
	<entry>
		<id>http://simia.net/index.php?title=Architektur&amp;diff=2151&amp;oldid=prev</id>
		<title>Denny: Created page with &quot;{{pubdate|27|January|2006}} Die bisherige Version des DSA4 Werkzeugs ist in C++ programmiert. FÃ¼r die Daten entschied ich mich damals fÃ¼r ein XML-Datenformat, was zu der...&quot;</title>
		<link rel="alternate" type="text/html" href="http://simia.net/index.php?title=Architektur&amp;diff=2151&amp;oldid=prev"/>
		<updated>2019-03-23T23:47:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{pubdate|27|January|2006}} Die bisherige Version des DSA4 Werkzeugs ist in C++ programmiert. FÃ¼r die Daten entschied ich mich damals fÃ¼r ein XML-Datenformat, was zu der...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{pubdate|27|January|2006}}&lt;br /&gt;
Die bisherige Version des DSA4 Werkzeugs ist in C++ programmiert. FÃ¼r die Daten entschied ich mich damals fÃ¼r ein XML-Datenformat, was zu der Anbindung von Xerces fÃ¼hrte. Die GUI wurde mit wxWindows gemacht (die ersten Versionen, falls sich noch jemand erinnert, beruhten auf MSXML und native Windows GUI Elemente). Der Wechsel auf Xerces und wxWindows wurde durchgefÃ¼hrt, um PlattformunabhÃ¤ngig zu sein. Und tatsÃ¤chlich: der Code compilierte auch unter Linux (dank hier an die Portierer). Aber richtig laufen tat er nie, es waren immer irgendwelche Bugs in der Linuxversion, die ich nicht in der Windowsversion nachvollziehen konnte.&lt;br /&gt;
&lt;br /&gt;
AuÃŸerdem war das verwendete C++ viel zu kompliziert. Ich benutzte massig Templates (vor allem fÃ¼r die Rassen, Kulturen und Professionen), was den Code sehr schwer lesbar und bearbeitbar machte. Auch das ein schlichtes compilen war eine recht anspruchsvolle Prozedur. Ich gehe davon aus, dass deswegen nie im grÃ¶ÃŸeren MaÃŸe Entwicklungsarbeit von anderen als von mir geleistet wurde: mein Code war schlicht zu kompliziert. Aus de selben Grund habe ich selber ja in den letzten Monaten den Code nicht angefasst.&lt;br /&gt;
&lt;br /&gt;
Dies ist die wichtigste Lektion fÃ¼r die neue Version: deutlich einfacherer Code. Ã„nderungen mÃ¼ssen auch ohne sich extrem reinzuarbeiten mÃ¶glich sein. Idealerweise sollte das ganze Werkzeug interpretiert sein. Kein compilen mehr. Ã„ndern. Neustart. Fertig.&lt;br /&gt;
&lt;br /&gt;
Wie ich das erreichen will verrate ich in den nÃ¤chsten BlogeintrÃ¤gen genauer (deswegen habe ich auch nicht so viel geschrieben die letzten Tage -- und weil ich auf Dienstreisen in Kaiserslautern und DÃ¼sseldorf war -- ich wollte zunÃ¤chst ein halbwegs tragbares Konzept haben. Das kommt jetzt die nÃ¤chsten paar Tage. Hier schonmal eine grobe Ãœbersicht -- ich werde im Folgenden genauer auf die Begriffe und den Aufbau eingehen.&lt;br /&gt;
&lt;br /&gt;
Mozilla, die Open Source Gruppe die uns nicht nur Firefox und Thunderbird beschert hat, hat, was die Basis ihrer Tools ist, ein umfangreiches, so genanntes Mozilla Application Framework erstellt. Im GroÃŸen und Ganzen ist es ein supermÃ¤chtiges Biest -- ich will es soweit zÃ¤hmen, damit das DSA4 Werkzeug darauf lÃ¤uft. Hierbei gibt es eine Hauptengine, die XULRunner heiÃŸt. XUL ist so etwas wie HTML, bloÃŸ fÃ¼r GUIs von Anwendungen (und man kann tatsÃ¤chlich auch HTML und JavaScript in XUL mit benutzen). Das bedeutet, das User Interface des neuen DSA4 Werkzeugs zu Ã¤ndern wird so leicht sein wie HTML-Seiten schreiben, ja, sogar mit CSS arbeitet das ganze zusammen. Interessant ist hierbei vor allem das Verwenden von JavaScript, das eine dynamische GUI erlaubt. Die Applikationslogik hingegen kann entweder in JavaScript implementiert werden, oder auch in C++ oder Java (oder Python), um dann Ã¼ber XPCOM (oder PyXPCOM) darauf zuzugreifen. Potenziell also kann man auch Teile des bisherigen Codes wiederverwenden! SchlieÃŸlich, die Daten werden in RDF gespeichert, einer XML-basierten Sprache, die aber deutlich Vorteile zu XML (und ein paar Nachteile) aufweist.&lt;br /&gt;
&lt;br /&gt;
All dies unterstÃ¼tzt das Mozilla Application Framework von Haus aus. Anhand von Thunderbird und Firefox sieht man ja, dass das durchaus zu brauchbaren Applikationen fÃ¼hren kann. Ich hoffe, dass es auch hier aufgeht.&lt;br /&gt;
&lt;br /&gt;
{{tag|DSA4 Werkzeug}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Nodixpost}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Denny</name></author>
		
	</entry>
</feed>