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

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

483
0


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

Пример показывает как достать файл по 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

ЧИТАТЬ ТАКЖЕ:  Запрет на изменение раскладки клавиатуры в Windows Form: Справочник по C#

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

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь