• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 23.04.2016 00:55:33C programlama 2 oyun
  • 20.04.2016 16:34:41Local Database
  • 15.04.2016 14:26:15Fatura kayıt işlemi
  • 21.03.2016 01:55:30C# problem

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LINQ
  • LibreOffice
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

TFS Web Services ve Kullanımları

Team Foundation Server tarafında Client Object Model tarafından da ağırlıklı olarak kullanılan XML Web Service' lerini incelemeye çalışıyoruz.

18.03.2013

Yazar: Burak Selim Şenyurt (Google+)

Kategori: .Net Framework

3284

cartoon-soldier-010Merhaba Arkadaslar,

Yedek Subay olarak askerlik hizmetimi yerine getirdigim yillarda(O zamanlar 16 ay idi) Jandarma Genel Komutanligi Personel Åžube’ de görev almistim. Aslinda temel isim Powerpoint ile sunum hazirlamakti ama verilen emir her ne ise onu da yerine getirmek mesuliyetini tasimaktaydim.

Bir gün komutanim ile birlikte yine sivil hayat için anlamsiz olan ama Askeri disiplin kurallari çerçevesinde gayet de makul görünen bir ise adanmistik. Neredeyse tüm komutanlik personelinin igneli Printer’ dan çikartilmis karinca yazisi ebatlarindaki bilgilerini, bir diger koca liste ile karsilastiracak ve bir filtreleme islemi gerçeklestirecektik. (Isin yaklaşık olarak kesintisiz çalisma ile 48 saate varabilecegini biliyorduk)

Takdir edersiniz ki o yillarda bilgisayar kullaniliyor olmasina ragmen, komutanligin ihtiyaç duydugu ve hayati kolaylastiracak islevsellikler için genellikle Microsoft Office ürünleri ele alinmaktaydi ama elimizde söyle zirt diye filtreleme yapabilecegimiz bir SQL/Oracle ortami da yoktu. (Yil 2001-2003 arasi diyeyim)

Hal böyle olunca elimize aldik çiktilari basladik tek tek karsilastirmaya. Bir ara ben durup bunu daha kolay nasil yapabiliriz diye düsünmeye basladigimi hatirliyorum. Hatta o anlarda arkamda beliren Yarbay’ imin da sert bir ses tonu ile beni rüyamdan uyandirdigini…”Astegmenimmmm!!!…”

Dogruyu söylemek gerekirse ne ben ne de komutanim tüm listeyi dolasmak istemiyorduk. Kafa kafaya vererek güzel bir yol bulduk elbette Smile Yol derken elimizde cetvel, kalem vesaire vardi. Ne bilgisayar ne de baska bir akilli cihaz. O zaman anladim ki bazi islerde kisiye büyük sabir gerekebiliyor. Örnegin TFS(Team Foundation Server) üzerinde kullanilan XML Web Service örneklerinin teker teker bulunup çikartilmasi gibi Winking smile

TFS mimari alt yapisi ve çevre etkilesimini inceledigimiz su yazimizda Client Object Model’ i kisaca anlamaya çalismistik. O makalede yer alan mimari çizime dikkatlice bakarsak eger, Client Object Model’ in aslinda TFS Web Service’ ler ile haberlestigini görebiliriz. Aslina bakarsaniz Team Foundation Server tarafinda epeyce fazla sayida XML Web Service yer almaktadir. Bu servisleri ana hatlari ile degerlendirdigimizde ise sunucu ve koleksiyon seviyesinde olmak üzere iki ana dala bölündüklerini görürüz.

Asagidaki sekilde bu servisler genel isimlendirmeler halinde ifade edilmektedir.

tfsservices_1

Dikkat edilmesi gereken notkalardan birisi de bazi servislerin her iki seviyede de yer aliyor olmasidir. Ne varki bu servislerin alanlari farklidir. Sadece bir koleksiyon ve içerigi için kullanilabilecek olan hizmetler Collection Level grubunda yer almaktadir. Diger taraftan tüm TFS sunucusunu ilgilendiren servisler de Server Level grubuna dahildir.

Yine dikkat edilecegi üzere koleksiyon seviyesinde farklilasan(Team Collection örneklerine özel olan) hizmetler bulunmaktadir. Örnegin Version Control veya Lab Management gibi. Normal sartlarda bu servislere, kurulu olan TFS ortamina erisim yetkisi olan istemcilerden ulasilabilinmektedir. Örnegin koleksiyon seviyesinde kullanilabilen ve proje listesinin çekilmesi, proje olusturmasi, silinmesi, branch silinmesi vb operasyonlari ele alabildigimiz Common Structure Service hizmetinin 4ncü versiyonuna asagidaki sekilde görüldügü gibi ulasabiliriz.

tfsservices_3

Çok dogal olarak diger servislere de ulasmamiz, hatta WSDL(Web Service Description Language) çiktilarina bakmamiz mümkündür. Ben çalismakta oldugum Team Foundation Server 2012 için, uygulama sunucusunun yüklü oldugu IIS(Internet Information Services) altinda yaptigim arastirmalarda, asagidaki uzun listeye ulastigimi rahatlikla ifade edebilirim.

Administration
http://tfsserver:8080/tfs/TeamFoundation/Administration/v4.0/AccessControlService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v4.0/FileHandlerService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v4.0/IdentityManagementService2.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/AdministrationService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/CatalogService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/EventService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/IdentityManagementService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/JobService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/LocationService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/PropertyService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/RegistryService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/SecurityServices.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/TeamProjectCollectionService.asmx
http://tfsserver:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx
Lab
http://tfsserver:8080/tfs/TeamFoundation/Lab/v3.0/LabFrameworkService.asmx
TFS Resources – Services
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/AuthorizationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/CommonStructureService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/ConnectedServicesService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/EventService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/GroupSecurityService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/ProcessConfigurationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/ProcessTemplate.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/ProjectMaintenance.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/registration.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/ServerStatus.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/StrongBoxService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v1.0/TeamConfigurationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v2.0/GroupSecurityService2.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v2.0/ProcessConfigurationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v2.0/ProcessConfigurationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/AuthorizationService3.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/CommonStructureService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/IdentityManagementService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/JobService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/LocationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/PropertyService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/RegistryService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/SecurityService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v3.0/SyncService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v4.0/AccessControlService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v4.0/AuthorizationService4.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v4.0/CommonStructureService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v4.0/FileHandlerService.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v4.0/IdentityManagementService2.asmx
http://tfsserver:8080/tfs/_tfs_resources/services/v4.0/SyncService4.asmx
TFS Resources - Work Item Tracking
http://tfsserver:8080/tfs/_tfs_resources/workitemtracking/v5.0/clientservice.asmx
http://tfsserver:8080/tfs/_tfs_resources/workitemtracking/v4.0/ClientService.asmx
http://tfsserver:8080/tfs/_tfs_resources/workitemtracking/v3.0/ClientService.asmx
http://tfsserver:8080/tfs/_tfs_resources/workitemtracking/v1.0/ClientService.asmx
http://tfsserver:8080/tfs/_tfs_resources/workitemtracking/v1.0/ConfigurationSettingsService.asmx
http://tfsserver:8080/tfs/_tfs_resources/workitemtracking/v1.0/ExternalServices.asmx
http://tfsserver:8080/tfs/_tfs_resources/workitemtracking/v1.0/Integration.asmx
TFS Resources - Verison Control
http://tfsserver:8080/tfs/_tfs_resources/VersionControl/v4.0/Repository.asmx
http://tfsserver:8080/tfs/_tfs_resources/VersionControl/v3.0/Repository.asmx
http://tfsserver:8080/tfs/_tfs_resources/VersionControl/v1.0/Repository.asmx
http://tfsserver:8080/tfs/_tfs_resources/VersionControl/v1.0/Administration.asmx
http://tfsserver:8080/tfs/_tfs_resources/VersionControl/v1.0/Integration.asmx
http://tfsserver:8080/tfs/_tfs_resources/VersionControl/v1.0/ProxyStatistics.asmx
TFS Resources - Test Management
http://tfsserver:8080/tfs/_tfs_resources/TestManagement/v2.0/TestManagementWebService.asmx
http://tfsserver:8080/tfs/_tfs_resources/TestManagement/v1.0/TestImpactService.asmx
http://tfsserver:8080/tfs/_tfs_resources/TestManagement/v1.0/TestResults.asmx
http://tfsserver:8080/tfs/_tfs_resources/TestManagement/v1.0/TestResultsEx.asmx
TFS Resources - Sync
http://tfsserver:8080/tfs/_tfs_resources/sync/v4.0/AdministrationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/sync/v3.0/AdministrationService.asmx
TFS Resources - Lab
http://tfsserver:8080/tfs/_tfs_resources/lab/v4.0/LabService.asmx
http://tfsserver:8080/tfs/_tfs_resources/lab/v3.0/Integration.asmx
http://tfsserver:8080/tfs/_tfs_resources/lab/v3.0/LabAdminService.asmx
http://tfsserver:8080/tfs/_tfs_resources/lab/v3.0/LabService.asmx
http://tfsserver:8080/tfs/_tfs_resources/lab/v3.0/TestIntegrationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/lab/v3.0/WorkflowIntegrationService.asmx
TFS Resources - Discussion
http://tfsserver:8080/tfs/_tfs_resources/discussion/v1.0/discussionwebservice.asmx
TFS Resources - Build
http://tfsserver:8080/tfs/_tfs_resources/build/v4.0/AdministrationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v4.0/AgentReservationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v4.0/BuildDeploymentService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v4.0/BuildQueueService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v4.0/BuildService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v4.0/SharedResourceService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v3.0/AdministrationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v3.0/AgentReservationService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v3.0/BuildQueueService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v3.0/BuildService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v3.0/Integration.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v3.0/SharedResourceService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v2.0/BuildService.asmx
http://tfsserver:8080/tfs/_tfs_resources/build/v2.0/Integration.asmx
Metadata Publishing' i kapali olan WCF servisleri
http://tfsserver:8080/tfs/queue/_tfs_resources/services/v4.0/MessageQueueService.svc
http://tfsserver:8080/tfs/queue/_tfs_resources/services/v4.0/MessageQueueService2.svc


