MOSS etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
MOSS etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Cumartesi, Mart 23, 2013

Teknoloji Seçimi - Kurumsal Projeler (SAP, Microsoft, vd…)

Merhaba,

 

Bir önceki yazıda firmaların uygulama seçiminde dikkat ettiği kararları ve organizasyonel yapılanma hakkında kısa kısa bilgiler vermeye çalışmıştık. Bu yazıda ise kalıcı projelerin oluşturulması ve stratejik kararların verilmesi anında yaşanan süreçleri irdeleyeceğiz.

 

BT insanlarının kariyerlerinin en başlarında yaşadıkları bir ironi vardır. Hangi uygulama geliştirme platformunu kullanmalıyım? Sen Java ‘cısın ben .Net ‘çiyim, o Delphi ‘ci. Bunlardan hangisi daha iyi. Hangisinde kendimi geliştirmeliyim. Yoksa ben uygulama geliştiremiyor muyum? Peki analist mi olmalıyım? Yoksa veri tabanı yöneticisi mi? Bu sorular sürekli geldi geçti başımızdan… Öncelikle dikkat etmemiz gereken konu hepsinin en sonunda aynı noktaya ve aynı amaca hizmet ettiğini görmek. Bir sonraki süreçte ise proje, yaşam ve stratejilere bağlı olarak farklı teknolojiler ve farklı firmaların ürünlerini kullanmamız gerekebilir. Eğer fanatik bir teknoloji sever iseniz içinizde yanan ateşi söndürerek işinizi yapmaya bakın.

İçten yanan ateşe en güzel örneği kendimden verebilirim. Sektöre başladığımdan beri elimden geldiğinde en yeni teknolojiyi geliştirmiş / geliştirtmiş olduğum projeler tercih etmeye çalıştım. Ancak elimden geldiğince dememin bir sebebi var. Kendim için gariptir ki dahil oldğum projelerin neredeyse tamamı .Net 1.0 ‘da ya da asp ‘de hazırlanmış olan projelerin yeni teknolojiye (.Net 2.0 ne kadar yeniyse artık… ( Daha yeni teknolojilerede geçiyoruz bu arada. ) Smile ) taşıma ve sürdürebilirlik projeleri oldu. Burada bir projeyi .Net 3.5 ya da .Net 4.0 var iken .Net 2.0 yapacaksın demeleri en başlarda içsel bir huzursuzluğa yol açsa da zamanla kurumsal kimliklerden kaynaklı olarak böyle stratejiler yapıldığı gözlemlenebiliyor. Farklı firmalarda da buna benzer konular yaşandıkça artık insan alışıyor ve uyum sağlayarak iyi en iyi şekilde yapmaya çalışıyor.

 

Herhangi bir firmanın proje grubunda yer aldığınızda öncelikli olarak göreceğimiz ilk proje CRM uygulaması olacaktır. Ayrıca sürekli olarak bu uygulamayı geliştirmenin ve iyileştirmenin çabaları ve organizasyonel yapılandırmaları yapılır. Genellikle CRM uygulamaları Mıcrosoft .Net Framework üzerinde web ya da desktop application olarak hazırlanmış projelerdir. Eğer ki Desktop application ise Citrix üzerinde çalıştırmanın yollarına ya da web uygulaması ile yeniden yapılandırılması amaçlanır. Bu iki adımda gerçekleşti ise günümüzde sağlamış olduğu standartlık ve stabilizasyonu sebebi ile uygulamayı SAP üzerine taşımak adımı yaşanmaya başlıyor. Eğer ki Intranet uygulamaları var ise bu uygulamalarda Sharepoint server üzerinde tasarlanmaya çalışıyor.

 

Olayın bir de çok farklı bir boyutu var. Neredeyse Microsoft ile anlaşması olan firmaların büyük çoğunluğunda Sharepoint server kurulu ve döküman yönetim sistemi olarak kullanıldığı gözlemlenir. Ancak crawl kurgulanmadığı için arama kriterlerinden öte sadece saklama alanı olarak kullanılır. Zamanla bu uygulamaların daha efektif kullanılması için planlama yapılır ve geliştirilir.

 

Uygulamaların geliştirilmesi ve sürdürülebilmesi için kararlar alınmalıdır ve gerçekleştirilebilmelidir.

 

