<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-672840006823687540</id><updated>2011-11-27T16:53:53.102-08:00</updated><category term='Sorting'/><category term='Linq to Sharepoint'/><category term='Sharepoint 2010 ilişkisel Liste'/><category term='MOSS 2007'/><category term='Programatik'/><category term='The DataSourceID of &apos;QuickLaunchMenu&apos; must be the ID of a control of type IHierarchicalDataSource. A control with ID &apos;QuickLaunchSiteMap&apos; could not be found.'/><category term='Listing Web Parts in a Web Part Page and Getting their Properties&apos; values'/><category term='Error in Microsoft Windows SharePoint Services Protocol Handler'/><category term='Survey'/><category term='12 hive'/><category term='Sharepoint Doküman Kitaplığı'/><category term='Visual Studio 2010'/><category term='Ajax'/><category term='Sharepoint 500 Internal server Error'/><category term='Anket Özelleştirme'/><category term='stsadm'/><category term='Ajax Control Toolkit'/><category term='500 Internal Server'/><category term='BLOB Caching'/><category term='SPSecurity'/><category term='SPJobDefinition'/><category term='User Control deployment'/><category term='Sharepoint 2010'/><category term='Picture library'/><category term='SPChoiceField'/><category term='Sharepoint Web Servisleri'/><category term='Web Parts'/><category term='Imaging Web Servisi'/><category term='Error'/><category term='Crawl'/><category term='SPSecurity.RunWithElevatedPriviliges()'/><category term='Dosya boyutunu arttırmak'/><category term='SSP'/><category term='BLOB'/><category term='TryGetList Method'/><category term='14hive'/><category term='Survey Customization'/><category term='Sharepoint Document Library'/><category term='Sharepoint 2010 VisualWebPart'/><category term='Sharepoint Backup'/><category term='Logging'/><category term='Sharepoint restore'/><category term='Anket'/><category term='Caching'/><category term='Timer Job'/><category term='Anket fields'/><category term='Veri tutarlılığı'/><category term='SPCheckOutStatus'/><category term='Sharepoint Web Services'/><category term='Development'/><category term='Imaging.asmx'/><category term='Web Part sayfasındaki Web Partları Listelemek ve Özelliklerinin değerlerine erişmek'/><category term='Linq'/><category term='SPFieldLookup'/><category term='Sharepoint'/><category term='Sharepoint CheckOut'/><category term='MOSS2007'/><category term='Stsadm command yaratmak'/><category term='TryGetList metot'/><category term='Referential Integrity in SP2010'/><category term='Rating'/><category term='Increase File Size'/><category term='Installation'/><title type='text'>Sharepoint Deneyimlerim</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-1476371439870250310</id><published>2009-11-06T03:46:00.000-08:00</published><updated>2009-11-06T04:04:01.974-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linq to Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 2010 ilişkisel Liste'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Veri tutarlılığı'/><category scheme='http://www.blogger.com/atom/ns#' term='Referential Integrity in SP2010'/><title type='text'>SP 2010 ile Beraber gelen İlişkisel Liste Desteği</title><content type='html'>WSS3 ile çalısırken ilişkisel listeler yaratmak desteklenmiyordu. Bu amaçla bir çoğumuz lookup fieldlar kullanmıstır. Veri tutarlılığı(referential integrity) sağlamak biz kendimiz birşeyler yapmadıkça desteklenmiyordu. Sharepoint 2010u geliştirenler bunu dikkate almıslar ve bir takım yeni featurelarla gene lookup kolonları baze alarak bir takım geliştirmeler sağlamışlar.&lt;br /&gt;Lookup tipte bir kolon yaratmak istediğinizde, bir takım yeni seçenekleriniz olduğunu göreceksiniz. Gene hangi listeye lookup yapacağımızı ve value fieldımızı seçerken, sayfanın alt kısmında Veri tutalılığını koru gibi bir opsiyon sunulmuş( Maintain referential integrity).Bu opsiyonla ana listeden bir item silindiğinde bunun çocuk listeye de aktarılması ya da çocuk listede item varsa parent listede bu silme operasyonun engellenmesi gibi özellikler sağlanabilmekte.&lt;br /&gt;Bununla kalmıyor geliştirmeler! Çocuk listede ana listedeki içeriği görüntülemek isteyebiliriz. Mesela faturalar listesine bakarken faturanın idsi haricinde fatura üzerindeki ismi de görüntülemek isteyebiliriz. Daha evelki versiyonda, bu amaçla  listeyi sorgulayıp linq veya başka bir şeyle join yapmak için custom kod yazmamız gerekiyordu. Bilginize.. CAML artık join leri destekliyor, her ne kadar artık LINQ TO Sharepoint kullanıcağımız için camla pek gereksinim duymayacağımızı düşünmeme rağmen bu bilgiyi de vermiş olayım..  Neyse fazla dağılmadan konumuza dönmek gerekirse Sharepoint 2010 sürümünde çocuk listede Parent Listedeki birden fazla site kolonunu viewlarınızda kullanıp farklı viewlar hazırlayabiliyorsunuz..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-1476371439870250310?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/1476371439870250310/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/sp-2010-ile-beraber-gelen-iliskisel.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/1476371439870250310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/1476371439870250310'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/sp-2010-ile-beraber-gelen-iliskisel.html' title='SP 2010 ile Beraber gelen İlişkisel Liste Desteği'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-6534663419430251782</id><published>2009-11-06T00:17:00.001-08:00</published><updated>2009-11-09T08:32:45.773-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='14hive'/><category scheme='http://www.blogger.com/atom/ns#' term='12 hive'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 2010'/><title type='text'>Sharepoint 2010: 12 Hive+2= 14 Hive</title><content type='html'>Sharepoint 2007 ile çalışanlar için 12 Hive yani C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\12 adresi belleklere kazınmıştır. Artık bu adresi C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14 ile değiştirebilirsiniz.Belli ki Microsoft 13 numarasının uğursuzluğunu düşünmüş.    Artık bu folder üstünde bir çok işlem gerçekleştireceğiniz folder oldu anlayacağınız. Gerçi yeni Visual Studio 2010 tools ile bu foldera çok sık olaak girmek zorunda kalmayacaksınız. Bu postumda 14 hive ile ilgili gözüme ilk çarpanlar hakkında bir özet geçeyim istedim. 12 altındaki folderlar 14 hive da da korunmuş fakat bir kaç yeni folder eklenmiş.&lt;br /&gt;&lt;br /&gt;14Hive da 3 tane yeni folder dikkatimi çekti.&lt;br /&gt;    * UserCode &lt;br /&gt;    * WebClients –Client OM için kullanılıyor sanıyorum&lt;br /&gt;    * WebServices – Bir çok yeni .svc dosyası içeriyor&lt;br /&gt;&lt;br /&gt;ISAPI Folderında hangi assemblylerin bulundugu ilginizi çekiyorsa aşağıdaki listede bunu bulabilirsiniz. Henüz rastlamamama rağmen, bazı sınıflar farklı dll ler içine geçmiş.&lt;br /&gt;&lt;br /&gt;    * Microsoft.BusinessData.dll&lt;br /&gt;    * Microsoft.Office.DocumentManagment.dll&lt;br /&gt;    * Microsoft.Office.Excel.Server.Udf.dll&lt;br /&gt;    * Microsoft.Office.Excel.Server.WebServices.dll&lt;br /&gt;    * Microsoft.Office.Policy.dll&lt;br /&gt;    * Microsoft.Office.SecureStoreService.Security.dll&lt;br /&gt;    * Microsoft.Office.Server.dll&lt;br /&gt;    * Microsoft.Office.Server.Search.dll&lt;br /&gt;    * Microsoft.Office.SharePoint.ClientExtensions.dll&lt;br /&gt;    * Microsoft.Office.UserProfiles.dll&lt;br /&gt;    * Microsoft.Office.Word.Server.dll&lt;br /&gt;    * Microsoft.Office.Workflow.Actions.dll&lt;br /&gt;    * Microsoft.Office.Workflow.Tasks.dll&lt;br /&gt;    * Microsoft.SharePoint.Client.dll&lt;br /&gt;    * Microsoft.SharePoint.Runtime.dll&lt;br /&gt;    * Microsoft.SharePoint.dll&lt;br /&gt;    * Microsoft.SharePoint.Linq.dll&lt;br /&gt;    * Microsoft.SharePoint.Portal.dll&lt;br /&gt;    * Microsoft.SharePoint.Publishing.dll&lt;br /&gt;    * Microsoft.SharePoint.Search.dll&lt;br /&gt;    * Microsoft.SharePoint.Search.Extended.Administration.Common.dll&lt;br /&gt;    * Microsoft.SharePoint.Search.Extended.Administration.dll&lt;br /&gt;    * Microsoft.SharePoint.Search.Extended.Administration.ResourceStorage.dll&lt;br /&gt;    * Microsoft.SharePoint.Search.Extended.Administration.Query.dll&lt;br /&gt;    * Microsoft.SharePoint.Security.dll&lt;br /&gt;    * Microsoft.SharePoint.Taxonomy.dll&lt;br /&gt;    * Microsoft.SharePoint.Taxonomy.Intl.dll&lt;br /&gt;    * Microsoft.SharePoint.Workflow.Actions.dll&lt;br /&gt;    * Microsoft.Web.CommandUI.dll&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-6534663419430251782?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/6534663419430251782/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/sharepoint-2010-12-hive2-14-hive.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6534663419430251782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6534663419430251782'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/sharepoint-2010-12-hive2-14-hive.html' title='Sharepoint 2010: 12 Hive+2= 14 Hive'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-7564882211581930037</id><published>2009-11-05T23:55:00.000-08:00</published><updated>2009-11-06T00:09:13.179-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 2010 VisualWebPart'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='User Control deployment'/><title type='text'>Sharepoint 2010 Visual Web Partla Tanışalım</title><content type='html'>Sharepoint 2007de web part geliştirirken arayüzümüz yoktu. User controllerimizi 12/Template/controltemplates altına atıp bir web partla bu user controlu load etmek en iyi alternatifimizdi. Visual Studio 2010'da web partlarla çalışmak için bir designerımız var artık.. Visual Web Part SPI( SPI, sharepoint project Itemı temsil ediyor) ile  bir web part yaratmak istediğinizde bu size bir .cs dosyası, bir .webpart dosyası, bir elements.xml dosyası ve de yeni olan bir .ascx dosyası yaratıyor.Evet, gerçekten bir ASP.NET user control yaratıyor. Visual studio bu dosyaları güzelce gruplama adına güzel bi iş yapmış. Web partın designerını açtığınız zaman, User controlün designerı otomatikman açılıyor.&lt;br /&gt;Simdi hemen aklınıza bunun nasıl çalıştıgı geliyordur. Sharepoint maalesef hala user controlleri direkt olarak host edmiyor. Burada tek yapılan içinde Page.LoadControl metoduyla bizim user contolümüzü parametre geçtiğimiz bir web part yaratmak. Esasında bu zaten bizim yıllardır user controlleri Sharepoint içerisine deploy etme taktiğimizdi. Ama burada güzel olan Visual Studio nun bu user controllerin deploy edilip sharepoint üzerinde kullanılması işlemini kolaylaştırmış olması..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-7564882211581930037?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/7564882211581930037/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/sharepoint-2010-visual-web-partla.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/7564882211581930037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/7564882211581930037'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/sharepoint-2010-visual-web-partla.html' title='Sharepoint 2010 Visual Web Partla Tanışalım'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-2573337495668690308</id><published>2009-11-05T23:40:00.000-08:00</published><updated>2009-11-05T23:50:48.044-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='TryGetList metot'/><category scheme='http://www.blogger.com/atom/ns#' term='TryGetList Method'/><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>Sharepoint 2010'da bir ListItemın varolup olmadığını kontrol etmek</title><content type='html'>Sharepoint 2010 API ile bir takım eksiklikler düzeltilmiş. Bildiginiz gibi SPWeb sınıfının GetList metodu eğer bu isimli bir list yoksa exception throw ediyordu, dolayısıyla bu kodumuzu try-catch blokları içinde yazmak gerekiyordu.&lt;br /&gt;Yeni API ile beraber TryGetList isimli bir fonksiyonumuzu mevcut..&lt;br /&gt;Aşağıdaki kod bloğuyla bunu örnekliyorum.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_74VM4vZVcTY/SvPVGoXJgrI/AAAAAAAAACI/riR9xmWwyaM/s1600-h/Linq.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://1.bp.blogspot.com/_74VM4vZVcTY/SvPVGoXJgrI/AAAAAAAAACI/riR9xmWwyaM/s320/Linq.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5400894688037798578" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-2573337495668690308?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/2573337495668690308/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/sharepoint-2010da-bir-listitemn-varolup.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/2573337495668690308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/2573337495668690308'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/sharepoint-2010da-bir-listitemn-varolup.html' title='Sharepoint 2010&apos;da bir ListItemın varolup olmadığını kontrol etmek'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_74VM4vZVcTY/SvPVGoXJgrI/AAAAAAAAACI/riR9xmWwyaM/s72-c/Linq.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-7333365484759402938</id><published>2009-11-02T16:22:00.000-08:00</published><updated>2009-11-02T16:25:45.012-08:00</updated><title type='text'>Kişinin bilgisayarında MOSS Yüklü olup olmadıgını Kod tarafında Tespit Etmek</title><content type='html'>Kişi bilgisayarında MOSS yüklü olup olmadığını anlamanın en temiz yolu registrye göz atmaktır. Registry ile ilgili işlemlerimizi yapmak için mscorlib. dllinin Microsoft.Win32 namespaceinin altındaki RegistryKey sınıfından faydalanırız.&lt;br /&gt;bool isMossInstalled = false;&lt;br /&gt;string keyname = @"SOFTWARE\Microsoft\Office Server\12.0";&lt;br /&gt;using (RegistryKey key = Registry.LocalMachine.OpenSubKey(keyname))&lt;br /&gt;{&lt;br /&gt;   if (key != null)&lt;br /&gt;   {&lt;br /&gt;       string version = key.GetValue("BuildVersion") as string;&lt;br /&gt;       if (version != null)&lt;br /&gt;       {&lt;br /&gt;           Version buildVersion = new Version(version);&lt;br /&gt;           if (buildVersion.Major == 12)&lt;br /&gt;           {&lt;br /&gt;              isMossInstalled = true;&lt;br /&gt;           }&lt;br /&gt;        }&lt;br /&gt;   }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-7333365484759402938?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/7333365484759402938/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/kisinin-bilgisayarnda-moss-yuklu-olup.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/7333365484759402938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/7333365484759402938'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/kisinin-bilgisayarnda-moss-yuklu-olup.html' title='Kişinin bilgisayarında MOSS Yüklü olup olmadıgını Kod tarafında Tespit Etmek'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-4751336838038090195</id><published>2009-11-02T05:56:00.000-08:00</published><updated>2009-11-02T07:08:14.829-08:00</updated><title type='text'>Lists.asmx web servisi ile LINQ TO XML kullanmak</title><content type='html'>Bildiğiniz gibi Sharepoint web servislerinin döndürdüğü xml datalarını parse etmek her zaman sorunlu ve can sıkıcı olmuştur. Lists.asmx web servisiyle listelerin sorgulandığına daha önceki postlarımda değinmiştim. Bu postta linq to xml yardımıyla dönen sonuçları parse etmeye değineceğim. Bunun için visual studio 2008de bir windows uygulaması geliştireceğiz. Burada projemize referans olarak lists.asmx web servisini ekliyoruz. Bunu yaptıktan sonra yapmamız gereken app.config dosyası ayarıdır. Sharepoint uygulamamız NTLM Security kullandığı için app.config deki HttpBinding elementinin securityMode unu Default değeri olan none dan TransportCredentialOnly değerine çekmemiz transport elementinin clientCredentialType ve proxyCredentialType özelliklerini "Ntlm" e çekmemiz gerekir. Aksi takdirde web servisimizin metotlarını çağırmak istediğimizde hata alırız.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_74VM4vZVcTY/Su71uRW4HWI/AAAAAAAAACA/Tn9vLJW5bto/s1600-h/ListsConfig.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 174px;" src="http://2.bp.blogspot.com/_74VM4vZVcTY/Su71uRW4HWI/AAAAAAAAACA/Tn9vLJW5bto/s320/ListsConfig.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5399523178545945954" /&gt;&lt;/a&gt;&lt;br /&gt; şeklinde ayarlarımızı düzenledikten sonra uygulamamıza geçelim.&lt;br /&gt;uygulamamızın kodu aşağıdaki gibidir.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_74VM4vZVcTY/Su7vm43cY9I/AAAAAAAAABw/ksz7qrUcTsw/s1600-h/ListsService1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 137px;" src="http://4.bp.blogspot.com/_74VM4vZVcTY/Su7vm43cY9I/AAAAAAAAABw/ksz7qrUcTsw/s320/ListsService1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5399516454642803666" /&gt;&lt;/a&gt;&lt;br /&gt;Bu şekilde Sharepoint uygulamamızdaki listeleri web servisten dönen xmli linq to xml ile parse ederek göstermiş oluruz.&lt;br /&gt;Linq to xml gerçekten hayatı kolaylaştırıyor..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-4751336838038090195?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/4751336838038090195/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/listsasmx-web-servisi-ile-linq-to-xml.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/4751336838038090195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/4751336838038090195'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/11/listsasmx-web-servisi-ile-linq-to-xml.html' title='Lists.asmx web servisi ile LINQ TO XML kullanmak'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_74VM4vZVcTY/Su71uRW4HWI/AAAAAAAAACA/Tn9vLJW5bto/s72-c/ListsConfig.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-4899882287558165086</id><published>2009-10-23T15:19:00.000-07:00</published><updated>2009-10-23T15:24:10.569-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='Error in Microsoft Windows SharePoint Services Protocol Handler'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Crawl'/><title type='text'>Sharepoint Crawling ile ilgili bilinmesi gereken hatalar</title><content type='html'>Error in Microsoft Windows SharePoint Services Protocol Handler şeklinde bir hata alırsanız crawl sırasında bunun nedeni I( büyük ı harfi) ile başlayan site isimleri olabilir. Uygulamamızdaki Infocenter sitesi altındaki hiç bir content crawl edilememiş ve crawl loglarında yukarıda belirtiğim hata ile karşılaşmıştım. Infocenter olan site ismini infocenter olarak değiştirip yeniden crawl başlattığımda sorun çözüldü.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-4899882287558165086?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/4899882287558165086/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/sharepoint-crawling-ile-ilgili.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/4899882287558165086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/4899882287558165086'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/sharepoint-crawling-ile-ilgili.html' title='Sharepoint Crawling ile ilgili bilinmesi gereken hatalar'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-432060912313089868</id><published>2009-10-19T15:19:00.000-07:00</published><updated>2009-10-19T15:22:23.954-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='The DataSourceID of &apos;QuickLaunchMenu&apos; must be the ID of a control of type IHierarchicalDataSource. A control with ID &apos;QuickLaunchSiteMap&apos; could not be found.'/><category scheme='http://www.blogger.com/atom/ns#' term='SSP'/><title type='text'>SSP Problemi</title><content type='html'>The DataSourceID of 'QuickLaunchMenu' must be the ID of a control of type&lt;br /&gt;IHierarchicalDataSource. A control with ID 'QuickLaunchSiteMap' could not be&lt;br /&gt;found hatası almaya başladım birden bire ssp uygulamamı açmak istediğimde. Hiç bir yerini editlememe rağmen bu hatayı almam ilginçti. Uzun uğraşlar sonucu hatanın kaynağını buldum. yazdıgım bir solution global olarak deploy edilince ssp uygulamamın web.config dosyasındaki safe controllere bir entry yazmış. Bu safe control entrysini silince sorun düzeldi. Bu hata ile karşılaşmanız durumunda kulağınıza küpe olsun&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-432060912313089868?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/432060912313089868/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/ssp-problemi.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/432060912313089868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/432060912313089868'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/ssp-problemi.html' title='SSP Problemi'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-4184290590480766631</id><published>2009-10-07T00:34:00.000-07:00</published><updated>2009-10-07T00:43:05.091-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint Doküman Kitaplığı'/><category scheme='http://www.blogger.com/atom/ns#' term='Increase File Size'/><category scheme='http://www.blogger.com/atom/ns#' term='Dosya boyutunu arttırmak'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint Document Library'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Sharepoint'te doküman kütüphanelerine yüklenebilecek dosya boyutu limitini değiştirmek</title><content type='html'>Sharepoint'te bir doküman kitaplığına dosya eklemeye çalıştığınız zaman izin verilen maksimum dosya boyutu 50 MBdır. Bu boyutun üstünde bir dosyanın Sharepoint server üzerinde tutulması tavsiye edilmese de böyle bir istekle karşılaştığınızda yapmanız gereken Central Administration&gt;Application Management&gt;Web application general&lt;br /&gt;settings sekmelerini izleyerek maksimum dosya boyutunu arttırmaktır. Maalesef bildiğim ve araştırdığım kadarıyla bu dosya boyutunu sadece uygulamadaki bir doküman kitaplığı üzerinde arttırmak mümkün değil.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-4184290590480766631?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/4184290590480766631/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/sharepointte-dokuman-kutuphanelerine.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/4184290590480766631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/4184290590480766631'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/sharepointte-dokuman-kutuphanelerine.html' title='Sharepoint&apos;te doküman kütüphanelerine yüklenebilecek dosya boyutu limitini değiştirmek'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-6438849190006212110</id><published>2009-10-07T00:02:00.000-07:00</published><updated>2009-10-07T01:16:40.835-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='stsadm'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Stsadm command yaratmak'/><title type='text'>Kendi STSADM commandimizi yaratmak</title><content type='html'>Geçen gün internette Sharepoint üzerine favori bloglarımı incelerken çok ilgimi çeken bir postla karşılaştım. Bugüne kadar default metotlarını kullandıgımız Stsadm'e metot eklememiz meğer mümkünmüş. ISPStsadmCommand arayüzünü implemente edip Run ve GetHelpMessage metotlarının içlerini doldururuz. Yapılacak işlemleri Run metodunun içine yazmamız gerekirken Help istendiğinde kullanıcıya gösterilecek mesajı döndüren metot GetHelpMessage metodudur. Sınıfımızı yarattıktan sonra oluşan dlli sign edip gac a attıktan sonra C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\CONFIG altında stsadmcommandnameimiz.xml uzantılı bir dosya oluşturarak bu dosyada commands node unun altına command nodeları şeklinde kendi commandlerimizi yazarak işlemi tamamlarız. Her bir command sekmesinin altında name ve class elementleri bulunmalıdır. Name elementi operasyonun adını tutarken, class da bu operasyonun tanımlandıgı sınıfı tanımlar. Bununla ilgili örneği Liam Clearynin blogundaki &lt;a href="http://www.helloitsliam.com/archive/2008/12/12/stsadm-command-%E2%80%93-what-is-using-my-content-types.aspx"&gt;yazıda&lt;/a&gt; bulabilirsiniz. Konuyla ilgili deneme yaparken sorularınızı bekliyorum..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-6438849190006212110?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/6438849190006212110/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/kendi-stsadm-commandimizi-yaratmak.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6438849190006212110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6438849190006212110'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/kendi-stsadm-commandimizi-yaratmak.html' title='Kendi STSADM commandimizi yaratmak'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-635177151874003781</id><published>2009-10-06T00:52:00.000-07:00</published><updated>2009-10-06T00:59:58.244-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint restore'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint Backup'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Productiondaki Sitemizle Development yapabilmek için ne yapmak gerekir?</title><content type='html'>Evet, .net uygulamalarında bildiğiniz gibi productiona aldığınız uygulamanızın veritabanını yedekleyip kendi localinize restore ederek production ortamınıza karşı geliştirme yapmayı sağlayabilirsiniz, fakat durum Sharepoint uygulamaları yapıyorsanız biraz daha karmaşıktır.  Sharepoint MVPlerinden Andrew Connell'ın bu konuda yazdığı &lt;a href="http://www.andrewconnell.com/blog/articles/restoring-production-moss-2007-publishing-sites-into-development.aspx"&gt;makale&lt;/a&gt; ilginizi çekecektir. Çok güzel bir biçimde anlatılmış ve sharepoint developerlarının en büyük sorunlarından birine çözüm olacaktır.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-635177151874003781?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/635177151874003781/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/productiondaki-sitemizle-development.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/635177151874003781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/635177151874003781'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/productiondaki-sitemizle-development.html' title='Productiondaki Sitemizle Development yapabilmek için ne yapmak gerekir?'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-7374745365214485214</id><published>2009-10-04T22:28:00.000-07:00</published><updated>2009-10-04T22:49:37.399-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPCheckOutStatus'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint CheckOut'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Doküman Kitaplığında bir itemın check-outlu olup olmadıgını anlamak</title><content type='html'>&lt;span style="font-family: times new roman;"&gt;Sharepoint doküman kitaplıkları(Document Library) ile uğraşırken en önemli problemlerden biri Doküman kitaplığında bulunan bir sayfanın özelliklerini değiştirmek istediğinizde sayfayı check-out etmeniz gerektiğidir. Bunu kod tarafında yapmak istersek SPFile nesnemizin "CheckOutStatus" isimli özelliğini kontrol etmemiz gerekir. Bu özellik SPFile.SPCheckOutStatus tipinde bir enum değeri taşır. Bu enumerasyonun alabileceği Değerler;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;1)  None--&gt; dosya check out edilmemiştir.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;2)  LongTerm--&gt; Dosya Sharepoint arayüzü tarafından checkout edilmiştir.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;3)  LongTermOffline--&gt; Dosya çevrimdışı editlenmek üzere check out edilmiştir.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;4)  ShortTerm--&gt; Dosya bir client uygulama tarafından lock edilmiştir.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt; Bizim projemizde bana gereken check-out edimemiş dosyayı check out etmek ve editlemekti. Bunun için&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;&lt;/span&gt;&lt;blockquote style="font-family: times new roman;"&gt;if(file.CheckOutStatus==SPFile.SPCheckOutStatus.None)&lt;br /&gt;     file.CheckOut();&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;Kodu yeterli olacaktır.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-7374745365214485214?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/7374745365214485214/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/dokuman-kitaplgnda-bir-itemn-check.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/7374745365214485214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/7374745365214485214'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/dokuman-kitaplgnda-bir-itemn-check.html' title='Doküman Kitaplığında bir itemın check-outlu olup olmadıgını anlamak'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-4454243725812171667</id><published>2009-10-01T17:56:00.000-07:00</published><updated>2009-10-01T18:04:22.863-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='500 Internal Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 500 Internal server Error'/><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Sharepoint 500 Internal Server Error hatası</title><content type='html'>Geçen farma bir server ekledik, ve o server üzerinde bir uygulama çağırdığımda 500 Internal server error hatası ile karşılaştım. Ne Event Logda ne de server loglarında bir detaylı bilgi bulamadım. Bunun üzerine epey bir uğrastıktan sonra Central Administration &gt; Operations &gt; Diagnistic Logging sekmesi altındaki Logging Level ımı "unexpected" dan "verbose" a değiştirdim ve sayfayı çağırdığımda&lt;br /&gt;&lt;pre&gt;"Cannot make a cache safe URL for "init.js", file not found.&lt;br /&gt;Please verify that the file exists under the layouts directory."&lt;/pre&gt;hatası ile hatanın içeriğine erişebildim. Bu hata farma yeni eklenen makineye dil servis paketinin yüklenmemiş olmasından dolayı her dil servis paketinde bulunan init.js dosyasının bulamamısından kaynaklanıyormuş.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-4454243725812171667?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/4454243725812171667/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/sharepoint-500-internal-server-error.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/4454243725812171667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/4454243725812171667'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/sharepoint-500-internal-server-error.html' title='Sharepoint 500 Internal Server Error hatası'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-3196458172949522273</id><published>2009-10-01T17:40:00.000-07:00</published><updated>2009-10-01T17:52:23.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BLOB Caching'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='BLOB'/><category scheme='http://www.blogger.com/atom/ns#' term='Caching'/><title type='text'>BLOB Caching</title><content type='html'>BLOB Caching nedir önce ondan başlayalım. BLOB , Binary Large Object anlamına gelir, BLOB Caching ise Binary yapıdaki büyük sizedaki objelerin cachlenerek Sharepoint Uygulamalarımızın performansının artmasını sağlayan bir mekanizmadır.  BLOB Caching aktifleştirildiğinde, Web Front Endimizin  database servera gidip gelmek için yaptıgı round trip sayısı azalır, Site Collection üzerindeki tüm imajların front endimizin diskinde tutulması sağlanmış olur. Blob caching ayarları uygulamanın web.config dosyasından yapılır. Bu ayarlarda en önemli özellik max-age özelliğidir. Bu özellik saniye cinsinden browserın web front ende bir imaj sormak için gitmemesi gereken süreyi belirtir. Aşağıda gördüğünüz web.config deki BlobCache sekmesi tüm imajların web front endimizin c:\blobCache diziinde depolanmasını ve browserın 24 saat süresince istekte bulunmamasını sağlayacaktır.&lt;br /&gt;&lt;pre id="ctl00_MTContentSelector1_mainContentContainer_ctl33xml"   style="border-top: 1px solid rgb(200, 205, 222); margin: 0px 0px 10px; overflow: hidden; background-color: rgb(221, 221, 221); padding-left: 5px; padding-right: 5px; padding-top: 5px; display: block; color: rgb(0, 0, 102); white-space: pre-wrap;font-family:Courier,Verdana,Arial,Helvetica,sans-serif;font-size:12px;"&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;BlobCache&lt;/span&gt; location="C:\blobCache" path="\.(gif|jpg|png|css|js)$" maxSize="10" max-age="86400" enabled="true"&lt;span style="color:blue;"&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-3196458172949522273?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/3196458172949522273/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/blob-caching.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3196458172949522273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3196458172949522273'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/blob-caching.html' title='BLOB Caching'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-3165775367743197894</id><published>2009-10-01T17:35:00.000-07:00</published><updated>2009-10-01T17:39:27.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programatik'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SPFieldLookup'/><title type='text'>Programatik olarak SPFieldLookup yaratmak</title><content type='html'>Epeydir projeler dolayısıyla blogumu güncelleyememiştim. Bazı yazılarım yazılımkulubu.com tarafından yayınlandı. Oradan da faydalı birtakım paylaşımlarıma &lt;a href="http://www.yazilimkulubu.com/"&gt;ulaşabilirsiniz&lt;/a&gt; . Bugünkü yazım kısa bir SPFieldLookup yaratma örneği olacak, umarım faydalı olur. MyList isimli listeme Lookup isimli MylookupList isimli listenin Title fieldına lookup yapacak bir field eklemek için gerekli kod aşağıdaki gibidir&lt;br /&gt;&lt;pre class="csharp"&gt;&lt;span style="color: rgb(71, 181, 255);"&gt;SPList&lt;/span&gt; myList &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; web.&lt;span style="color: rgb(0, 0, 0);"&gt;Lists&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;"MyList"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(71, 181, 255);"&gt;SPList&lt;/span&gt; myLookupList &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; web.&lt;span style="color: rgb(0, 0, 0);"&gt;Lists&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;"MyLookupList"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;myList.&lt;span style="color: rgb(0, 0, 0);"&gt;Fields&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 0);"&gt;AddLookup&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;"Lookup"&lt;/span&gt;, myLookupList.&lt;span style="color: rgb(0, 0, 0);"&gt;ID&lt;/span&gt;, &lt;span style="color: rgb(6, 0, 255);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(71, 181, 255);"&gt;SPFieldLookup&lt;/span&gt; fieldLookup &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; myList.&lt;span style="color: rgb(0, 0, 0);"&gt;Fields&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;"Lookup"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;as&lt;/span&gt; &lt;span style="color: rgb(71, 181, 255);"&gt;SPFieldLookup&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128); font-style: italic;"&gt;// Display Title Column in lookup field &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128); font-style: italic;"&gt;// (this is shown by default but this way you can change it)&lt;/span&gt;&lt;br /&gt;fieldLookup.&lt;span style="color: rgb(0, 0, 0);"&gt;LookupField&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;br /&gt; myLookupList.&lt;span style="color: rgb(0, 0, 0);"&gt;Fields&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(71, 181, 255);"&gt;SPBuiltInFieldId&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 0);"&gt;Title&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 0);"&gt;InternalName&lt;/span&gt;;&lt;br /&gt;fieldLookup.&lt;span style="color: rgb(0, 0, 0);"&gt;Update&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-3165775367743197894?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/3165775367743197894/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/programatik-olarak-spfieldlookup.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3165775367743197894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3165775367743197894'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/10/programatik-olarak-spfieldlookup.html' title='Programatik olarak SPFieldLookup yaratmak'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-2227414131839787444</id><published>2009-03-20T09:41:00.000-07:00</published><updated>2009-03-20T09:50:19.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint Web Servisleri'/><category scheme='http://www.blogger.com/atom/ns#' term='Imaging.asmx'/><category scheme='http://www.blogger.com/atom/ns#' term='Imaging Web Servisi'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Sharepoint Web Servisleriyle Çalışmak-1(Imaging Web Servisi)</title><content type='html'>Bu makale dizimizde Sharepoint'in bize sağlamış oldugu web servislerinden Imaging Servisiyle çalışmayı inceleyeceğiz.&lt;br /&gt;&lt;br /&gt;Bu Web servis sayesinde Sharepoint Picture Librarylerine imaj yükleyebiliriz. Bunu başka bir yolu Sharepoint Object Modeli kullanarak upload yapmaktır, fakat bu yol biraz daha zahmetli ve anonim kullanıcıların ekstra bir hak verilmedikçe yapamadıgı işlemlerdir. SPSecurity.RunWithElevatedPriviliges Metodu sayesinde bu kullanıcılara  admin haklarıyla resim upload ettirebiliriz, fakat dediğim gibi bunun en iyi yolu(best practice)  Imaging Web Servisini kullanmaktır. _vti_bin folderının altında duran sharepoint web servislerinin arasında bulunan Imaging Web servisini Web uygulamamıza referans olarak ekliyoruz.  WebSite/_vti_bin/imaging.asmx, Imaging servisinin yoludur.&lt;br /&gt;&lt;br /&gt;Uygulamamıza design tarafından bir file upload kontolü ve bir Yükle butonu ekleyerek,  kullanıcının dosya yüklemesini sağlayalım.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_74VM4vZVcTY/ScPIUTg7IRI/AAAAAAAAAA4/FlvOkEOxjwQ/s1600-h/ImagingDesign.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 90px;" src="http://2.bp.blogspot.com/_74VM4vZVcTY/ScPIUTg7IRI/AAAAAAAAAA4/FlvOkEOxjwQ/s320/ImagingDesign.JPG" alt="" id="BLOGGER_PHOTO_ID_5315312236388622610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sonrasında Butonun Click yordamına aşağıdaki kodu yazıyoruz.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_74VM4vZVcTY/ScPInCd0UGI/AAAAAAAAABA/qjKcqwN0gEM/s1600-h/imagingKod.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 82px;" src="http://2.bp.blogspot.com/_74VM4vZVcTY/ScPInCd0UGI/AAAAAAAAABA/qjKcqwN0gEM/s320/imagingKod.jpg" alt="" id="BLOGGER_PHOTO_ID_5315312558229704802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yukarıdaki kodda kullanılan Imaging Servisinin Upload Metodunun ilk parametresi resmin yükleneceği Listenin ismi, 2.parametresi liste içerisinde herhangi bir foldera yüklenecekse folderın ismi, 3.parametresi yüklenecek resmin byte array hali, 4.parametre resim kitaplıgında bu resme verilmesi istenen isim, 5.parametrede resim kitaplıgımızda aynı isimde bir dosya bulunuyorsa onun overwrite edilip edilmeyeceğidir.&lt;br /&gt;&lt;br /&gt;Aşağıda kod çalıstırıldıktan sonra UploadResimler isimli PictureLibrary'e resmin yüklendiğini görüyoruz.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_74VM4vZVcTY/ScPI5-mImsI/AAAAAAAAABI/_AxkgQWS78A/s1600-h/UploadGaleriler.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 258px;" src="http://1.bp.blogspot.com/_74VM4vZVcTY/ScPI5-mImsI/AAAAAAAAABI/_AxkgQWS78A/s320/UploadGaleriler.jpg" alt="" id="BLOGGER_PHOTO_ID_5315312883608361666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu postumda Sharepoint Web Servislerinden Imaging Servisi sayesinde Resim Kitaplıklarına resim eklemeyi gördük. Sonraki makalelerimizde diğer Sharepoint web servislerinden de bahsedeceğim.&lt;br /&gt;&lt;br /&gt;Herkese iyi çalışmalar..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-2227414131839787444?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/2227414131839787444/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/sharepoint-web-servisleriyle-calsmak.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/2227414131839787444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/2227414131839787444'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/sharepoint-web-servisleriyle-calsmak.html' title='Sharepoint Web Servisleriyle Çalışmak-1(Imaging Web Servisi)'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_74VM4vZVcTY/ScPIUTg7IRI/AAAAAAAAAA4/FlvOkEOxjwQ/s72-c/ImagingDesign.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-3213761172444846730</id><published>2009-03-18T15:07:00.001-07:00</published><updated>2009-03-18T15:26:26.354-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Listing Web Parts in a Web Part Page and Getting their Properties&apos; values'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Parts'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Part sayfasındaki Web Partları Listelemek ve Özelliklerinin değerlerine erişmek'/><title type='text'>Bir Page üzerindeki Web Partları Listelemek ve Propertylerine erişmek</title><content type='html'>Uğraştıgım proje kapsamında Bir Web Part Page üzerindeki Web partları ve bu web partların değerlerini elde edip başka bir sayfada listeleme yapmam istendi. Daha evvel uğraşmadıgım bu konu hakkında internette de işe yarar bir kaynak bulamadım. &lt;br /&gt;Bunun için  değerli arkadaşım Y.Tarık Kranda ile(kendisi de en kısa sürede bloglarıyla aramızda olacak) SPWeb sınıfının tüm metodlarını derinlemesine inceleyip Site üzerindeki herhangi bir Web Part Pagedeki web partları elde edebileceğimiz metodu bulduk. Lafı fazla uzatmadan koda geçiyorum.&lt;br /&gt;&lt;br /&gt;SPWeb webLists = SPContext.Current.Site.RootWeb.Webs["Listeler"]; //burda Listeler sitesini elde ediyoruz&lt;br /&gt;SPLimitedWebPartManager man =webLists.GetLimitedWebPartManager("Pages/Favoriler.aspx", PersonalizationScope.Shared);&lt;br /&gt; //Listeler sitesindeki Favoriler.aspx sayfasının Web Part Managerini elde ediyoruz&lt;br /&gt;SPLimitedWebPartCollection webParts = man.WebParts;&lt;br /&gt;//Favoriler.aspx'in web part koleksiyonunu alıyoruz&lt;br /&gt;foreach (System.Web.UI.WebControls.WebParts.WebPart part in webParts)&lt;br /&gt;{&lt;br /&gt;  if (part is TTNetAv.Audio.WebPart.EditorPlayListWebPart &amp;&amp;part.Visible)&lt;br /&gt;      {&lt;br /&gt;        TTNetAv.Audio.WebPart.EditorPlayListWebPart webPart=(TTNetAv.Audio.WebPart.EditorPlayListWebPart)part; //web partımızı Cast ediyoruz.&lt;br /&gt;              &lt;br /&gt;      }&lt;br /&gt;}&lt;br /&gt;Sayfanın WebPartManager'ine eriştikten sonra sayfadaki istediğimiz web partları silebilir, yeni web part ekleyebilir, başka bir web partla consumer-provider ilişkisini set edebiliriz. Önümüzdeki postlarda bu konularda örnekler yapmaya çalışacağım.&lt;br /&gt;Şimdilik iyi çalışmalar diliyorum herkese..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-3213761172444846730?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/3213761172444846730/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/bir-page-uzerindeki-web-partlar.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3213761172444846730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3213761172444846730'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/bir-page-uzerindeki-web-partlar.html' title='Bir Page üzerindeki Web Partları Listelemek ve Propertylerine erişmek'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-6610765639387412233</id><published>2009-03-14T11:07:00.000-07:00</published><updated>2009-03-14T11:16:20.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPChoiceField'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Choice Tipindeki Fieldlara Programatik olarak choice eklemek</title><content type='html'>Sharepoint listelerinde kullanılan Choice tipindeki kolonlara Choice eklemek için aşağıdaki kod bloğunu kullanıyoruz.&lt;br /&gt;SPFieldMultiChoice choiceField = (SPFieldMultiChoice)myWeb.Fields["Yemekler"];&lt;br /&gt;&lt;br /&gt;choiceField.Choices.Add("Pilav");&lt;br /&gt;&lt;br /&gt;//eğer yaptıgımız field değişikliklerinin ilgili Liste ve içerik türlerine yansımasını istiyorsak fieldımızın PushChangesToLists özelliğini true atamamız gerekir.&lt;br /&gt;&lt;br /&gt;choiceField.PushChangesToLists = true; &lt;br /&gt;&lt;br /&gt;choiceField.Update();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-6610765639387412233?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/6610765639387412233/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/choice-tipindeki-fieldlara-programatik.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6610765639387412233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6610765639387412233'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/choice-tipindeki-fieldlara-programatik.html' title='Choice Tipindeki Fieldlara Programatik olarak choice eklemek'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-9202759787498806799</id><published>2009-03-14T06:53:00.000-07:00</published><updated>2009-03-14T07:10:34.613-07:00</updated><title type='text'>Bir İnsan Neden Yazılımla Uğraşır?</title><content type='html'>Geçenlerde arkadas meclisinde böyle bir soruyla karşılaştım. Hemen cevap vermek istemedim ve uzunca düşündüm. Bu düşünme sonucu, sanırım kendi nedenlerimi buldum. Üniversiteye girerken bir bilinmezlikti Bilgisayar Mühendisliği benim için. Biraz çevreden aldıgım tepkiler, yorumlar, istikbali olan bir meslek oldugunun sık sık tekrarlanmasıydı kararımı şekillendiren. Fakat ünivesite yıllarında seçimimin eğlenceli yanlarını keşfetmeye başladım. Öncelikle problem çözmek, kafayı sürekli dinç tutan bir hadise ve beni mutlu eden bir durum. Etrafımda kafası çalışan, Mühendisliğin ve Yazılımın temelinde bulunan mantık kavramını hayatının her noktasında uygulayan ya da uygulamaya çalışan insanların olması da hoş.. Bir sorunla karşılaştıgınızda, forumlar yoluyla hayatınızda hiç karşılaşmadıgınız bir Hintlinin size yardımcı olması ve genel anlamıyla yazılım geliştiriciler arasında bulunan bu dayanışma da gerçekten büyüleyici.. Gittiğiniz işte müşteri dırdırıyla uğraşmadan kendi dünyanızda huzurlu bir biçimde kod yazabilmeniz, hatta freelance dediğimiz kendi evimizden işimizi yürütebilmemiz de çoğu insanın hosuna gider heralde. Diğer meslekleri kötülemek gibi bir derdim yok yalnız, yazılımla uğraşan insanlar gerçekten kıymetli insanlar. Uzaya uydu fırlatılıyor, tüm hesaplamaları yapan arkada çalışan yazılımlar. Arabadaki tüm sensörlerin arkasında, apartmanımızda katlar arası transportationı sağlayan asansörün işleyişinde, Sağlık sektöründeki tetkik cihazlarının arkasında, Internette gezindiğimiz sitelerde, oynadıgımız oyunlarda, ve daha tonlarca alanda çalışan başarılı yazılımlarla karşı karşıyayız. Bunların arkasındaki tanımadıgımız insanlara saygı duyuyoruz. Yazılımcıların geliştirdiği Msn Messengerı tüm dünya, genç yaşlı kullanıyor. Facebook çılgınlığı aldı başını gitti. Googlesız yaşayamaz olduk. Merak ettiğimiz her türlü bilgiye internetteki bu yazılım dehası search engine ile sahibiz artık. Dünyaya böylesi faydaları olan  yazılım insanlardan biri olabilmek için ilk adım bunun eğitimini almak ve bu yolda ilerlemek. Bende bu alanda bir asker oldugum için kıvançlıyım, mutluyum.&lt;br /&gt;Kalın Sağlıcakla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-9202759787498806799?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/9202759787498806799/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/bir-insan-neden-yazlmla-ugrasr.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/9202759787498806799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/9202759787498806799'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/bir-insan-neden-yazlmla-ugrasr.html' title='Bir İnsan Neden Yazılımla Uğraşır?'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-3217613565342890092</id><published>2009-03-14T06:39:00.000-07:00</published><updated>2009-03-14T06:50:35.123-07:00</updated><title type='text'>UserControlleri Web Partlarda Load Etmek</title><content type='html'>Senelerce bu konuda Return of SmartPart, Son of SmartPart gibi Jan Tielens isimli bir Sharepoint gurusunun yazdıgı uygulamaları imrene imrene kullandık, fakat user controlleri web partlarda gösterebilmek zaten basit bir hadiseymiş. Bildiğiniz gibi Web Part geliştirirken design time desteği alamıyoruz ve kod tarafında htmlTable,HtmlTableRow, HtmlTableCell, Generic Control, ASP.Net 2.0 server kontrolleri yaratmak özellik atamak, data gösteren DataList, Repeater, GridView, vb kontrollerin Templatelerini ve Bindinglerini yapmak zorunda kalıyoruz. User Controllerin sundugu design time supportla kodlarımızı geliştirmek hepimizin tercihi oluyor çoğu sefer. Peki bu yazdıgımız kontrolü Web Part olarak nasıl yükleyeceğiz?&lt;br /&gt;İşte Cevap...&lt;br /&gt;Öncelikle yarattıgımız UserControlün ASCX uzantılı dosyasını 12inin altındaki TEMPLATES/CONTROLTEMPLATES folderına kopyalıyoruz. UserControlümüzü içeren dll imizi uygulamamızın  bin klasörüne kopyaladıktan sonra user controlümüzü Load edecek web partımızı aşağıdaki gibi oluşturuyoruz.&lt;br /&gt;&lt;br /&gt;public class MainPageGalleriesWebPart:System.Web.UI.WebControls.WebParts.WebPart&lt;br /&gt;    {&lt;br /&gt;        MainPageGalleriesUserControl uc;&lt;br /&gt;        protected override void CreateChildControls()&lt;br /&gt;        {&lt;br /&gt;            this.ChromeType = PartChromeType.None;&lt;br /&gt;            base.CreateChildControls();&lt;br /&gt;            uc = (MainPageGalleriesUserControl)this.Page.LoadControl(@"\_controltemplates\MainPageGalleriesUserControl.ascx");&lt;br /&gt;            this.Controls.Add(uc);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;Web Partımızın dllini uygulamamızın bin klasörüne ekleyip webPartımızı web.config dosyasında SafeControl olarak ekledikten sonra Uygulamamızda SiteSettings altındaki WebParts kısmına gidiyoruz. Buradan New Dİyerek WebPartımızı seçiyor ve Populate ediyoruz. Bundan sonra Sayfanızda web part Zonelara Web partınızı ekleyebilirsiniz artık. Bir hata yapmadıysanız Web Partınız içerisinde userControlünüzü görüntüleyeceksiniz. Sorularınız olursa yorumlar kısmına yazmanızı bekliyorum. Bir sonraki postta görüşmek üzere..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-3217613565342890092?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/3217613565342890092/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/usercontrolleri-web-partlarda-load.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3217613565342890092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3217613565342890092'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/usercontrolleri-web-partlarda-load.html' title='UserControlleri Web Partlarda Load Etmek'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-3342075774736299418</id><published>2009-03-14T05:39:00.000-07:00</published><updated>2009-03-14T05:53:48.807-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Picture library'/><category scheme='http://www.blogger.com/atom/ns#' term='Sorting'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Sharepoint'te Picture Libraryleri ile işlem yapmak</title><content type='html'>Geçen gün bir projemiz kapsamında bir Web'deki Picture Libraryleri olusturulma tarihine göre en büyük 3ünü çekmem ve göstermem istendi. Listelerin itemları için CAML Queryler ile sorgular olusturup list itemlarını istediğimiz kriterlere göre çekebiliyorduk. Fakat sitedeki Picture Libraryler için böyle bir imkanımız yok sanırım, uzun aramalar sonucu kolay bir yol bulamadım ve aşağıdaki yolu izleyerek problemi çözdüm, umarım faydası olur herkese..&lt;br /&gt;&lt;br /&gt;  SPWeb webGalleries=SPContext.Current.Site.RootWeb.Webs["Galeriler"];&lt;br /&gt;  List&lt;SPPictureLibrary&gt; libraries = new List&lt;SPPictureLibrary&gt;();&lt;br /&gt;  foreach (SPList lib in webGalleries.Lists)&lt;br /&gt;  {&lt;br /&gt;   if (lib is SPPictureLibrary) //Eğer liste Picture Library Tipindeyse, kendi Collection ıma ekliyorum&lt;br /&gt;       libraries.Add((SPPictureLibrary)lib);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; Yukarıdaki kod bloğuyla Webimizdeki Picture Library tipindeki listeleri kendi olusturdugumuz listeye ekliyoruz. Bundan sonrası hepimizin bildiği sorting işlemi.&lt;br /&gt;&lt;br /&gt;           for (int i = 0; i &lt; libraries.Count; i++)&lt;br /&gt;            {&lt;br /&gt;              for (int j = i + 1; j &lt; libraries.Count; j++)&lt;br /&gt;               {&lt;br /&gt;                   if (libraries[i].Created &gt; libraries[j].Created)&lt;br /&gt;                    {&lt;br /&gt;                        SPPictureLibrary temp = libraries[j];&lt;br /&gt;                        libraries[j] = libraries[i];&lt;br /&gt;                        libraries[i] = temp;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;               &lt;br /&gt;            }&lt;br /&gt;Bu şekilde Picture Librarylerimizi Yaratılma Tarihine göre sıraladık basit bir sorting algoritması kullanarak. Bundan daha basit bir şekilde Picture Libraryleri sorgulama imkanı olabileceğini düşünmekle beraber, sizden alternatif önerilerinizi bekliyorum. Bir sonraki postta görüşürüz..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-3342075774736299418?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/3342075774736299418/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/sharepointte-picture-libraryleri-ile.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3342075774736299418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3342075774736299418'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/sharepointte-picture-libraryleri-ile.html' title='Sharepoint&apos;te Picture Libraryleri ile işlem yapmak'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-7177986466510458315</id><published>2009-03-02T16:13:00.000-08:00</published><updated>2009-03-14T05:54:39.435-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPSecurity.RunWithElevatedPriviliges()'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SPSecurity'/><title type='text'>SPSecurity.RunWithElevatedPriviliges() Metodu ve Kullanım Alanları</title><content type='html'>MOSS 2007 üzerinde uygulama geliştirme yaparken dikkat etmemiz gereken konulardan biri yazacağımız kodda x bi kullanıcıyı adimn gibi daha üst bir rolün yetkileriyle donatıp o yetkilere göre bazı işlemler yapmasını sağlayabiliriz. Mesela kodumuz içerisinden kullanıcılarımıza UserProfile nesnelerine erişip veri okuyup veri yazma hakkı verecek, sharepointteki bir document librarydeki bir dokümanı okuyup yazmasını sağlayacaksak(örnekler çoğaltılabilir), yetki sorunuyla karşılaşırız çoğu zaman. Bu sorunu aşmanın yolu SPSecurity sınıfının RunWithElevatedPriviliges static metodunu bir delege parametreyle çağırmak ve bu delege yoluyla öncelikle yeni bir SPSite nesnesi yaratıp, bu elevate edeceğimiz priviligeların geçerli olacağı siteyi belirtip daha sonrasında elevate ettiğimiz kullanıcının yetkilerine sahip olarak işlemlerimizi yapmak.&lt;br /&gt;Örnek kodu da aşağıda paylaşıyorum. Bir sonraki postta görüşmek üzere..&lt;br /&gt;&lt;br /&gt;SPSecurity.RunWithElevatedPrivileges(delegate()&lt;br /&gt;            {&lt;br /&gt;                using (SPSite topSite = new SPSite(SPContext.Current.Site.WebApplication.Sites["/"].ID))&lt;br /&gt;                {&lt;br /&gt;                    SPFolder folder = topSite.RootWeb.GetFolder(belgelerFolder);&lt;br /&gt;&lt;br /&gt;                    SPFileCollection files = folder.Files;&lt;br /&gt;                    SPFile file = files["GnTahmin.xml"];&lt;br /&gt;                    doc.Load(file.OpenBinaryStream(SPOpenBinaryOptions.None));&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            );&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-7177986466510458315?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/7177986466510458315/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/spsecurityrunwithelevatedpriviliges.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/7177986466510458315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/7177986466510458315'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/spsecurityrunwithelevatedpriviliges.html' title='SPSecurity.RunWithElevatedPriviliges() Metodu ve Kullanım Alanları'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-8346535532636835642</id><published>2009-03-02T14:48:00.000-08:00</published><updated>2009-03-02T15:45:53.559-08:00</updated><title type='text'>Anonim kullanıcılara bir liste üzerinde Programatik olarak yetki vermek</title><content type='html'>Son projem çerçevesinde bazı anketlere anonim kullanıcılar için edit items ve add items yetkisi verilmesini sağlamam istendi. Bildiğiniz gibi sharepoint surveylerinde girilen her bir entry için öncelikle newForm.aspx, sonrasında da editForm.aspx çağırılır. Yani önce anket cevap itemını newForm.aspx ile yaratıp EditForm.aspx ile bu yaratılmış cevabı düzenlersiniz. Bu çerçevede survey tipinden olusturulan listelere ya da daha genel olarak tüm  listelere anonim olarak item eklemek, editlemek vs gibi işlemler için listenin AnonymousPermMask obsolete özelliğini ya da obsolete olmayan AnonymousPermMask64 özelliğini kullanıyoruz.&lt;br /&gt;Aşağıda projemizden bir örneğini görebilirsiniz.&lt;br /&gt;&lt;br /&gt;SPList objSurvey = SPContext.Current.Web.Lists["Anketim"];&lt;br /&gt;objSurvey.AnonymousPermMask64 =(SPBasePermissions.Open |&lt;br /&gt;&lt;br /&gt;        SPBasePermissions.OpenItems |&lt;br /&gt;&lt;br /&gt;        SPBasePermissions.ViewFormPages |&lt;br /&gt;&lt;br /&gt;        SPBasePermissions.UseClientIntegration |&lt;br /&gt;&lt;br /&gt;        //SPBasePermissions.UseRemoteAPIs |&lt;br /&gt;&lt;br /&gt;        SPBasePermissions.ViewListItems |&lt;br /&gt;&lt;br /&gt;        SPBasePermissions.AddListItems);&lt;br /&gt;        &lt;br /&gt;        objSurvey.Update();&lt;br /&gt;&lt;br /&gt;Bir sonraki postumda tüm login olmuş authenticated kullanıcılara yetki vermek ve bir Sharepoint security group a yetki vermekten bahsedeceğim.&lt;br /&gt;Herkese iyi çalışmalar..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-8346535532636835642?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/8346535532636835642/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/anonim-kullanclara-bir-liste-uzerinde.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/8346535532636835642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/8346535532636835642'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/anonim-kullanclara-bir-liste-uzerinde.html' title='Anonim kullanıcılara bir liste üzerinde Programatik olarak yetki vermek'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-6708819592819323919</id><published>2009-03-02T13:18:00.000-08:00</published><updated>2009-03-02T13:26:51.963-08:00</updated><title type='text'>SPDisposeCheck Toolu yayınlandı</title><content type='html'>Sharepoint obje modeliyle çalışırken SPSite ve SPWeb objelerini new keywordüyle yarattıgımızda memoryde sitenin bir instance ını olusturdugumuzu düşünün. Bu instance'ın dispose edilmesi uygulamamızın hızlı çalışması açısından kritiktir. Using keywordüyle ya da işimiz bittiğinde kendimiz dispose metodunu çağırarak bu objeleri dispose edebiliriz. Microsoft,  compile edilen assembly kodlarını bile okuyarak dispose edilmeyen ve memory leakler olusturabilecek kodları bulan &lt;a href='http://code.msdn.microsoft.com/SPDisposeCheck'&gt;SPDisposeCheck&lt;/a&gt; isimli toolunu yayınlamış.Sizde bu adresten bu toola erişerek Sharepoint obje modeliyle çalısırken best practice lere uyup uymadıgınızı ya da unuttugunuz kod içinde dispose edilmeyen SPWeb SPSite objelerini bulup kodunuzu düzeltebilirsiniz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-6708819592819323919?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/6708819592819323919/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/spdisposecheck-toolu-yaynland.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6708819592819323919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6708819592819323919'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/03/spdisposecheck-toolu-yaynland.html' title='SPDisposeCheck Toolu yayınlandı'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-898614758142793830</id><published>2009-02-24T03:56:00.000-08:00</published><updated>2009-03-02T13:18:41.943-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Survey'/><category scheme='http://www.blogger.com/atom/ns#' term='Anket Özelleştirme'/><category scheme='http://www.blogger.com/atom/ns#' term='Anket fields'/><category scheme='http://www.blogger.com/atom/ns#' term='Survey Customization'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Anket'/><title type='text'>Sharepoint Survey EditForm.aspx nasıl editlenir?</title><content type='html'>Uğrastığım proje kapsamında Sharepoint'in anket yapısını customize etmem gerektiğinden bahsetmiştim. Sharepoint'in yapısı gereği ankete başladıgınızda bulundugunuz Anketin New Form.aspx sayfası, ankette ilerleyip başka bir soru için sayfa atladığınızda EditForm.aspx sayfası yüklenir. Benden her sayfaya ankette soruların % kaçı cevaplandıgına dair bir progress bar koymam istendi. NewForm.aspx ilk soru için çalışacağı için ilk sayfada %0 yazmasında bir sakınca yoktu. Fakat ankette dallanma sonucu başka bir sayfaya yönlendiğimizde EditForm.aspx sayfası yükleniyor. Burdaki mantık aslında gayet basit.. Ilk soru için NewForm.aspx'in çalısmasının sebebi Sharepoint anketine yeni bir cevap giriyor olmamız. Yani listeye yeni bir item giriyoruz dolayısıyla diğer tüm listelerde oldugu gibi NewForm.aspx sayfasıyla item olusturuluyor. Daha sonraki her cevabımızda kendi olusturdugumuz list item'ı editlemiş oluyoruz. Neyse bu kısa ön bilgiden sonra konumuza dönelim...&lt;br /&gt;&lt;br /&gt;Öncelikle EditForm.aspx sayfası yüklendiğinde FirstField parametresinin içi o sayfada görüntülenecek ilk soru bilgisiyle dolar(EditForm.aspx?FirstField=naber gibi).&lt;br /&gt;Bütün bu sorular anketimizin fieldlarına 0 indexinden başlayarak ekleniyor.Standart bir anketin 43 tane field ı oldugunu bildiğimize göre mevcut anketin field sayısından 43 ü çıkararak kaç tane soru oldugunu bulabiliyoruz.&lt;br /&gt;FirstField QueryString değerini okuyarak da Sayfada görüntülenecek ilk soru değerini(Bu da anketin bir fieldına tekabül ediyor) alabiliyoruz. Bu ilk sorunun yani anket fieldının, anket fieldlarında kaçıncı sırada oldugunu bulup bunu toplam soru adetine oranlayarak anketin % kaçına geldiğini bulabiliyoruz kullanıcımızın. Mevzu kısaca bu, pek kısa olmadı gerçi.. Neyse Kodumu da açıklayıcı olması açısından aşağıya koyuyorum.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;using System;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using Microsoft.SharePoint;&lt;br /&gt;namespace TTEIMWebControls.UserControls.AnketCustomization&lt;br /&gt;{public partial class AnketProgressBar : System.Web.UI.UserControl&lt;br /&gt;{protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{if (!this.IsPostBack)&lt;br /&gt;{string firstField=Request.QueryString["FirstField"].ToString();&lt;br /&gt;if (!firstField.Equals(string.Empty)){&lt;br /&gt;string anketName = GetAnketName();&lt;br /&gt;SPWeb curWeb = SPContext.Current.Web;&lt;br /&gt;SPField field = curWeb.Lists[anketName].Fields.GetFieldByInternalName(firstField);&lt;br /&gt;bool fieldExists = CheckField(field, curWeb.Lists[anketName]);&lt;br /&gt;if (!fieldExists){&lt;br /&gt;SPList anketList = curWeb.Lists[anketName];&lt;br /&gt;/*each Question created by the user is added as a field, that's why we get the number ofquestions by subtracting the number of already existing fields from the total field count*/&lt;br /&gt;&lt;br /&gt;int totalSoru = anketList.Fields.Count - 43;&lt;br /&gt;int index = 1;/*we get the current question's index by iterating over the list's fields from* the start and break the loop whenever we find that question field*/&lt;br /&gt;foreach (SPField fieldI in anketList.Fields){&lt;br /&gt;if (fieldI.InternalName.Equals(firstField))&lt;br /&gt;break;&lt;br /&gt;index++;&lt;br /&gt;}&lt;br /&gt;int mevcutSoruİndex = index;&lt;br /&gt;double percentage = ((double)100 / totalSoru) * index;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt;Bu user controlümüzü C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES dizini altına kopyalıyıp ilgili dll'i GAC'a deploy ediyoruz. Sonrasında Sharepoint Designer yardımıyla sitemize bağlanıp istediğimiz Anket'in EditForm. aspx 'inin içerisine register edip yerleştiriyoruz. Bundan sonra yarattıgımız anketlerin bu EditForm.aspx'i kullanmasını istiyorsak mevcut Anketimizi şablon olarak kaydedip bundan sonraki anketlerimizi bu şablondan yaratabiliriz.&lt;/span&gt;&lt;br /&gt;Hepinize iyi çalışmalar..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-898614758142793830?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/898614758142793830/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/sharepoint-survey-editformaspx-nasl.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/898614758142793830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/898614758142793830'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/sharepoint-survey-editformaspx-nasl.html' title='Sharepoint Survey EditForm.aspx nasıl editlenir?'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-2867077281890060197</id><published>2009-02-23T15:04:00.000-08:00</published><updated>2009-02-23T15:34:31.758-08:00</updated><title type='text'>Go Mongo Adında bir Restaurant</title><content type='html'>Madem blog kişiye özel bir olgu, o zaman bende biraz özel hayatımdan ufak tefek ipuçları vererek sizlerle hayatımı paylaşayım.&lt;br /&gt;Doğumgünüm 6 Temmuz'da babamın ısrarları sonucu Suadiye'deki Moğol restoranı Go Mongo ile tanıştım. Başta Moğolistanın İngilizcedeki karşılığı olan Mongolia(Mongolistan) ülkesinin yemekleriyle tanısacak olmanın yarattıgı garip ruh hali, doğumgünümün boka sarmasından duydugum endişe ve masada karşılaşabileceğim ne işe yarayacağını bile tahmin edemeyeceğim sayıda çatal kaşıkla dolu kasıcı bir gece yasama çekinceleriyle girdim Go Mongo'nun kapısından. Gerçekten şaşırtıcı derecede hos bir ambiyansı var mekanın. Yaz olması dolayısıyla terasta oturduk. Yemek öncesi birşeyler içebileceğiniz bir barı var. Genelde rezervasyon yapmayanların ayakta kaldıgı bu mekanda bi barın bulunması da fena fikir olmamış açıkçası. Yemek olarak babamın tavsiyesi üzerine Mongolian Barbeque tercih ettim. Değişik bir konsept...&lt;br /&gt;Size verilen tabağı, barbekü büfesinde tıka basa doldurabiliyorsunuz.&lt;br /&gt;Barbekü büfesinde neler yok ki.. Dana eti, kuzu eti, tavuk, levrek,karides, aklınıza gelebilecek her türlü sebze ve garnitür. Tabi bütün bunlar pişmemiş durumda. Kendi kombinasyonunuzu yapıyorsunuz ve büfenin bir diğer ucunda sizi güler yüzle  bekleyen kızın yanında alıyorsunuz soluğu. Elindeki noodle dolu bardağın üstüne aldıgınız etlere uygun bir sos belirliyorsunuz beraberce ve tahminimce mekanı Moğol yapan pişirme bölümüne geçiyorsunuz. Kombinasyonunuz  daha evvel karşılaşmadıgım ilginç bir tezgahta pişiyor ve istediğiniz takdirde pişerken zevklen izleyebiliyorsunuz yemeğinizi. 5-10 dk sonrasında o muhteşem lezzetle tanısma fırsatını yakalıyorsunuz. Gerçekten enfes:P. Bu benim fikrim elbette.. Sizi en mutlu edecek kombinasyonu yakalamanız belki biraz zaman alabilir ama tahminimce her Go Mongo'ya gittiğinizde yüzünüzde mutlu bir tebessümle beni anacaksınız.&lt;br /&gt;Su anda gece yarısı ve acıktım, acilen hiç olmazsa bir dürüm atıştırmam lazım, Kalın sağlıcakla..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-2867077281890060197?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/2867077281890060197/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/go-mongo-adnda-bir-restaurant.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/2867077281890060197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/2867077281890060197'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/go-mongo-adnda-bir-restaurant.html' title='Go Mongo Adında bir Restaurant'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-1239127345737353910</id><published>2009-02-23T14:31:00.001-08:00</published><updated>2009-02-23T14:58:18.108-08:00</updated><title type='text'>if(Sendikalasma==null) {developer.Surun();}</title><content type='html'>Bugünkü yazımda Developerlar olarak içinde bulundugumuz büyük tehlikeye karsı birazcık duyarlılıgımızı arttırmamızın şart oldugu konusundan dem vuracağım. Nedir bu büyük tehlike?&lt;br /&gt;Yıllardır süregelen bir durum olmasına rağmen bu kadar eğitilmiş insanın kendini savunmak için tek bir harekette bulunmamasını anlamakta güçlük çekiyorum. Milyon dolarlık projeler 2-3 developerın özverili çalısması sonucu 10-15 günde bitirilirken, bu developerların hayatları büyük sekteye uğruyor. Gece ofislerde sabahlamalar, dengesiz beslenme, uyku düzeninin bozulması, saatlerce maruz kalınan radyasyon sonucu bilimum hastalık ihtimali, Gözlerde ortaya çıkan ışığa karsı hassasiyet ve bence en ağır olanı sömürülmeye karsı bu kadar tepkisiz kalmak. Yani sonuçta bu bir alışverişse alanın da verenin de bu takastan memnun ayrılması gerekirken, çevremde mutlu developer görmekte güçlük çekiyorum. Bilişim öğrencileri yetiştiren kurum furyasının yükselmesi sonucu işverenler bunu bir koz olarak kullanıp ya çalısırsın ya da senin yerine çalışacak birini buluruz felsefesini benimsemiş durumda. Peki biz developerlar olarak bu kadar savunmasız olmayı kabullenecek miyiz?&lt;br /&gt;Bence Hayır. Bu işin tek çözümü bu bireyselliklerimizi bir kenara koyup birimiz hepimiz için olmaktan geçiyor. Sendikalaşıp standartlarımızı yukarı çekmeye, insan olarak yasam kalitemizi bu kadar ayaklar altına aldırmamaya mecburuz. Bu Yazı ne kadar çok developera ulasırsa bu konuda yapabileceklerimiz konusunda bi o kadar pozitif feedback alabileceğimizi düşünüyorum. Yorumlarınızı ilgiyle bekliyorum.&lt;br /&gt;Kalın Sağlıcakla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-1239127345737353910?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/1239127345737353910/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/ifsendikalasmanull-then-developersurun.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/1239127345737353910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/1239127345737353910'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/ifsendikalasmanull-then-developersurun.html' title='if(Sendikalasma==null) {developer.Surun();}'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-1204945920750320979</id><published>2009-02-19T14:23:00.000-08:00</published><updated>2009-02-19T15:03:29.555-08:00</updated><title type='text'>MOSS 2007'nin temel taşı: CAML Query</title><content type='html'>MOSS 2007 verilerini listeler aracılıgıyla tutar. En basitinden herhangi bir sayfa bile Pages listesinin itemlarındandır. MOSS 2007 ile gelen listeler WSS 'de varolan listeler ve kullanıcının kendi olusturdugu listeler olmak üzere dataların saklandıgı bir çok liste tipi mevcuttur. Peki bu listelerden verileri alıp kod tarafında bir takım işlemler uygulayıp göstermek için bu listelere nasıl sorgu atabiliriz?&lt;br /&gt;Bunun için 2 tane yolumuz var. Bunlar web servisi yardımıyla atılacak sorgular ve daha yaygın olanı obje modelini kullanarak atılacak sorgulardır. Bu sorgularda kullanılan dil olan CAML (Collaborative Application Markup Language), Sharepoint ürünlerinde kullanılan xml tabanlı bir dildir. CAML sorguları olusturmak çoğu zaman zahmetli olacağı için u2u firması, CAML Query Builder isimli, yaygın olarak kullanılan bir ürün çıkarmıştır.&lt;a href='http://www.u2u.info/SharePoint/U2U%20Community%20Tools/CamlCreatorV2.zip.'&gt; linkinden&lt;/a&gt; bu ürüne ulasabilirsiniz.&lt;br /&gt;&lt;br /&gt;Bu blogumda basit bir CAML Liste sorgusu örneği vererek sizlere bir start vermek istiyorum. Bu örnek için bir Console Application olusturuyoruz. Bu uygulamamızda Rating kontrolüyle puanlanan Sayfaların Url'lerinin ve verilen Puanların tutuldugu Puanlar isimli listemizden 3 puan verilen itemları getirmeye çalısacağız.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Text;&lt;br /&gt;using Microsoft.SharePoint;&lt;br /&gt;&lt;br /&gt;namespace ConsoleTest&lt;br /&gt;{&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            using(SPSite site=new SPSite("http://eelkabes:600"))&lt;br /&gt;            {&lt;br /&gt;                using(SPWeb currentWeb=site.OpenWeb())&lt;br /&gt;                {&lt;br /&gt;                    //Puanlar listemizi SPList tipindeki lstPuanlar değişkenimize atıyoruz&lt;br /&gt;                    SPList lstPuanlar = currentWeb.Lists["Puanlar"];&lt;br /&gt;                  // Listeyi sorgulamak için kullancağımı SPQuery sınıfından bir instance yaratıyoruz&lt;br /&gt;                    SPQuery query = new SPQuery();&lt;br /&gt;                 //Puanlar Listesinden Puan Field değeri 3 olan itemları getirecek sorgumuzu olusturuyoruz&lt;br /&gt;                    query.Query = @" &amp;lt;Where&amp;gt;&lt;br /&gt;                    &amp;lt;Eq&amp;gt;&lt;br /&gt;                    &amp;lt;FieldRef Name='Puan' /&amp;gt;&lt;br /&gt;                    &amp;lt;Value Type='Number'&gt;3&amp;lt;/Value&amp;gt;&lt;br /&gt;                    &amp;lt;/Eq&amp;gt;&lt;br /&gt;                    &amp;lt;/Where&amp;gt;";&lt;br /&gt;                    //SPList sınıfının GetItems metoduna SPQuery objemizi parametre olarak vererek listemizi sorguluyoruz&lt;br /&gt;                    SPListItemCollection items=lstPuanlar.GetItems(query);&lt;br /&gt;&lt;br /&gt;                   //Sonuç kümemiz içerisinde dolaşarak Puanlanan Item'in URL alanının değerini Console'da gösteriyoruz&lt;br /&gt;                    foreach (SPListItem item in items)&lt;br /&gt;                    {&lt;br /&gt;                        Console.WriteLine(item["URL"]);&lt;br /&gt;                    }&lt;br /&gt;                    Console.ReadLine();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Kodumuz bu kadar. CAML'a böylece giriş yapmış olduk. Bir sonraki blogumda Sharepoint Web Servisleri yardımıyla sorgular olusturup kayıtları sorgulayacağız ve update edebiliyor olacağız. Bir sonraki blogumda görüşmek üzere...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-1204945920750320979?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/1204945920750320979/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/moss-2007nin-temel-tas-caml-query.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/1204945920750320979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/1204945920750320979'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/moss-2007nin-temel-tas-caml-query.html' title='MOSS 2007&apos;nin temel taşı: CAML Query'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-5556577452848652624</id><published>2009-02-19T13:24:00.000-08:00</published><updated>2009-02-19T15:05:06.831-08:00</updated><title type='text'>MOSS 2007'de user controlleri kullanmak</title><content type='html'>Sharepoint'de user controllerini pagelerde göstermenin bir çok yolu var. En çok kullanılanı Hollandalı üstat Jan Tielens'in son of smartpart, return of smartpart gibi bir takım türevleri olan web partını koyup bu web partta görüntülenmesini istediğiniz user controlleri smartpartın istediği klasöre kopyalamak ve dll'i gac a basmak. Bu işlem basit gözüküyor, fakat bu toolu kullanmadan da user controlleri sharepoint pagelerine koyabilirmiyiz sorusuna cevap ararken su anda çalıstıgım projedeki danısmanım Nezih Tınas çok basit başka bir yöntem göstererek bir nevi ufkumu genişletti. Ne demişler, bana bir kelime öğretenin bin yıl kulu kölesi olurum diye, kendisiyle yıldızımız çoğu zaman barısmasa da teşekkürlerimi sunuyorum kendisine ve yazdıgı ilk Türkçe MOSS kitabını okumanızı tavsiye ediyorum. &lt;a href="http://www.nezihtinas.net/2009/02/ilk-turkce-moss-2007-yonetim-kitab_15.html"&gt; tıklayarak&lt;/a&gt; kitap hakkında daha fazla bilgi alabilirsiniz. Neyse biz konumuza dönelim fazla dağılmadan. User controlümüzü olusturduktan sonra yapacağımız hareket ascx uzantılı dosyamızı &lt;span style="font-weight:bold;"&gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES&lt;/span&gt; klasörünün altına koymak vace ilgili dll'i ya GAC'a ya da bine kopyalayıp web.configde ilgili dll'leri register etmek.&lt;br /&gt;&lt;br /&gt;Daha sonra kullandıgım en kötü tool olmasına rağmen rakibi olmaması sebebiyle kullanmak zorunda oldugumuz Sharepoint Designer yardımıyla portalimize erişip bir sayfaya bu kontrolü register ederek yola devam ediyoruz&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;%@ Register TagPrefix="tteim" TagName="GS" Src="~/_controltemplates/TTEIM/AnketGirisUserControl.ascx" %&gt; //AnketGirisUserControlümüzü register ediyoruz.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ve en son olarak da&lt;br /&gt;bu kontrolümüzü form taglarının arasına yerleştirerek misyonumuzu tamamlıyoruz.&lt;br /&gt;&lt;form id="form1" runat="server"&gt;&lt;br /&gt;&lt;tteim:gs runat="server" id="gs"&gt;&lt;/tteim:gs&gt;&lt;/form&gt;&lt;br /&gt;Bundan sonra sitenizde kontrolü yerleştirdiğimiz sayfaya giderek user controlümüzü görebiliriz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-5556577452848652624?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/5556577452848652624/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/sharepointde-user-controlleri-kullanmak.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/5556577452848652624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/5556577452848652624'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/sharepointde-user-controlleri-kullanmak.html' title='MOSS 2007&apos;de user controlleri kullanmak'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-6456351365226879107</id><published>2009-02-19T12:55:00.001-08:00</published><updated>2009-02-24T06:34:19.782-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Timer Job'/><category scheme='http://www.blogger.com/atom/ns#' term='SPJobDefinition'/><category scheme='http://www.blogger.com/atom/ns#' term='Installation'/><title type='text'>Timer Job Nasıl Install edilir?</title><content type='html'>bir önceki blogumda MOSS'da bir timer jobun nasıl yazılacağından bahsetmiştim. Peki bu jobu nasıl install ederiz? Ne zamanlarda çalısacağını nasıl belirtiriz?&lt;br /&gt;Bu blogumda bu konulara açıklık getirmek istiyorum. Bir önceki blogumda yazdıgım jobu install ederek başlayalım. Bu jobu bir FeatureReceiver yazarak deploy etmek en kullanıslı yoldur. SPFeatureReceiver classından türeyen bir sınıf yaratıp, bu abstract sınıfın metodlarını implement ediyoruz.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;class ProfileBasedReportInstaller:SPFeatureReceiver&lt;br /&gt;{&lt;br /&gt;const string TASK_LOGGER_JOB_NAME = "My Reporting Job"; //jobumuzun central administrationdaki joblar arasında görülecek ismi&lt;br /&gt;&lt;br /&gt;public override void FeatureInstalled(SPFeatureReceiverProperties properties)&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public override void FeatureUninstalling(SPFeatureReceiverProperties properties)&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public override void FeatureActivated(SPFeatureReceiverProperties properties)&lt;br /&gt;{&lt;br /&gt;SPWeb web = properties.Feature.Parent as SPWeb;&lt;br /&gt;&lt;br /&gt;// make sure the job isn't already registered&lt;br /&gt;foreach (SPJobDefinition job in web.Site.WebApplication.JobDefinitions)&lt;br /&gt;{&lt;br /&gt;if (job.Name == TASK_LOGGER_JOB_NAME)&lt;br /&gt;job.Delete();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// install the job&lt;br /&gt;DailyProfileBasedRatingReportJobDefinition myjob = new DailyProfileBasedRatingReportJobDefinition(TASK_LOGGER_JOB_NAME, web.Site.WebApplication); //jobumuzdan bir instance yaratıyoruz&lt;br /&gt;&lt;br /&gt;//jobumuzun çalısacağı zamanları set ediyoruz&lt;br /&gt;SPMinuteSchedule schedule = new SPMinuteSchedule();&lt;br /&gt;schedule.BeginSecond = 1;&lt;br /&gt;schedule.EndSecond = 59;&lt;br /&gt;schedule.Interval = 1;&lt;br /&gt;myjob.Schedule = schedule;&lt;br /&gt;&lt;br /&gt;myjob.Update();&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;İşte jobumuz için bu featureReceiver ı yazdıktan sonra yapmamız gereken iş C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES klasöründe yeni bir folder olusturarak feature.xml imizi içine koymak.&lt;br /&gt;Feature.xml imizin içinde feature ımızın receiver classını ve receiver Assemblysini yazmamız yeterli olacaktır.&lt;br /&gt;&lt;br /&gt;Örnek feature.xml için kendi feature.xml imin içeriğini aşağıya kopyalıyorum.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;feature id="F1AF2E70-B601-4e8a-BA41-5E0A03F3D4AF" title="ReportJobEnablingFeature" description="bla bla" xmlns="http://schemas.microsoft.com/sharepoint/" scope="Web" hidden="FALSE" version="1.0.0.0" receiverassembly="Features, Version=1.0.0.0, Culture=neutral, PublicKeyToken=be874907d7dcbab7" receiverclass="Features.GunlukRaporProfil.ProfileBasedReportInstaller"&gt;&lt;br /&gt;&lt;br /&gt;daha sonrasında yapacagınız iş stsadm ile feature ınızı install etmek ve portalinize gidip feature ınızı aktive etmek.&lt;br /&gt;&lt;br /&gt;İşte bir sharepoint jobu yaratmak ve install etmek bu kadar kolay. Bir sonraki blogumda FeatureReceiver'ın FeatureDeactivating metodunda install ettiğimiz jobu uninstall eden kodu yazacağız.&lt;br /&gt;Bir sonraki blogda görüşmek üzere..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-6456351365226879107?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/6456351365226879107/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/timer-job-nasl-install-edilir_19.html#comment-form' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6456351365226879107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/6456351365226879107'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/timer-job-nasl-install-edilir_19.html' title='Timer Job Nasıl Install edilir?'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-3665410795400642003</id><published>2009-02-18T15:14:00.000-08:00</published><updated>2009-02-24T06:32:56.340-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax Control Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Rating'/><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Timer Job'/><category scheme='http://www.blogger.com/atom/ns#' term='SPJobDefinition'/><title type='text'>MOSS 2007'de Timer Job nasıl Yazılır?</title><content type='html'>Uğrastıgım proje kapsamında yarattıgımız MOSS portali kullanıcılarının portaldeki sayfaları Ajax Control Toolkit'in rating kontrolüyle oylamaları ve bu oyların Puanlar isimli bir listede URL, Puan gibi custom sütunlar olusturularak tutulması isteniyordu. Burada ilginç birşey yok, fakat isteğin devamında günlük bir sharepoint jobun çalısarak bir excel dosyasına listedeki itemları yazdırması ve yazdırırken Oylayan kullanıcının Profilinden de bazı bilgileri çekerek onları da yazması isteniyordu.&lt;br /&gt;Sharepoint timer jobu yazmak için ilk yapılması gereken Microsoft.Sharepoint.Administration namespace'inde bulunan SPJobDefinition classından türeyen bir sınıf yaratmak.&lt;br /&gt;&lt;br /&gt;class DailyProfileBasedRatingReportJobDefinition:SPJobDefinition&lt;br /&gt;{&lt;br /&gt;Workbook book;&lt;br /&gt;Worksheet sheet;&lt;br /&gt;WorksheetRow row;&lt;br /&gt;public DailyProfileBasedRatingReportJobDefinition()&lt;br /&gt;: base()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public DailyProfileBasedRatingReportJobDefinition(string name, SPService service, SPServer server, SPJobLockType jlt)&lt;br /&gt;: base(name, service, server, jlt)&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public DailyProfileBasedRatingReportJobDefinition(string name, SPWebApplication webApp)&lt;br /&gt;: base(name, webApp, null, SPJobLockType.None)&lt;br /&gt;{&lt;br /&gt;this.Title = name;&lt;br /&gt;}&lt;br /&gt;public override void Execute(Guid targetInstanceId)&lt;br /&gt;{&lt;br /&gt;SPSite siteCollection = (this.Parent as SPWebApplication).Sites["/"];&lt;br /&gt;SPList lstPuanlar = siteCollection.RootWeb.Lists["Puanlar"];&lt;br /&gt;//Yapmamız gerekenleri yapıyoruz. Tüm kodu vermek isterdim, fakat hukuki olaylarla uğrasmak istemediğimden bunlan yetinmek zorundayız&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Bu SPJobDefinition classının Execute Metodunu override ederek job çalıstıgında ne yapması gerekiyorsa onları burada yapıyoruz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Peki simdi bu jobu nasıl install ederiz?&lt;br /&gt;Cevabı bir sonraki blogumda bulacaksınız.&lt;br /&gt;Keep Watchin'..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-3665410795400642003?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/3665410795400642003/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/sharepointde-timer-job-nasl-yazlr.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3665410795400642003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/3665410795400642003'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/sharepointde-timer-job-nasl-yazlr.html' title='MOSS 2007&apos;de Timer Job nasıl Yazılır?'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-672840006823687540.post-8244612600637026138</id><published>2009-02-18T14:43:00.000-08:00</published><updated>2009-02-24T05:22:12.075-08:00</updated><title type='text'>MOSS 2007'de anketin Özelleştirilmesi</title><content type='html'>Bu ilk blogumda daha evvel değinilmemiş bir konuya değinerek başlamak istiyorum. Bulundugum proje kapsamında MOSS'un özel listelerinden "Anket" listesini özelleştirmem istendi. Olusturulacak anketlerin bir giriş yazısı, bir teşekkür yazısı olması isteniyordu. Anketi dolduracak kişileri olusturacağım giriş sayfasına yollamak bir sorun değildi, fakat anketin bittiğini nasıl anlayıp son sorudan sonra kullanıcıyı teşekkür sayfasına gönderecektim? Mevcut anket listesinde böyle bir özellik olmadıgından custom bir Anketler isminde liste yaratarak işe başladım. Bu listede Giriş yazısı, Teşekkür yazısı, Anket Adı, Url kolonlarını olusturdum. Anket olusturmak isteyen yetkili kimse önce bu listeye bir item ekleyerek işe başlayacaktı. Yazdıgım ItemEventReceiver'in itemAdded metodunu override ederek işe başladım. Bu metod kullanıcının girdiği anket adına göre benim özelleştirdiğim anket Template inden bir anket yaratacak ve bu anketin Url ini set edecekti.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;br /&gt;class AnketItemEventReceiver : SPItemEventReceiver&lt;br /&gt;{&lt;br /&gt;public override void ItemAdded(SPItemEventProperties properties)&lt;br /&gt;{&lt;br /&gt;SPWeb currentWeb = properties.OpenWeb();&lt;br /&gt;SPListItem item = properties.ListItem;&lt;br /&gt;currentWeb.AllowUnsafeUpdates = true;&lt;br /&gt;SPFieldUrlValue urlValue = new SPFieldUrlValue();&lt;br /&gt;urlValue.Description = "Anket Url";&lt;br /&gt;&lt;br /&gt;urlValue.Url = currentWeb.Url + "/Lists/" + item["Anket_x0020_Ad_x0131_"].ToString() + "/overview.aspx";&lt;br /&gt;item["Url"] = urlValue;&lt;br /&gt;item.Update();&lt;br /&gt;&lt;br /&gt;SPListTemplate objTemplate = currentWeb.Site.GetCustomListTemplates(currentWeb.Site.RootWeb)["Anket Şablonu"];&lt;br /&gt;&lt;br /&gt;Guid objGuid = currentWeb.Lists.Add(item["Anket_x0020_Ad_x0131_"].ToString(), "survey", objTemplate);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Bu ilk blogumda herseyi anlatmayıp merakı canlı tutmak adına bana verilen bu taskı gerçekleştirmek için yaptıgım diğer hareketleri bir sonraki bloguma saklıyorum. Bu blogumla beraber bir ItemEventReceiver'in nası yazılacağı, Sharepoint object model yardımıyla olusturulan bir şablondan programatik olarak bir liste yaratılmasını görmüş olduk.&lt;br /&gt;Bir sonraki blogumda görüşmek üzere&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/672840006823687540-8244612600637026138?l=emirelkabes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emirelkabes.blogspot.com/feeds/8244612600637026138/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/bu-ik-blogumda-daha-evvel-deginilmemis.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/8244612600637026138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/672840006823687540/posts/default/8244612600637026138'/><link rel='alternate' type='text/html' href='http://emirelkabes.blogspot.com/2009/02/bu-ik-blogumda-daha-evvel-deginilmemis.html' title='MOSS 2007&apos;de anketin Özelleştirilmesi'/><author><name>Emir Elkabes</name><uri>http://www.blogger.com/profile/05733741977728927059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_74VM4vZVcTY/SZyVd0y9kXI/AAAAAAAAAAM/WzK2KH9efnU/S220/Picture(7).jpg'/></author><thr:total>1</thr:total></entry></feed>
