Entwickler: Unterschied zwischen den Versionen
Root (Diskussion | Beiträge) |
Root (Diskussion | Beiträge) |
||
Zeile 51: | Zeile 51: | ||
* --tagesabschluss | * --tagesabschluss | ||
== OrgaMon-GUI == | == OrgaMon-GUI (Ausblick) == | ||
ein Projekt, das zum Ziel hat den OrgaMon mit einer Plattform-übergreifenden GUI anzubieten | ein Projekt, das zum Ziel hat den OrgaMon mit einer Plattform-übergreifenden GUI anzubieten |
Version vom 11. Februar 2010, 11:20 Uhr
technische Infos für Entwickler
- Entwickler Schnellstart
- OrgaMon Test-Suite
- Technik
- eCommerce
- Linux
- I18n
- AqBanking
- Preisrundung
- HotKeys
OrgaMon-RC
OrgaMon-Servers
seit 2010 gibt es 2 Win32 Konsolen-Anwendungen die XMLRPC-Server darstellen, sie verwenden zu 100% die Code-Basis vom "OrgaMon" bzw. von "JonDaServer".
cXMLRPC
der XMLRPC für den OrgaMon
cJonDaServer
Ausblick
der Plan ist "Flexcel" durch fpspreadsheet zu ersetzen, des weiteren "IBO" durch "UIB" oder zeos 7.0.0 da bin ich mir noch nicht sicher. UIB gefällt mir aber irgendwie besser! Danach könnte man versuchen ein mit freepascal compilierbare Version zu erstellen. Damit wäre der Linux Port der NON-GUI Anteile vollbracht.
XMLRPCx
OrgaMon-XMLRPC für Linux
JonDax
JonDa-XMLRPC für Linux
weitere Kommandos
OrgaMonx
- --Indexerstellung
- --FTP-Uploads
- --Backup / --restore
- --tagwache
- --tagesabschluss
OrgaMon-GUI (Ausblick)
ein Projekt, das zum Ziel hat den OrgaMon mit einer Plattform-übergreifenden GUI anzubieten
Technologie Review
- FreePascal GTK+ Binding
- http://wiki.freepascal.org/Qt4_binding
- http://www.rodi.dk/programming_cairo.php
- http://wiki.lazarus.freepascal.org/
- http://www.fox-toolkit.org/
aktuelle Tendenz
GUI ist immer im Browser als Web 3.0 Anwendung, es gibt einen passiven Content-Provider, ev. eine PHP Apache-Kombination. Aktuelle Formulare sollen jedoch rein aus einem JSON Interface gewonnen werden, die Kommunikation erfolgt direkt zwischen XMPRequest und dem aufgebohrten cXMLRPC (der ja auch mal unter Linux laufen soll).
- Wie das Design der Fomulare erfolgen soll weiss ich noch nicht (also mit welcher IDE, XML Definitionen, ...)
- Die Bedienelemente sollen ganz einfach beginnen und dann Schritt für Schritt mächtiger werden
- In einer Übergangsphase soll ein Webkit in den OrgaMon.exe integriert werden (der OrgaMon wird z.B. auch einen Magnetstreifen scannen müssen, oder Datensicherung machen, oder den Computernamen abfragen, oder?)
Team-Entwickler
Für das Gesamtkunstwerk OrgaMon wird ein zentrales Repository mit der Software Subversion verwaltet. Der Read Only Zugriff ist anonym möglich. Schreibenden Zugriff erhalten Entwickler nach Kontakt zum OrgaMon-Maintainer Andreas(Punkt)Filsinger(bei)orgamon(Dot)org .
- Web-Interface (WEBsvn) Read-Only Zugriff: http://orgamon.org/subversion/
- SVN-Interface: svn://orgamon.org/orgamon
Installation
- Lade Dir TortoiseSVN herunter (http://tortoisesvn.net/downloads) und installiere es
- Erstelle in "Eigene Dateien"->RAD Studio->Projekte ein neues Verzeichnis mit dem Namen "OrgaMon" (kann auch woanders liegen oder auch anders lauten!) und öffne es (ANMERKUNG: Es MUSS sich wegen eines Bugs im TortoiseSVN auf einer LOKALEN Platte befinden, Samba Shares gehen nicht!!!!)
- Rechtsklicke in das offene Verzeichnis in den leeren Bereich und wähle "SVN Checkout"
- Als Repository gebe "svn://orgamon.org/orgamon" an
- Vergewissere Dich, dass Dein "Check Out Directory" (eigentlich das Target Dir!) das eben angelegte "OrgaMon" ist
- Drücke OK, alle Optionen einfach so lassen!
täglicher Arbeitsablauf
Beginn
- rechter Mausklick auf Dein OrgaMon-Verzeichnis
- "SVN Update"
-> Du bist nun auf dem neuesten Stand!
Coding & Test
- öffne z.B. mit Delphi ./OrgaMon/OrgaMon.dproj
- editiere Dateien wie bisher
- mache alles wie bisher, teste alles gut ...
-> wenn Deine Änderungen Release-Fähig sind ...
Löschen von Dateien
bei einem Commit sind Löschungen nicht automatisch im Änderungsauftrag an den Server mit dabei: Es reicht aber "select / deselect all" anzukreuzen, alternativ kann bei jeder gewünschten Löschung ein Haken gesetzt werden.
Hinzunahme neuer Dateien
ACHTUNG: Jeder neue Content (neue Verzeichnisse / neue Dateien) wird erkannt jedoch muss wie bei der Löschung das "select / deselect all" angekreuzt werden, dass überhaupt der Content übertragen wird. Bei dieser Verfahrensweise bekommen jedoch andere Entwickler diese neuen Dateien nicht zu Gesicht. Es muss hier mehr getan werden:
Man sollte erst mal alles zu Ende bringen, also alle Hinzunahmen erst mal zu Ende bringen. Nun muss man
- auf neue Verzeichnisse einen rechten Mausklick machen und "TortoiseSVN" -> "+ add" ausführen, jetzt hat man die Chanche Datei-Extensions, die man nicht auf dem Server haben will zu demarkieren (default ist "Alles angekreuzt"). Nach einem OK wir im lokalen Repository zunächst mal der neue Content als überhaupt "SVN-relevanter" Content beachtet. Der Fragezeichenstatus geht über in ein fettes blaues Plus.
- neue Dateien, die noch ein blaues Fragezeichen haben muss einzeln ge "+ add"ed werden.
Vor einem "Commit" sollten also alle "hängenden" Stati ordentlich in echte Stati "add" oder "ignore" umgesetzt werden!
Release erzeugen
- mache diesen Schritt sobald all deine Test erfolgreich laufen
- Nebeneffekte deiner Release sollten ausgeschlossen sein, wenn unsicherheiten bestehen bitte Andreas Filsinger kontaktieren
- "SVN Update" auf die Projekt-Datei im Rev-Verzeichnis (z.B. OrgaMon.rev.txt)
- Rev-Datei nun laden und eine Version hochzählen (und merken) und einen neuen Eintrag machen
- in "globals.pas" die gemerkte Version Nummer eintragen
- nochmals compilieren
- Autoup und ab damit
- Nun all deine Änderungen committen: rechter Mausklick auf das Repository Haupt-Verzeichnis
- "SVN Commit"
- dokumentiere in der Msg-Box dein Patch-Set
optional
- anschliessender "SVN Update", denn andere waren in der Zwischenzeit nicht untätig
- dies erhöht die Chanche dass Dein nächster "Update" / "Commit" problemlos durchläuft
Bedeutung der Verzeichnisse
- anfix32 (*.pas Tools)
- PHPincludes (*.php Tools)
- rev (Die Revision-Dateien)
- OrgaMon (*.pas der OrgaMon-win32-Client)
- MonDaServer (*.pas ein Server)
- Oc (*.pas ein Kommandozeilen Tool)
- aqbd (*.c ein HBCI Dämon)
- TWebShop (*.php5 der OrgaMon Webshop)