Günümğz polüler seçimlerini dikkat aldığımızda

  • CRM uygulamaları için Dynamics CRM ve SAP kullanımı
  • Portal ve Intranet uygulamalarında Sharepoint kullanımı
  • Web uygulamalarında MVC Framework ‘I kullanma
  • Desktop application için WPF ve XAML form kullanımı
  • Azure servislerinin kullanımı
  • Santral sistemlerinde Avaya kullanımı
  • ve tabiki sosyal medyanın yüksek olan ve yükselme potansiyeli daha fazla olan gücü
    şeklinde sırayabiliriz.
Tekrardan görüşmek üzere…

Pazartesi, Ağustos 02, 2010

SharePoint 2010 – Terminology

SharePoint 2010 ile uygulama geliştirmeye başladığımızda bünyesinde kullanmış olduğu terminolojiyi bilmemiz gerekmektedir. Hangi nesne neyin içerisinde, ihtiyacımız olan katmana nasıl ulaşabiliriz şekilden sorular aklımızı kurcalayabilir. Bu sebepten ötürü aklınıza bu tür bir soru takılırsa aşağıda yer alan şemadan yararlanarak SharePoint 2010 ‘un terminolojisi hakkında bilgi edinebilirsiniz.

 

SharePoint 2010 – Yenilikler

Sharepoint 2010 ‘u kısaca açıklayın denirse vereceğimiz cevap şu şekilde olacaktır. Uygulama pratikleri çok iyi şekilde analiz edilmiş, çok hızlı arama tekniklerine sahip ve tarayıcı uyumluluğu olan çok iyi bir üründür.

Microsoft, geçmiş zaman dilimi içerisinde 2010 yılında çıkarmış olduğu ürünleri parça parça kullanıma açmaya başladı. Bu ürünlerin en önemlilerinden ve üzerinde sağlam değişiklikler ile kullanıcıların, geliştiricilerin karşısına çıkmış olanı Sharepoint 2010 ‘dur. Daha önceleri SharePoint 14 kod adı ile bildiğimiz ürün çıkışı ile birlikte SharePoint 2010 adı ile hayatımızda ki yerini aldı. Bu süreç sonrasında ise kurumlar ve geliştiriciler çok hızlı bir şekilde projelerini SharePoint 2010 üzerine taşımaya başladılar. Şimdi biz SharePoint 2010 ile gelen ve en etkili 10 yeni özelliğini incelemeye çalışıyor olacağız.

 

1. Yeni SharePoint sürümleri: Microsoft, SharePoint ürün ailesinin daha sık kullanılması amacıyla sürümlerinde büyük değişiklikler yaptı. Bilindiği üzere önceleri SharePoint ailesi, Wındows SharePoint Server (WSS) ve Microsoft Office SharePoint Server (MOSS) olarak iki üründen oluşmaktaydı. 2010 ailesinde ise, WSS ‘in ücretsiz sürümü olan SharePoint Foundation çıkartılırken MOSS ‘ta SharePoint Server 2010 olarak değiştirilmiştir. Ayrıca SharePoint Server ailesinin intranet, internet ve extranet gereksinimlerine göre Standart ve Enterprise seçenekleri de yer almaktadır. (Kendi içerlerinde uygulama geliştiricek ya da kişisel denemeler yapacak olan geliştiricilere Sharepoint Foundation ‘ı öneriyorum. Çünkü hem RAM kullanımı hem de işlemci kullanımı açısından Server ailesinde ki ürünlere göre çok daha optimistiktir ve ücretsizdir.)

 

2. Yeni Donanım Gereksinimleri: Diğer Microsoft Server ürün ailesi gibi SharePoint Server 2010 ‘da yalnızca x64 sistemlerde çalışmaktadır. Yükseltme ya da yeni kurulum işlemleri yapılırken bu kritik detaya çok dikkat edilmesi gerekmektedir.

 

3. Yeni Yazılım Gereksinimleri: Yeni donanım ihtiyaçları ile birlikte yazılım ihtiyaçları da kendisini güncellemiştir. Server teknolojisi olarak Windows Server 2008 ya da R2, veri tabanı teknolojisi olarak ta SQL Server 2008 & 2005 gerekmektedir. Uygulama geliştirmek isteyenler için de Windows 7 ve Windows Vista işletim sistemlerinde de kullanabilmek mümkündür.

 

