Вы ведете журнал на стороне клиента?

Как вы фиксируете ошибки, возникающие на стороне клиента при создании приложений RIA с использованием Flex и Silverlight? Каковы общие практики? Я видел несколько реализованных асинхронных js-вызовов к веб-службе, но хотел бы знать, как с этим справляется сообщество.


person Srikar Doddi    schedule 15.08.2010    source источник
comment
AFAIK Silverlight не позволяет создавать файлы на стороне клиента, кроме как через диалоговое окно открытия файла, поэтому ведение журнала на стороне клиента не будет довольно сложным, если только это не выполняется с помощью обратных вызовов на сервер для входа, например. БД там?   -  person Will A    schedule 15.08.2010


Ответы (5)


Во-первых, я постоянно использую ведение журнала на стороне клиента. то, как я справляюсь с этим, зависит от всего приложения.

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

Если я использую приложение на основе веб-службы, тогда возникает вызов веб-службы для ошибки клиента.

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

person KensoDev    schedule 15.08.2010
comment
Мне нравится идея создания задачи JIRA из ошибки клиента. - person Srikar Doddi; 16.08.2010
comment
Конечно, таким образом клиент не должен сообщать об ошибке, в худшем случае, если он позвонит и скажет, что у него была эта ошибка, вы можете сказать, что мы уже на ней. Это отличное обслуживание клиентов - person KensoDev; 16.08.2010

В Silverlight мне нравится использовать WebClient для входа в какой-либо веб-сервис — вы можете сделать это непосредственно в приложении Silverlight, не обращаясь к JavaScript.

Чтобы перехватывать исключения, которые возникают, когда ваш код не находится в стеке, вы можете использовать Application.UnhandledException.

person Jesse Collins    schedule 15.08.2010

Я использовал тот же подход, что и Ави Цурель — вам нужно знать на стороне сервера, когда появилась ошибка в клиенте Flex. Если вы хотите собрать больше данных (все сообщения журнала, предупреждения), я бы использовал внутренний буфер и сбрасывал его асинхронно.

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

person Cornel Creanga    schedule 15.08.2010

Я в основном выношу все ошибки наверх и фиксирую их в необработанном исключении. Я показываю дружественное сообщение пользователю. Однако в моем приложении я реализую интерфейс ILogger. Этот интерфейс может быть инициализирован с различными уровнями и обрабатывает любые сообщения. Вы можете настроить его так, чтобы пользователь мог добавить параметр инициализации, чтобы определить, следует ли передавать ошибки в службу, и я обычно заставляю регистратор писать сообщения с помощью Debug.WriteLine, если отладчик подключен, чтобы упростить трассировка проблем в режиме отладки.

person Jeremy Likness    schedule 16.08.2010

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

person Grigori Melnik    schedule 09.04.2011