Курсы по программированию

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

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Простой WPF / WPF. Конвертер валюты. Ньютон против Паскаля.

  • На этом уроке мы десериализируем JSON
    с использованием сторонней библиотеки от Newtonsoft.
    Напишите, что ещё вы добавите в эту программу.
  • Дата отправки отчёта: 17 февраля 2018 г.
  • Задание выполнено: за 6 дней 17 час. 2 мин.
  • Чему научился: Сделал под Андроид, так что я теперь умею делать простенькие мобильные приложения :)
    Кроме того, что эта программа под Андроид, я ещё немного отступил от предложенного в уроке:

    1) По возможности сделал классы, методы и поля статичными - кроме сохраняемых значений и передачи данных в основном тут идёт просто обработка и возврат значений. Да и хотел потренироваться со статичными классами.

    2) Сделал ввод ключа в отдельном окне настроек - хотел понять, как работать с несколькими окнами в Андроиде и возвращать из них данные.

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

    4) Добавил выбор из какой валюты в какую конвертировать, а всё конвертирование сделал через decimal - оно как раз для финансовых данных :)

    5) Соответственно, строка запроса к сайту формируется в StringBuilder с подстановкой из какой валюты в какие - запрашиваются сразу несколько валют в какие будет конвертироваться, чтобы не делать лишних запросов. Полученный JSON парсится и сохраняется в Dictionary по ключу из какой валюты конвертируется.

    6) Веб-запрос формируется, если ключ исходной валюты отсутствует в Dictionary или имеющийся там Timestamp более чем на 2 часа отстаёт от текущего, иначе берётся из Dictionary.

    7) Чтобы сделать программу более гибкой и не плодить кучу шаблонов для разных вариантов отпарсенного JSON хотел сначала работать с ним как с динамическим объектом через отражения с формированием запроса поля, составленным из строки GetField(from (например "USD") + to (например "RUB")), правда оказалось, что с JObject можно работать как с Dictionary, так что потренироваться с Reflection не удалось, но возможность составлять запрос по ключу из строк пригодилась :)

    8) Курс для выбранных в данное время валют сохраняется, чтобы далеко не ходить при каждом событии ввода цифры :)

    9) Так как бесплатный тарифный план на apilayer.net позволяет конвертировать только из USD, то при проверке поля success в ответе сайта подставляется курс 1.00. Но, при апгрейде тарифа всё теоретически должно само заработать и для других исходных валют. Можно конечно сделать в таком случае пересчёт валют через доллар, но это сделаю если вдруг почту засыпят требованиями выложить программу в PlayMarket :))))) тогда и интерфейс дошлифую :)))
  • Что было сложным: Сложным было заставить эмулятор коннектиться к сети, но в результате он сам заработал как надо.
    Не мог получить доступ к полям через Reflection, а оказалось, что оно и не нужно :(
  • Оценка видео-уроку:
  • Видеозапись: https://youtu.be/_HBusxYgeEc
Отчёт от 10080 за Простой WPF  / WPF. Конвертер валюты. Ньютон против Паскаля.


Отчёт от 10080 за Простой WPF  / WPF. Конвертер валюты. Ньютон против Паскаля.




Оцени работу

 
Сохранить страницу:

10080. --
FireWolf
FireWolf
ответить
# Запуск пакета / WPF. Конвертер валюты. Ньютон против Паскаля. / 2018-02-17 13:00

В пункте 9 имеется в виду, что если исходная валюта отлична от USD, то на бесплатном тарифе в поле success будет false и в таком случае подставится курс 1.00.


10558. --
Иван Воронин
Иван Воронин
ответить
→  FireWolf  # Запуск пакета / WPF. Конвертер валюты. Ньютон против Паскаля. / 2018-02-18 04:55

Молодец, хорошо поработал.


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  FireWolf  # Запуск пакета / WPF. Конвертер валюты. Ньютон против Паскаля. / 2018-02-18 09:18

А как получаются данные с сайта?


9913. --
vip
vip
ответить
→  FireWolf  # Запуск пакета / WPF. Конвертер валюты. Ньютон против Паскаля. / 2018-02-18 13:29

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


  • Отчёт оценивали:
    6203Николай Миролюбов+1   17093jin+1   459Сергей Сергеевич+1   16533Андрей Шевченко+1   6452Кирилл Шмойлов+1   3922Александр+1   10558Иван Воронин+1   9156Dimon+1   10167Игорь+1   7119Новопашин Владимир+1   17240Андрей Гришагин+1   16396Денис+1   9913vip+1   16496Pavlin+1   16459Protos+1   Посетитель+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Интересный урок. Хотелось бы попробовать реализовать хотя бы обратный расчет из рублей в доллары. Попробую на досуге.
Трудности: Сложно все запомнить



Научился: Подключать модуль Newtonsoft. Десериализации json в созданный для этого класс. Все круто. Очень полезный урок!
Трудности: Пришлось повозиться, чтобы настроить Nuget и подключить Newtonsoft к VS2008