4. SharePoint Pratik Analizi: SharePoint 2010 içerisinde yaşanan sorunların ve problemlerin daha rahat çözümlenebilmesini kolaylaştıracak bir araçtır.

 

5. FAST Search: Microsoft arama ve transfer firmasının Norveç merkezli bir firmadan alınan FAST Search teknolojisi SharePoint 2010 içerisinde entegre olacaktır. FAST Search, SharePoint ‘e özgü arama seçeneklerini bir üst kademeye çıkararak daha etkili ve son kullanıcı dostu, yüksek seviye de ölçeklendirilebilir özellikler sunmaktadır.

 

6. Rapor ve Log Kullanımı: SharePoint 2010 içerisinde yapılan işlemleri veri tabanında gerekli olan tablolara eklenir ve sonrasında hem raporlama hem de loglama olarak tutulmaktadır. Ayrıca üçüncü parti araçlar yardımı ile bu verilerden yararlanarak çok özel raporlar oluşturulabilmesi mümkündür.

 

7. Visio Servisleri: Visio Servisleri sayesinde SharePoint 2010 içerisinde hazırlanan diyagramların ve tasarımların görüntülenmesi mümkün olacaktır. Ayrıca Visio dosyalarının görüntülenebilmesi için internet pencerisinde yapılan gösterilmeye benzer bir yapı ile SharePoint 2010 içerisinde de görüntülenmesi mümkün olacaktır.

 

8. Gelişmiş İşbirliği (Enhanced collabration): SharePoint 2010 bünyesinde blog yazma, mesajları resimleri videoları etiketleme gibi özellikleri destekler. Yeni grup yetkilendirilmesi ile ise daha zengin içerikli Wikilerin oluşturulması mümkündür. Ayrıca SharePoint 2010 içerisinde yer alan takvimin Microsoft Exchance Server ile entegre çalışması daha da geliştirilmiştir.

 

9. İnternet Tarayacısı Desteği: SharePoint 2010, yeni nesil tarayıcıların tamamına sorunsuzca çalışabilmektedir. Tasarımı XHTML 1.0 ile yapıldığından tarayıcıların bu formatı desteklemesi yeterli olacaktır. Internet Explorer (IE) 8.0 ve IE 7.0, Firefox, Chrome ve Safari bu tarayıcılar arasında yer almaktadır. IE 6.0 bu teknolojiyi desteklemediği için tasarımların görüntülenmesinde ve sistemin stabil çalışmasında sorunlar çıkartabilmesi olasıdır.

 

10. SharePoint Designer: SharePoint Server 2010 içerisinde yapılan değişikler ile SharePoint Designer ürünü de kendisini yenilemiştir. SharePoint 2010 ‘un Office 2007 ‘de ki gibi Ribbon stiline geçmesi ile SharePoint Designer ve geçmemiş olan diğer bütün Office ürünleri de bu tasarıma geçmiştir. Ayrıca SharePoint içerisine eklenmiş olan yeni tablı arayüz ve etiketleme olanakları SharePoint Designer içerisinden de sorunsuzca yapılabilmesi mümkündür.

 

Sonuç olarak SharePoint 2010 ‘un en çok göze batan yeniliklerine değinmeye çalıştık.

Umarım yararlı olabilmiştir.

Cuma, Temmuz 30, 2010

Sharepoint 2010–Windows 7 ile Çalışmak (Kurulum)

Sharepoint 2010 ile uygulama geliştiriciler için getirilen en büyük yeniliklerden biri de sadece Windows Server işletim sisteminin üzerinde değil ek olarakta Windows 7 üzerinde de çalışabilme fırsatı sağlanmıştır. Ayrıca Virtual Machine üzerinden de Sharepoint 2010 çalışabilmemiz mümkündür. Bu şekilde çalıştırmak isteyenler link yardımı ile gerekli detayları görebilir ve kullanabilirler.

Bu yazımızda ise Windows 7 üzerinde Sharepoint 2010 kurmak için dikkat edilmesi gereken ufak noktalara değiniyor olacağız.

İlk olarak dikkat edilmesi gereken sisteminizde kurulu olan işletim sisteminin x64 olması ve min 2Gb ram belleğe sahip olmasıdır. (Ufak bir bilgi vermek gerekirse, eğer ki Sharepoint Foundation değil de Server kurmak isterseniz ram belleğinizin min 4gb olması gerekiyor. Ancak bu bellekte stabil ve hızlı çalışmanız için yeterli olmayacaktır. Bu sebepten ötürü bellek seçimlerinde min 4gb olarak düşünerek hareket etmenizde yarar vardır.) Ayrıca işletim sisteminizin en son güncelleştiremelerinin de yapılmış olması kesinlikle önemlidir. Örneğin WCF için çıkarılan bir kaç HotFix ‘in sisteminizde yer alması gerekecektir. Sonrasında sorunsuzca kurma işlemlerini gerçekleştirebilmeniz mümkün olacaktır.

Sharepoint 2010 ‘I sisteminize kurmak istediğinizde karşınıza iki seçenek çıkacaktır. Bunlardan birincisi Sharepoint 2010 Server bir diğeri ise Sharepoint 2010 Foundationdır. Bunların en belirgin farkları Foundation ‘ın ücretsiz olması ve daha az bellek kullanmasıdır. Diğer teknik özelliklerine diğer yazılarımızda detaylı olarak değiniyor olacağız.

Eğer ki Sharepoint 2010 ‘u sisteme direk kurmaya kalkışırsanız “kurmak istediğiniz ürünü mevcut sisteminizde çalıştırabilmeniz mümkün değildir” ‘e benzer bir mesaj alıyor olursunuz. Bunu ortadan kaldırmak için yapacak olduğumuz işlemlere göz atıyor olalım.

Ilk olarak yapılması gereken gerekli kurulum paketini sıkıştırılmış dosyadan çıkartmak olacaktır. Farketmişsinizdir, Microsoft tarafında hazırlanan uygulamaları kurmak istediğiniz de ilk olarak Extract eder sonrasında da gerekli kurulum işlemlerini gerçekleştirir. Biz de bu extract yani sıkıştırılmış dosyadan çıkartma işini elimizle yapıp birkaç işlem gerçekleştirmemiz gerekecek. Öncelikle sizi bir konuda uyarmam gerekiyor. Sharepoint 2010 ‘un exe ‘sinin uzantısı rar ya da zip olarak değiştirip sonrasında çıkartmak istediğiniz de eksik olarak dosyaları görmekte ve dil ile ilgili saçma hatalar almanıza sebep olacaktır. Bu sebeple aşağıda verecek olduğumuz konsol kodunu kesinlikle ama kesinlikle kullanmanız gerekecektir.

Command prompt ekranını açıp Sharepoint 2010 ‘un kurulum dosyasının olduğu klasöre geliyor ve aşağıdaki kod yardımı ile extract işlemini gerçekleştiriyoruz.

c:\SharePointFiles\SharePoint /extract:c:\SharePointFiles

Bu işlem sonrasında SharepointFiles klasörüne dosyaların çıkarıldığını göreceksiniz. Eğer ki çıkarım işlemi sonrasında da bol bol klasör göremiyorsanız hatalı yapmış olduğumuz bir işlem vardır ve yukarıda bahsetmiş olduklarımızı tekrardan uygulamanız gerekecektir.

Bu işlemler sonrasında setup paketinin config dosyasında sadece server işletim sistemlerinde değil de client sistemlerinde de kurulum işlemi yapabilmesi için bir kaç işlem yapmamız gerekecektir.

c:\SharePointFiles\files\Setup\config.xml ‘I açıp içerisinde yer alan <configuration> tag ının içerisine aşağıdaki kod parçasını ekliyoruz.

<Setting Id="AllowWindowsClientInstall" Value="True"/>



Yapmış olduğumuz bu değişikliği kaydedip dosyayı kapatıyor. Eğer ki config dosyasının içeriğini tamami ile merak edenler olursa diye ekliyorum.




<Configuration>
<Package Id="sts">
<Setting Id="SETUPTYPE" Value="CLEAN_INSTALL" />
</Package>
<DATADIR Value="%CommonProgramFiles%\Microsoft Shared\Web Server
Extensions\14\Data" />
<Logging Type="verbose" Path="%temp%" Template="Microsoft Windows
SharePoint Services 4.0 Setup *.log" />
<PIDKEY Value="PIDKey Value" />
<Setting Id="UsingUIInstallMode" Value="1" />
<Setting Id="SETUP_REBOOT" Value="Never" />
<Setting Id="AllowWindowsClientInstall" Value="True"/>
</Configuration>



