JAVA UND XBASE++

Es soll sie ja geben ...

Moderator: Moderatoren

Antworten
Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

JAVA UND XBASE++

Beitrag von Campergue »

Hallo an alle

ich komme aus der Java Welt und seit kurzem beschäftige ich mich (neuen Arbeitgeber) mit Xbase++. Mittlerweile habe ich feststellen müssen das beide Sprachen ihre Vorteile und Nachteile haben.

Um Xbase++ komme ich nun nicht mehr vorbei und ich muss auch sagen, wenn man seine Vorurteile ausblendet (sorry bin einfach ehrlich) eigentlich eine Interessante Sprache. Ich habe doch Ähnlichkeiten mit Java entdeckt aber auch die Erfahrung machen dürfen das mir einiges leichter fällt weil klar Plattform näher. Was ich aber klar vermisse sind Technologie Ansätze wie bei Java EE

Somit möchte ich hier einfach mal eine vielleicht waghalsige Idee in den Raum werfen und hoffe auf rege Diskussion.
Bitte gleich vorweg. Ich möchte hier nicht die Vorteile oder Nachteile der beiden Sprachen besprechen sondern lieber Brainstorming betreiben um eventuell Java und XBase++ mit einander zu verbinden.

Es gibt ja schon einige Projekte wo Java mit Nativen Sprachen verschmelzen (JNU, JNA, JRuby, SWT) usw.. ach Android nicht zu vergessen :-)
Ich strebe schon länger an Java Windows näher zu bringen. Klar nichts neues. Nur finde ich das die bisherigen Weg noch sehr holprig sind . Nun da ich bereits gesagt habe komme ich an Xbase++ nicht mehr vorbei, muss aber auch sagen möchte ich auch nicht mehr missen. Jedoch vermisse ich die Technologie Breite wie bei Java (Java ME/SE/EE) etc. Also wieso nicht Xbase++ mit Java verbinden...
Klar im ersten Moment hört sich das so leicht an. Mir ist schon bewusst das gerade im Details die Probleme / Schwierigkeiten auftauchen. Nur wer nicht spinnt und wagt der kann nicht gewinnen....
Und mal ehrlich und ganz unparteiisch betrachtet können beide Seiten profitieren. Xbase++ Entwickler könnten Java Technologie nützen und Java könnte besser mit Windows arbeiten.

Hier mal ein paar Stichpunkte um die Diskussion anzutreiben

was haltet ihr von der Idee.....
was für Probleme müssten gelöst werden...
in welcher Form / Architektur könnte man es realisieren..
wäre es sinnvoll / möglich einen gemeinsamen Virtuell Maschine zu realisieren...
glaubt ihr das es überhaupt realisierbar ist...
könnte ihr euch Vorstellen bzw teilt ihr die Meinung das beide davon profitieren können oder seit ihr eher der Meinung alles Quatsch und dann wieso?

So ab sofort ist die Diskussion Runde eröffnet....

Gruss Patrick
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: JAVA UND XBASE++

Beitrag von AUGE_OHR »

hi,

soll Java, Flash und Co nicht durch HTML5 abgelöst werden ?

Xbase++ basiert ja auf der dBase ][ was schon unter CP/M lief und eine "Datenbank" im DBF Format darstellt.
statt Windows API wurde aber eine "Sprache" eingeführt um im "Interpreter" Modus ein PRG "Script" auszuführen.
über dBase III++ und den Cl*pper Compiler kommt man dann zu Xbase++ was 32bit GUI Programme erstellen kann.

GUI Programme sind nun für den Windows Desktop gedacht, für die Internet Seite gibt es CXP (s.h. Alaska Website).
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: JAVA UND XBASE++

Beitrag von brandelh »

AUGE_OHR hat geschrieben:hi,
soll Java, Flash und Co nicht durch HTML5 abgelöst werden ?
Flash und Co, vielleicht auch Java Sript, aber nicht JAVA ;-)

