“SharePoint Designer 2010 ile cs ya da vb kod yazamıyorum. Ne yapmam gerekiyor? “ CEVAP: Aşağıdaki yazıyı okuman sana yardımcı olabilir.
SharePoint 2010 ile basit web sayfalarını en rahat oluşturabileceğimiz ve master page birlikteliğini sağlayabilceğimiz en başarılı uygulama SharePoint Designer 2010 (SPD 2010) uygulamasıdır. Bu sebepten ötürüdür ki SharePoint 2010 ‘u eline alan uygulama geliştiricilerin büyük bir çoğunluğu root klasöre de erişebilme özelliği sebebi ile yeni bir sayfa v.b. eklemek istediklerinde bu uygulamayı kullanırlar. Evet kesinlikle kabul ediyorum en hızlı Asp.Net sayfa oluşturup yayınlayabileceğiniz uygulamadır. Ancak Server-Side kod yazarken yani Event yakalayıp o esnada bir işlem yaptırtmak istediğimiz zamanlarda biraz sıkıntılı bir yanı vardır. Bu yazımızda sıkıntılı yanı nasıl aşabileceğimize değinmeye çalışacağız.
Öncelikle SPD 2010 üzerinde SitePages kısmına gelip web sayfası oluşturuyor sonraısında ise arka planda otomatik oluşmuş kod parçasına göz atıyoruz.
Kod kısmının görünümü ise aşağıdaki gibidir.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</a>>
<%@ Page Language="C#" %>
<html dir="ltr" xmlns="<a href="http://www.w3.org/1999/xhtml"">http://www.w3.org/1999/xhtml"</a> xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<head runat="server">
<meta name="WebPartPageExpansion" content="full" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
<!--[if gte mso 9]>
<SharePoint:CTFieldRefs runat=server Prefix="mso:" FieldList="FileLeafRef,WikiField,_dlc_DocId,_dlc_DocIdUrl,_dlc_DocIdPersistId"><xml>
<mso:CustomDocumentProperties>
<mso:_dlc_DocId msdt:dt="string">WM56YMSTHXCT-11-5</mso:_dlc_DocId>
<mso:_dlc_DocIdItemGuid msdt:dt="string">e2f62402-89fd-4320-9663-f86e1492ee1a</mso:_dlc_DocIdItemGuid>
<mso:_dlc_DocIdUrl msdt:dt="string"><a href="http://turhal-pc/test/_layouts/DocIdRedir.aspx?ID=WM56YMSTHXCT-11-5">http://turhal-pc/test/_layouts/DocIdRedir.aspx?ID=WM56YMSTHXCT-11-5</a>, WM56YMSTHXCT-11-5</mso:_dlc_DocIdUrl>
</mso:CustomDocumentProperties>
</xml></SharePoint:CTFieldRefs><![endif]-->
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html> |
Sayfanın SharePoint şablonlarını saymazsak Asp.Net sayfası olduğunu gözlemleriz. Bu durumda eski bilgilerimizi aklımıza getirelim. Eğer ki asp.net sayfada kod dosyası kullanma şansımız yoksa aspx sayfaya server-side kod için script ekleyip metot v.b. kod parçalarını bu kısma ekliyorduk. O zaman şimdi bu yöntem ile sayfayı düzenleyip ve Page_Load olayını tetikleyen ufak bir kod parçası yazalım.
<script runat=”Server” >
protected void Page_Load (object sender, EventArgs e)
{
form1.InnerHtml = “<h1> Merhabaaa </h1>”
}
</script> |
Bu değişikliği kaydedip publish ettiğimizde source kodun içerisinde server-side kod kullanamayacağımızı açıklayan bir hata alırız. Peki bu durumda ne yapmamız gerekiyor. Aslında işlem basit. Web.config içerisinde SharePoint tarafında aspx sayfalarının içerisinde Server-Side kullanımı engelenmiştir. Bizim yapmamız gereken bunu aktif duruma getirmek olacaktır.
Web.Config dosyasının içerisinde configuration/SharePoint/PageParserPath bölümüne gelip aşağıdaki kod parçasını ekliyoruz.
<PageParserPaths>
<PageParserPath VirtualPath=”test/SitePages/Article_Page.aspx” CompilationMode=”Always” AllowServerScript=”True” />
</PageParserPaths> |
Evet işlem sadece bu kadar. Değişiklik sonrasında sayfanızı sorunsuzca kullanmaya başlayabilirsiniz. Ancak bu yazıyı okuduktan sonra aklınıza şu tür sorular gelebilir. Evet bu şekilde sayfayı çalıştırdık. Ancak benim 100 tane sayfam var hepsi içinde mi bu yöntemi kullanmalıyım. Hepsine bir arada seçebileceğim bir teknik yok mudur?
Cevabı ise hayır yoktur olacaktır. SharePoint 2010 genel anlamda eğer ki Server-Side kod geliştirmek istiyorsanız bunu Visual Studio içerisinde yapmanız gerekmektedir der. Bu sebeple bu kadar çok sayfanız var ise yapılması gereken VS2010 uygulamasında SharePoint Module ‘ler geliştirip web sayfalarını onun üzerind en taşımak olacaktır. Hayır bunu istemiyorum derseniz ise tek tek sayfanızın sunucu da olduğu yer bilgisi ile birlikte eklemeniz gerekecektir.
Umarım sizler için yararlı olabilmiştir.
Turhal Temizer
[email protected]
www.turhaltemizer.com