Team Foundation Server Основы Расширяемости. Девиз Расширяемости TFS Для интеграции в/с среду TFS, ВЫ можете использать то же самое, что и МЫ.

Презентация:



Advertisements
Похожие презентации
Сергей Байдачный Специалист по разработке ПО Майкрософт Украина
Advertisements

© 2003, Cisco Systems, Inc. All rights reserved. CSPFA Chapter 3 Cisco PIX Firewall Technology and Features.
Тестирование программного обеспечения в Visual Studio Alexander Yakovlev
© 2009 Avaya Inc. All rights reserved.1 Chapter Four, UMS Web Services Module Two – IMAP Service.
© 2009 Avaya Inc. All rights reserved.1 Chapter Four, UMS Web Services Module One – UMS.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Configuring Rules Configuring Rules Common to Windows and UNIX.
Microsoft TechDays Черкас Дмитрий Специалист по технологиям Microsoft.
© 2006 Cisco Systems, Inc. All rights reserved.CIPT2 v Monitor and Manage IP Telephony Introducing Cisco Unified CallManager Serviceability.
Microsoft TechDays Никоноров Евгений Ведущий разработчик EPAM Systems.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Administering Events and Generating Reports Managing Events.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Configuring Groups and Policies Configuring Policies.
© 2004, Cisco Systems, Inc. All rights reserved. CSIDS Lesson 4 Cisco Intrusion Detection System Architecture.
© 2005 Cisco Systems, Inc. All rights reserved. IPTX v Configuring Additional Cisco CallManager Express Features Configuring Cisco CallManager Express.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Managing Your Network Environment Managing Cisco Devices.
WORKSHOP 14 BUCKLING OF A SUBMARINE PRESSURE HULL.
AVVID Troubleshooting Tools © 2004 Cisco Systems, Inc. All rights reserved. Using Database Tools IPTT v
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Configuring Rules Configuring Windows-Only Rules.
© 2005 Cisco Systems, Inc. All rights reserved. IPTX v Configuring Additional Cisco CallManager Express Features Defining TAPI Support for Cisco.
© 2006 Cisco Systems, Inc. All rights reserved. CIPT1 v Deployment of Cisco Unified CallManager Release 5.0 Endpoints Configuring Cisco Unified CallManager.
Designing Network Management Services © 2004 Cisco Systems, Inc. All rights reserved. Developing an Enterprise Network Management Strategy ARCH v
Транксрипт:

Team Foundation Server Основы Расширяемости

Девиз Расширяемости TFS Для интеграции в/с среду TFS, ВЫ можете использать то же самое, что и МЫ

TeamFoundationServer Team Foundation Common Services SCCWebSvcDefectTrackingWebSvc Основные службы интеграции Partner Tool 1 WebSvcPartner Tool 2 WebSvc IntegrationInterface IntegrationInterface IntegrationInterface IntegrationInterface Team Foundation Client API VisualStudioIDE Внешний инстр. (Партнер или MS)

TeamFoundationServer Team Foundation Common Services SCCWebSvcDefectTrackingWebSvc Ингеграция со стороны сервера Partner Tool 1 WebSvcPartner Tool 2 WebSvc IntegrationInterface IntegrationInterface IntegrationInterface IntegrationInterface LinkingServiceUserGroupsServiceNotificationServiceRegistrationServiceCommonStructureService Team Foundation Client API VisualStudioIDE External tool (Partner or MS)

Концептуально Набор данных, который требует отслеживания. Артефакт Тип набора данных, который требует отслеживания. Тип Артефакта Уникальный неизменяемый идентификатор артефакта. URI Артефакта зона хранения артефактов, групп пользователей, и т.д. Все интрументы TFS распознают Контекст Проекта. Контекст Проекта Один Team Foundation Server и набор интегрированных инструментов. «Логический сервер» может быть на разных физ. машинах. TFS Server

