Pazartesi, Ağustos 09, 2010

SharePoint 2010 Nasıl Yapılır? - Visual Studio 2010 ile External List Oluşturmak

SharePoint 2010 ile birlikte gelen yeniliklerden biri de BDC olarak kısaltabileceğimiz Business Data Connectivity Services'dir. Business Data Connectivity Services MOSS 2007 tarafındaki Business Data Catalog'un yeni versiyonu olarak düşünülebilir. Business Data Connectivity Services ile MOSS 2007'de eksikliği hissedilen bazı sorunlar çözülmüş durumda, External List bu çözümlerden bir tanesi ve hayatımızı ciddi oranda kolaylaştırıyor. Bu postta basit bir External Content Type'ın nasıl oluşturulabileceğini ve bu tipin SharePoint içerisinde nasıl kullanılabileceğinden bahsediyor olacağız.

External List'ler adından da anlaşılacağı üzere SharePoint'in dışındaki bir veri kaynağında verilerini saklayabilen listelerdir. External List kullanılarak her şeyi SharePoint'in veritabanında depolamak yerine farklı bir yer tercih ederek SharePoint'in veritabanının gereksiz yere dolması engellenebilir. Ya da daha farklı bir pencereden duruma göz atacak olursak SharePoint ile farklı bir sistemin aynı veriyi kullanması söz konusu olduğunda verinin ortak bir veritabanında depolanıyor olması anlamlı bir çözümdür. SharePoint'in daha önceki sürümlerinde bu işlemi gerçekleştirmek için Business Data Catalog ile bir çözüme gidip dışarıdaki datayı tek yönlü olarak SharePoint'e aktarabiliyorduk ve yazmış olduğumuz bir web part ile de dışarıdaki veri kaynağına verileri aktarabiliyorduk. SharePoint 2010'da tek bir çözüm ile dışarıdaki veriler direkt SharePoint'in içinde kullanılıp, bu veriler üzerinde CRUD işlemleri yapılabilmektedir.

SharePoint 2010'da External List oluşturmak için daha öncesinde bu listenin içinde kullanılacak olan tipi yani External Content Type'ı oluşturmuş olmak gerekiyor. External List oluşturulurken kullanılacak olan External Content Type seçilip listenin ekranlarının bu tipe göre oluşturulması sağlanıyor. External Content Type Visual Studio 2010'da açılan bir Business Data Connectivity Model projesi ile oluşturulup SharePoint 2010'a dağıtılabilir. Visual Studio 2010'da aşağıdaki resimde görüldüğü gibi proje oluşturulabilir. Bu ekrandan projenin detaylarını belirtip OK tuşuna bastıktan sonra projenin hangi site üzerinde çalışağı Visual Studio tarafından soruluyor olacaktır, bu ekrana da modelin deploy edilecek olduğu site'ın URL'i yazılıp devam edilebilir.


Projeyi oluşturduktan sonra aşağıdaki ekran ile karşılaşılacaktır. Proje ile birlikte Entity1 adında bir tane Entity'nin oluşturulmuş olduğunu göreceksiniz, bu Entity herhangi bir yerden veri çekmeyen sadece id'si olan bir tiptir. Daha sonraki postlarımızda yeni bir Entity oluşturup CRUD işlemlerini nasıl yapacağımıza göz atacağız. Entity1 adındaki proje oluşturulduğuna karşımıza çıkan Entity'nin iki tane de metodu vardır bunlar; ReadList ve ReadItem metodlarıdır. Adlarından da anlaşılacağı üzere bu metodlar listenin tüm elemanlarını ve bir elemanın detayını listelemek amacı ile kullanılacak olan metodlardır. Bu postta Entity'nin detayları ile uğraşmayıp varolan hali ile SharePoint'e Deploy ediyoruz. Projeyi Deploy etmek için Solution Explorer'dan projeye sağ tıklayıp Deploy demek yeterlidir. Deploy tuşuna bastıktan sonra eğer Business Data Connectivity Service çalışıyor ise sorunsuz olarak External Content Type SharePoint'e gönderilecektir. Bu adımdan sonra SharePoint tarafında bir tane External List oluşturulup oluşturulan tip kullanılabilir.



External List oluşturmak için; Create menüsünden Data bölümüne geçilip External List seçildikten sonra aşağıda görüntülenen bir sonraki ekranda kullanılacak olan tip seçilip External List kullanılmaya başlanır.



External List oluşturulduktan sonra aşağıdaki görünüm ile karşılaşılıyor olacaktır, fark edileceği üzere bu liste readonly bir listedir çünkü tipimizde sadece ReadList ve ReadItem metodaları yer almaktadır. Tipe Create, Update ve Delete metodları da yazıldıktan sonra listeyi CustomList gibi kullanmak mümkün olacaktır. İlerleyen günlerde blogda bu konuyu da ele alıyor olacağız, herkese iyi çalışmalar.


Hiç yorum yok: