Team Foundation Server

Содержание

Слайд 2

Девиз Расширяемости TFS

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

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

Слайд 3

Основные службы интеграции

Основные службы интеграции

Слайд 4

Team
Foundation
Server

Team
Foundation Common
Services

Ингеграция со стороны сервера

Team Foundation Server Team Foundation Common Services Ингеграция со стороны сервера

Слайд 5

Концептуально

Набор данных, который требует отслеживания.

Артефакт

Тип набора данных, который требует отслеживания.

Тип Артефакта

Уникальный неизменяемый

Концептуально Набор данных, который требует отслеживания. Артефакт Тип набора данных, который требует
идентификатор артефакта.

URI Артефакта

зона хранения артефактов, групп пользователей, и т.д. Все интрументы TFS распознают Контекст Проекта.

Контекст Проекта

Один Team Foundation Server и набор интегрированных инструментов. «Логический сервер» может быть на разных физ. машинах.

TFS Server

Слайд 6

Настройки и расширения

Настройки
Что? Подгонка TFS к вашей среде
Кто? Пользователи, менджеры проекта
Зачем? Настроить

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

Слайд 7

Примеры настроек

Шаблон проекта
Встроенные – изм.
Новые - создать
Типы Work Item
Встроенные- изм.
Новые – создать
Автоматизация

Примеры настроек Шаблон проекта Встроенные – изм. Новые - создать Типы Work
(WIOM)
Верс. контроль
Выбрать политики

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

Слайд 8

Примеры расширений

Основные службы
Новый тул с новыми артефактами, линками, БД, веб-службами
Линки к другим

Примеры расширений Основные службы Новый тул с новыми артефактами, линками, БД, веб-службами
артефактам
Ответ на события
Интеграция с Теаm Explorer
Новые страницы в Мастере создания проекта

Версионный Контроль:
Об’ектная Модель
Поддержка новых типов файлов (diff)
Интегрированный checkin
Новые политики
Ответ на события
Отчеты
Расширения warehouse

Слайд 9

Примеры расширений

Work Item Tracking
Об’ектная Модель
Ответ на события
Связь с WI
Интеграция с WI picker
SPS

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

Слайд 10

Team
Foundation
Server

Team Foundation Common
Services

Регистрация

Регистрация
Направляет callers к службам/инстр. Caller должен знать только URL

Team Foundation Server Team Foundation Common Services Регистрация Регистрация Направляет callers к
веб-службы TFS location table.
Если серверы поменялись – единственное место для изменений, одно для всех тулов, VS IDE и т.д.
Location table может кэшироваться для быстродействия и обновляться по необходимости
Тулы регистрируют типы событий, артегактов, линков во время установки
Тули могут также хранить свои настройки в location table.

Слайд 11

Team
Foundation
Server

Team Foundation Common
Services

Нотификации

Нотификация
Pub/sub для событий и вызовов.
Caller вызывает службу нотификаций с

Team Foundation Server Team Foundation Common Services Нотификации Нотификация Pub/sub для событий
типом события, все подписчики получают ответ.
Конечный польз-ователь получает нотификацию по эл. почте.

Слайд 12

Регистрация и Подписка

Event
Types

Subs

Registration
API

Subscription
API

Во время установки тул регистрирует типы событий он будет «raise».

Любой

Регистрация и Подписка Event Types Subs Registration API Subscription API Во время
тул может подписаться получать события определенного типа, когда они raised.

Пользователь может подписаться на нотификации по эл. почте через GUI (oбщий или специалный)

subscribe
unsubscribe

Слайд 13

Raising Событие

Reliable delivery on request
Event order is preserved

Event
Types

Subs

TFS Event Engine

Subs

События приходят через

Raising Событие Reliable delivery on request Event order is preserved Event Types
web service callback. Note: Server-side sinks only in V1.

Events delivered through email

fireSyncEvent
fireAsyncEvent

callback method указанный в вызове subscribe

Web Service API

Rules Processor

Events matched to subscriptions

Слайд 14

Обзор API Нотификаций

FireSyncEvent метод
FireAsyncEvent метод
Subscribe метод
Unsubscribe метод
Subscriptions метод (возвращает список всех подписок)
Callout

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

Слайд 15

Team
Foundation
Server

Team Foundation Common
Services

Linking

Linking
Слабосвязанныелинки между данными тулов -URI-based связи.
Полные и частничные инверсионные запросы,

Team Foundation Server Team Foundation Common Services Linking Linking Слабосвязанныелинки между данными
кто ня меня указывает?
Тулы обязаны предоставлять URIs для связываемых об’ектов.

Слайд 16

Source Code Control

Work Item Tracking

Пример

Имеет URI к артефактам управляемых SCC включая:
Поддержку
GetReferencingArtifacts
GetArtifacts
Execute

Source Code Control Work Item Tracking Пример Имеет URI к артефактам управляемых
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

Слайд 17

Основы Linking

Artifacts - Артефакты
Artifact Identifiers (URIs):
http://TfsServer/vset/servertype.instance/artifacttype/moniker
Links – Линки, Связи
Таргет (target) линка не

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

Слайд 18

Пример GUI связывания Linking UI

Тип линка

Легкое имя Friendly Name

Тип Артефакта

Последнее изменение даннух

Пример GUI связывания Linking UI Тип линка Легкое имя Friendly Name Тип
по отношению к общей схеме

Слайд 19

(нетипизирован)

Найден в

checkin

Work Item
107462

Attached Document
WhatScrewedUp.doc?

Build
20031012.352

Change Set
142562: Lollipop Fix

Work Item
170472


Test Pass
20031014.8054


Work Item
107462

Change Set
142562:

(нетипизирован) Найден в checkin Work Item 107462 Attached Document WhatScrewedUp.doc? Build 20031012.352
Lollipop Fix


Build
20031012.352


Attached Document
WhatScrewedUp.doc?


Слайд 20

found in

checkin

Relationship Item type Item Modified By

Work Item 107462 участвует в таких связях:

checkin change set 142562:

found in checkin Relationship Item type Item Modified By Work Item 107462
Lollipop fix 10/15/2003 6:42pm dev1

тестирован test pass 20031014.8054 10/14/2003 2:15am qa1

связан с Work Item 170472 10/5/2003 3:13pm gematthew

found in build 20031012.352 10/12/2003 9:52pm qa1

involves attachment WhatScrewedUp.doc 10/13/2003 10:00am pm1

Слайд 21

Линк и тип линка

Линк (link) может иметь тип
Тип линка описывает назначение/цель линка
Для

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

Слайд 22

Внешняя адресация

Вы можете предоставить страницу ASP для показа ваших артефактов.
URI артефактов

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

Слайд 23

Requirement
Doc Artifact

Generic Artifact Provider (GAP) Оболочка для инструментов вне TFS

Requirements Tool

Requirement

Requirement Doc Artifact Generic Artifact Provider (GAP) Оболочка для инструментов вне TFS
X
LinkedToURI:

Windows SharePoint Services
Requirement Doc
URL:

Note:
GAP Adapter нужен для каждого инструмента.
Adapter должен получать сообщения об изменениях в артефактах

GAP

http://.../ReqDoc/2a45690

http://Proj1/ReqDocs/ReqX.doc

links, other data

http://.../ReqDoc/2a45690

http://Proj1/ReqDocs/ReqX.doc

Слайд 24

Team
Foundation
Server

Team Foundation Common
Services

Группы Пользователей

User Groups
Lightweight user groups / roles for security and

Team Foundation Server Team Foundation Common Services Группы Пользователей User Groups Lightweight
policy.
Default groups for common roles.
Group resolution includes AD groups and TFS groups.
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

Слайд 25

User Group Служба

Требует компоненты Win 2003 Server
Authorization Manager (AzMan)
Active Directory Application Mode

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

Слайд 26

Обзор User Group API

IsMember
CreateProjectGroup
ListProjectGroups
AddMemberToProjectGroup
RemoveMemberFromProjectGroup
ListMembers
ListMemberOf

Обзор User Group API IsMember CreateProjectGroup ListProjectGroups AddMemberToProjectGroup RemoveMemberFromProjectGroup ListMembers ListMemberOf

Слайд 27

Team
Foundation
Server

Team Foundation Common
Services

Classification Service

Classification
Централизованная схема классификации для поддержки сквозных (cross-tool) отчетов.
В V1

Team Foundation Server Team Foundation Common Services Classification Service Classification Централизованная схема
поддержка: Project Structure and Iteration.

Слайд 28

Классофикация не нужна

Классофикация не нужна

Слайд 29

Status by Team

Незаконченная Спецификация

Неоконченные задачи (10s)

Строки кода (1000s)

Новые /измененные строки кода (10s)

Активные

Status by Team Незаконченная Спецификация Неоконченные задачи (10s) Строки кода (1000s) Новые
баги

Степень нахождения багов

Степень починки Fix Rate

Запуски тестов(10s)

Степень падения тестов (%)

Непокрытый тестом код (%)

Классификация нужна

Статус по командам

Слайд 30

Status by Team

Unfinished Specifications

Unfinished Tasks (10s)

Lines of Code (1000s)

New and Changed Lines

Status by Team Unfinished Specifications Unfinished Tasks (10s) Lines of Code (1000s)
of Code (10s)

Active Bug Count

Find Rate

Fix Rate

Tests Run (10s)

Test Fail Rate (%)

Uncovered Code (%)

Классификация нужна

Код из версионного контроля

Спецификации (ТЗ)
из SharePoint

Баги, задачи
из Work Item Tracking

Результаты из Тестов
(Testing Software)

Слайд 31

Обоснование Классификации

Общая классификация позволяет делать отчеты по всем инструментам.
Подход:
Организация Work item (структуры

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

Слайд 32

Explicit Классификация и Отчеты

Некоторые отчеты могут быть написаны без обязательного указания классификации
Отчеты

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

Слайд 33

Обзор API Классификации

Артефакты содержат линки на классифицируещие ноды (nodes)
Контекст проекта - Project

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

Слайд 34

Интеграция со стороны сервера

Интеграция со стороны сервера

Слайд 35

Интеграция со стороны клиента

Partner Client
Tool
Inside the IDE

Visual Studio IDE

Интеграция со стороны клиента Partner Client Tool Inside the IDE Visual Studio IDE

Слайд 36

Интеграция со стороны клиента

Visual Studio IDE

Portfoliо Explorer

Portfolio Project
Creation
Wizard
Мастер создания
проекта

Portfolio Project
Properties

Team Foundation
Core

Интеграция со стороны клиента Visual Studio IDE Portfoliо Explorer Portfolio Project Creation
Extension Points

Слайд 37

Project Context
Node

Ваш тул здесь

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

Слайд 38

Ваши шаги

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

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

Слайд 39

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

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

Слайд 40

Client-Side Integration

Visual Studio IDE

Portfolio
Explorer

Project
Creation
Wizard

Team Foundation
Core Extension Points

Project
Properties

Client-Side Integration Visual Studio IDE Portfolio Explorer Project Creation Wizard Team Foundation

Слайд 41

Portfolio Project Properties

Новый таб

Portfolio Project Properties Новый таб

Слайд 42

Work Item
Tracking

Reporting Warehouse

SQL Server
Reporting
Services

Source Code
Control

Work Item PULL
Adapter

Source Code
PULL
Adapter

Partner Tool A

Partner Tool A
PULL
Adapter

Reporting Warehouse

Reporting

Work Item Tracking Reporting Warehouse SQL Server Reporting Services Source Code Control
Warehouse
Object Model

Excel

3rd Party/
Custom
Reporting

Test/Build PUSH
Adapter

Partner Tool B
PUSH
Adapter

Слайд 43

Reporting Warehouse

Collection point for reporting/analysis
Storage for trend analysis
Extensible
Adapter model
Add dimensions/measures
Pull model from

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

Слайд 44

Project Portal

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

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

Слайд 46

Примеры из VS 2005 SDK

Версионный контроль
Политика checkin
Oсновы ВК
Запрещенные checkin’ы
Интеграция с Team Build
Подписки

Примеры из VS 2005 SDK Версионный контроль Политика checkin Oсновы ВК Запрещенные
на TFS
Основные службы TFS
Коллекции

Work Item tracking
Work items
Work Items Controls
Team Explorer
Team Explorer плагин
Тeam Test
Расширения для Team Test – Team Test Extensibility

Слайд 47

Architecting for TFS

On the server
Register your tool characteristics at install time
“Artifact-ize” for

Architecting for TFS On the server Register your tool characteristics at install
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