Bu işlem sonrasında Windows ve IIS servislerinin bazılarında resetleme işlemleri yapmamız gerekecektir. Bu işlem için ise aşağıdaki kod parçasını command prompt ekranına yapıştırıp çalıştırmanız yeterli olacaktır.




start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;
IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;
IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;
IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;
IIS-HttpLogging;IIS-LoggingLibraries;
IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;
IIS-ManagementScriptingTools;
IIS-Security;IIS-BasicAuthentication;
IIS-WindowsAuthentication;IIS-DigestAuthentication;
IIS-RequestFiltering;IIS-Performance;
IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;
IIS-WebServerManagementTools;IIS-ManagementConsole;
IIS-IIS6ManagementCompatibility;
IIS-Metabase;IIS-WMICompatibility;WAS-WindowsActivationService;WAS-ProcessModel;
WAS-NetFxEnvironment;WAS-ConfigurationAPI;WCF-HTTP-Activation;
WCF-NonHTTP-Activation



Gerekli resetleme işlemlerini de gerçekleştirdiğimize göre artık yapacak olduğumuz pek işlem kalmamıştır. Ancak normal şartlarda IIS üzerinde bir kaç düzenleme yapılması gerekmektedir. Ancak asp.net uygulamaları geliştirmek için açmış olduğunuz özellikler Sharepoint çalışmak için de yeterli olacaktır. Bu sebeple detayına fazla girmiyorum.



Artık setup paketini çalıştırabilecek duruma geldik. Bunun için çıkartmış olduğumuz dosyanın içerisinde yer alan setup.exe ‘yi çalıştırıp aşağıdaki ekrana gelene kadar ileri diyoruz.





 



Bu seçenekte Standalone seçeneğini seçiyor ve kurulumun bitmesini bekliyoruz. Kurulum bittikten sonra configuration wizard seçeneği çıkacaktır. Bu işlemi otomatik yapmasını seçiyoruz. Bu sayede gerekli IIS düzenlemelerini, veri tabanı oluşturmasını v.b. otomatik olarak hazırlıyor olacaktır.





Bütün bu işlemleri tamamladıktan sonra artık Sharepoint 2010 ‘u kendi Windows 7 bilgisarımızda çalıştıracak duruma geliyoruz. Bu zamandan sonra tek yapmamız gereken bilgisayar ismini internet tarayacısına yazmak olacaktır.







Sonuç oldukça başarılı Smile



Bundan sonraki Sharepoint 2010 yazılarımızda biraz daha fazla Customization ve Development kısımlarına ağırlık veriyor olacağız.



Windows 7 ‘e kurulum hakkında daha detaylı bilgi edinebilmek için MSDN ‘de yayınlanmış olan bu yazıdan yararlanabilirsiniz.



Umarım yararlı olabilmiştir.

Pazar, Temmuz 25, 2010

SharePoint 2010–Virtual Machine ile Çalışmak

SharePoint 2010 – Virtual Machine ile Çalışmak

 

Sharepoint Server 2010 çalışacak olan uygulama geliştiricilerin önünde bu sistemi kullanmak için iki seçenek yer almaktadır. Bunlardan birincisi Windows Server 2008 işletim sistemine setup paket ile kurmaktır. Diğer seçenek ise Microsoft tarafından hazırlanmış olan Virtual Machine image ı kullanmaktadır. Eğer ki tercihiniz bunlardan ikincisi ise bir kaç işlemi ekstradan yapmanız gerekiyor. Bunları kısaca açıklamak gerekirse;

 

