Sharepoint uygulamaları bir dizi web servislerini kullanarak uzaktan Sharepoint içerisindeki bilgilere ulaşabilmemize imkan veriyor. Burada Sharepoint uygulamalarından bahsederken hem WSS 3.0 (Windows SharePoint Services) hemde MOSS 2007 (Microsoft Office SharePoint Server) üzerinde yapılmış uygulamaları konuya dahil edeceğim. Programlama ile Sharepoint uygulamalarına erişmek için birçok yol vardır. Object model, web servisleri, RPC ve WebDav. Her birinin uygulamanın ihtiyaçları, kullanım yeriniz ve amacınıza göre farklı yararları vardır. (RPC ile erişim konusunda daha önceden bir makale yazmıştım. Aslında o makaledeki amacım bir sonraki makalelerde kullanmak üzere RPC metodu ile eriştiğimiz listelerdeki alanları ortaya çıkarabilmekti. Bu listelerin hangi alanları kullanarak verileri sakladığını bilmediğimden ve bununla ilgili herhangi bir bilgi bulamadığımdan dolayı url protokolü üzerinden RPC metotlarını kullanan bir kısa yolla bu alan bilgilerine ulaşabiliyordum. Bu bilgilerin ne işe yaradığını bir sonraki makalelerde ayrıntıları ile görüyor olacağız.) Sharepoint RPC protokolleri oldukça güçlü ve yararlıdırlar. Özellikle bir içerik eklemek istediğinizde rahatlıkla RPC protokollerini kullanabilirsiniz. Object model de web servislerine göre daha tutarlı ve zengin özelliklere sahip olsa da uzaktan erişim desteği yoktur. Object modeli kullanmak istiyorsanız, kodunuz Sharepoint sunucusu üzerinde çalışmalı ve sadece .NET kodu kullanarak uygulamanızı yazmalısınız. Sharepoint verisine uzaktan erişmek için çok farklı nedenler sıralanabilir. Uzaktan administrative bir script çalıştırmak isteyebilirsiniz, Sharepoint içeriğindeki takvim ile örneğin istemci makinada çalışan bir uygulamadaki görevler bölümünü konuşturup, karşılıklı güncellemeleri sağlamak isteyebilirsiniz ya da en basitinden kurum içinde Sharepoint uygulaması olmayan bir web uygulamanız vardır ve Sharepoint üzerinden gelen bilgiler ile bu uygulamanızda bir operasyon gerçekleştiriyor olabilirsiniz. İşte Sharepoint web servislerini kullanarak; uzaktan, object model içerisinde bulunan birçok özelliği de kullanarak istediğimiz dilde ve platformda uygulamalar geliştirebilir ve bu servisler üzerinden Sharepoint içeriklerine ulaşabiliriz. Birçok görev için object model ile karşılaştırdığımızda Sharepoint içerisinde bize sunulan web servisleri yetersizdir. Ama emin olun hiç olmamasından iyidir ve şu ana kadar kendi uygulamalarımda arayıp da bulamadığım bir web servisi olmadı. Mevcut web servislerinin hepsi işimi gördü. Ama gerçekten de çok zor durumda kaldınız ve mevcut web servisleri de ihtiyacı karşılamıyorsa, object model üzerinden kendinize ait web servisleri yazarak da bu sorunun üstesinden gelebilirsiniz. Şimdi WSS 3.0 and MOSS 2007 içerisinde kullanabileceğimiz web servislerine bir göz atalım. Şimdi burada WSS 3.0 and MOSS 2007 arasındaki farkları anlatıp zaman kaybetmeyeceğim. Bununla ilgili birçok makaleyi internetten bulabilirsiniz. Biz şimdi asıl bu iki teknoloji de kullanılan web servislerine odaklanalım. Bu noktada şu hatırlatmayı da yapmadan geçmeyelim. MOSS 2007 aslında WSS 3.0?ın üzerine kurulan ve IIS (Internet Information Server) üzerinde çalışan bir ASP.NET 2.0 web uygulamasıdır. Eğer ASP.NET ve ISS bilginiz varsa Sharepoint uygulamaları üzerinde çalışırken hiç zorluk yaşamayacaksınız. Yazının devamında bahsedeceğim bir çok web servis WSS 3.0 ile geliyor. Birkaç tanesi de MOSS 2007 ile. MOSS ile gelenler daha çok kurumsal uygulamalarda kullanılanlar. Gelişmiş kurumsal arama özellikleri gibi. Sharepoint web servisleri de ASP.NET web servisleri (ASMX) gibidir. Bu web servislerinin çoğunu eğer varsayılan bir kurulum gerçekleştirdi iseniz C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI klasörü altında fiziksel olarak bulabilirsiniz.
Sharepoint içerisinde birçok web servisi vardır. Bu web servisleri birçok temel işten, administrative işlere; aramadan, liste verileri ile yapabileceğimiz işlere kadar birçok işlemi kolaylıkla yapabilmemizi sağlayacak. Aşağıda referans olarak kullanabileceğiniz Sharepoint web servislerinin ve metotlarının bir listesini bulabilirsiniz. Daha sonraki makalelerimizde buradaki web servislerinin bazılarını kullanarak birçok senaryoyu Sharepoint üzerinden uygulama fırsatı elde edeceğiz. Bu servislere kendi Sharepoint uygulamanız üzerinden rahatlıkla erişebilirsiniz. Tek yapmanız gereken: http://SunucuIsmi/_vti_bin/ServisYeri Yani; adres barınıza, örneğin http://litwareportal/_vti_bin/lists.asmx yazarsanız, Lists Web servisine ve metotlarına ulaşabilirsiniz. Servis İsmi Yeri Açıklama Admin Web Servisi (_vti_adm/Admin.asmx) Deployment da kullanılan dilleri almak ve siteleri oluşturup, silmek için kullanılan yönetimsel metotlar sağlar. Metotlar CreateSite DeleteSite GetLanguage RefreshConfigCache Uyarı Web Servisi (_vti_adm/Alerts.asmx) Sharepoint liste öğeleri uyarılarıyla çalışan metotları sağlar. Metotlar DeleteAlerts GetAlerts Doğrulama Web Servisi (_vti_adm/Authentication.asmx) Form tabanlı doğrulama kullanan siteler için kullanıcı doğrulaması sağlayan client proxy si. Metotlar Login (Giriş doğrulaması için kullanılır) Mode (Mevcut sitenin doğrulama modunu döndürür) Kopyalama Web Servisi (_vti_adm/Copy.asmx) Siteler içinde ya da arasında dosyaları kopyalamak için kullanılan metotları sağlar. Metotlar CopyIntoItems (Dokümanı byte dizisi olarak sunucuda bir noktaya kopyalar) CopyIntoItemsLocal (Dokümanı sunucu üzerinde bir noktadan diğerine kopyalar) GetItem (CopyIntoItems metodu ile kullanılabilecek şekilde dokümanın byte dizisini oluşturur) Doküman Çalışma Alanı Web Servisi (_vti_adm/Dws.asmx) Doküman çalışma alanı sitelerini ve verisini yönetebilmek için kullanılan metotları sağlar. Metotlar CanCreateDwsUrl CreateDws CreateFolder FindDwsDoc GetDwsData GetDwsMetaData RemoveDwsUser RenameDws UpdateDwsData Form Web Servisi (_vti_adm/Forms.asmx) Liste içeriği ile çalışırken; kullanıcı arayüzünde kullanılan formları döndüren metotları sağlar. Metotlar GetForm GetFormCollection Resim Kütüphaneleri Web Servisi (_vti_adm/Imaging.asmx) Resim kütüphanelerini yönetmek ve oluşturmak için gerekli metotları sağlar. Metotlar CheckSubwebAndList CreateNewFolder Delete Download Edit GetItemsByIds GetItemsXMLData GetListItems ListPictureLibrary Rename Upload Liste Verisi Alan Web Servis (_vti_adm/DspSts.asmx) Sharepoint içerisindeki sitelere ve listeler için sorgulamaları çalıştırır. Metotlar Query (Sharepoint siteleri ve listeleri için sorgulamaları çalıştırır) Liste Web Servisi (_vti_adm/Lists.asmx) Listeler ve liste verisi ile çalışan metotları sağlar. Metotlar AddAttachment AddDiscussionBoardItem AddList AddListFromFeature ApplyContentTypeToList DeleteAttachment DeleteContentType DeleteContentTypeXmlDocument DeleteList GetAttachmentCollection GetList GetListAndView GetListCollection GetListContentType GetListContentTypes GetListItemChanges GetListItemChangesSinceToken GetListItems GetVersionCollection UndoCheckout UpdateContentType UpdateContentTypesXmlDocument UpdateContentTypeXmlDocument UpdateList UpdateListItems Toplantı Çalışma Alanı Web Servisi (_vti_adm/Meetings.asmx) Toplantı çalışma alanı sitelerini oluşturan ve yöneten metotları sağlar. Metotlar AddMeeting AddMeetingFromICal CreateWorkspace DeleteWorkspace GetMeetingInformation GetMeetingWorkspaces RemoveMeeting RestoreMeeting SetAttendeeResponse SetWorkspaceTitle UpdateMeeting UpdateMeetingFromICal Kişi Web Servisi (_vti_adm/People.asmx) Güvenlik gruplarını bulur ve çözümler. Metotlar ResolvePrincipals İzinler Web Servisi (_vti_adm/Permissions.asmx) Site ve liste için izinler ile çalışan metotları sağlar. Metotlar AddPermission AddPermissionCollection GetPermissionCollection RemovePermission RemovePermissionCollection UpdatePermission Dizin Yönetimi Web Servisi (_vti_adm/sharepointemailws.asmx) Active Directory e-posta dağıtım grupları ve onların üyeliklerini yöneten metotları sağlar. Metotlar ChangeContactsMembershipInDistributionGroup ChangeUsersmembershipInDistributionGroup CreateContact CreateDistributionGroup DeleteContact DeleteDistributionGroup GetJobStatus ModifyContact ModifyDistributionGroup RenameDistributionGroup Site Verisi Web Servisi (_vti_adm/SiteData.asmx) Site ya da listelerden; metadata ya da liste verisi döndüren metotları sağlar. Metotlar EnumerateFolder GetAttachments GetChanges GetContent GetList GetListCollection GetListItems GetSite GetSiteAndWeb GetSiteUrl GetURLSegments GetWeb Siteler Web Servisi (_vti_adm/Sites.asmx) Koleksiyon ya da site şablonu hakkında bilgi döndüren metotları sağlar. Metotlar ExportWeb GetSiteTemplates GetUpdatedFormDigest ImportWeb Arama Web Servisi (_vti_adm/spsearch.asmx) Arama servisleri aracılığıyla arama yapmak için gerekli metotları sağlar. Metotlar Query QueryEx Registration Status Kullanıcılar ve Gruplar Web Servisi (_vti_adm/usergroup.asmx) Kullanıcı rol tanımlamaları ve gruplar ile çalışmak için gerekli metotları sağlar. Metotlar AddGroup AddGroupToRole AddRole AddRoleDef AddUserCollectionToGroup AddUserCollectionToRole AddUserToGroup AddUserToRole GetAllUserCollectionFromWeb GetGroupCollection GetList GetListAndView GetListCollection GetGroupCollectionFromRole GetGroupCollectionFromSite GetGroupCollectionFromUser GetGroupCollectionFromWeb GetGroupInfo GetRoleCollection GetRoleCollectionFromGroup GetRoleCollectionFromUser GetRoleCollectionFromWeb GetRoleInfo GetRolesAndPermissionsForCurrentUser GetRolesAndPermissionsForSite GetUserCollection GetUserCollectionFromGroup GetUserCollectionFromRole GetUserCollectionFromSite GetUserCollectionFromWeb GetUserInfo GetUserLoginFromEmail RemoveGroup RemoveGroupFromRole RemoveRole RemoveUserCollectionFromGroup RemoveUserCollectionFromRole RemoveUserCollectionFromSite RemoveUserFromGroup RemoveUserFromRole RemoveUserFromSite RemoveUserFromWeb UpdateGroupInfo UpdateRoleDefInfo UpdateRoleInfo UpdateUserInfo Version Web Servisi (_vti_adm/Versions.asmx) Dosya versiyonları ile çalışmak için gerekli metotları sağlar. Metotlar DeleteAllVersions DeleteVersion GetVersions RestoreVersion Views Web Servisi (_vti_adm/Views.asmx) Liste view ları ile çalışmak için gerekli metotları sağlar. Metotlar AddView DeleteView GetViewCollection GetViewHtml UpdateView UpdateViewHtml UpdateViewHtml2 Web Part Sayfaları Web Servisi (_vti_adm/WebPartPages.asmx) Web Part sayfaları ile çalışmak için gerekli metotları sağlar. Metotlar AddWebPart AddWebPartToZone AssociateWorkflowMarkup ConvertWebPartFormat DeleteWebPart ExecuteProxyUpdates FetchLegalWorkflowActions GetAssemblyMetaData GetBindingResourceData GetCustomControlList GetDataFromDataSourceControl GetFormCapabilityFromDataSourceControl GetSafeAssemblyInfo GetWebPart GetWebPart2 GetWebPartCrossPageCompatibility GetWebPartPage GetWebPartPageConnectionInfo GetWebPartPageDocument GetWebPartProperties GetWebPartProperties2 RemoveWorkflowAssociation RenderWebPartForEdit SaveWebPart SaveWebPart2 ValidateWorkflowMarkupAndCreateSupportObjects Webs Web Servisi (_vti_adm/Webs.asmx) Siteler ve altsiteleri ile çalışmak için gerekli metotları sağlar. Metotlar CreateContentType CustomizeCss DeleteContentType GetActivatedFeatures GetAllSubWebCollection GetColumns GetContentType GetContentTypes GetCustomizedPageStatus GetListTemplates GetWeb GetWebCollection RemoveContentTypeXmlDocument RevertAllFileContentStreams RevertCss RevertFileContentStream UpdateColumns UpdateContentType UpdateContentTypeXmlDocument WebUrlFromPageUrl MOSS Arama Web Servisi (_vti_adm/Search.asmx) MOSS (Microsoft Office SharePoint Server) arama servisleri aracılığıyla arama yapmak için gerekli metotları sağlar. Ek olarak yönetilebilir arama özelliklerini de döndürebilen bir metot içerir. Metotlar GetSearchMetadata (Yönetilebilir özellikleri arar) Query QueryEx Registration Status
Bu makalede size referans niteliğinde olacak Sharepoint içerisindeki bilgileri erişebilmemize yardımcı olacak Sharepoint web servislerini ve metotlarını inceledik. Daha sonraki makalelerimizde bu servisleri kullanarak Sharepoint içerisindeki bilgilere nasıl erişebileceğimize bir göz atacağız. Kaynak: MSDN: Web Services SharePoint Products and Technologies Customization Policy
Bir sonraki makalelerde görüşmek üzere. İyi çalışmalar...
Tayfun AKCAY tayfun@tayfunakcay.com