magnify
Home Microsoft SharePoint Temel Web Part Gelistirme Ve Deploy Etme
formats

Temel Web Part Gelistirme Ve Deploy Etme

 

ASP.Net 2.0’ın hayatımıza girmesinin ardından .Net Framework içerisinde pek çok yeni kontrol grubu ve alt frameworkler ile çalışmaya başladık. Membership, Webpart gibi alt frameworkler işimizi son derece kolaylaştıran ve development süremizi kısaltan bir yapıyı hizmetimize sunmaya başladı. Aynı dönemde ortaya çıkan pek çok internet sitesinde bu alt frameworklerin kullanım örneklerini gördük ve teşvik edildik. Örneğin Live ürün ailesi içerisinde yer alan “Spaces” bize webpart konusunda örnek sunan ilk sitelerdendi. Sitenin kavuştuğu yeni yapı ile kullanabileceğimiz bölümler webpart olarak geliştirilmiş ve istediğimizi sayfamızda gösterebilir, istediğimizi engelleyebilir hale geldik. Webpartların yerlerini değiştirerek daha kişiselleştirilmiş siteler yaratabildik.

Aslında webpartın ortaya çıkışında temel nedenlerden biri de buydu. Yani sadece site sahibine değil kullanıcıya da sitenin tasarımı ve içeriği konusunda tercihte bulunma hakkı vermek. Bu sayede ben bir portala girdiğimde ana sayfada IMKB Endeksi, Döviz Kuru gibi beni daha çok ilgilendiren bölümleri görmek isterken bir başka kullanıcı aynı bölümlerde Flaş Haberler ve Oyunları görmeyi tercih edebildi.

Microsoft Office Sharepoint Server 2007 ve Windows Sharepoint Services 3.0 altyapısını kullanan sitelerde de hem developmentı parçalar halinde gerçekleştirebilmeyi sağlamak hemde sitelerin kişiselleştirilebilmesine olanak tanımak adına webpart frameworkden yoğun bir şekilde faydalanılmış durumda. Alttaki ekran görüntüsünde Sharepoint ile beraber gelen standart bir “Team Site” ın düzenleme modunu görüyorsunuz. Resimden de göreceğiniz üzere site içerisinde gördüğümüz herşey kutucuklara ayrılmış durumda ve ister kişisel tercihlerle ister yöneticilerin uygun gördükleri şekilde bu kutucukların görünümünde ve yerlerinde değişiklik yapma şansımız var.

 

image001

 

Burada gördüğümüz “Left” ve “Right” ifadeleri WebPartZone olarak isimlendirdiğimiz ASP.Net bileşenlerine karşılık geliyor. WebPartZone kontrolleri birer konteynır görevi üstlenip içerisinde webpartları barındırabiliyor. Dolayısıyla o kadar da özgür olmadığımız anlıyoruz. WebPartZone’lar dışında bir yerde webpartlarımızı görüntülememiz mümkün değil.

Hedefimizi biraz daha Sharepoint odaklı hale getirirsek akla ilk olarak şu soru gelecektir: “Neden Webpart?”

Çünkü webpart hem iç hemde dış verileri görüntüleyebilmek ve bunları modül halinde yazabilmek için elimizdeki men kullanışlı tekniği bize sunar ve Sharepoint sistemlerinde özelleştirme genellikle webpartlar aracılığı ile yapılır. Bazen site içerisinde yarattığınız bir listenin farklı bir şekilde görüntülenebilmesi için webpart yazarsınız bazense tamamen dışarıdaki bir veritabanından bilgileri okumak ve Sharepoint sisteminiz içerisinde göstermek için. Sharepoint’te temel amaç sunulabilen tüm kurumsal bilginin birlikte çalışabilirlik adına tek adresten sunulması olduğundan örneğin bir CRM uygulamanızdaki müşterileriniz için veri girişini hala uygulamanın kendisinden yaparken verilerin sorgulanması işini Sharepoint’e bırakabilirsiniz. Bu sayede CRM uygulamasını sadece veri sorgulamak için kullanacak kullanıcılarınıza CRM clientını kurmaktan kurtulabilir ve her türlü bilgiye tek ekrandan ulaşma prensibini yerine getirebilirsiniz.

Burada konu alnınacak şey webpartın ne olduğu ve temel bir “Merhaba Dünya” webpartının nasıl geliştirilip deploy edileceği konusu. Ancak konu bununla sınırlı değil elbette. Daha ileri aşamalarda daha özelleştirilebilir webpartların, birbirine bağlı webpartlarında örneklerini bulabileceksiniz.

Sharepoint sitenizde yeni bir webpart geliştirmek için öncelikle Visual Studio 2005 veya 2008’de yeni bir “Class Library” projesi yaratıyoruz. Microsoft’un hazırlamış olduğu ve çok daha hızlı webpart geliştirmenizi sağlayabilecek VS 2005 ve 2008 proje templateleri de bulunmakta, isterseniz bu templateleri de kullanabilirsiniz geliştirirken. Projemizi yaratalım.

 

 

