Новая версия Screenshot tool для WP7

Вышла новая версия Screenshot tool для эмулятора WP7
http://www.innovativetechguy.com/?p=164
Работает как с SDK 7.0 так и с SDK 7.1 . Есть возможность делать скриншоты со встроенными скинами (пока они встроены и нельзя использовать свой скин) и скриншот без скина (для Маркетплейса).

Чарльз Петцольд, Программируем Windows Phone 7

Вышел полный перевод на русский язык книги Чарльза Петцольда Программируем Windows Phone 7. Скачать: http://rusdpe.blob.core.windows.net/downloads/Programming_Windows_Phone_7_ru.pdf

Презентация WP7 Mango

Сегодня, 24 мая 2011 года в 18:00 по московскому времени (10:00 по Нью-Йорку) состоится презентация обновления платформы Windows Phone 7 под кодовым названием Mango.
Ключевые особенности этого обновления уже известны. Должен быть показан релиз инструментов разработчика.
Трансляция будет доступна на http://www.studiosevent.com/newscenter/?id=mangonyc
Следите за новостями!

Как приложению WP7 определить запущено оно на телефоне или на эмуляторе

Для решения задачи определения где запущено WP7 приложение — на устройстве или на эмуляторе (а это может понадобиться) нужно добавить следующую функцию в App.xaml.cs :

public static bool IsRunningOnDevice
{
get { return Microsoft.Devices.DeviceType.Device == Microsoft.Devices.Environment.DeviceType; }
}

После этого её можно использовать в других классах так:

App.IsRunningOnDevice

Как конвертировать SVG в XAML для WP7 (и Silverlight)

Сегодня поговорим о том, как конвертировать SVG в XAML для WP7 (и Silverlight).
SVG и XAML достаточно близки по воей сути, оба формата имеют возможность работы с Canvas. Но WP7 (и Silverlight) не умеет работать с SVG, хотя в обновлении Mango обещана возможность использования SVG в контроле WebBrowser. И скорее всего прямое использование SVG в XAML еще не будет доступно.
Первый путь конвертирования:
Заходим на сайт http://www.graphspe.com/svg-to-xaml-converter#/Converter , загружаем исходный SVG файл, выбираем параметр Silverlight XAML, конвертируем. Конвертер не идеален — следует избегать наличия текста в SVG, некорректно работает с некоторыми конструкциями.
Путь второй:
С помощью IE9 и Microsoft XPS. Этот способ подсказан вот здесь: http://blogs.msdn.com/b/synergist/archive/2011/04/20/converting-svg-to-xaml-with-ie9-and-the-microsoft-xps-document-writer.aspx
Способ также не идеальный, подходит в основном для простых однотонных конструкций, например SVG файлов  с сайта http://thenounproject.com/ .
Последовательность действий:
1. Скачайте SVG файл на свой компьютер
2. Откройте SVG файл в IE9
3.  Распечатайте открытый файл с помощью Microsoft XPS Document Writer и сохраните результат в нужное место.
4. Смените расширение сохраненного файла с .xps на .zip .
5. Разархивируйте получившийся zip файл в отдельную папку.
6. В этой папке найдите файл Documents1Pages1.fpage и откройте его в Блокноте.
7. Скопируйте содержимое располагающееся между тегами <FixedPage>, включающее <Canvas/> и <Path/>.
8. Создайте новый элемент Canvas в Expression Blend и вставьте в него скопированное содержимое.

Небольшой FAQ или ЧаВо по отправке приложений WP7 в маркетплейс