Görüldügü üzere oldukça uzun bir servis listesi söz konusu.

Aslina bakarsaniz bu servislerin detayli olarak ne is yaptiklarina dair MSDN üzerinde çok fazla bilgi bulunmamaktadir. Standart bir teknik Help dokümanindan ötesi degildir. Bu nedenle TFS’ in çalisma yapisini bilip, biraz tahminler yürüterek ilerlemeye çalismak, isinizi epeyce kolaylastiracaktir.

#Region Off Topic

Bu arada dilerseniz bu servislerin tamami izlemek için basit bir Web uygulamasi gelistirebilir ve örnegin listedeki adresleri bir Web User Control içerisine gömerek, tiklama usulüyle ilgili XML Web Service adreslerine gidebilirsiniz. Örnegin asagidaki gibi bir Web User Control ve yardimci sinif isinizi görecektir.

Text dosyasinda durmakta olan servis adreslerini okuyan yardimci tip ve metod;

using System.Collections.Generic;
using System.IO;
using System.Web.UI.WebControls;

namespace AllServices
{
    public static class Utility
    {
        public static List<HyperLink> GetServiceLinks(string textFilePath)
        {
            List<HyperLink> links = new List<HyperLink>();

            string[] lines = File.ReadAllLines(textFilePath);
            foreach (string line in lines)
            {
                if (line.StartsWith("http://"))
                {
                    HyperLink link = new HyperLink
                    {
                        Text = line.Substring(line.LastIndexOf("tfs")),
                        NavigateUrl = line
                    };
                    links.Add(link);
                }               
            }

            return links;
        }
    }
}

