(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Автоматическая отправка проблем приложения в TFS

Dmitry Andreev

Обратная связь между пользователями и группой разработки очень часто является важным фактором успех проекта, особенно на стадии пилотной эксплуатации. Заказная или внутренняя разработка приложений требует, чтобы проблемы, которые возникают у пользователей, решались как можно быстрее. Самым привычным способом коммуникаций при этом является телефон или электронная почта. Такой способ не всегда хорошо работает. Например, если идет пилотная эксплуатация, пользователи могут не знать куда звонить или отправлять письма с описанием проблем. К тому же, качество таких коммуникаций может сильно зависеть от опыта пользователей.

Если команда использует TFS для организации процессов разработки, то идеально чтобы проблемы, которые возникают у пользователей регистрировались в TFS проекте в виде ошибок. В некоторых случаях возможно даже предоставление доступа к Team Web Access пользователям разрабатываемой системы, для того чтобы они сами могли создавать ошибки. Но это тоже не всегда удобно, так как пользователи могут не обладать необходимыми навыками.

 

Очевидным выходом из положения является интеграция приложения с Team Foundation Server для предоставления пользователю возможности прямо из эксплуатируемой системы сообщить о возникших проблемах. При этом само ПО может собрать дополнительную диагностическую информацию и создать баг на сервере.
Team Foundation Server API

TFS снабжен программным интерфейсом который позволяет работать практически со всеми компонентами, в том числе управлять рабочими элементами. В простейшем случае достаточно подключить две библиотеки Microsoft.TeamFoundation.Client.dll и Microsoft.TeamFoundation.WorkItemTracking.Client.dll и у вас уже будет возможность создавать и управлять рабочими элементами.

Например, код который создет рабочий элемент очень краток:

 1: projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfs_server_address:8080/tfs"));
 2: 
 3: var workItemStore = projectCollection.GetService<WorkItemStore>();
 4: 
 5: var workItemTypes = workItemStore.Projects["ProjectName"].WorkItemTypes;
 6: 
 7: var workItem = new WorkItem(workItemTypes["bug"])
 8: 
 9: {
 10: 
 11: Title="Bug created programmatically"
 12: 
 13: };
 14: 
 15: workItem.History = "sometext";workItem.Save();

Подключить его к вашему приложению не составит никакого труда.

Сложности и их решения

В случае если вы разрабатываете настольное приложение, такой способ обладает рядом недостатков. В первую очередь они связаны с аутентификацией и авторизацией пользователя на сервере TFS, и требуют создания учетной записи на сервере, или его имперсонации. Так же на компьютер пользователя в обязательном порядке требуется установка Team Foundation Server Client, что может быть не всегда удобным. Таких недостатков лишено серверное приложение, например веб-сайт на базе ASP.NET. Самым очевидным решением в случае с настольными приложениями видится создание веб-сервиса и его вызов из приложения.
Соединяем все вместе

В подготовленном примере можно увидеть реализацию трех вариантов взаимодействия обыкновенного пользователя с TFS
Публикация информации о найденной ошибке c помощью веб приложения
Уведомление о произошедшей ошибке в приложении с помощью вебсервиса
Уведомление о произошедшей ошибке напрямую из приложения в TFS

В первом случае мы имеем следующую форму:

 

Которая  позволяет простому пользователю заполнить информацию не задумываясь о многих деталях как если бы это пришлось делать с помощью TFS Web Access. Эта форма в последствии вызывает код который и создает баг на сервере TFS.

Для того чтобы проиллюстрировать последние два варианта подготовлен пример Windows Forms приложения которое при нажатии на кнопку генерирует исключение.

В месте обработки исключения собирается информация о произошедшем (в нашем случае это просто StackTrace).

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

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

В дальнейшем работа с методами TFS ничем не будет отличаться от той которая реализована в примере на базе веб-сервисов.



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 09.11.2011 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Basic (corporate)
Microsoft 365 Business Standard (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование на Visual С++
Проект mic-hard - все об XP - новости, статьи, советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100