Püf noktası : TFS'de dosya listeleme

29. August 2009

TFS'de bir klasör altındaki dosyaların listesini almak için:

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;

.
.
.

var server = new TeamFoundationServer("tfs_sunucu_adi_buraya");
var version = server.GetService(typeof(VersionControlServer)) as VersionControlServer;

var items = version.GetItems(@"$\TFS_Projesi\Alt_Klasor", RecursionType.Full);

foreach (var item in items.Items) {
    System.Console.WriteLine(item.ServerItem);
}

.
.
.

Not; projenize Microsoft.TeamFoundation.Client ve Microsoft.TeamFoundation.VersionControl.Client referanslarını eklemeyi unutmayın.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

C#, TFS, Türkçe ,

Team Foundation Server'a her yerden erişin

2. August 2009

      Eski adıyla TeamPlain, microsoft'a geçisi sonrası verilen yeni adıyla Team System Web Access, developer'lara Team Foundation üzerindeki pek çok işlemi web üzerinden yapılmasına olanak veriyor. İş süreci ve task takibini web üzerinden yapılabilmesine olanak tanıyan ve artık ücretsiz olarak kullanabileceğiniz bu uygulama sayesinden TFS'nin pek çok yeni kullanım senaryosu da oluşmaya başladı.

     Bu senaryolardan aklıma ilk gelen sadece work item'lerin takip edilebilediği work item arayüzü üzerinden müşterilerle etkileşim ve iletişim kurulabilmesi. Work item'lerı görüntülemeyi müşterilerinize açmanız sonrası artık e-support sistemine sahip olmuş olacaksınız, üstelikte girilen iş kalemler doğrudan geliştirme ortamınızla entegre olacak. TFS üzerinde yapıcağınız work item ve iteration yetkilendirmeleri ile müşterileriniz sadece istediğiniz projeleri ve iterasyonları görebilecek ve sadece istediğiniz süreç adımlarını takip edebilecek.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

TFS, Türkçe

Team Foundation Server SMTP Sunucusu ve E-Posta Uyarı Ayarlarını Değiştirmek

4. June 2006

Üzerinde çalıştığım projelerden birisinde TFS sunucumuzu yeni bir makine üzerine taşımamız gerekmişti. Yedeklerini aldıktan sonra veritabanı ve dosyalar sorunsuz taşındı ve sistem ayağa kalktı. Buraya kadar herşey güzel, hoş ama malesef e-posta uyarılarımız çalışmıyordu. Sebebini biraz araştırınca anladık, e-posta ve smtp sunucu ayarlarımız eski makine için olanlardı ve değiştirilmesi gerekiyordu.

      Eğer benzer bir problem sizde yaşadıysanız sakın endişelenmeyin, çünkü çözümü var :  C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\Services dizini altında olan Web.config dosyasını açın ve aşağıdaki iki satırı yeni değerleriyle değiştirin, hepsi bu...

<add key="emailNotificationFromAddress" value="yeniEPostaAdresi" />
<add key="smtpServer" value="yeniSunucuAdi" />
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

TFS, Türkçe

Farklı Kullanıcı ile TFS Sunucusuna Bağlanmak

4. June 2006

Team Foundation Server için eklentiler yazmaya karar verdim. Bunun içinde makinama sanal sunucu içerisinde Windows Server 2003 R2 ardında da TFS'yi kurdum. TFS'yi Sanal makine üzerinde çalışacağımdan bir Domain Controller ayarlamaya gerek görmedim. Sanal makinemi sunucu olması için açarak normal Windows Xp Sp2 üzerinde de kodumu yazmaya başladım. Fakat kod içerisinde bir türlü TFS sunucuna oturum açamıyordum :

TeamFoundationServerFactory.GetServer("Sunucu Adı");
      Tamam, iki makine üzerindeki kullanıcılar farklı; ama en azından kullanıcı adı ve şifresi girebileceğim bir yer eklenseydi hiç fena olmazdı. Sanal makinemdeki ve normal makinemdeki kullanıcı adları ve şifreleri aynıydı, bu tarz bir problemle karşılaşmamak için ayarlamıştım...
    Biraz araştırınca sorunumu çözecek sihirli satırları buldum
tfs = TeamFoundationServerFactory.GetServer("Sunucu Adi", new UICredentialsProvider());
tfs.EnsureAuthenticated();
      İkinci satırdaki EnsureAuthenticated TFS'de başarıyla oturum açtığınızı kontrol eder, eğer başarısız ise TeamFoundationServerUnauthorizedException hatasını atarak programınızın bir sonraki satıra geçmesini ve başka problemlerle boğuşmanızı engeller. Benim iki taraftada aynı kullanıcı adı ve şifreyi vermemden dolayı herhangi bir şifre ekranı karşıma gelmedi; ama okuduğum kadarıyla aynı olmaması durumunda sizden bir dialog vasıtasıyla bu bilgileri istiyecekmiş.
    EnsureAuthenticated fonksiyonu yerine Authenticate fonksiyonunu da kullanabilirsiniz. Sadece bu iki komut sizin karşınıza şifre dialoğunu getirecektir.
    Peki bu fonksiyonlar aynı işi yapıyorsa neden iki tane var? Yanıtı ufak bir performans kriterine bağlı aslına bakarsanız : Authenticate fonksiyonu her çağırıldığında sunucuya giderek kontrol yapılmasını sağlar, EnsureAuthenticated fonksiyonu ise sadece kullanıcının sisteme girişi kontrolü yapılmadıysa sunucuya gider. Dolayısıyla da hangisini kullanacağınız tamamen sistem tasarımınıza kalmış.
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Türkçe, TFS

Connecting to TFS with Different User

4. June 2006

I've decide to develop applications for Team Foundation Server. To do so, I've install a virtual machine with  TFS running on Windows Server 2003 R2. Since TFS installed on a virtual machine, I did not set a Domain Controller. Then I've start to code my applicaiton on my "real" machine running Windows Xp Sp2. But I've failed to login TFS as shown below:

TeamFoundationServerFactory.GetServer("Server Name");

Well, I've diffrent users on difrent machines; but API should at least allow me to enter username and password, right!? I've create user on virtual machine with the same name and password on my real machine...
    Finally I've found the following lines of code that solves my problem Laughing

tfs = TeamFoundationServerFactory.GetServer("Server Name", new UICredentialsProvider());
tfs.EnsureAuthenticated();

EnsureAuthenticated function placed on 2nd line checks whether you've successfully loged into TFS, if not, simply throws TeamFoundationServerUnauthorizedException  exception to halt your application. Since I've users with the same username and password no login dialog displayed, but in documentation its told so...

  Instead of EnsureAuthenticated function, you can also use Authenticate. These are the only functions that will display the login dialog.
    Then what is the diffrence between these two functions? Answer is the performance : Authenticate function will connect to the server on every call, while EnsureAuthenticated function will connect to the server if no user is not authenticated.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

C#, English, TFS

Changing Team Foundation Server SMTP Server and E-mail Notification Settings

4. June 2006

      In one of projects that I'm working for; we've moved our TFS to new server. Its working quite well, except e-mail notifications Frown
      But don't worry if you have the same problem. Here is the solution; Open Web.config file placed under C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\Services, then simply change the following to lines with the new values :

<add key="emailNotificationFromAddress" value="newFromAdressHere" />
<add key="smtpServer" value="newHostNameHere" />
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

English, TFS