İlk olarak çalıştıracağınız sistem için en x64 olan bir işletim sistemine sahip olmanız gerekmektedir. Sonrasında ise Wmware, VirtualBox, Hyper-V v.b. sanallaştırma uygulamalarından birinin sisteminizde kurulu olması gerekmektedir. Not: Virtual PC üzerinde Sharepoint Server 2010 virtual machine image inin çalışmasına izin verilmemektedir. Ancak MS ‘in hazırlamış olduğu döküman incelenecek olursa bu VHD ‘nin en iyi Hyper-V üzerinde çalışacağı belirtilmektedir. Bu sebeple de eliminizde kullanacağımız işletim sistemi olarak Windows Server 2008 ve üzerine bir server sistem kalmıştır. Elinizde yer alan server sisteminde Hyper-V ‘I aktifleştirmek için yapmanız gereken Server Manager bölümünde yer alan Role tabında add role seçeneğini seçerek Hyper-V seçeneğini seçer ve adımları takip ettirerek bu yapıyı sistemimizde aktif duruma getiririz. Pekala yapacağımız işlemler sadece bu kadar mı derseniz kullandığınız işlemci türüne göre evet ya da hayır diyebiliriz. Peki bunu neden bu şekilde açıkladık. Çünkü eğer Intel ‘in I3/I5/I7 işlemcilerinin altında bir işlemci kullanıyorsanız yapmanız gereken ufak bir işlem daha yer alıyor. Kullanmış olduğumuz işlemcinin bios üzerinden Virtualization seçeneğinin aktif olarak kullanılıyor olması gerekmektedir. Bunun için ise bilgisayarınız açılırken bios setup ekranına girip sonrasında işlemci seçeneklerinin olduğu bölümde Virtualization alanını disable konumdan Enable ‘a çekmek gerekmektedir. Bu işlemleri yapıp sistemi yeniden başlattıktan sonra Hyper-V ‘ye gösterilen VHD image yardımı ile sorunsuz bir şekilde Sharepoint 2010 araştırmalarınızı ve geliştirmelerinizi yapabilirsiniz.

 

Eğer ki VHD image ‘a ulaşmakta sorun yaşıyorsanız bu link yardımı ile indirip sisteminizde kullanmaya başlayabilirsiniz.

Salı, Kasım 03, 2009

Sharepoint - Dinamik Olarak MasterPage Değiştirmek

Microsoft Sharepoint Server ve MOSS teknolojisi günümüzde portal sistemleri denince akla ilk gelen ve şirket yöneticilerinin aklına gelen ilk teknolojidir. Esnek yapısı ve alt yapı mimarisi ile geliştiricilerin işlerini kolaylaştıran araçları ile insanların ilgilisini çok kısa zamanda çekti ve çekmeyede devam edecektir. 

Bu yazımızda Sharepoint teknolojileri kullananan kurumlardan en çok istenen isteklerden birinin nasıl çözüleceğini incelemeye çalışacağız. Örneklemek gerekirse, bir kurumun içinde üç farklı çalışma grubu var yöneticinizin bu çalışma gruplarından hangisi sisteme girdiyse ona özel bir tasarım görünmesini istiyorum şeklinde isteği olabilir. Bu durumda bizim yapmamız gereken gerekli çözümleri üretip işi sonuca ulaştırmaktır.

Sharepoint Server ile MOSS üzerinde geliştirme yapılmaya başlandığında ilk olarak default.master ve CSS dosyası bizlerin kullanımına sunulmaktadır. Farklı kullanıcı gruplarından hangi grup girerse farklı bir masterpage 'in açılmasına olanak tanıyabilmek için ilk olarak bu masterpage 'leri sharepoint e uygun şekilde düzenlemek gerekmektedir. Şimdi masterpage 'leri sisteme dahil olan kullanıcı grubuna göre nasıl değiştirebileceğimizi incelemeye başlayalım.

ASP.NET Sayfasının İçerisinde MasterPage Nasıl Değiştirilir?

ASP.NET uygulama geliştiriciler sisteme dahil olan üyelere göre rahatlıkla masterpage ve sayfa içerisinde yer alan öğeleri değiştiebiliyorlar. Sisteme dahil olan kullanıcıları kontrol etmek için masterpage 'in içerisinde yer alan PreInit event 'ından yararlanmak gerekmektedir. Fakat unutulmaması gereken bir nokta var. Hazırlanmış olan uygulama da yalnızca üç beş tane asp.net sayfa olmayacak. Yüzlerce sayfa olacaktır. Bu durumda her sayfaya ve masterpage 'e PreInit olayını yakalamak ve belirteceğimiz kodları yazmak sistemi yavaşlatacak bir etken olacaktır. Bu sebepte her sayfa için taban bir sınıf oluşturup yapacak olduğumuz işlemleri bunun içerisinde yaparsak işlerimiz biraz daha kolaylayacaktır. Bu sebeple MyCustomBasePage isimli bir sınıf oluşturuyoruz ve Page sınıfından bu sınıfı türetiyoruz. Sonrasında ise, Page_PreInit olayına aşağıdaki kodları ekliyoruz.

