Bu makalemizde SPFarm sınıfını inceleyelim.
SPFarm nesnesi, Sharepoint farmlarını temsil etmektedir ve farm seviyesindeki işlemler için özel methodlar yer almaktadır. Sandboxed uygulamalarda kullanılamayan farma özgü SPFarm özelliklerini inceleyelim.
Property /Method | Açıklama |
Services | Farm’da kullanılan servisleri SPServiceCollection nesnesi olarak döndürür. |
Local | Local serverın SPFarm nesnesini geri döndürür. |
Update | Server farmının bulunduğu durumunu kaydedip güncellemesini belirtir. |
Products | Farmda var olan ürünlerin GUID’lerini döndürür. |
Solutions | Farmdaki tüm Solutionları SPSolutionCollection türünde döndürür |
Servers | Farm’daki fisiksel sunucuları SPServerCollection türünden döndürür. |
Create | Yeni bir farm oluşturmayı sağlar. SPFarm türünden değer döndürür. |
Open | Seçilen farmı kodsal olarak açıp işlem yapmamızı sağlar. |
Join | Farma local bilgisayar ekler. |
Şimdi bu kodlarımızı bir örnek dahilinde inceleyelim.
Yeni bir Empty Sharepoint Project oluşturalım (Farm solution) ve bir Visual Web Part ekleyelim.

Bir label sürükleyip bırakalım ve code behind’a geçelim ve şu şekilde düzenleyelim:
- using System;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Text;
- using Microsoft.SharePoint.Administration;
- namespace SPFarmSolution.WebPart_SPFarm
- {
- public partial class WebPart_SPFarmUserControl : UserControl
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- var sonuc = new StringBuilder();
- SPFarm farm = SPFarm.Local;
- sonuc.Append("Farm servisleri:<br/>");
- foreach (var servis in farm.Services)
- sonuc.AppendFormat(servis.Name + " - " + servis.Status + "<br>");
- sonuc.AppendFormat("<hr/>Farm Solutions:<br/>");
- SPSolutionCollection solutions = farm.Solutions;
- foreach (var solution in solutions)
- sonuc.AppendFormat(solution.Name + "<br/>");
- sonuc.AppendFormat("<hr/>Farm sunucuları<br/>");
- SPServerCollection sunucular = farm.Servers;
- foreach (var sunucu in sunucular)
- sonuc.AppendFormat("Sunucu adı : " + sunucu.Name);
- Label1.Text = sonuc.ToString();
- }
- }
- }
Şimdi bunu denemek için yeni bir sayfa ekleyelim.


Sayfa düzenleme ekranında Insert -> Web Part -> Custom -> WebPart_SPFarm’I sayfamıza ekleyelim.

Kaydedelim ve sonucunu görelim:

Veysel Uğur KIZMAZ