image002

 

 

Projenizi ekledikten sonra yapmanız gereken bazı temel referans eklemeleri, using satırı eklemeleri ve WebPart sınıfından kalıtım sağlama eklentilerini yapmamız gerekiyor.Sırasıyla :

  • References bölümünde yeni bir referans olarak “System.Web” kütüphanesini ekleyin
  • using elemanı olrak “using System.Web.UI.WebControls.WebParts” namespaceini ekleyin
  • Sınıfınızın “WebPart” sınıfından referans almasını sağlayın. “TemelWP:WebPart” şeklinde.

 

image003

 

Not : WebPart sınfından referans almak için “System.Web” yerine “Microsoft.Sharepoint” kütüphanesini de tercih edebilirsiniz. Aynı WebPart sınıfını her ikisi de barındırmaktadır.

Şimdi kalıtımı sağladığımız “WebPart” sınıfındaki “Render” metodunu override edeceğiz, yani yeniden kodlayacağız. “Render” metodu webpartın içeriğinin oluşturulduğu metoddur ve string bir ifadeyle HTML olarak her türlü içeriği gönderebilirsiniz. Bu sayede ekrana bir şeyler yazdıralım.

 

image004

 

 

Webpartımız kod itibariyle hazır. Şimdi bunun Sharepoint sistemimiz tarafından kullanılabilir hale gelmesi için deploy edilmesi gerekiyor. Deploy ederken webpart projemizin oluşturduğu “dll” e ihtiyaç duyacağız. Ancak eğer GAC’a deployment yapacaksanız oluşacak assemblyi “sign” etmeniz gerekiyor. Bu işlem için Solution Explorer’da proje üzerinde sağ tıklayıp “Özellikler” penceresine ve burada da “Signing” tabına geliyoruz. “Sign the assembly” checkboxını iaretleyip alttaki dropdownmenüden “New” seçeneğini işaretliyoruz. Karşınıza assemblyniz için oluşturacağınız “snk” uzantılı dosyanın yaratılacağı basit form geldi. Herhangi bir isim verin ve “Protect my key file with a password” checkboxını kaldırın.

 

image005

 

Şimdi projenizi build edebilir ve deployment adımlarına geçebilirsiniz.

 

DEPLOYMENT ADIMLARI

  1. Elde ettiğiniz TemelWebPart.dll’i C:\Windows\assembly dizinine deploy edin. Bu işlem için gacutil’i de kullanabilirsiniz. Eğer manuel deploy edecekseniz ilgili klasör copy/paste i desteklemediğinden sürükle/bırak ile işlemi gerçekleştirebilirsiniz.
  2. Sharepoint’in hazırladığınız webpartı güvenli bulabilmesi için uygulamanın web.config dosyasında yer alan <SafeControls> bölümüne gitmeli ve webpartınızı tanıtmalısınız. Bu işlem için C:\Inetpub\wwwroot\wss\VirtualDirectories\<UygulamanizinAdi> klasöründe yer alan web.config dosyasını açın, <SafeControls> tagını bulun ve içerisine şu satırı kopyalayın. (Tabi kendi Public Key Toke’ınızla. Public Key Token’a dll’i deploy ettiğiniz GAC’dan ulaşabilirsiniz.)<SafeControl Assembly=”TemelWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11b24de2dc63fc73″ Namespace=”TemelWebPart” TypeName=”*” Safe=”True” />

  3. IIS’i restart edin

4.     

Web uygulamanızın anasayfasını açın.(Sitenin değil, site collectionın) Site Actions>Site Settings>Modify All Site Settings bölümünde yer alan “Galleries” bölümünde “Web Parts” ı tıklayın. Yazdığınız webpartı burada göremeyeceksiniz, çünkü henüz populate etmedik. Populate edebilmek için bu ekranda “New” butonuna tıklayın. Karşınıza tüm webpartların bulunduğu bir liste gelecek. Buradan kendi webpartınızı bulun, işaretleyin ve üst bölümden “Populate” butonuna tıklayın.

image006

 

5.     

Şimdi webpartı kullanmak istediğiniz siteyi Site Actions>Edit menüsü aracılığı ile düzenleme modunda açın. Sayfada yer alan WebPartZone’ların üstünde yer alan “Add a Web Part” butonunu tıklayın ve karşınıza gelecek listeden webpartınızı seçip sayfaya ekleyin.

image007

 

6.                 

Ve sonuç …

image008

 

Evren AYAN
WSS Architecture MVP, ISPA Regional Evangelist

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Temel Web Part Gelistirme Ve Deploy Etme için yorumlar kapalı  comments 
© Hakan UZUNER - MCT- MVP - RD
credit