Представьте, что вы написали программу. Программа хорошая, все пользуются, все довольны. Но подходит момент, когда выходит новая версия. Пользователи об этом ни слухом ни духом. Я предлагаю вам свой вариант решения этой проблемы.
Пример показывает как достать файл по URL, прочитать и обработать. Формат файла выбираем XML. Пример файла:
Названия атрибутов выбраны не просто так. Такие названия как UpdateVersion, version, whatnew, url – соответствуют названию класса и его полям, в которые будут считываться значения.
Наша задача, перевести содержимое файла в объект UpdateVersion, с которым мы можем работать. Ниже представлена функция и класс UpdateVersion, в который заносятся значения из XML файла.
sr = newSystem.IO.StreamReader(st, Encoding.Default);
27
28
//готовимся к сериализации. Задаем наш тип объекта UpdateVersion
29
XmlSerializer xml = newXmlSerializer(typeof(UpdateVersion));
30
//проводим десериализацию
31
uv = (UpdateVersion)xml.Deserialize(sr);
32
//если все прошло успешно, то в объекте uv будут храниться все значения
33
//спрашиваем у пользователя что делать дальше
34
if(MessageBox.Show("Вышла новая версия программы "+ Application.ProductName + ": "+ uv.version + "\nЧто нового:\n"+ uv.whatnew + "\nСкачать новую версию?", "Новая версия программы", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
35
{
36
try
37
{
38
//пытаемся перейти по ссылке открыв браузер
39
Process.Start(uv.url);
40
}
41
catch{ }
42
}
43
}
44
catch
45
{
46
return;
47
}
48
finally
49
{
50
//закрываем все потоки
51
if(sr != null)
52
sr.Close();
53
54
if(st != null)
55
st.Close();
56
}
57
}
58
59
//класс для сериализации
60
publicclassUpdateVersion
61
{
62
publicstringversion; //версия программы
63
publicstringwhatnew; //что нового в программе
64
publicstringurl; //путь к программе
65
}
Это все, скажем так, основа. Код можно доработать, усложнить. Поставить проверки на ошибки и т.д.