netzwerkfähiges Programm unter Vista

Von der Installation bis zur Auslieferung der Applikation

Moderator: Moderatoren

Antworten
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

netzwerkfähiges Programm unter Vista

Beitrag von peternmb »

Hallo,

ich bräuchte einen grundsätzlichen Denkanstoss, wie ich ein netzwerkfähiges Programm erstellen kann, das unter Vista lauffähig ist.

Bisher liegen z.B. meine DBFs usw. in einem Unterordner \Daten des eigentlichen Programmes.
Im Programm gab es die Festlegung SET DEFAULT TO DATEN
Das Programm war nur auf dem "Hauptrechner" installiert,
Die "Arbeitsrechner" arbeiteten alle mit der Anwendung auf dem "Hauptrechner" und es funktionierte problemlos.

Wie funktioniert das aber unter Vista?
Die Daten lege ich da jetzt nicht mehr unterhalb des Programmes, sondern in einem Verzeichnis ab, das ich mit der System-Variable "ALLUSERSPROFILE" auslese. Wie soll das bei einem Netzwerkzugriff funktionieren.

Irgendwie stehe ich da etwas auf dem Schlauch.
Ich sehe einfach nicht, wie ich auch für Netzwerkrechner den Pfad zu den Daten setzen soll.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: netzwerkfähige Programm unter Vista

Beitrag von Jan »

Eine ganz grundsätzlich Frage: Warum möchtest Du denn die Ordnerstruktur ändern? Gerade unter Vista ist es manchmal etwas "merkwürdig", wenn man mit Systemverzeichnissen arbeitet. Und wenn es doch bislang mit den Unterverzeichnissen der Anwendung funktionierte...

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied 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: netzwerkfähiges Programm unter Vista

Beitrag von brandelh »

Hallo,

nimm einfach ein Verzeichnis, das in der obersten Festplattenebene startet und nicht vom System verwaltet (oder vergewaltigt ;-) ) wird.

z.B. d:\XppApps\...

Es wäre sicher auch möglich, unter c:\Programme\MeinProgramm\Daten zu arbeiten, wenn du für das Datenverzeichnis (eventuell auch für das Programmverzeichnis) die Schreibrechte für alle User des Programmes (oder generell ?) freischaltest.
Standardmäßig sind alle Ordner unter dem Programm Stammordner für User schreibgeschützt (was ja auch sinnvoll ist !).

Aber besser ist es die eigenen Verzeichnisse zu nutzen :-)

Die Abfrage der Systemvariablen, kannst du aber auf jeden Fall sparen. Zur Laufzeit ermittelt man das Programmverzeichnis über die EXE. Ich hatte da mal Probleme beim Start aus dem Explorer, bzw. mit Pfadangabe aus einem anderen Verzeichnis, was genau weiß ich aber nicht mehr, seither mache ich das so.
Nur die standard Datenpfade müsste man normalerweise über USER.... abfragen.

Code: Alles auswählen

cExeName := AppName(.t.) // Pfad inkl. Dateiname
if "\" $ cExeName
  cProgVerz := left(cExeName,rat("\",cExeName))
else
  cProgVerz := ""  // dürfte normalerweise nicht sinnvoll sein ;-) 
endif
Gruß
Hubert
stevie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 417
Registriert: Mo, 17. Sep 2007 18:20
Wohnort: Senftenberg
Kontaktdaten:

Re: netzwerkfähiges Programm unter Vista

Beitrag von stevie »

also bei uns werden alle Datenbanken zentral auf dem Server gespeichert und jeder greift darauf zu,
schließlich kann man für jede Dbf den Pfad angeben, dadurch muss kein Default-Pfad gesetzt werden
für den Fall, dass du die Datenbanken pro User brauchst, kannst du ja in dem Fall deiner Db auf dem Server noch ein Feld für User einrichten und das dann entsprechend im Programm abfragen oder gleich nen Filter drauf setzen.
Viele Grüße
Stevie
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: netzwerkfähiges Programm unter Vista

Beitrag von peternmb »

Eine ganz grundsätzlich Frage: Warum möchtest Du denn die Ordnerstruktur ändern?
Möchte ich eigentlich nicht, muss ich aber unter Vista.
Wenn das Programm wie allgemein üblich im Ordner Programme installiert wird, muss ich die Daten woanders ablegen.
Und wenn es doch bislang mit den Unterverzeichnissen der Anwendung funktionierte...
aber leider nicht mehr unter Vista (siehe oben)
nimm einfach ein Verzeichnis, das in der obersten Festplattenebene startet und nicht vom System verwaltet (oder vergewaltigt ;-) ) wird.
Genau diese Zwangsinstallation z.B. im Hauptverzeichnis möchte ich vermeiden.
Das Programm sollte unabhängig vom Betriebssystem und dem im Setup gewählten Installationsverzeichnis funktionieren

Bei Singleuser-Programmen klappt das alles auch ohne Probleme.
Beim Setup wird ermittelt, ob Vista oder höher eingesetzt wird. Wenn ja und für die Installation der Ordner "Programme" gewählt wird, werden die Daten in einem seperat erstellten Verzeichnis abgelegt.
Im Programm wird dann ebenfalls das Betriebssystem ermittelt. Wenn Vista oder höher eingesetzt wird, erfolgt je nach dem Speicherort der Daten eine entsprechende default-Zuweisung.

Ich habe nur keine Ahnung, wie ich das für netzwerkfähige Programme handeln könnte.
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: netzwerkfähiges Programm unter Vista

Beitrag von brandelh »

Hi,

meine Programme laufen (meist) auf Citrixservern und greifen auf ein gemeinsames Datenverzeichnis auf einer Speicherstation zu. Über die Hardware habe ich keinen Überblick mehr, aber es müssen mehr als 3 oder 4 Citrix Server sein.
Auf jedem dieser Citrix-Server wurde das Programm in ein Verzeichnis kopiert, das während des Betriebs read/only ist.
Der Admin muss also dafür sorgen, dass die EXE, DLL und die INI Datei im Programmverzeichnis liegen.

Im Programmverzeichnis meiner Programme gibt es eine INI Datei mit gleichem Namen wie die EXE.
Und dort steuere ich wo die Datenverzeichnisse liegen:

EXE Name -> Programmverzeichnis -> INI Datei laden -> Datenverzeichnisse lesen ...

Auf den Clients wird gar nichts installiert, sondern nur der Aufruf plaziert.
Bei LAN Programmen müsste man wohl das Programmverzeichnis zuordnen, die Datenverzeichnisse kann man aber ruhig als UNC Pfad hinterlegen:

Code: Alles auswählen

cDBF := "\\server\freigabe\datenverzeichnis\MyDBF"
use (cDBF) ... 
Im Prinzip ist jedes Programm, das auf einem modernen PC mehrfach gestartet werden kann ein netzwerktaugliches Programm, allerdings muss es einem Clientprogramm prinzipiell egal sein, wo ein Serverprogramm installiert ist. Für es selbst zählt nur die Freigabe aus der heraus das Programm gestartet wird.
Gruß
Hubert
Antworten