VB6-Projekt portieren für Desktop UND Android - welche Möglichkeiten gibt es?

Registriert
Dez. 2010
Beiträge
4.476
Hallo @ all,

ich habe für unsere Firma eine Spezialsoftware auf VB6 erstellt. Das Programm greift mittels SQL-Befehlen auf eine Datenbank, die mit Access 2003 erstellt wurde. Kernstück ist eine Tabellenansicht, die mit Hilfe des bekannten True DBGrid Pro realisiert wurde. Dieses Programm ist nun arg veraltet und sollte modernisiert werden. Außerdem wäre es von Vorteil wenn man mit Hilfe von günstigen Android-Tablets Lagerhaltung und Organisation automatisieren könnte.

Also ich hab besser gesagt hatte einiges drauf mit VB6, hab mich seit ein paar Jahren aber nicht mehr damit beschäftigt, denn dies war nie eine Vollzeitaufgabe für mich. Habs paar mal mit C probiert, aber geschweifte Klammern... nein das ist einfach nichts für mich. Bin auch zu alt um etwas zu lernen, was ich nicht mag.

Die Frage ist nun was gibt es für Möglichkeiten um eine Anwendung für Win 7 und Android zu programmieren die auf die selbe Datenbank zugreift.

Ich habe bislang absolut keine Erfahrung mit Android, gibt es überhaupt die Möglichkeit da einfach auf ein Win-Netzwerk zuzugreifen? Der Android-Part der Anwendung wäre ziemlich rudimentär, ein bißchen Bar-Code lesen, neue Ware aufnehmen u.ä. Außerdem sollten über die Win-Desktops im Büro Anfragen in Textform in einer FiFo-Liste auf den Tablets erscheinen usw.

Hat irgendjemand Erfahrung mit so etwas? Welche Programmierumgebung/Sprache die möglichst nicht so weit von VB sein sollte würde sich da eignen, welche Datenbank? Auf jeden Fall sollte es für die Win-Lösung eine fertige Grid-Komponente geben, vergleichbar mit True DBGrid, da ich weder Zeit noch Lust habe alles von Grund auf selber zu proggen. Die Datenbank sollte in der Lage sein nicht nur Textelemente sondern auch Bilder (innerhalb der Datenbank) zu speichern.

Ich weiß die Anfrage ist extrem generell formuliert, ist bislang auch reines Gedankenspiel. Freue mich auf jede konstruktive Idee.
 
Wenn du es sauber lösen willst, bleibt dir wohl nur eine Client Server Struktur übrig. Soll heißen:

Eine Serverapplikation regelt den Zugriff auf die Datenbank und stellt nach außen eine API bereit (z.B. via HTTP) und die Clients greifen darauf zu, um Daten auszulesen und zu schreiben.

Dann würde z.B. Windows Client 1 dem Server sagen, dass es einen neuen Eintrag X in der besagten FiFo Liste geben soll. Die Android Clients können dann per Serverpush (oder wenn's nicht anders geht via Polling) die Daten erhalten.

Das mit den Bildern in der Datenbank ist eine zwiespältige Geschichte. Die einen mögen es, die anderen nicht und wieder andere speichern höchstens (z.B.) 4kB große Bilder... Durch solche BLOBs wird die Datenbank halt ganz schön aufgebläht und für Bilder braucht man im Allgemeinen auch keine Transaktionen oder Ähnliches. Aber natürlich geht es, wenn man unbedingt will. Das sollten eigentlich auch alle geläufigen Datenbanken beherrschen und zur Not kann man auch eine Base64 Kodierung o.Ä. verwenden.
 
BlackWidowmaker schrieb:
Die Frage ist nun was gibt es für Möglichkeiten um eine Anwendung für Win 7 und Android zu programmieren die auf die selbe Datenbank zugreift. [...] gibt es überhaupt die Möglichkeit da einfach auf ein Win-Netzwerk zuzugreifen?
Sofern sich das Android Tablet im selben Netzwerk wie die Datenbank befindet, kann darauf natürlich problemlos zugegriffen werden und mit Java hast du auch die Möglichkeit, auf alle möglichen Datenbanken zuzugreifen. Die Frage sollte aber sein, ob das so überhaupt möglich (alle Geräte im selben lokalen Netzwerk?) oder gewünscht (eventuelle Sicherheitsbedenken, falls DB-Server über das LAN hinaus zugänglich sein muss?) ist. Ein API-Layer wäre vielleicht die beste/sicherste Möglichkeit und würde auch andere Vorteile mit sich bringen (zB zentrale Protokollierung der Zugriffe, eindeutige Identifikation des Nutzers/Gerätes, unterschiedliche Befugnisse für Nutzer/Nutzergruppen, etc).

Eine dezentrale Softwarelösung - egal ob im Visual Studio kompiliert oder als Android App - ist heute nicht mehr notwendig, wenngleich die Performance der vorkompilierten Alternative natürlich besser ist. Je nachdem wie aufwändig die Darstellung und Administration der Datenbankinhalte ist, könnte man sich auch überlegen, dies gänzlich web-basiert zu lösen. JavaScript ist heute erstaunlich leistungsfähig und das nicht nur auf Desktop-Browsern - man denke nur an jQuery Mobile.

Ich selbst arbeite regelmäßig mit HTML, CSS, JS & PHP und habe so ähnliche Anwendungen bereits erstellt. Vielleicht bin ich daher auch etwas voreingenommen gegenüber anderen Lösungen. Jedenfalls könnte ich mir nicht vorstellen, zwei getrennte Projekte in zwei unterschiedlichen Programmiersprachen schneller fertigstellen zu können, als eine gemeinsame web-basierte Lösung, mit auf das jeweilige Gerät angepassten Darstellungsoptionen.
 
@Karol_: Prinzipiell stimme ich dir voll und ganz zu (bis auf die Verwendung von PHP ... :D ), allerdings hängt das ganze sehr von der Firma ab. Man bedenke, dass manche Firmen noch auf dem IE8 festsitzen, dann kann es auch mit jQuery wieder schnell zur Qual werden. Ich bin aber auch nicht als großer Freund von JavaScript einzustufen, abgesehen von Codeschnipseln mit max. 20 Zeilen. Für größere Webapplikationen würde ich da lieber einen Blick auf das Google Web Toolkit (GWT) werfen. Dann könnte man sowohl Server (z.B. Spring) und Client auch einheitlich in Java schreiben. Natürlich fallen dabei ein paar Zeilen mehr Code an als bei einer reinen JS Lösung, allerdings würde ich größere Projekte nur noch ungern ohne sehr ausgereifte IDE und Typsicherheit schreiben ;)
 
benneque, du hast natürlich Recht! Was meine Verwendung von PHP betrifft, so war es damals in Version 3 vor der Jahrtausendwende nur ein Hobby. Heute werde ich dafür bezahlt, also muss ich auch damit arbeiten.

Der Threadersteller war seit vielen Jahren mit einer VB6-Lösung unterwegs und das hat bisher auch gereicht. Scheinbar hatte er seither keine Programmiererfahrung mehr, was auch mein Grund für die fast schon standardmäßige PHP/JS Empfehlung für Programmier-(wieder)-Einsteiger ist. Die große Verbreitung und das niedrige Einstiegslevel sind in diesem Fall vielleicht wichtiger, als die professionellste Entwicklungsumgebung und -sprache. Das ist aber sowieso eine ewige Streitfrage, auf die es keine richtige Antwort gibt ;)
 
Hallo @ all,

und vielen Dank für eure Antworten. Sorry, daß ich mich nicht gleich meldete, bin gerade voll im Streß bei der Arbeit. Ist so eine Art Last-Man-Standing, alle im Urlaub und ich muß den Laden schmeißen.:(

Erstmal zu meinem angedachten Projekt: Wie gesagt ich bin kein Vollzeitprogrammierer. Eher so etwas wie aus der Not eine Tugend gemacht. Es ist ein kleiner Familienbetrieb und hauptsächlich bin ich eher in der Kundenbetreuung tätig. Hab schon für die paar Zeilen Stunden gebraucht weil ständig durch Kundschaft unterbrochen.

Worum es mir eigentlich geht ist einfache Lösungen zu finden. Eine Scriptsprache kommt für mich eigentlich weniger in Frage, zumindest was die Oberflächengestaltung angeht. Ich suche eher etwas das über leistungsfähige Komponenten verfügt, denn so etwas wie ein kompfortables DataGrid (Kernelement meines Projektes) kann und will ich aus Zeitgründen nicht selbst entwickeln. Ich suche also eine Lösung die bereits ein DataGrid enthält mit folgenden Optionen:

- Benutzerverwaltung (speichern aller Einstellungen pro User),
- Suchfeld-Zeile
- Spaltenmanagement (WYSIWYG Änderungen der Spalten, Sortierung bei Klick auf die Kopfzeile, usw),
- interne Ereignisbehandlung

Was die Tablets anbelangt muß man deren Verwendung vielleicht nicht so professionell denken. Im Prinzip täte auch auch eine Textdatei reichen, die auf einem Netzlaufwerk liegt, und von allen Benutzern gleichzeitig aktualisiert wird oder so ähnlich. Ein hoch komplexe Client-Server-Geschichte habe ich mir nicht vorgestellt. Das wäre irgendwie mit Kanonen auf Spatzen geschossen. Das Ganze soll lediglich helfen handgeschriebene Notizzettel und suche-mir-mal-das-Teil-im-Lager usw zu digitalisieren. Es geht um die Kommunikation von max. 5 Leuten. Nicht um ein größeres Unternehmen.

Ich habe paar mal VB-Net bei mir ausprobiert, aber irgendwie komme ich damit nicht so richtig klar. Habe es bisher nicht einmal geschafft händisch (also ohne Zuhilfenahme von Datensteuerlementen, rein mit SQL-Befehlen also) eine Datenbank anzusprechen, trotz zahlreicher VB-Net Bücher. All diese Lehrbücher helfen einem kaum über den "Hallo World"-Status hinaus.


Meine Frage zielte also nach einem einfacheren Weg zu einer "modernen" EXE zu kommen die auch unter Win7 läuft und mir möglichst viel Arbeit abnimmt.
 
Zurück
Oben