Web User Control kodu;

using System;
using System.Web.UI.WebControls;

namespace AllServices
{
    public partial class TfsServicesControl : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var serviceLinks=Utility.GetServiceLinks(Server.MapPath("~/Services.txt"));
            foreach (var serviceLink in serviceLinks)
            {
                divLinks.Controls.Add(serviceLink);
                divLinks.Controls.Add(new Literal { Text = "<br/><br/>" });
            }
        }
    }
}

ve iste çalisma zamanina ait örnek ekran çiktisi Winking smile

tfsservices_4

Bir servis adina tiklayin ve içerigine ulasin Winking smile

#endregion Off Topic

Referans Etmek

Team Foundation Server üzerinden sunulan XML Web Service örneklerini herhangibir .Net istemcisi tarafindan tüketmek istedigimizde, Client Object Model üzerinden erisimde bulunmamiz gerekmektedir. Normal sartlarda ilgili Web Service’ leri, Add Service Reference sekmesinden hareket edilerek projeye ilave edilebilir ve üretilen Proxy tipinin metodlarina ulasilabilir.

tfsservices_6

Ancak çalisma zamaninda servis tarafinda kuvvetle muhtemel asagidaki sekilde görülen 504 Unknown Host hatasi alinacaktir.

TfsError2

Bunun nedeni aslinda ilgili servislerin, Client Object Model(veya Server Object Model) tafaindan ele alinis ve üretilis sekilleridir. Dilerseniz basit bir kullanim seklini degerlendirerek ilerlemeye çalisalim.

Hello World

Asagidaki kod parçasinda Collection Level grubundan iki örnek servisin kullanimina yer verilmistir. Bu servislerden birisi ICommonStructureSerice4, digeri ise IProcessTemplates arayüzleri(Interface) tarafindan tasinmaktadir. Dikkat edilecegi üzere anahtar nokta TfsTeamProjectCollection tipinin örneklenis seklidir. Burada TfsTeamProjectCollectionFactory sinifinin static GetTeamProjectCollection metodundan yararlanilmakta olup, fonksiyona parametre olarak TFS sunucusundaki Team Collection’ in HTTP tabanli adresi geçilmektedir.

Bildiginiz üzere TFS kurulumunda aksi belirtilmedikçe mutlaka Default Collection isimli bir Team Collection olusturulmaktadir.

Tabi ki Server Level servis gruplarini kullanmak da isteyebiliriz. Bu durumda TfsConfigurationServer ve TfsConfigurationServerFactory tiplerinden yararlanmamiz gerekmetedir.

Gelelim örnek uygulama kodlarimiza. Bunun için herzaman oldugu gibi basit bir Console uygulamasindan yararlaniyor olacagiz. Eger makinemizde TFS Client Object Model veya ilgili SDK yüklüyse en azindan Microsoft.TeamFoundation.Client ve Microsoft.TeamFoundation.Common assembly’ larinin referans edilmesi gerekmektedir. Ancak bazi servisler farkli Assembly’ larin referans edilmesini gerektirebilir. Söz gelimi WorkItemStore için, Microsoft.TeamFoundation.WorkItemTracking.Client.dll isimli assembly referans edilir.

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Server;
using System;

