Подтвердить что ты не робот

Есть ли какая-либо документация по веб-службам TFS?

Я ищу любую информацию о веб-службах Microsoft TFS. Сначала я знаю, что доступ к веб-службам Microsoft TFS напрямую не поддерживается, и Microsoft не предоставляет документации для этого. Поэтому я не ожидаю поддержки или поддержки Microsoft здесь.

Я знаю все о API.Net для TFS, который работает только в операционных системах Microsoft. Я использовал это много раз в Windows, однако мне нужно сделать работу, отличную от Windows, для доступа к TFS, я не могу использовать .Net, и я не могу использовать прокси (или "прокладку" ) для установки на компьютер под управлением Windows для предоставления веб-служб для API.Net.

Я знаю, что Teamprise обратный проектировал веб-службы, и они успешно использовали эти знания, чтобы сделать очень хорошую кросс-платформу Team Explorer и реализацию командной строки в Java для доступа к TFS. Так что на самом деле они были приобретены Microsoft, а продукт переименован и переименован в Microsoft Visual Studio Team Explorer Everywhere.

Я также тестировал API-интерфейс .Net для Mono на нескольких платформах, отличных от Windows, и они несовместимы. Первоначальная аутентификация NTLMv2 использует вызовы, не поддерживаемые Mono. Похоже, что они делают конкретные вызовы Win32 для поддержки NTLMv2.

Поэтому, прежде чем я перейду к проблеме реконструировать их для себя и поговорить с NTLMv2, чтобы это сделать. Я надеюсь, что в Интернете есть скрытая или скрытая информация о том, что кто-то может документировать часть веб-сервисов для TFS с 2005, 2008 и/или 2010.

Пожалуйста, не оставляйте комментарии или сообщения о том, как это не рекомендуется или поддерживается Microsoft, что я должен найти способ использования API.Net или предложить Proxy/Shim - лучшее решение. Я полностью осведомлен о официальной позиции Microsoft по этому вопросу и о том, какие поддерживаемые обходные пути будут.

4b9b3361

Ответ 1

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

NTLM-аутентификация, о которой вы упоминаете, действительно представляет собой отдельный уровень: вы должны пройти аутентификацию в IIS, прежде чем он позвонит вам через веб-службы TFS. Я не знаю ни одного программного обеспечения с открытым исходным кодом, которое будет работать с NTLM для вас, но TFS 2010 позволяет легко включить аутентификацию "Negotiate" (SPNEGO в Википедии, Аутентификация с использованием билета Kerberos на MSDN). Negotiate поддерживает как подсистемы NTLM, так и Kerberos, и может существовать какое-то существующее программное обеспечение, которое вы можете использовать для его использования с использованием системных библиотек Kerberos (я думаю, что это завиток). Если вам нужно было построить его самостоятельно, вероятно, было бы легче пройти маршрут переговоров с Kerberos.

После аутентификации вы можете начать звонить в службы. Начните с вытягивания WSDL для каждой службы (привяжите суффикс "? Wsdl" на каждом URI конечной точки). Перейдите к месту установки TFS и изучите каталог веб-приложений для конечных точек. Существует несколько версий некоторых конечных точек для обратной совместимости с TFS 2005 и 2008, но обычно новые версии не являются избыточными (они добавляют новые материалы). Возможно, у вас уже есть любимая клиентская библиотека SOAP (их много для Java), но я не могу по-настоящему рекомендовать их, потому что мы написали их в Teamprise.

Сервисы, такие как управление версиями, сборка и общая структура, легко обнаружить через WSDL. Большинство операций имеют очевидные имена, но поля сложного типа часто являются супер-сокращенными. Лучший способ определить, какие методы вызывать, когда нужно смотреть клиент VS TFS или TEE с помощью Fiddler или Wireshark или какой-либо другой программы проверки HTTP. TFS VC делает такие вещи, как загрузка файлов/загрузка за пределы веб-служб (следите за сетевой трассировкой, чтобы увидеть многопользовательский процесс загрузки MIME и убедитесь, что вы отправляете правильные значения, если вы это реализуете).

Обратите внимание на веб-службу отслеживания рабочих элементов: этот процесс будет чрезвычайно трудным. Проект WIT предполагает, что клиент предварительно запрашивает сервер для больших объемов метаданных без схемы, которые сохраняются на клиенте (но обновляется постепенно, по мере того, как делается больше вызовов веб-служб). Эти метаданные управляют всем поведением на стороне клиента по рабочим элементам (какие поля находятся в типе рабочего элемента, типе поля, какие значения разрешены в полях, правила, которые выполняются при их изменении, и т.д.), И это потребует долгое время и серьезное исследование, чтобы построить поведение клиента, чтобы оживить работу. Когда у вас есть рабочий элемент, отправка его на сервер для обновления через веб-службы легко.

Это много работы, но возможно сделать это постепенно, например, если вам нужны только некоторые функции VC. Команда TEE работает над облегчением доступа с других платформ. Пожалуйста, свяжитесь с Мартином Вудвордом ([email protected]), если у вас есть какие-либо вопросы или предложения в этой области.

Ответ 2

Существует версия Java TFS SDK, которая будет работать на Linux, Mac и Windows. Это SDK, который использует Teamprise.

http://blogs.msdn.com/b/bharry/archive/2011/05/16/announcing-a-java-sdk-for-tfs.aspx

Кодирование непосредственно с веб-службами TFS не поддерживается (даже если люди это сделали). MSFT может сломать интерфейс, не сообщив вам об этом в пакете обновления или другом исправлении. Иногда нет других опций, но если Java SDK работает для вас, я бы попытался использовать это в первую очередь.