Denis Gladkikh
Russian   |  English

Выбранный тег: Silverlight

Страница  1  2  3  

Windows Phone 7 Silverlight: Behaviors для TextBox

Термины Behaviors и Interactions ввели две библиотеки, поставляемые вместе с продуктом Expression Blend. Эти библиотеки еще известны со времен Silverlight и WPF, и предполагаю, что большинство разработчиков про них знает. Найти эти библиотеки можно в директории “c:\Program Files (x86)\Microsoft SDKs\Expression\Blend\” (если Windows 32 битный, то без (x86)), если Expression Blend был установлен. В этой папке вы сможете найти  библиотеки для WPF/Silverlight/WindowsPhone. Зачем они нужны и как их правильно использовать вы можете узнать, пройдя по ссылки на MSDN Expression Blend SDK for Windows Phone. Если кратко: это способ расширят функциональность контролов, да еще и так, чтобы поддерживался паттерн MVVM (байндинги и т.п.). 

При разработке своего первого приложения мне потребовалось несколько Behaviors для TextBox, которыми я и хочу с вами поделиться.



Windows Phone 7: Впечатления и начало разработки.

Около месяца назад приобрел себе мобильный телефон под управлением Windows Phone 7 (7.1 Mango который). Мобильный телефон взял Samsung Focus S у мобильного оператора ATT. Честно, устройство очень радует. Сама система WP7 тоже доставляет только одни удовольствия. И, конечно же, сразу же захотелось что-нибудь написать под платформу. Тем более, что все на знакомом Silverlight. В общем, ближайшие, не знаю пока сколько, постов в моем блоге будут о Windows Phone 7, а точнее о разработке под него, а точнее о разработке Silverlight приложений под него. Начать же хочу с впечатлений о платформе и процессе разработки.



Улучшаем Silverlight: окна сообщений

Любому приложению нужно что-то сообщать пользователю, например, об удачном или неудачном окончании операции, о неожидаемой ошибке в приложении. Реализовать такие информативные области можно по-разному. Есть старый, проверенный, способ с MessageBox. Эти диалоговые окошки с нами уже очень давно, они переходят из технологии в технологию, и в Silverlight есть такой класс MessageBox.

Есть и другой способ отображать сообщения, который я считаю немного дороже по реализации, но который в несколько раз более приятный для глаз пользователя – это отображение этого сообщения не как модального окна, а как некоторой области прикрепленной сверху или снизу. Один из примеров: нотификация в браузерах о том, что страница пытается получить информацию о вашем местоположении. Правильная комбинация обоих способов, конечно же, дает самый лучший и приятный вариант для пользователя, ведь иногда нам все-таки нужно остановить пользователя, чтобы спросить его о чем-то, и тут приходит на помощь первый вариант. Сегодня я хотел бы более подробно обсудить первый вариант на примере Silverlight, так как именно там стандартный MessageBox уж очень скудный.



Улучшаем Silverlight приложения: стандартное контекстное меню для TextBox

Как часто у меня бывает такое, что в одной руке у меня кружка чая или пряник, а другой рукой я печатаю и вожу мышкой. И вот не могу я одной рукой сразу же нажать Ctrl+C или Ctrl+V (могу конечно, но не удобно, не привычно). Во всех программах, на всех сайтах, у меня есть возможность выделить мышкой текст и скопировать его, а дальше вставить в другое место, а вот TextBox по умолчанию в Silverlight не предоставляет мне такой возможности, и это очень плохо. В особенности для бизнес-приложений. Люди привыкают к стандартным функциям, нельзя их лишать этого. Я говорю об этом меню:

sample

В Silverlight 4 появилась возможность обрабатывать нажатие правой кнопки мыши, и так же с ним появился контрол ContextMenu (в Silverlight Toolkit). Следовательно, мы теперь можем обогатить наш интерфейс.

Первое, с чего можно начать, это погуглить и найти что-то вроде такой статьи Silverlight 4 textbox right click context menu with cut, copy and paste behavior, которая приведет нас к более доработанному варианту TextBoxCutCopyPasteBehavior. Его, как показала практика, мне тоже пришлось немного доработать.



Unit тестирование в Silverlight 4

