Мы долго ждали выхода Windows 8.1. И сегодня это произошло!

Сразу после запуска ОС стала доступна отправка приложение собранных специально для Windows 8.1.

Поэтому я рад сообщить что обновление читалки для Windows 8.1 (с функцией синхронизации между устройствами) отправлено на синхронизацию. Надеюсь этот этеп пройдет без осложнений и совсем скоро оно будет доступно на полке в магазине.

Читать дальше...

При создании нового Web проекта в Visual Studio 2013 нам предлагается готовый шаблон сайта с уже реализованной системой авторизации с помощью различных популярных в мире сервисов авторизации. Среди них есть Microsoft Account, Facebook, Twitter и Google. Это чудесное API называется Katana project.

Однако поддержки ВКонтакте "из коробки" нет. Оно и понятно - API писали люди, которые скорее всего ничего про ВКонтакте не знают.

Как бы многие IT-шники не плевались, а на территории СНГ "вконтактик" очень популярен и отказывать сабе в интеграции с ним только потому, что он кому-то не нравится - глупо. Однако, я повторюсь, "из коробки" его нет.

Читать дальше...

Пришло время как-то освежить мой маленький но уютный бложек. На этот раз всё уходит в облака. И теперь у меня все в ажуре. Т.е. в Windows Azure.

azure

Постараюсь писать заметки чаще чам раз в год. :)

Читать дальше...

С момента выхода Windows 8 появился ворос о читалке для новой платформы.

Долго не думая, было решено портировать уже имеющуюся читалку (для WP7) на новую платформу.

Fiction Book Reader - $2.99 - скачать Fiction Book Reader Lite - бесплатно - скачать

Читать дальше...

Box File Provider - это приложение для Windows 8, цель которого - предоставить доступ к файлам, которые кранятся в Dropbox. Его уже сейчас можно установить из магназина Windows.

Читать дальше...

Как изветсно, в новой версии TFS 2012 появился "канбан". Однако по умолчанию там отображаются только задачи. А вот багов в списке нет.

Однако это можно исправить.

Для того, чтобы баги отображались на доске вместе с задачами их необходимо поместить в группу Microsoft.TaskCategory. Для этого надо выгрузить список категорий с помощью утилиты witadmin список категорий:

Читать дальше...

В данном посте я хочу затронуть тему получения отчетов о затраченном времени из TFS.

При работе с TFS мы вручную увеличиваем значения поля Completed work на то количество часов, сколько было на него потрачено. Мы не указываем то, когда были потрачены эти N часов. Считается, что разработчики делают это по факту выполнения работы.

Что же делать, если мы хотим получить сводную таблицу с указанием сколько, куда и когда были потрачены эти часы? К сожалению, из коробки, такой возможности нет. Однако есть определенный набор API, который поможет нам написать утилиту, создающую желаемый отчет. И называется оно TFS Object Model. Именно этим мы и займемся. Напишем ее.

Читать дальше...

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

При попытке это сделать, мы получаем ничего не говорящее окно с сообщением об ошибке.

сообщение об ошибке

Читать дальше...

В повседневной жизни я часто использую телефон для чтения книг. И разрешение экрана (800x480) должны делать этот процесс достаточно удобным. Однако очень быстро я обнаружил, что для WP7 нет ниодной вменяемой «читалки» fb2 книг.

А так как я сам являюсь .NET разработчиком, я решил попробовать себя в качестве WP7 разработчика; и исправить это досадное недоразумение с отсутствием «читалки».

wp7 download

Читать дальше...

Функция Drag & Drop может значительно улучшить удобство использования программного обеспечения. Однако только некоторые программисты добавляют такую функциональность в свои приложения, потому что думают что это сложнее чем есть на самом деле. Эта статья покажет как просто реализовать Drag & Drop в WPF. Drag & Drop in 6 шагов:

  1. определяем начало drag с помощью событий MouseMove и MouseLeftButtonDown;
  2. определяем те данные, которые мы хотим "перетащить" и создаем DataObject, который будет содержать формат и данные;
  3. инициализируем перетаскивание с помощью вызова DoDragDrop();
  4. устанавливаем свойство AllowDrop=true для тех элементов, которые будут принимать данные;
  5. создаем обработчик события DragEnter для определения того, что над областью "приемника" происходит "перетаскивание". Если данные могут быть приняты установите свойство Effect у аргумента обработчика события;
  6. когда пользователь отпустит кнопку мыши, вызовется событие Drop. Получить данные можно с помощью метода e.Data.GetData()

Вот и вся магия.

Читать дальше...