2009-09-29 4 views
1

Нам необходимо раздать документы нашим партнерам на USB-ключ. Меня попросили разработать часть программного обеспечения, которое будет проверять, были ли обновлены некоторые документы на сервере и продолжить синхронизацию файлов на карте памяти.Какой язык вы бы использовали для реализации функций автоматического обновления/синхронизации на карте памяти?

Само по себе программное обеспечение также должно иметь функцию автоматического обновления, если мы хотим улучшить его в будущем.

Где вы думаете, я должен начать?

+1

На каком языке вы бы применили программу Hello World? – shoosh

+2

Моей первой версией (linux) был бы скрипт оболочки, который использовал «rsync». –

+0

Что это за сервер? Файловый сервер? Веб-сервер? Sharepoint? Какой-то пользовательский сервер? – SLaks

ответ

1

Я предполагаю, что это для Windows. C# будет отличным выбором, если вы не можете быть уверены, что пользователь уже установил .Net. В противном случае я бы использовал Delphi, который может легко создавать собственные исполняемые файлы. Функция автоматического обновления будет представлять собой боль, независимо от того, какой язык вы используете, учитывая, что исполняемый EXE-файл не может заменить себя. Вы можете реализовать большинство функций программы как отдельную DLL, которая может обновляться «на лету», но вы все еще SOL, если вам нужно обновить основной EXE.

1

Я бы предложил Python ... вы можете сделать свой исполняемый файл или установить его на usb (его не большой). Большое преимущество, которое вы можете улучшить на месте, поскольку вам не нужна перекомпиляция. Python отлично подходит для таких небольших задач.

Большим преимуществом является независимость от платформы.

1

Ну, это зависит от среды, в которой вы развертываете, и о том, с чем вы лично работали. С летучей мыши я бы склонялся к C#, так как есть много документации и позволит вам быстро развернуть приложение Windows с gui. Однако, если это среда Unix, я уверен, что это можно сделать в простом сценарии оболочки.

1

Независимо от того, какой язык вам наиболее комфортен и у него есть опыт, если у него есть простой способ общения с сервером. (Если сервер является веб-сервером, это, вероятно, не проблема)

0

Предполагая, что это Windows, я бы начал с этого пакетного файла на USB-устройстве: xcopy/diyc. $ ServerPath

Возможно, этого достаточно?

Объяснение на флагах:

/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

Я хотел бы посмотреть в Microsoft Sync Framework. Посмотрите раздел «Введение в синхронизацию файлов». «... используйте Sync Framework для эффективного перемещения файлов между рабочими столами и устройствами».

Я использовал «Службы синхронизации для ADO.Net» (часть Framework) для проекта для синхронизации локальной базы данных SQL Express с основной базой данных SQL Server и это избавило меня от кучу времени.

1

Rsync существует для Windows в Cygwin - он также поддерживает ssh с инфраструктурой открытого ключа, если ваш сервер поддерживает ssh. Это может быть очень безопасный и простой способ синхронизации данных.

0

Пакетный файл может быть достаточно. Я решил нечто подобное с простым. Другим вариантом будет скрипт в AutoIt, его базовый язык, который может создавать небольшие «скомпилированные» программы практически без зависимостей. Вы просто скопируете исполняемый файл на USB-устройства и запустите его оттуда.