namespace ClientApp
{
    class Program
    {
        static void Main(string[] args)
        {
           TfsTeamProjectCollection collection = TfsTeamProjectCollectionFactory
               .GetTeamProjectCollection(new Uri("http://tfsserver:8080/tfs/defaultcollection"));

            #region Bazi servislerin çekilmesi

           ICommonStructureService4 commonStructureService = (ICommonStructureService4)collection
                .GetService(typeof(ICommonStructureService4));

            IProcessTemplates processTemplateService = (IProcessTemplates)collection.GetService<IProcessTemplates>();

            #endregion Bazi servislerin çekilmesi

            #region Bir Team Project adi üzerinden temel proje bilgisinin çekilmesi

            ProjectInfo argeInfo = commonStructureService.GetProjectFromName("ARGE");
            Console.WriteLine("Proje\t\t\t{0}\nDurumu\t\t\t{1}\nTemplate Id\t\t{2}"
                , argeInfo.Name
                , argeInfo.Status
                , argeInfo.Uri.ToString()
                );

            string name;
            string state;
            int templateId;
            ProjectProperty[] projectProperties;

            // Tüm Proje özelliklerinin çekilmesi
           commonStructureService.GetProjectProperties(
                argeInfo.Uri.ToString()
                , out name
                , out state
                , out templateId
                , out projectProperties);
            Console.WriteLine("\nProje Özellikleri\n");
            foreach (var projectProperty in projectProperties)
                Console.WriteLine("Proje Özelligi\t\t{0}\nDegeri\t\t\t{1}", projectProperty.Name, projectProperty.Value);

            #endregion Bir Team Project adi üzerinden temel proje bilgisinin çekilmesi

            #region Sunucuda yüklü Process Template' lerin bilgilerinin elde edilmesi

            Console.WriteLine("\nProcess Templates\n");
            TemplateHeader[] templateHeaders = processTemplateService.TemplateHeaders();
            foreach (TemplateHeader templateHeader in templateHeaders)
            {
                Console.WriteLine("Template Id\t{0}\nAdi\t\t{1}\nRank\t\t{2}\nDurumu\t\t{3}\nMetadata\t{4}\nAçiklama\t{5}\n",
                    templateHeader.TemplateId,
                    templateHeader.Name,
                    templateHeader.Rank,
                    templateHeader.State,
                    templateHeader.Metadata,
                    templateHeader.Description
                    );
            }

            #endregion Sunucuda yüklü Process Template' lerin bilgilerinin elde edilmesi          
        }
    }
}

TfsTeamProjectCollection referansi elde edildikten sonra, alinmak istenen hizmete ait nesne örneginin üretilmesi için GetService metodundan yararlanilmaktadir. Bu metodun Type parametresi ile çalisan versiyonu disinda generic olan bir versiyonu daha bulunmaktadir. Örnegin,

ICommonStructureService4 commonStructureService = (ICommonStructureService4)collection
                .GetService(typeof(ICommonStructureService4));

kod satiri ile Common Structure Service örnegi üretilmektedir. Bu adimdan sonra söz konusu servise ait referansin fonksiyonlari kullanilabilir. Söz gelimi bir proje adi verilerek özelliklerinin elde edilmesi saglanabilir. Bu özellikler arasinda bir Team Project’ in uyguladigi Process Template bilgisi ve hatta XML tabanli sablon içerigi de yer almaktadir. Asagidaki örnek ekran çiktisinda ARGE isimli projenin ulasilan bilgileri gösterilmektedir.

tfsservices_7

Diger yandan IProcessTemplate arayüzüne atanan servis referansinin elde edilmesi için, GetService metodunun generic sürümünden yararlanilmistir. Sonrasinda ise TFS sunucusunda yüklü olan Process Template listesine gidilerek Name, State, Metadata, Id, Description gibi bilgileri elde edilmistir. Asagidaki ekran çiktisina bakildiginda Scrum 2.0, CMMI ve MSF sablonlarinin yüklenmis oldugu bilgisine ulasilabilinir.

tfsservices_8

Tabi burada akla takilan en önemli sorunlardan birisi kullanabilecegimiz TFS Web Service’ lerinin kod tarafindaki GetService metodu tarafindan kullanilabilecek karsiliklarinin neler oldugudur? Who me? Bu konuda asagidaki listenin yardimci olabilecegini düsünüyorum.