Настройки и расширения Настройки –Что? Подгонка TFS к вашей среде –Кто? Пользователи, менджеры проекта –Зачем? Настроить под нужды проекта –Как? Через GUI, XML, автоматизация... Расширения/Интеграция: –Что? Новая функциональность –Кто? Партнеры, внутренняя IT –Зачем? Встроить новое в платформу –Как? Веб-службы, БД, VS SDK

Примеры настроек Шаблон проекта –Встроенные – изм. –Новые - создать Типы Work Item –Встроенные- изм. –Новые – создать –Автоматизация (WIOM) Верс. контроль –Выбрать политики Отчеты –Изм. встроенные –Новые – создать –Использовать другой тул для отчетов (Excel, компоненты Office Web) Портал Проекта –Настраиваемый шаблон –Новые библиотеки

Примеры расширений Основные службы –Новый тул с новыми артефактами, линками, БД, веб- службами –Линки к другим артефактам –Ответ на события –Интеграция с Теаm Explorer –Новые страницы в Мастере создания проекта Версионный Контроль: –Обектная Модель –Поддержка новых типов файлов (diff) –Интегрированный checkin –Новые политики –Ответ на событияОтчеты –Расширения warehouse

Примеры расширений Work Item Tracking –Обектная Модель –Ответ на события –Связь с WI –Интеграция с WI picker SPS Портал –Новые web parts Билд –Новые задачи билда (build tasks)

Team Foundation Client API VisualStudioIDE External tool (Partner or MS) TeamFoundationServer Team Foundation Common Services SCCWebSvcDefectTrackingWebSvc РегистрацияPartner Tool 1 WebSvcPartner Tool 2 WebSvc IntegrationInterface IntegrationInterface IntegrationInterface IntegrationInterface LinkingServiceUserGroupsServiceNotificationServiceRegistrationServiceCommonStructureService Регистрация Направляет callers к службам/инстр. Caller должен знать только URL веб-службы TFS location table. Направляет callers к службам/инстр. Caller должен знать только URL веб-службы TFS location table. Если серверы поменялись – единственное место для изменений, одно для всех тулов, VS IDE и т.д. Если серверы поменялись – единственное место для изменений, одно для всех тулов, VS IDE и т.д. Location table может кэшироваться для быстродействия и обновляться по необходимости Location table может кэшироваться для быстродействия и обновляться по необходимости Тулы регистрируют типы событий, артегактов, линков во время установки Тулы регистрируют типы событий, артегактов, линков во время установки Тули могут также хранить свои настройки в location table. Тули могут также хранить свои настройки в location table.

TeamFoundationServer Team Foundation Common Services SCCWebSvcDefectTrackingWebSvc НотификацииPartner Tool 1 WebSvcPartner Tool 2 WebSvc IntegrationInterface IntegrationInterface IntegrationInterface IntegrationInterface LinkingServiceUserGroupsServiceNotificationServiceRegistrationServiceCommonStructureService Team Foundation Client API VisualStudioIDE External tool (Partner or MS) Нотификация Pub/sub для событий и вызовов. Pub/sub для событий и вызовов. Caller вызывает службу нотификаций с типом события, все подписчики получают ответ. Caller вызывает службу нотификаций с типом события, все подписчики получают ответ. Конечный польз- ователь получает нотификацию по эл. почте. Конечный польз- ователь получает нотификацию по эл. почте.

Регистрация и Подписка EventTypesSubs RegistrationAPISubscriptionAPI Во время установки тул регистрирует типы событий он будет «raise». Любой тул может подписаться получать события определенного типа, когда они raised. Пользователь может подписаться на нотификации по эл. почте через GUI (oбщий или специалный) subscribesubscribe unsubscribeunsubscribe

Raising Событие Reliable delivery on request Event order is preserved EventTypes Subs TFS Event Engine Subs События приходят через web service callback. Note: Server- side sinks only in V1. Events delivered through TFS Event Client MSMQ fireSyncEventfireSyncEvent fireAsyncEventfireAsyncEvent callback method указанный в вызове subscribecallback method указанный в вызове subscribe Web Service API Rules Processor Events matched to subscriptions

