Я знаю, что это немного провокационное название — это мое намерение. И конечно я скажу вам почему.
Я участвую в нескольких бета-версиях для приложений Windows Phone. Я знаю некоторых разработчиков из Twitter, и у меня было несколько разговоров о методах поиска и устранения ошибок. В конце концов, мы, как разработчики, преследуем одну единственную цель: гладко работающее приложение без ошибок
Некоторые бета-версии, которые я использую, также используют Telerik RadControls. Они позволяют нам, разработчикам, легко создавать потрясающие приложения, не создавая элементы управления с нуля. Кроме того, мы можем настроить их для наших нужд с помощью небольшого количества манипуляций с XAML.
Одним из таких элементов управления является RadDiagnostics. RadDiagnostics ловит все необработанные исключения из вашего приложения. И поверьте мне, это будет тонна — даже если вы уже справитесь со многими из них.
Я тоже в это не верил. Но затем я запустил бета-версию своего приложения TweeCoMinder для Windows Phone. Я много тестировал приложение, прежде чем опубликовать свою бета-версию, включая несколько сценариев, таких как отсутствие сетевого подключения, низкий заряд батареи и так далее. В это время я наткнулся на элемент управления RadDiagnostics в документации.
Я сразу увидел преимущества использования этого элемента управления:
- расширенное ведение журнала ошибок, включая большой набор информации, такой как версия ОС, устройство, тип сети и т. д.
- приложение не будет зависать даже при необработанных исключениях
- пользователь чувствует себя более интегрированным в процесс разработки
- пользователи склонны использовать приложение не так, как думают разработчики, — и мы даже не можем приблизиться, чтобы уловить все эти сценарии использования во время одного тестирования
- Есть много пользователей, которые действительно ищут ошибки — и хорошо, и плохо.
Позвольте мне остановиться на последнем пункте немного глубже — поскольку мы можем извлечь из него максимальную пользу. Если пользователи обнаружат ошибки, они либо будут раздражены и перестанут использовать наши приложения, либо будут говорить об этом. Давайте заставим их говорить о проблемах с нами, разработчиком! Как я уже упоминал выше, элемент управления RadDiagnostics делает это очень простым для пользователя.
MessageBox показывает, куда пользователя просят отправить нам отчет, что делается по электронной почте. Это имеет два дополнительных преимущества: во-первых, мы можем собирать все виды ошибок. Еще большее преимущество: мы можем отвечать непосредственно пользователю, поскольку у нас есть его почтовый адрес. Я многому научился во время первых бета-версий TweeCoMinder, будь то, как пользователи используют мое приложение, а также из части кода — и я смог постоянно улучшать свое приложение.
Некоторые из вас могут возразить, что вы не хотите, чтобы пользователь видел ваш код. На самом деле, это глупо. Обычный пользователь даже не знает, что означают все эти строки исключения. Только разработчики могут понять, что происходит. В чем проблема? Что они видят, что у вас есть исключение в точке х? Шансы очень высоки, что у них было такое же исключение в другой точке, и они нуждались в них, чтобы сгладить.
Лично у меня нет проблем с тем фактом, что исключение доступно для чтения для некоторых бета-тестеров / пользователей. Я сделал так, чтобы пользователи любили давать отзывы — если вы делаете это очень легко для них. RadDiagnostics — очень простой способ, так как для этого нужно всего три нажатия (ok => выбрать почтовую учетную запись => кнопку отправки).
Поскольку это пост разработчика, вот как легко интегрировать его в ваше приложение:
- Объявить RadDiagnostics в публичном частичном классе App: Application
public RadDiagnostics diagnostics;
- Инициируйте Telerik ApplicationUsageHelper в закрытом void Application_Launching (отправитель объекта, LaunchingEventArgs e)
ApplicationUsageHelper.Init("0.9.5");
- вызовите RadDiagnostic в конструкторе App () :
diagnostics = new RadDiagnostics(); { diagnostics.EmailTo = "[email protected]"; diagnostics.EmailSubject = "Here is your email subject"; diagnostics.HandleUnhandledException = true; diagnostics.Init(); }
Это все, что вам нужно, чтобы это заработало. Несколько строк кода, которые дадут вам много информации для улучшения вашего приложения, что приведет к следующему сообщению:
Еще раз, если вы используете RadControls для Windows Phone, тогда используйте RadDiagnostics, чтобы пользователи могли помочь вам найти ошибки. Вы не получите лучшего и более полезного отзыва, кроме этого!
Вы можете найти полную документацию по RadDiagnostics здесь: http://www.telerik.com/help/windows-phone/diagnostics-gettingstarted.html
Еще одна замечательная статья, которая поможет вам глубже понять, как работает RadDiagnostics, в блоге Кунала Чоудхури .
Не стесняйтесь обсуждать свой взгляд ниже в комментариях. До тех пор, Счастливого кодирования!