Was ich bei der Frage oben vermisse ist die Erläuterung, was "Java ME/SE/EE" bedeuten.
Grundsätzlich kann man mit Xbase++ DLL Dateien aufrufen, die sich an die Standards halten (System-DLL oder mit C/C++, Delphi etc. und auch .NET).
Bei einigen Datentypen braucht man dann zusätzlich noch Hilfsbibliotheken (DOUBLE etc.)
Man kann auch über run bzw. runshell() ausführbare Programme zusätzlich starten.

Was grundsätzlich nicht geht ist GUI für andere Betriebssysteme.
Ein Consolenprogramm soll aber auf Linux oder Mac mit Emulatoren lauffähig sein (damit habe ich keine Erfahrung).

Was also genau meinst du ?
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16488
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: JAVA UND XBASE++

Beitrag von Martin Altmann »

Moin,
brandelh hat geschrieben:Was ich bei der Frage oben vermisse ist die Erläuterung, was "Java ME/SE/EE" bedeuten.
ganz einfach:
Mobile Edition/Standard Edition/Enterprise Edition

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: JAVA UND XBASE++

Beitrag von brandelh »

Aha, also Xbase++ mobile Edition gibt es nicht (ich schätze mal NIE),
Xbase++ als Paket ist immer gleich, die Unterscheidung kommt dann beim Wartungsvertrag (kein, Standard Sub, Professional Sub) ...

Es gibt aber einen anderen xBase/dbase/clipper Ableger, der dies unterstützen soll http://www.harbour-project.org/ das ist aber dann nicht Xbase++ :!:
Gruß
Hubert
Campergue
Rookie
Rookie
Beiträge: 17
Registriert: Mi, 20. Jun 2012 16:47

Re: JAVA UND XBASE++

Beitrag von Campergue »

Hey
AUGE_OHR hat geschrieben:soll Java, Flash und Co nicht durch HTML5 abgelöst werden ?
Das stimmt nicht ganz...
Flash nachfolger soll/bzw ist ja Adobe Air.
Java hast sicherlich mit JavaScript verwechselt. Mach dir aber nichts draus, das tun sicherlich noch 1000 andere :D
Was nicht von der Hand abzuweisen ist, das HTML 5 und CSS 2.0 die Zukunft im Internet werden soll.... Wobei der Weg an JavaScript nicht vorbei geht...

Aber der Umbruch steht ja erst noch bevor. Silverlight und JavaFX sind auch noch da.. Hierbei geht es aber klar um die Darstellung von Webseiten...

Für Geschäftsprozesse / Datenhandling etc. werden immer mehr auf Applicationsserver ausgelagert. Ob als WebContainer oder für das Gesamtsystem.
Ist sicherlich nicht mehr nur den Grossen Firmen vorbehalten......

Was ich schon feststellen konnte, ist das immer mehr auch kleinere Anwendungsprogramme bereits in solchen Appl. Server eingebunden sind. Dadurch ergibt sich natürlich eine leichtere Verknüpfungen einzelner von einander getrennten Anwendungen....

Somit sind die Technologien Java ME Mobile / SE Standard / EE Enterprise Edition die Mittel um genau den Trend zu erfüllen.
Vom Prinzip ist .net der gleiche Ansatz bzw. die Lösung seitens Microsoft die ich mit Java / Xbase++ anstrebe...
Auch mir ist nicht entgangen das Microsoft wieder erfolgreich sehr aktiv geworden ist und mit SharePoint das Gegenstück zu Java EE ist.
brandelh hat geschrieben:die sich an die Standards halten (System-DLL oder mit C/C++, Delphi etc. und auch .NET).
Dadurch könnte man Xbase++ mit .Net und SharePoint verbinden und fast die gleichen Ansätze haben.

Als Argument für die Verschmelzung mit Java würde ich folgende Punkte noch in den Raum werfen
1. Aus der Vergangenheit kennt man Microsoft nur (freundlich ausgedrückt) als ein geschlossenes System. Java hingegen wird vertreten durch JCP Executive Committee vertreten.(25 Parteien)
2. Java ist und wird es immer bleiben (plattformunabhängig). Somit kann man Java als oberste Schicht ansehen. Was ich ganz klar vermiese sind die Säulen in die Plattformspezifischen Bereiche. (ansätze sind vorhanden, aber nur ansätze). Somit würde sich eine ideale Ergänzung mit Xbase++ ergeben...
3. Für xbase++ wäre der Ansatz somit eine Erweiterung

