Справочник по C#

    Исходники по языку программирования CSharp

    Функция для проверки новой версии программы: Справочник по C#

    /
    /
    /
    23 Views


          Представьте, что вы написали программу. Программа хорошая, все пользуются, все довольны. Но подходит момент, когда выходит новая версия. Пользователи об этом ни слухом ни духом. Я предлагаю вам свой вариант решения этой проблемы.

    Пример показывает как достать файл по URL, прочитать и обработать.




    Формат файла выбираем XML. Пример файла:

    
    2.2
    1. Обновлена программа
    2. Появились новые функции
    http://krez0n.org.ua
    
    

          Названия атрибутов выбраны не просто так. Такие названия как UpdateVersion, version, whatnew, url — соответствуют названию класса и его полям, в которые будут считываться значения.
          Наша задача, перевести содержимое файла в объект UpdateVersion, с которым мы можем работать. Ниже представлена функция и класс UpdateVersion, в который заносятся значения из XML файла.

    UpdateVersion uv = null;
    public void GetNewVersion()
    {
    //тестовый файл на моем блоге
    string sUrl = "http://krez0n.org.ua/wp-content/uploads/files/update.xml";
    //потоки для чтения
    System.IO.Stream st = null;
    System.IO.StreamReader sr = null;
    //логин и пароль, если требуется установка авторизации на прокси сервере
    string username = null, password = null;
    
    try
    {
    //подготавливаем запрос
    System.Net.WebRequest req = System.Net.WebRequest.Create(sUrl);
    //т.к. в данном примере логин и пароль пустые, ничего не заносим
    if (username != null && password != null)
    req.Credentials = new System.Net.NetworkCredential(username, password);
    
    //пытаемся получить файл
    System.Net.WebResponse resp = req.GetResponse();
    
    //подключаемся к потоку
    st = resp.GetResponseStream();
    //читаем поток.. не забываем про кодировку
    sr = new System.IO.StreamReader(st, Encoding.Default);
    
    //готовимся к сериализации. Задаем наш тип объекта UpdateVersion
    XmlSerializer xml = new XmlSerializer(typeof(UpdateVersion));
    //проводим десериализацию
    uv = (UpdateVersion)xml.Deserialize(sr);
    //если все прошло успешно, то в объекте uv будут храниться все значения
    //спрашиваем у пользователя что делать дальше
    if (MessageBox.Show("Вышла новая версия программы "
    + Application.ProductName + ": " + uv.version
    + "nЧто нового:n" + uv.whatnew
    + "nСкачать новую версию?", "Новая версия программы",
    MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
    {
    try
    {
    //пытаемся перейти по ссылке открыв браузер
    Process.Start(uv.url);
    }
    catch { }
    }
    }
    catch
    {
    return;
    }
    finally
    {
    //закрываем все потоки
    if (sr != null)
    sr.Close();
    
    if (st != null)
    st.Close();
    }
    }
    
    //класс для сериализации
    public class UpdateVersion
    {
    public string version; //версия программы
    public string whatnew; //что нового в программе
    public string url; //путь к программе
    }
    

    Это все, скажем так, основа. Код можно доработать, усложнить. Поставить проверки на ошибки и т.д.
    Если что-то не понятно, пишите в комментариях.

    Источник krez0n.org.ua

    Функция для проверки новой версии программы: Справочник по C#

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9