Servisin Adi Collection Level Server Level Assembly Namespace
ITeamFoundationRegistry Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
IIdentityManagementService Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
ITeamFoundationJobService Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
IPropertyService Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
IEventService Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
ISecurityService Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
ILocationService Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
TswaClientHyperlinkService Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
ITeamProjectCollectionService Yok Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
IAdministrationService Var Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
ICatalogService Yok Var Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Framework
.Client
VersionControlServer Var Yok Microsoft
.TeamFoundation
.VersionControl
.Client
Microsoft
.TeamFoundation
.VersionControl
.Client
WorkItemStore Var Yok Microsoft
.TeamFoundation
.WorkItemTracking
.Client
Microsoft
.TeamFoundation
.WorkItemTracking
.Client
IBuildServer Var Yok Microsoft
.TeamFoundation
.Build
.Client
Microsoft
.TeamFoundation
.Build
.Client
ITestManagementService Var Yok Microsoft
.TeamFoundation
.TestManagement
.Client
Microsoft
.TeamFoundation
.TestManagement
.Client
ILinking Var Yok Microsoft
.TeamFoundation
.Common
Microsoft
.TeamFoundation
ICommonStructureService3 Var Yok Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Server
IServerStatusService Var Yok Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Server
IProcessTemplates Var Yok Microsoft
.TeamFoundation
.Client
Microsoft
.TeamFoundation
.Server


Yukaridaki listede eksikliker olabilir. Gelen Update’ ler, Service Pack’ ler ve yeni sürümler sonrasin güncellenebilir. Lütfen MSDN üzerinden kontrol ediniz.

Demek ki, istemci tarafinda çalisarak hayatimizi kolaylastirmakta olan pek çok .Net tabanli uygulama(Örnegin Power Tools veya Team Explorer gibi) söz konusu nesne modellerini ve ilgili XML Web Service’ lerini kullanmaktadir. Elbette Team Foundation Server tarafinda çok fazla sayida XML Web Service metodu ve hatta versiyonu bulunmaktadir. TFS üzerindeki tecrübelerinizden yararlanarak bu servislerin efektif olarak kullanimlarini irdeleyebilirsiniz. Böylece geldik bir yazimizin daha sonuna. Tekrardan görüsünceye dek hepinize mutlu günler dilerim.

HowTo_TFSServices.zip (213,36 kb)

Yazar Hakkında

Burak Selim Şenyurt

Burak Selim Şenyurt

buraksenyurt.com

Yıldız Teknik Üniversitesi Matematik Mühendisliği mezunu olan Şenyurt, 1999 yılında profesyonel olarak adım attığı yazılım dünyasında, 2003 yılından beri Microsoft .Net teknolojileri ile ilgilenmektedir. Yazılım hayatına Assist Line isimli Call Center firmasında Delphi programcısı olarak başlayan Şenyurt sonrasında, sırasıyla Bizitek(Junior Developer), Netron(Master Trainer), Citibank(Outsource Senior Software Developer), Innova(Application Development Consultant), ve TCM(Software Architect) firmalarında görev almıştır. Su anda ING Bank bünyesinde Kıdemli Yazılım Danışmanı olarak görev yapmaktadir. 2006, 2007 yıllarında C#, 2008,2009,2010 yıllarında ise Connected System Developer kategorisinde Microsoft MVP seçilen Şenyurt, evli ve 1 çocuk babasıdır. C# diline olan düşkünlüğü, oğluna S(h)arp adının verilmesinde önemli bir etken olmustur.

Sosyal Medya

ORANLAR

  • 3284izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Hocam Link başka sayfaya yönlendiriyor.
  • merhaba benim merak ettiğim bir konu var y...
  • Merhaba download linki çalışmıyor. Rica et...
  • Nevzat Bey selamlar, Açıkçası bizler a...
  • Parametreleri Cache İşleminden Yalıtma kon...

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 119832
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 64802
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 48159
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