Обзор API Нотификаций FireSyncEvent метод FireAsyncEvent метод Subscribe метод Unsubscribe метод Subscriptions метод (возвращает список всех подписок) Callout для нотификаций указываемый во время подписки.

TeamFoundationServer Team Foundation Common Services SCCWebSvcDefectTrackingWebSvc LinkingPartner Tool 1 WebSvcPartner Tool 2 WebSvc IntegrationInterface IntegrationInterface IntegrationInterface IntegrationInterface LinkingServiceUserGroupsServiceNotificationServiceRegistrationServiceCommonStructureService Team Foundation Client API VisualStudioIDE External tool (Partner or MS) Linking Слабосвязанные линки между данными тулов - URI-based связи. Слабосвязанные линки между данными тулов - URI-based связи. Полные и частничные инверсионные запросы, кто ня меня указывает? Полные и частничные инверсионные запросы, кто ня меня указывает? Тулы обязаны предоставлять URIs для связываемых обектов. Тулы обязаны предоставлять URIs для связываемых обектов.

Source Code Control Work Item Tracking Пример Имеет URI к артефактам управляемых SCC включая: Поддержку GetReferencingArtifacts GetReferencingArtifacts GetArtifacts GetArtifacts Execute DefaultAction Execute DefaultAction Линки на другие обекты (опция) Создает и показывает для каждого артефакта SCC включая: –File Folder ChangeSetПоддерживает GetArtifacts ExecuteDefaultAction Data: Bug data URI:WorkItem123 Link: URIfor$\foo\bar.cs Data: Metadata, source file URI: URIfor$\foo\bar.cs LinkType: Attachment

Основы Linking Artifacts - Артефакты Artifact Identifiers (URIs): Links – Линки, Связи Таргет (target) линка не должна ничего знать о sources, которые на нее указывают. Для более «серьезных» дел, поддерживается также и tight coupling.

Пример GUI связывания Linking UI Relationship Item typeItem ModifiedBy checkinchange set142562: Lollipop fix10/15/20036:42pmdev1 tested bytest pass /14/20032:15amqa1 related toWork Item /5/20033:13pmgematthew found inbuild /12/2003 9:52pmqa1 involvesattachmentWhatScrewedUp.doc10/13/ :00am pm1 Work Item участвует в таких связях: Тип линка Легкое имя Friendly Name Тип Артефакта Последнее изменение даннух по отношению к общей схеме

(нетипизирован) Найден в checkin 1.Вызов GetArtifacts с Uri для WorkItem Вызов GetArtifacts с Uris для: ChangeSet ChangeSet Doc WhatScrewedUp.DocDoc WhatScrewedUp.Doc Build Build Work Item Attached Document WhatScrewedUp.doc? Build Change Set : Lollipop Fix Work Item Test Pass Вызов GetReferencingArtifacts с Uri для WorkItem Work Item Change Set : Lollipop Fix Build Attached Document WhatScrewedUp.doc? связан с оттестирован чем?

(untyped) found in checkin 1.Call GetArtifacts with Uri for WorkItem Call GetArtifacts with Uris for: ChangeSet ChangeSet Doc WhatScrewedUp.DocDoc WhatScrewedUp.Doc Build Build Work Item Attached Document WhatScrewedUp.doc? Build Change Set : Lollipop Fix Work Item Test Pass Call GetReferencingArtifacts with Uri for WorkItem Work Item Change Set : Lollipop Fix Build Attached Document WhatScrewedUp.doc? related to tested by found in checkin Relationship Item typeItem ModifiedBy Work Item участвует в таких связях: checkinchange set142562: Lollipop fix10/15/20036:42pmdev1 тестированtest pass /14/20032:15amqa1 связан сWork Item /5/20033:13pmgematthew found inbuild /12/2003 9:52pmqa1 involvesattachmentWhatScrewedUp.doc10/13/ :00am pm1