public class MyCustomBasePage : System.Web.UI.Page
{
    protected void Page_PreInit(object sender, EventArgs e)
    {
        if (CurrentUser.UserType == UserType.Admin)
        {
            MasterPageFile = "~/MasterPages/AdminMaster.master";
        }
        else if (CurrentUser.UserType == UserType.NormalAuthenitcated)
        {
            MasterPageFile = "~/MasterPages/NormalAuthenticatedMaster.master";
        }
        else
        {
            MasterPageFile = "~/MasterPages/AnonymouskMaster.master";
        }
    }
}

Bu sınıfın içerisinde üç farklı kullanıcı grubu için master page ayarladık. Admin, Normal ve sistem tarafından tanınmayan kullanıcılara göre farklı masterpage ler çalışacak ve görsel olarak farklı bir görünüm ile karşılacaklardır.

Şimdi bu sınıfı oluşturduğumuza göre işimiz biraz daha kolaylaştı. Artık oluşturulan bütün sayfalardan MyCustomBasePage sınıfını kullanarak bu hazırlamış olduğumuz kontrolün aktifleşmesine olanak tanırız.

public partial class HomePage : MyCustomBasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}

Sharepoint İçerisinde MasterPage Nasıl Değiştirilir?

Ana mantık olarak web uygulamalarında her kullanıcı grubuna ya da değişik faktörlere göre masterpage 'i nasıl değiştrebileceğimizi biliyoruz. Biraz öncede incelemiştik. Harici bir sınıf oluşurulur ve sayfanın PreInit olayı yakalanılarak değişiklikler yapılabilirdi. Ancak Sharepoint içerisinde bu direk PreInit olayından yakalayabilmek dire mümkün değildir. Ancak bizden çözüm bekleniyor ve gerekli işlemleri yapmamız gerekmektedir. Sharepoint Sayfaları içerisinde PreInit olayını yakalayabilmek için HttpModule 'ün kullanılması gerekmektedir.

Asp.Net Pipeline Süreci

Asp.Net istek süreçleri pipeline mantığına göre işlemlerini sürdürmektedir. Aşağıdaki şekilde de göreceğiniz üzere her isteğe yanıt veren bir modül bulunmaktadır. İstekler yakalandıktan sonra gerekli modülün kullanılmasına olanak tanınır.



Genellikle istekler pipeline içerisinde yer alan modüller isteklere göre yanıt vermektedir. Eğer ki bir den fazla modüle istek yapılırsa da tek bir işleyici tarafında işlem yapılacaktır. Ancak bizim istediğimiz her modüle tek bir işleyicinin işlem yapmasıdır. Bu işlemide asp.net sayfasında PreInit olayı ile gerçekleştiririz.

HttpModule 'den yararlanarak PreInit Olayı İşlenmesinin Geliştirilmesi

HttpModule den yararlanarak bir sınıf geliştirilirken System.Web.IHttpModule sınıfı miraslanarak kullanılır. IHttpModule 'in iki tane metodu vardır. Bunlar Dispose ve Init 'dir. Init metodu başlatıldığında diğer aktif olan Initleri iptal ederek kendisini kullanmaya başlayacaktır.

public class DynamicMasterPageModule : IHttpModule
{
    public void Dispose()
    {
    }
    public void Init(HttpApplication context)
    {
        context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
    }
    void context_PreRequestHandlerExecute(object sender, EventArgs e)
    {
                Page page = HttpContext.Current.CurrentHandler as Page;
           if (page != null)
           {
               page.PreInit += new EventHandler(page_PreInit);
           }
    }
    void page_PreInit(object sender, EventArgs e)
    {
    }
}

Init metodunun içerisinde yer alan PreRequestHandlerExecute event 'ını yakalıyoruz. Asp.net sayfa başlarken bu olay tetiklenir. Sonrasıda açılacak olan sayfanın null olup olmadığının kontrolü sonrasında asp.net 'ten alışık oluğumuz PreInit olayının tetiklenmesi işlemini gerçekleştirebilmemize olanak tanınır.

