05.09.08

Курсы доллара и евро: гаджет для висты

Tags: Полезные программы, SilverLight, WPF (.Net 3.0), Программирование / 2:30 pm , Victor Laskin

Давненько хотел написать какой нить гаджет для висты. Изначально хотел сделать это на WPF, но выяснилось что к гаджетам у микрософта другой подход. Посути гаджет - это html веб страница со всеми вытекающим. Поэтому только xbap или silverlight можно засунуть в гаджет (причем стало это можно сделать относительно недавно).

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

Попытка использовать сильверлайт закончилась неудачно. Во первых, под 64-битной вистой сильверлайт не работает в 64-битном сайдбаре. Это можно обойти, запуская 32-ух битную версию сайдбара, но это уже извращение. Во вторых, из сильверлайта в гаджете нельзя нормально обратиться к вебсервису. Это связано с тем, что сильверлайт в гаджете не видит конфигурационных xml файлов и не может получить доступ. Есть workaround, который передает данные в сильверлайт контрол через скрипт AJAX, но я считаю это не очень красивым. 

В итоге я сделал проще - гаджет просто показывает картинку с вебсервера, обновляя ее раз в час. А на сервере работает php скрипт по крону, который запрашивает данные у центробанка. Гаджет показывает текущий курс бакса и евро, на сколько он изменился за день и за неделю и график динамики курсов за 3 недели. 

Гаджет курса валют ЦБ для висты

Скачать гаджет

Просто запустите скаченный файл, и гаджет установится. Если этого не произойдет и он откроется как зип архив, то можно на гаджете нажaть Open with… Sidebar. Если и это не поможет, то можно создать папку C:\Users\Ваше имя\AppData\Local\Microsoft\Windows Sidebar\Gadgets\CurrencyRates.gadget\ и в нее скопировать содержимое архива. 

19 Comments »

  1. Andrew Tishkin said,
    September 20, 2008 at 4:53 am

    Доброго вреемни суток :)

    Огромное спасибо за гаждет :) Данво хотел наблюдать за курсом валют на боковой панели, но никак не мог найти нормального гаджета. тем более получающего данные с cbr.ru

    Кстати, а что именно за php-скрипт расположен по адресу http://vitiy.info/Currency/currencyRates.png? Есть ли гарантия, что в ближайшие месяцы адрес не накроется? =)))

    За гаджет ещё раз спасибо

  2. Victor Laskin said,
    September 22, 2008 at 9:03 pm

    В ближайшие годы надеюсь ничего не случиться с адресом ж)
    PHP скрипт там собственного написания, использует метод, описанный здесь: http://www.phpworld.ru/articles/netphp.php

  3. Alex said,
    October 25, 2008 at 1:11 pm

    Отличная штука! СПАСИБИЩЕ!
    Если не трудно Сделай еще РТС и ММВБ? :)

  4. Prime said,
    December 6, 2008 at 11:06 am

    Спасибо тебе большое за этот гаджет, очень хорошая штука!!!

  5. Александр said,
    January 24, 2009 at 10:20 pm

    Здорово! Спасибо! До этого пробовал несколько гаджетов, в том числе ссылающийся на один из сайтов Украины… Ваш - просто чудо!

  6. VAlex said,
    January 28, 2009 at 12:53 pm

    гаджет хороший, но есть одна проблема: у меня при загрузке компа соединение с инетом автоматически не включается (модем USB - подключение вручную) и когда появляются гаджеты на боковой панели, Ваш гаджет выгглядит ка черный квадрат. приходится его удалять из боковой панели и снова добавлять - тогда работает. В чем причина?

  7. rap said,
    February 1, 2009 at 6:58 am

    Не работает с IE8, а жаль…

  8. rap said,
    February 1, 2009 at 6:59 am

    Вообще же вид гаджета отличный! Нужно немного доработать логику его. что бы отображал кэшированный последний пока сервер недоступен…

  9. Victor Laskin said,
    February 1, 2009 at 2:24 pm

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

    Частоту обновления можно легко поменять в коде (клиентский код очень короткий - все делается на сервере).

  10. rap said,
    February 1, 2009 at 9:09 pm

    Ага. Все так, только вот если черный квадрат - то он надолго, на час где то…
    Если бы когда нет картинки он чаще пытался - было бы лучше.
    + под IE8 не работает, как и писал я уже…

  11. Victor Laskin said,
    February 1, 2009 at 9:38 pm

    А какие симптомы под IE8?

  12. rap said,
    February 2, 2009 at 2:18 am

    Когда тащишь на панель все ОК, тащится превьюшка, когда опускаешь остается только “ухо” справа (где закрыть кнопка), а самой картинки нет =(
    Могу скриншот кинуть если скажешь куда.

  13. rap said,
    February 2, 2009 at 4:23 pm

    Сделал хотфикс - вместо g:background просто тэг img…
    надо будет доработать там нормально и логику обновлений… а то сейчас в случае ошибки загрузки плохо себя ведет =)

  14. rap said,
    February 2, 2009 at 4:25 pm

    А почему ты свой гаджет на MS не выложишь? Он лучший для курсов пока!
    Вот только можешь поправить частоту обновления на серваке? Последняя время курс динамично меняется. А у тебя сменапади в 12 ночи идет и целый день курс неверный…

  15. shura_win said,
    February 3, 2009 at 1:45 pm

    Добавить бы еще курсы РТС и ММВБ и соотношение USD/EUR
    а так это самое лучшее что нашел
    ОГРОМНОЕ спасибо !!!

  16. asf said,
    May 11, 2009 at 3:36 pm

    Чудесный гаджет, автору спасибо. Эх, если бы он мог курс в белорусских рублях показывать, для меня он был бы просто замечательным :)

  17. kovboy said,
    June 27, 2009 at 11:02 pm

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

  18. fan said,
    September 13, 2009 at 6:23 pm

    Гаджет отличный! Спасибо!
    Можно ли получить код скрипта на php? А то вдруг адресок накроется - нет ничего вечного на этом свете … :) А так на свой сервер можно положить…

  19. Andrey said,
    October 30, 2009 at 12:16 am

    Присоединяюсь к предыдущим благодарностям. Гаджет просто супер! Но есть пара пожеланий:
    1. В первой половине дня (по МСК) уже известен курс на завтра и все банки меняют свой курс, ориентируясь на него, однако гаджет этого не отображает, т.е. информация уже не актуальна. Очень хотелось бы видеть самую последнюю информацию:)
    2. Неплохо бы иметь какое-нибудь соответствие между графиком и валютой. Т.е. должно быть интуитивно понятно какой график соответствует доллару, а какой евро. А то приходится догадываться)
    Ну и можно добавить EUR/USD, хотя думаю это сделать не так просто)

    Буду безмерно рад, если автор добавит что-нибудь из этого в новую версию, но гаджет в любом случае отличный! Большое спасибо автору!

Leave a Comment

Or use your OpenID:

Информация для блогоспаммеров - не тратьте свое время, все спам комментарии все равно будут удалены.