Когда казалось бы, приложение для Windows Phone 7 уже готово к публикации — не помешает проверить некоторые моменты еще раз:
1) Если Вы публикуете приложение в первый раз — проверьте заменили ли вы стандартные файлы с изображениями ApplicationIcon.png и Background.png на свои.
2) Для тех, кто публикует приложение в первый раз также важно знать, что в приложении должны быть указаны такие сведения: автор, версия, контактные данные для поддержки. В качестве контактных данных можно указать сайт, e-mail, телефонный номер — в зависимости от того какой вид обратной связи вы предпочли.
3) Некоторые ошибки в XAP-сборке проверяются автоматически при загрузке приложения в маркетплейс. Ошибки выявленные на этом этапе могут быть различными. Но один из примеров — удаленные файлы помеченные как ресурс, но при этом не исключенные из проекта.
4) Если вы создали приложение для одного  языка, то следите за тем, чтобы все текстовые подсказки, сообщения и т.п. в приложении были на этом языке. Если вы создали глобализованное приложение, то оно должно обязательно поддерживать английский язык.
5) В приложении не должно быть зацикленной навигации, исключающей возможность выхода из приложения в том числе с помощью кнопки «Назад».
6) Проверяйте, что текст читаем в приложении при всех возможных настройках тем (светлая/темная, различные акцентные цвета). Могут быть различные пути решения этой задачи.
7) При валидации приложения его также тестируют и на работоспособность. При обнаружении исключений — они обязательно будут описаны в отчёте, также будут описаны условия при которых они возникли.
8 ) Если приложение не прошло валидацию, то вы обязательно получаете отчет, в котором содержится таблица с пунктами правил валидации и текстом этих пунктов. Также обязательно есть примечание в котором доходчиво разъясняется какие требования к приложению не соблюдены.
9) При валидации проверяется, в том числе, и время запуска приложения. Не стоит перегружать графикой и данными первый экран, если это замедлит время первого отклика приложения. Дать понять пользователю, что приложение запущено и готово к работе надо в самый короткий срок, иначе пользователь может подумать что телефон или приложение «зависло». В этих целях при валидации проверяется время, через которое приложение начинает реагировать после запуска.
10) Если приложение имеет возрастные ограничения — необходимо явно это указывать.
11) Для приложений есть требования по размеру сборки, по размеру расходуемой памяти и т.п. По-возможности необходимо профилировать приложение, для поиска возможных утечек памяти и т.п.
12) При отсутствии возможности тестирования на реальном устройстве, не забывайте, что имеются некоторые отличия в условиях тестирования. Как правило на компьютере, на котором разработчик производит тестирование в эмуляторе есть постоянное интернет-подключение. На реальном устройстве интернет-соединение может временно не работать в теневых зонах Wi-Fi или операторской сети. Поэтому, если ваше приложение использует интернет-подключение, не забывайте тестировать его в условиях отсутствия соединения.

События MIX11

Идёт второй день конференции MIX11. День посвящен Silverlight и Windows Phone 7.
Все прошедшие выступления становятся доступны на 9 канале.
Основные анонсы второго дня:
— представлена обновленная версия Windows Phone 7 под кодовым названием Mango.
— С обновлением Mango в WP7 будет поддерживать 16 языков, в том числе русский.
— увеличение стран из которых могут зарегистрироваться в маркетплейсе разработчики приложений для WP7 с 30 до 38 стран.
— увеличение стран, в которых будет работать маркетплейс (в которых соответственно можно будет беспрепятственно приобрести приложения) для WP7 с 16 до 35.
— В Windows Phone 7 появится настоящая многозадачность, возможность создавать приложения по-настоящему работающие в фоне. При этом батарея не будет стремительно разряжаться. Выполнением задач будет управлять технология Fast App Switching. Backgroud Agents — технология для приложений, непрерывно работающих в фоне, таким образом станет возможным создавать различные планировщики заданий.
— В WP7 наконец появится возможность работы с TCP-сокетами и это позволит создавать мессенджеры и подобные программы для общения (в том числе обещан Skype для WP7)
— В WP7 появится гироскоп, соответственно обновится линейка телефонов
— В эмуляторе WP7 появится возможность вручную изменять состояние датчика геолокации и акселерометра.
— В WP7 придёт браузер IE9 с поддержкой HTML5.
— Выпущен Silverlight 5 beta, и он уже доступен для скачивания:
Silverlight 5 Beta Tools for Visual Studio SP1
Expression Blend Preview for Silverlight 5
Silverlight 5 Features Document
Silverlight 5 Beta Developer Runtime for Windows
Silverlight 5 Beta Developer Runtime for Mac
Silverlight 5 Beta SDK
WCF RIA Services for Silverlight 5 Beta
Ключевые обновления в Silverlight 5:
— Отладка XAML с точками остановки (брекпоинтами) для отладки биндинга.
— Неявные шаблоны данных для легкого повторного использования пользовательского интерфейса
— Поддержка двойного и многократного клика (появляется счётчик кликов и обработчики многократных кликов вида
private void OnMouseDownClickCount(object sender, MouseButtonEventArgs e)
{
// проверка количества кликов.
if (e.ClickCount == 1)
{
// действие для одинарного клика.
}
if (e.ClickCount == 2)
{
// действие для двойного клика.
}
if (e.ClickCount >= 3)
{
// действие для тройного клика.
}
})
— поддержка звуковых эффектов
— изменение скорости воспроизведения медиаданных.
— появление API для работы с 3D в XNA.

Семинар для web-разработчиков по Windows Azure

29 марта 2011 года в Москве пройдёт семинар для web-разработчиков по Windows Azure.
Регистрация на мероприятие и прочая информация тут.

Silverlight for Windows Phone Toolkit — Feb 2011

18 февраля 2011 года вышел новый релиз Silverlight for Windows Phone Toolkit.
Релиз представляет собой частичные багфиксы, исправления, а также два новых компонента: TiltEffect, PerformanceProgressBar.
Страница сборки: http://silverlight.codeplex.com/releases/view/60291