Линк и тип линка Линк (link) может иметь тип Тип линка описывает назначение/цель линка Для отображения, тип линка имеет 2 роли (reading): –consumer linkreading1 provider –provider linkreading2 consumer –Пример: Тест x тестириет Метод y Метод y тестируется Тестом x Действующие типы линков регистрируются тулами во время установки. Типы линков могут также указывать с какими типами артефактов они работают (если известно заранее)

Внешняя адресация Вы можете предоставить страницу ASP для показа ваших артефактов. URI артефактов встроенные в s, и т.д., и попадают на ваши ASP страницы через TFS ISAPI фильтр. Примечания: –Страницы хранятся в определенном virtual directory. –XSL для форматирования данных артефактов. –Сложная ASP.Net application. –Нет ASP страницы? Пользователь получит становится…

Requirement Doc Artifact Generic Artifact Provider (GAP) Оболочка для инструментов вне TFS Requirements Tool Requirement X LinkedToURI: Windows SharePoint Services Requirement Doc URL: Note: GAP Adapter нужен для каждого инструмента. Adapter должен получать сообщения об изменениях в артефактах GAP links, other data

TeamFoundationServer Team Foundation Common Services SCCWebSvcDefectTrackingWebSvc Группы Пользователей Partner Tool 1 WebSvcPartner Tool 2 WebSvc IntegrationInterface IntegrationInterface IntegrationInterface IntegrationInterface LinkingServiceUserGroupsServiceNotificationServiceRegistrationServiceCommonStructureService Team Foundation Client API VisualStudioIDE External tool (Partner or MS) User Groups Lightweight user groups / roles for security and policy. Lightweight user groups / roles for security and policy. Default groups for common roles. Default groups for common roles. Group resolution includes AD groups and TFS groups. Group resolution includes AD groups and TFS groups. TFS Enabled Tools will include these user groups when they perform authorization. TFS Enabled Tools will include these user groups when they perform authorization. In addition, TFS provides simple auth services for tools that can use them In addition, TFS provides simple auth services for tools that can use them

User Group Служба Требует компоненты Win 2003 Server –Authorization Manager (AzMan) –Active Directory Application Mode (ADAM) Пользователи могут определять собственные группы По определению, тулы с поддержкой TFS знают о пре- определеных группах Administrators и Project Administrators. Определения групп могут передаваться в WSS, SQL Reporting Services. Для авторизации: –Пишите свои собственные и пользуйтесь группами TFS or –Пользуйтесь нашим механизмом AzMan авторизации

Обзор User Group API IsMemberCreateProjectGroupListProjectGroupsAddMemberToProjectGroupRemoveMemberFromProjectGroupListMembersListMemberOf

TeamFoundationServer Team Foundation Common Services SCCWebSvcDefectTrackingWebSvc Classification Service Partner Tool 1 WebSvcPartner Tool 2 WebSvc IntegrationInterface IntegrationInterface IntegrationInterface IntegrationInterface LinkingServiceUserGroupsServiceNotificationServiceRegistrationServiceCommonStructureService Team Foundation Client API VisualStudioIDE External tool (Partner or MS) Classification Централизованная схема классификации для поддержки сквозных (cross-tool) отчетов. Централизованная схема классификации для поддержки сквозных (cross-tool) отчетов. В V1 поддержка: Project Structure and Iteration. В V1 поддержка: Project Structure and Iteration.

2/15/2004 2/16/2004 2/17/2004 2/18/2004 2/19/2004 Bug Find Rate Bug Fix Rate Bug Trend - Find & Fix Классофикация не нужна

Status by Team Незаконченная Спецификация Неоконченные задачи (10s) Строки кода (1000s) Новые /измененные строки кода (10s) Активные баги Степень нахождения багов Степень починки Fix Rate Запуски тестов(10s) Степень падения тестов (%) Непокрытый тестом код (%) Классификация нужна Статус по командам