Wo meint ihr könnte der richtige Ansatz sein.

Schnittstellen erstellen oder besser gemeinsame Laufzeitumgebung erschaffen?
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: JAVA UND XBASE++

Beitrag von BIK »

Ich möchte das Thema noch einmal hoch holen.

Für die Verschlüsselung rufe ich auds dem Programm ein Java Programm auf, das ich derzeit mit

RunShell ( idReceipt+".txt" , D:\WAWI\DATEN\RKSV\CONFIG\start.bat ) aufrufe.

In dieser Batch Datei steht folgender Befehl:
java -jar D:\WAWI\DATEN\RKSV\CONFIG\rksv.jar %1

Das Programm verrichtet hier seine Dienste anstandslos - ich möchte aber die "Krücke" mit der BAT Datei los werden.

Rufe ich RunShell ( direkt auf, so bekomme immer die Fehlermeldung:
Operation: RunShell
Betriebssystem Fehler:2
Das System kann die angegebene Datei nicht finden

Könnte mir bitte jemand einen Rat geben, wie ich die Parameter übergeben muss, damit der Aufruf ohne der .BAT
Datei funktioniert.

Herzlichen Dank
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: JAVA UND XBASE++

Beitrag von brandelh »

Hi, sicher hast du oben die Anführungszeichen in Runshell vergessen, aber aus dem was du da zeigst würde ich das so vermuten:

Code: Alles auswählen

idReceipt // wichtig, hier muss der komplette Pfad angegeben werden !

cJavaCmd := [java -jar "D:\WAWI\DATEN\RKSV\CONFIG\rksv.jar"  "]+idReceipt+[.txt"]   // die [] entsprechen ' ' oder auch " " in Xbase.
// Da Pfade auch Blanks enthalten können, gebe ich das jetzt so ein " " wird dann auf der CMD Ebene als Dateinamen begrenzer benutzt
// für die Xbase++ Sprachebene nutze ich gern [ ] da dies besser lesbar ist als ' '
*** Eventuell muss man bei JAVA auch den kompletten Pfad angeben ...

runshell(, cJavaCmd ) // sollte funktionieren, ansonsten ...
wenn ich Acrobat mit einer PDF zum Anzeigen starte (nichts anderes als den Javainterpreter mit Javacode)
ermittle ich zuerst den Pfad und die EXE die sich um PDF kümmern und übergebe EXE und Dokument mit Pfad, funktioniert einwandfrei:

Code: Alles auswählen

   if file(cPfad+cPDF)
      if ! file(cAcrobat)
         cAcrobat := GetStandardProgramm(cPDF, cPfad)
      endif
      runshell(cPfad+cPDF,cAcrobat,.t.)
   endif


return

*--------------------------------------------------------------------------
#include "ot4xb.ch"
function GetStandardProgramm(cFile, cPath)   // cPath force to EXE
   local cExe := ChrR(0,260) // MAX_PATH is 260
   if empty(cPath)
      cPath := cAppDir()
   endif
   if @shell32:FindExecutableA(cFile, cPath, @cExe) < 32
      cExe := ""
   else
      cExe := TrimZ(cExe)
   end
return cExe
Gruß
Hubert
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: JAVA UND XBASE++

Beitrag von BIK »

Danke Hubert!

ZU Allererst herzlichen Dank für deine Hilfe !!

Ich hab das heute Nachmittag einfach nicht zum laufen gebracht. Und wie es so oft im Leben ist, und man etwas Abstand gewonnen hat, kommen andere Ideen.

ich habe das jetzt folgendermaßen gelöst:

ShellExecuteA( AppDesktop():GetHWND(), "open" , "D:\WAWI\DATEN\RKSV\CONFIG\rksv.jar" , idReceipt+".txt" , "java -jar" , SW_NORMAL )

Läuft einwandfrei :blob8:

EDIT:

Gibt es eine Einstellung um ShellExecuteA synchron oder asynchron laufen zu lassen?
Deine Variante werde ich morgen mal versuchen - Das lässt das Ego schon nicht zu , dass das bei mir nicht klappte!
Gruß, Bernhard
Antworten