Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2010, 20:41   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию Автоматическое обновление программы.

Знаю подобная тема есть, но там речь немного о другом, так что пишу тут.

Я пишу для своей программы автоматическое обновление через интернет. Сделал так:
Зарегистрировал домен в зоне .ru. Оплатил хостинг и там в панели управления хостингом создал анонимного FTP пользователя, который может только качать из папки public_ftp (папка на сервере). Программа когда надо пытается скачать файл с сервера к примеру называется он UpdateInformation.update. Файл представляет собой сериализованный класс, класс пока состоит из строки с номером версии (потом строка будет разобрана на номер версии) и из массива строк с новостями/обращениями к пользователям и т.д. Заметил такую вещь, когда меняешь что нибудь в классе и снова его сериализуешь, то старый файл при запуске программы будет вызывать неадекватное поведение у программы. Ну это я решил так: Я просто буду сразу удалять скачанный файл с компьютера пользователя, мало ли в следующий раз соединение заглючит, а программа прочитает скачанный ранее файл, до обновления самой программы. Другими словами новый эксешник с изменённым классом, десериализует старый файл в котором сериализован старый класс.

Может использовать INI?
Может новости посылать в другом файле, а информацию об обновлении в другом?

Код:
/// <summary>
/// Проверить наличие новой версии.
/// </summary>
public static void CheckNewVersion()
{
    String[] FileList; //список файлов с сервера
    try
    {
        FileList = GetFileList(Server, AnonimUserName, ""); //получить список файлов с сервера из public_ftp
    
        foreach (String file in FileList) //перебираем все названия файлов из списка
        {
            if (file == UpdateFileNameInServer) //что-то наводит на мысль, не криво ли делать так?
            {
                FTPDownloadFile(Server, AnonimUserName, "", TempFilePath, UpdateFileNameInServer); //передаём в параметрах строковые константы
            }
        }
    }
    catch { } //пока ничего не вставлял сюда
}

Вообще как вы думаете правильно ли я это делаю? Пишите, все мнения интересны! Может есть у кого какие нибудь предостережения, буду рад научиться чему-то на чужих ошибках. Если кто может посоветовать, как сделать по другому и умнее, буду рад услышать.

Добавил позже:
А ну и написал программу, в которой есть textBox и richTextBox куда пишу версию и новости, которые разделяются знаком ~ (тильда). Прога компилит файл и автоматом отправляет мне на хостинг в public_ftp.

Последний раз редактировалось Casper-SC; 22.05.2010 в 22:51.
Casper-SC вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическое обновление программы Paul Hindenburg Работа с сетью в Delphi 23 06.09.2011 15:51
автоматическое обновление таблице через запрос sql eda Microsoft Office Excel 8 19.04.2011 12:47
Автоматическое обновление страницы на хостинге vitaliy777 PHP 2 19.03.2010 15:44
Автоматическое обновление вспл.списка. stas77 Microsoft Office Excel 16 27.10.2009 11:39
Автоматическое обновление ссылок Alex19789 Microsoft Office Excel 0 05.10.2009 10:24