Status by Team Unfinished Specifications Unfinished Tasks (10s) Lines of Code (1000s) New and Changed Lines of Code (10s) Active Bug Count Find Rate Fix Rate Tests Run (10s) Test Fail Rate (%) Uncovered Code (%) Классификация нужна Код из версионного контроля Специфик ации (ТЗ) из SharePoint Специфик ации (ТЗ) из SharePoint Баги, задачи из Work Item Tracking Баги, задачи из Work Item Tracking Результаты из Тестов (Testing Software) Результаты из Тестов (Testing Software)

Обоснование Классификации Общая классификация позволяет делать отчеты по всем инструментам. Подход: –Организация Work item (структуры портфолио проекта portfolio project structure) понятна для менеджеров проекта –Пользователи категоризуют source trees/subtrees и другие артегакты (тесты, и т.д.) в структуру work item. –Позволяет создавать отчеты, которые не могут следовать из прямых связей между source, work items, и другими интересуюшими нас артефактами.

Explicit Классификация и Отчеты Некоторые отчеты могут быть написаны без обязательного указания классификации –Отчеты из данных полученных из ОДНОГО инструмента. –Отчеты из данных из нескольких инструментах, но с преопределенными связями (predefined relationships) Некоторые отчеты – не могут.... –Если связи не предопределены.

Обзор API Классификации Артефакты содержат линки на классифицируещие ноды (nodes) Контекст проекта - Project Context –ListProjectContexts –CreateProjectContext –DeleteProjectContext Структуры –GetStructure (Выдает полную структуру классификаций) –CreateNode –ListPermittedChildNodeTypes –RenameNode –MoveNode –DeleteNode

TeamFoundationServer Team Foundation Common Services SCCWebSvcDefectTrackingWebSvc Интеграция со стороны сервера Partner Tool 1 WebSvcPartner Tool 2 WebSvc IntegrationInterface IntegrationInterface IntegrationInterface IntegrationInterface Team Foundation Client API VisualStudioIDE External tool (Partner or MS)

Team Foundation Client API EnvironmentSDK Интеграция со стороны клиента Partner Client Tool Inside the IDE Team Foundation Server Visual Studio IDE Team Foundation Core Extension Points Основные точки расширения

Интеграция со стороны клиента Visual Studio IDE Portfoliо Explorer Portfolio Project CreationWizard Мастер создания проекта Portfolio Project Properties Team Foundation Core Extension Points

Project Context Node Node Ваш тул здесь

Ваши шаги Расширяемая модель для построения

Расширения шаблонов проекта Расширения

Client-Side Integration Visual Studio IDE PortfolioExplorer ProjectCreationWizard Team Foundation Core Extension Points ProjectProperties

Portfolio Project Properties Новый таб

Work Item Tracking Reporting Warehouse SQL Server ReportingServices Source Code Control Work Item PULL Adapter Source Code PULLAdapter Partner Tool A PULLAdapter Reporting Warehouse Object Model Excel 3rd Party/ CustomReporting Test/Build PUSH Adapter Partner Tool B PUSHAdapter

Reporting Warehouse Collection point for reporting/analysis Storage for trend analysis Extensible –Adapter model –Add dimensions/measures Pull model from data source Push model directly to warehouse Uses SQL Server Yukon –RDB for star schema –Analysis Services for OLAP cubes

Project Portal WSS Site на проект Добавление своих web parts в галлерею Расширение шаблонов в ТFS

Примеры из VS 2005 SDK Версионный контроль –Политика checkin –Oсновы ВК –Запрещенные checkinы Интеграция с Team Build –Подписки на TFS Основные службы TFS –Коллекции Work Item tracking –Work items –Work Items Controls Team Explorer –Team Explorer плагин Тeam Test –Расширения для Team Test – Team Test Extensibility

Architecting for TFS On the server –Register your tool characteristics at install time –Artifact-ize for data integration Implement TFS-enablement APIs/Web Services Add an ASP page for web-based artifact display –Extend your authorization to include TFS user groups –Raise/respond to TFS Notifications –Use (and extend) the warehouse and reports On the client –Use IDE extensibility points –Provide web parts to expose your data –Add your own portfolio project and SharePoint templates

© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.