Sharepoint MasterPage

Sharepoint 'in kendi varsayılan bir masterpage 'i vardır. Eğer bu masterpage üzerinde bir değişiklik ya da düzenleme yapmak istersek Sharepoint içeriğini görüntülemeye olanak tanıyan Sharepoint Designer içerisinde düzenleme yapmak gerekmektedir. Eğer ki oluşturulan ya da düzenlenen masterpage 'i kod tarafından çağırmak istersek Page.MasterPageFile özelliğini kullanmak gerekmektedir.

Page.MasterPageFile = "Masterpage 'in uygulama içerisindeki yolu";

Ancak dikkat edilmesi gereken bir nokta vardır. Masterpage sharepoint içerisinde farklı yerlerde bulıunabilir. Peki neden? Varsayılan sitenin içerisindeki olabilir, site koleksiyonunda olabilir gibi yerlerde olabilmektedir. Bunları örneklemek gerekirse,

"~site/MasterPageName.master"
Site klasörünün içerisinde yer alan masterpage 'in yolunu birden fazla masterpage olacağı için ~site/MasterPages/Masterpagename.master şeklinde güncellemelidir. MasterPage 'in yolunu adres çubuğunda görüntülemek için ise, http://sitecollection/site1 'in altında yer alan masterpage adresinden http://sitecollection/site1/masterpages/MyMaster.master yoluna göre güncelleriz.

"~sitecollection/MasterPageName.master"
Burada ise masterpage ~sitecollection yolunun içerisinden erişilebilmektedir. Ana sitenin yolu http://sitecollection iken http://sitecollection/MasterPageName.master yolu ile erişebilmek mümkündür.

Sharepoint İçerisinde Özel MasterPage Kullanımı

Eğer Sharepoint ile uygulama geliştirirken Sharepoint Designer yardımı ile yaparız. Özel bir masterpage oluşturmanın en kolay yolu var olan bir masterpage i tekrardan kopyalayarak yapıştırdıktan sonra gerekli düzenlemeleri yaparız.

Özel bir masterpage 'i oluşturduktan sonra diğer otomatik olarak bunun özel olarak oluşturulan bir masterpage olduğunu Sharepoint direkt anlamaz. Bu işlemi yapabilmek için Sharepoint Designer üzerinden de hazırlanan masterpage 'in üzerinde sağ tıklama yaparak bunu özel bir masterpage olduğunu belirten "Set as Custom Master Page" 'e tıklayarak belirtiriz.



Artık PreInit olayını yakaladıktan sonra web.config içerisinde MasterPage numarasını alıyoruz. Sonrasında eğer gelen sayfa numarası 1 ise custom1.master eğer gelen sayfa numarası 2 ise custom2.master 'ı aktif duruma getiriyoruz.


void page_PreInit(object sender, EventArgs e)
{
    Page page = sender as Page;
    string pageNo = ConfigurationManager.AppSettings["MasterPageNo"];


    if (page != null)
    {
        if (pageNo.Equals("1"))
            {
                page.MasterPageFile = "~masterurl/custom.master";
                if (SPContext.Current != null)
                {
                    SPContext.Current.Web.CustomMasterUrl = "/_catalogs/masterpage/custom1.master";
                }
            }
            else if (pageNo.Equals("2"))
           {
               page.MasterPageFile = "~masterurl/custom.master";
               if (SPContext.Current != null)
               {
                    SPContext.Current.Web.CustomMasterUrl = "/_catalogs/masterpage/custom2.master";
               }

           }
           else
           {
                page.MasterPageFile = "~masterurl/default.master";
                if (SPContext.Current != null)
               {
                    SPContext.Current.Web.MasterUrl = "/_catalogs/masterpage/default.master";
               }
       }

}

web.config 'den gelen değere göre hangi masterpage 'in geleceği dinamik olarak görüntülenmektedir. Bu işlemi işinizi görecek şekilde güncelleyerek sorunlarınızı kolayca çözebilirsiniz.

Sonuç olarak bu yazımızda belirli kriterler doğrultusunda sharepoint server portal in masterpage 'ini dinamik olarak nasıl değiştirebileceğimizi incelemeye çalıştık.

Umarım yararlı olabilmiştir.