2009-09-29 6 views
1

Nous devons distribuer des documents à nos partenaires sur une clé USB. On m'a demandé de développer un logiciel qui va vérifier si certains documents ont été mis à jour sur le serveur et procéder à la synchronisation des fichiers sur la clé USB.Quelle langue utiliseriez-vous pour implémenter la fonctionnalité de mise à jour automatique/synchronisation sur une clé USB?

Le logiciel lui-même devra également avoir une fonctionnalité de mise à jour automatique au cas où nous voulons l'améliorer dans le futur.

Où pensez-vous que je devrais commencer?

+1

Quelle langue utiliseriez-vous pour implémenter un programme "Hello World"? – shoosh

+2

Ma première version (linux) serait un script shell utilisant 'rsync'. –

+0

De quel type de serveur s'agit-il? Un serveur de fichiers? Un serveur web? Sharepoint? Un serveur personnalisé? – SLaks

Répondre

1

Je suppose que c'est pour Windows. C# serait un excellent choix, sauf si vous ne pouvez pas être sûr que l'utilisateur a déjà installé .Net. Sinon, j'utiliserais Delphi, qui peut créer facilement des exécutables natifs. La fonction de mise à jour automatique sera difficile quelle que soit la langue utilisée, étant donné qu'un fichier EXE en cours d'exécution ne peut pas se remplacer. Vous pouvez implémenter la plupart des fonctionnalités du programme en tant que DLL séparée qui peut être mise à jour à la volée, mais vous êtes toujours SOL si vous avez besoin de mettre à jour le noyau EXE lui-même.

1

Je suggère Python ... vous pouvez rendre son exécutable ou l'installer sur USB lui-même (ce n'est pas grand). Un gros avantage que vous pouvez améliorer sur place car vous n'aurez pas besoin de recompilation. Python est idéal pour de si petites tâches.

Un grand avantage est l'indépendance de la plate-forme.

1

Eh bien, cela dépend de l'environnement dans lequel vous allez déployer et de ce que vous avez personnellement travaillé. D'emblée je pencherais vers C#, car il y a beaucoup de documentation et vous permettra de déployer rapidement une application Windows avec gui. Cependant, s'il s'agit d'un environnement Unix, je suis sûr que cela pourrait être fait dans un simple script shell.

1

Quel que soit le langage dans lequel vous êtes le plus à l'aise et le plus compétent, à condition de pouvoir communiquer facilement avec le serveur. (Si le serveur est un serveur web, ce n'est probablement pas un problème)

0

En supposant que ce soit Windows, je voudrais commencer avec ce fichier de commandes sur le périphérique USB: xcopy/diyc. $ ServerPath

Peut-être que c'est suffisant?

Explication sur les drapeaux:

/D Copies only those files whose source time is newer than the destination time. 
/I If destination does not exist and copying more than one file, assumes that destination must be a directory. 
/C Continues copying even if errors occur. 
/Y Suppresses prompting to confirm you want to overwrite an existing destination file. 
1

je regarderais en Microsoft Sync Framework. Regardez la section "Introduction à la synchronisation de fichiers". "... utilise Sync Framework pour déplacer efficacement les fichiers entre les postes de travail et les périphériques." J'ai utilisé "Sync Services for ADO.Net" (une partie de la structure) pour un projet de synchronisation d'une base de données SQL Express locale avec la base de données SQL Server principale et m'a économisé une tonne de temps.

1

Rsync existe pour Windows dans Cygwin - il prend également en charge ssh avec une infrastructure à clé publique si votre serveur prend en charge ssh. Cela pourrait être un moyen très sûr et facile de synchroniser les données.

0

Un fichier de commandes peut être suffisant. J'ai résolu quelque chose de similaire avec un simple. Une autre option serait un script dans AutoIt, c'est un langage de base qui peut créer de petits programmes "compilés" avec presque aucune dépendance. Vous copiez simplement l'exécutable sur les périphériques USB et exécutez-le à partir de là.

Questions connexes