Наша команда настроила свою среду для тестирования Silverlight приложений еще год назад для Silverlight 3. Потом, со временем, просто обновляли библиотеки и приложения. Я бы хотел с вами поделиться теми удобными утилитами, которыми мы пользуемся для тестирования кода Silverlight приложений, как для запуска на локальном компьютере, так и для автоматизированного запуска на интеграционном сервере. Я буду говорить именно о Unit тестировании (блочном тестировании), а не о UI тестировании (тестирование интерфейсов). В нашей компании у нас есть команда QA, которая занимается UI тестированием, мы же просто пишем тесты для кода моделей представления и моделей. Для того, чтобы настроить среду для тестирования, мне понадобились: Silverlight Toolkit, Moq, R#, AgUnit, StatLight. А теперь обо всем по порядку.



Эти непростые XAML Namescopes

На прошлой неделе я, просто ради интереса, подготовил 4 примера в Еще одно сравнение паттернов MVVM и MVP для Silverlight. Примеры возникли не случайно, просто, попался на эту проблему пару недель назад. Там же был опросник о том, какие из примеров рабочие. Определить просил просто, посмотрев на код. Было получено 56 (вместе с моим) ответов, и только два из них были верными (вместе с моим). В этих примерах я уточнил, что опрос касается Silverlight, так как в WPF все немного по-другому.



Поучаствовал в выпуске 2Гига #43: MIX11

Поучаствовал во второй раз в подкасте 2Гига. Разговаривали, в основном, о конференции MIX11. Вообще, интересно спросить тех, кто слушал или послушает – как я выгляжу, как подкастер? Нудно слушать или нет? Есть идея, просто, как буду жить там, начать писать подкасты, они не будут особо технические, так – обо всем. Ну, и будет ли это кто-то слушать? Или сначала попробовать, а потом уже спрашивать? :)

2ГигаIE 11
Участники:
Евгений Жарков
Владимир Юнев
Денис Гладких
 
Содержание: Длительность: ~70 минут
Подкаст на RPOD,POD.FM


Еще одно сравнение паттернов MVVM и MVP для Silverlight

Я уже когда-то поднимал тему сравнения паттернов MVP и MVVM при разработке Silverlight приложений: Выступление на ADD2010: Silverlight/WPF: возврат от паттерна MVVM к MVP. Вопрос, на самом деле сложный, какой из паттернов лучше. Я бы хотел продемонстрировать небольшой пример и подискутировать на эту тему в комментариях. Был бы рад, если кто-нибудь нашел бы хороший ответ на мой вопрос, который будет дальше.



Впечатления о втором дне MIX’11: Silverlight 5 Beta

Буквально несколько часов назад нам анонсировали Silverlight 5 на конференции MIX’11. Даже можно скачать Silverlight 5 Beta and Tools и попробовать в живую. Я тоже это сделал, ради любопытства.  Поставил на виртуальную машину, попробовал несколько новых фич. Вам, кстати, тоже не рекомендую ставить на рабочую машину, если вы Silverlight разработчик, и сейчас разрабатываете на Silverlight 4. У меня постоянные зависания, повторяется всегда с ChildWindow. Но это все может быть из-за того, что стоит все на виртуальной машине, да еще и на Windows Server 2008 R2 (та виртуалка, на которой мы разрабатывали проект на HackDay). Но я вас предупредил.

Ознакомиться с новыми фичами Silverlight 5 можно (и нужно!) в нескольких местах, например, в блоге Tim Heuer – Silverlight 5 Beta – A guide to the new features. Еще кто-то кинул в твиттере ссылку на pdf документ, на сайте Silverlight.net Silverlight 5 Beta Technical Features (как на него попасть – не знаю).



Проверяем наличие подписчиков у событий при помощи Reflection

Передо мной встала задача, нужно было бы собрать все события объекта и подписаться на них (подписать определенный метод), только в том случае, если на это событие не подписан кто-то еще. Я могу даже больше сказать, делал я это для классов-оберток, которые генерирует Visual Studio на Add Reference Service…. Используем мы их по стандартному, как и все, наверное. Используем в коде не сами классы-обертки, которые генерирует Visual Studio, а используем свои реализации, которые нам предоставляют возможность тестировать наши модели, подставляя Mock и Stub объекты вместо самих реализаций. Давайте лучше покажу на примере.

Заголовок для этой заметки достаточно сложно было придумать. Проверка наличия подписчиков – это все-таки малая сердцевина того, что я тут описываю, но я думаю это просто самая интересная часть. В целом, я тут описываю вариант обработки результатов от методов сервисов в Silverlight приложении.



Страница  1  2  3