[C#] Server Abfrage zwecks Programm-Updates
Verfasst: 12.09.2010, 23:39
Hallo!
Also erstmal vorweg, sollte das das Falsche Unterforum sein, bitte verschieben.
Ich bin gerade dabei für mein kommendes Projekt ein bisschen vorarbeit zu leisten. Dabei gehts in erster Linie nicht um den Code ansich, sondern um die optimierung des Vorgangs, der dann umgesetzt werden soll.
Zuerst mal kurz zum Projekt:
Für meinen Sportverein entwickle ich gerade eine (noch) kleine Trainings-Software, die - durch User eingaben (noch keine bessere Möglichkeit) - den aktuellen Trainingsfortschritt abseits der organisierten Trainings überwachen soll. Also eher in Hinsicht auf Konditions- und Kraft Training.
Dafür möchte ich jetzt die Kommunikation mit einem Server (Linux / Samba) ermöglichen. Vorläufig sollen da mal nur die Trainingspläne für die Folgewochen, -monate automatisch "aktualisiert" werden können. Das heißt also, das Programm soll selbstständig die Verbindung mit dem Server herstellen, kontrollieren ob ein "neueres" file verfügbar ist als derzeti verwendet wird, und dieses dann gegebenenfalls runterladen. (Inkludiert wird das ganze dann noch extra in das Programm, soll jetzt also nicht das entscheidende Problem sein.
Jetzt bin ich also auf der Suche nach geeigneten Lösungs-Ansätzen für die Problemstellung.
Es soll also beim Start des Programms selbstständig (oder notfalls auch durch gewolte aktualisierung des Benutzers) über den Server abgeglichen werden, ob ein aktuelles File (zwecks wiederverwertbarkeit am besten unabhängig vom Dateiformat) zur Verfügung steht. Dieses soll dann heruntergeladen und am dem Programm entsprechenden Ort abgelegt werden, damit es dann auch inkludiert werden kann. (Soll ja auch kein Chaos entstehen, weil diverse "aktualisierte" Files wo ganz wo anders abgespeichert werden und dann vielleicht von einem ahnungslosen User gelöscht oder umkopiert werden)
Wie kann so eine Server-Abfrage jetzt am sinnvollsten funktionieren?
Werden Dateinamen verglichen? Woher weiß das Programm dann welche Datei aktueller ist? (Bsp: 06-10 und 07-10 vergleichen ist ja noch relativ logisch, aber wenn dann 06-10 und 06-11 abgeglichen werden soll... naja könnte doch Probleme machen oder?)
Kann man theoretisch "Versions-Nummern" der Files definieren, die dann abgefragt werden?
Oder sollte über ein anderes (unabhängiges) file, welches bei jedem Programmstart mit dem Server ausgetauscht (also neu runtergeladen) wird, abgeglichen werden, welches File das gerade aktuellste ist (zb durch einen einzellnen Eintrag in so einem "dritten" file)
Den Files am Server immer den gleichen Namen zu geben und diese so einfach übershreiben zu lassen geht nicht, weil immer ein update aufs Folgemonat kommen soll, obwohl das aktuelle Monat noch läuft. D.h es müssen also immer (mindestens) 2 files im Programm aktiv sein - was sich aber durch diverse Turnier-Termine, die übers Jahr konstant bleiben und also nicht immer "upgedatet" werden sollen, sowieso immer mehr "aktive" Files werden.
Wie würdet ihr also von der Theorie her so ein Update-Projekt anlegen?
lg
ViennaDevil
Also erstmal vorweg, sollte das das Falsche Unterforum sein, bitte verschieben.
Ich bin gerade dabei für mein kommendes Projekt ein bisschen vorarbeit zu leisten. Dabei gehts in erster Linie nicht um den Code ansich, sondern um die optimierung des Vorgangs, der dann umgesetzt werden soll.
Zuerst mal kurz zum Projekt:
Für meinen Sportverein entwickle ich gerade eine (noch) kleine Trainings-Software, die - durch User eingaben (noch keine bessere Möglichkeit) - den aktuellen Trainingsfortschritt abseits der organisierten Trainings überwachen soll. Also eher in Hinsicht auf Konditions- und Kraft Training.
Dafür möchte ich jetzt die Kommunikation mit einem Server (Linux / Samba) ermöglichen. Vorläufig sollen da mal nur die Trainingspläne für die Folgewochen, -monate automatisch "aktualisiert" werden können. Das heißt also, das Programm soll selbstständig die Verbindung mit dem Server herstellen, kontrollieren ob ein "neueres" file verfügbar ist als derzeti verwendet wird, und dieses dann gegebenenfalls runterladen. (Inkludiert wird das ganze dann noch extra in das Programm, soll jetzt also nicht das entscheidende Problem sein.
Jetzt bin ich also auf der Suche nach geeigneten Lösungs-Ansätzen für die Problemstellung.
Es soll also beim Start des Programms selbstständig (oder notfalls auch durch gewolte aktualisierung des Benutzers) über den Server abgeglichen werden, ob ein aktuelles File (zwecks wiederverwertbarkeit am besten unabhängig vom Dateiformat) zur Verfügung steht. Dieses soll dann heruntergeladen und am dem Programm entsprechenden Ort abgelegt werden, damit es dann auch inkludiert werden kann. (Soll ja auch kein Chaos entstehen, weil diverse "aktualisierte" Files wo ganz wo anders abgespeichert werden und dann vielleicht von einem ahnungslosen User gelöscht oder umkopiert werden)
Wie kann so eine Server-Abfrage jetzt am sinnvollsten funktionieren?
Werden Dateinamen verglichen? Woher weiß das Programm dann welche Datei aktueller ist? (Bsp: 06-10 und 07-10 vergleichen ist ja noch relativ logisch, aber wenn dann 06-10 und 06-11 abgeglichen werden soll... naja könnte doch Probleme machen oder?)
Kann man theoretisch "Versions-Nummern" der Files definieren, die dann abgefragt werden?
Oder sollte über ein anderes (unabhängiges) file, welches bei jedem Programmstart mit dem Server ausgetauscht (also neu runtergeladen) wird, abgeglichen werden, welches File das gerade aktuellste ist (zb durch einen einzellnen Eintrag in so einem "dritten" file)
Den Files am Server immer den gleichen Namen zu geben und diese so einfach übershreiben zu lassen geht nicht, weil immer ein update aufs Folgemonat kommen soll, obwohl das aktuelle Monat noch läuft. D.h es müssen also immer (mindestens) 2 files im Programm aktiv sein - was sich aber durch diverse Turnier-Termine, die übers Jahr konstant bleiben und also nicht immer "upgedatet" werden sollen, sowieso immer mehr "aktive" Files werden.
Wie würdet ihr also von der Theorie her so ein Update-Projekt anlegen?
lg
ViennaDevil