Cuma, Eylül 28, 2012

TCM Teknoloji WebCast'leri

SharePoint 2013, SQL Server 2012 ve Windows 8 ürünlerine özel WebCast serimiz Ekim ayında başlıyor.

Ekim, Kasım ve Aralık aylarında toplam 16 WebCast ile ürünlerin yeni özelliklerini sizlere ücretsiz olarak anlatıyor olacağız. WebCast'lerin hepsi belirtilen tarihlerde saat 20:00 - 21:00 arasında gerçekleştiriliyor olacak, tek yapmanız gereken istediğiniz WebCast'in gününde saat 20:00'de LiveMeeting linkine tıklamak.  

Birbirinden yeni konuların anlatılacağı WebCast'lerin programı şu şekilde.

Webiner Saatler : 20:00-21:00

TarihWebiner KonusuKonuşmacı
01.10.2012
Windows 8 Temelleri
Windows 8 Neler Getiriyor?
Hangi Sürümlerde Sunuluyor?
Nasıl Ücretsiz İndirip Test Ederiz?
Kurulum ve Konfigurasyon Süreçleri
Windows 8 Uygulamaları ve Windows Store
Ercan Bozkurt
08.10.2012
Windows 8 Uygulama Geliştirmeye Giriş
Temel Kontroller
Örnek Uygulamalar
Ercan Bozkurt
11.10.2012
What's New in SharePoint 2013 Preview
Bu oturumda SharePoint 2013 ile yeni gelen özelliklere genel bir bakış atılacaktır. Yeni gelen özellikleri demolar eşiliğinde SharePoint 2013'ün yeni arayüzü üzerinde inceliyor olacağız.
Burak Batur
15.10.2012
Windows 8 Veri Uygulaması Geliştirmek
Master-Detail ilişkisi ile bir veri uygulaması geliştirilmesi
Ercan Bozkurt
18.10.2012
SharePoint 2013 Preview Web Content Management
SharePoint web içeriği yönetiminde en güçlü ürünlerden biri haline geldi. 2010 versiyonunda pek Web İçeriği Yönetimi tarafında oldukça fayda ve proje geliştirmede kolaylık sağlayan SharePoint, 2013 versiyonunda bu deneyimleri daha da ileriye, heyecan verici boyutlara taşımış durumda. Bu oturumda Web İçeriği Yönetimindeki yeniliklerin detaylarını inceliyor olacağız.
Burak Batur
22.10.2012
Sql 2012 Data Tools for Developers
Yeni Nesil Veritabanı Geliştirme Araçları - SQL Server Data Tools (SSDT),Visual Studio ve Management Studio özelliklerini tek bir bünyede toplayarak geliştiricilerin ihtiyaçlarını çok daha hızlı bir şekilde karşılıyor. Ayrıca SSDT ile gelen veritabanları arası şema karşılaştırma ve refactoring gibi özellikler bazı kompleks işlemlerin daha rahat yönetilmesini sağlayacak.
Emrah Uslu
12.11.2012System Contracts
Uygulamalara Search Contract Eklenmesi
Ercan Bozkurt
15.11.2012SharePoint 2013 Preview App's and Workflows
Microsoft'un yol haritasında önemli bir yer tutan uygulamalar SharePoint 2013'te de karşımıza çıkıyor. Artık SharePoint'e eklediğimiz her şeye App adını veriyoruz, bu oturumda yeni gelen App mimarisine deyineceğiz. SharePoint 2013'le birlikte iş akışları alt yapısı da değişiyor, yeni iş akışı alt yapısına da bu oturumda göz atılacaktır.
Burak Batur
19.11.2012Tiles and NotificationsErcan Bozkurt
22.11.2012Sql 2012 Data Quality Service
Data Quality Services (DQS) tarafından sağlanan veri kalitesi çözümleri, veritabanı uzmanı ve IT profesyonelleri için eldeki verinin iş ihtiyacına uygun olduğundan emin olunmasını sağlar. DQS, elinizdeki verileri keşfetmenize, işlemenize ve yönetmenize izin verir. Bu süreçte elde ettiğiniz bilgilerle veri temizliği, eşleştirme ve profilleme işlemlerini gerçekleştirebilirsiniz. Bu oturumda DQS yeteneklerini daha yakından tanıma fırsatı yakalayacaksınız.
Emrah Uslu
29.11.2012SharePoint 2013 Preview Development
Bu oturumda Visual Studio 2012 ile SharePoint 2013'teki development ortamına göz atılacaktır.
Burak Batur
10.12.2012Sensörler
Windows 8 ile birlikte kullanılabilecek sensörler
Ercan Bozkurt
13.12.2012SharePoint 2013 Preview Social Computing
Sosyal medyanın oldukça önem kazandığı hatta yaşam tarzı haline geldiği dünyamızda SharePoint'te kurum içindeki sosyal hayata uyum sağladı. 2010 versiyonunda pek çok alanda alt yapısı hazır olan sosyal özellikler SharePoint 2013'te inanılmaz bir hal almış durumda. SharePoint 2013'le birlikte her kurumun kendi içinde, kendi networkünde bir Facebook'u olacak. Bu oturumda SharePoint 2013'ün sosyal özelliklerini ele alıyor olacağız.
Burak Batur
17.12.2012Windows 8 ile Bulut Macerası
Azure platformundan faydalanan Windows 8 Uygulamaları Geliştirmek
Ercan Bozkurt
20.12.2012SharePoint 2013 Preview Authentication
Bu otutumda SharePoint 2013 ile birlikte yenilenen ve gelişen güvenlik ve yetkilendirme alt yapısını inceleyeceğiz.
Burak Batur
27.12.2012Sql 2012 Powerview ile Dashboard Tasarımı
Bu oturumda Sql Server 2012 Reporting Services ile gelen yeni raporlama aracını kullanarak örnek raporlar yapılıp son kullanıcıların dashboard üzerinden bu raporlara nasıl erişeceği ve düzenleyeceği incelenecektir. Ayrıca aracın hızlı geliştirme, görsel zenginlikler ve SharePoint'te ile PowerPoint'te sunum imkanlarından bahsedilecektir.


Pazartesi, Eylül 17, 2012

SharePoint 2010 Nasıl Yapılır? - CAML Query Builder ile Liste Sorgulama

Daha önce CAML'ın ne olduğunu ve nasıl kullanıldığını açıklamıştık. Hatırlanacağı üzere CAML Xml tabanlı bir sorgulama diliydi ve oluşturup kurgulaması oldukça zordu. Bu zorluk sebebi ile farklı uygulamalar kullanabileceğimizden bahsetmiştik. Bu yazımızda U2U CAML Query Builder'ı anlatıyor olacağız. 

Uygulamayı http://www.u2u.be/res/tools/camlquerybuilder.aspx adresinden indirebilirsiniz. Uygulamayı indirip kurulumun ardından çalıştırdığınızda aşağıdaki ekran sizi karşılıyor olacak.

 
Yukarıdaki ekranda bir SharePoint sitesine bağlanmak istediğimizi belirtiyoruz. URL kısmında sitenin (Dikkat! SiteCollection değil, site) URL'ini belirtiyoruz ve siteye bağlanırken hangi metot ile bağlanacağımızı belirtiyoruz. Bildiğiniz gibi bir SharePoint sitesine iki farklı şekilde bağlanabiliriz. Bunlardan bir tanesi Object Model bir diğeri de Web Servisleri. Object Model ile siteye bağlanırken sunucu üzerinde olmanız gerekmektedir, uzak bir bağlantı yapmak istiyorsanız da Web Servislerini tercih edebilirsiniz. Tabi web servislerini tercih ettiğinizde kullanıcı belirtmeyi unutmamanız gerekiyor.
 
 
Bağlantıyı oluşturduktan sonra sizi aşağıdaki ekran karşılıyor olacak.
 


  
Gördüğünüz gibi CAML Query Builder size bağlanmış olduğunuz sitedeki listeleri listeledi. Buradaki listelerden herhangi birini seçip Query'nizi oluşturmaya başlayabilirsiniz. Bu işlem için listeyi seçtikten sonra, üstte aktif olan Buttonlardan "New Query"'i tıklıyoruz. New Query Butonuna tıkladıktan sonra aşağıdaki resimde yer alan görüntü ile karşılaşıyor olmalıyız.


Yukarıdaki ekran aracılığı ile de kolaylıkla sorgularımızı oluşturuyoruz. Burada dikkat edilmesi gereken noktalardan bir tanesi ilk olarak AND OR koşul yapınızı oluşturmanız. Filtre bölümünden ilk olarak AND, OR hiyerarşisini oluşturup ardından da sütunu seçip filtreleme kriteri ile birlikte sorgunuzu kolaylıkla oluşturabilirsiniz. Bu işlemin ardından aktif olan "Execute Query" seçeneği ile sorgunuzu test edebilirsiniz. Aşağıda ufak bir örnek resim daha yayınlıyorum.


Resimden de anlaşılacağı üzere, yukarıdaki sorgu AdSoyad sütunundaki değerleri a veya b ile başlayan sonuçları ters sıralı olarak getirecektir. Gördüğünüz gibi sorguları oluşturmak oldukça kolay bu şekilde istediğiniz komplekslikteki sorgularınızı buradan oluşturup kopyalayıp projelerinizde kullanabilirsiniz.

Cumartesi, Eylül 15, 2012

SharePoint 2010 Nasıl Yapılır?-SharePoint Object Model: CAML ile Liste Sorgulama

SharePoint üzerinde yazılım geliştirirken olmazsa olmazlardan bir tanesi de listelerdeki dataları sorgulamaktır. Listeleri SQL tabloları gibi düşünüp datayı listelerde saklayıp T-SQL'de olduğu gibi listeleri de sorgulayabilirsiniz. SharePoint listelerini sorgularken direkt SQL veri tabanına gidiyor olmak doğru bir çözüm değildir. SQL tabloları oldukça karmaşık ve sütun tipine göre verinin saklanmış olduğu değişiklik gösterebilmektedir. Direkt SQL tablosuna gidemediğimize göre SharePoint listelerini nasıl sorgulayacağız? Bu sorgulama dilinin özel bir adı vardır ve kısaltması da CAML olarak adlandırılmaktadır. Farklı bir açıdan baktığımızda CAML'ı T-SQL'in sadece sorgulama tarafı (Retrieve) olarak düşünebiliriz. CAML'ın tam açılımı ise Collaborative Application Markup Language anlamına gelmektedir.
CAML XML tabanlı bir dildir ve XML hiyerarşisi ile sorgular oluşturulabilir. Mantık şu şekilde işlemektedir; ilk olarak koşulu yazıp, koşul düğümünün için de de bu koşula uygun sonuç dönmesini sağlayacak bir sütun yer almalıdır. En basit hali ile bir listenin "Title" sütunundaki "SharePoint" değerine eşit olan öğeleri elde etmek için aşağıdaki sorguyu yazabiliriz. 

   <Where>
      <Eq>
         <FieldRef Name='Title' />
         <Value Type='Text'>SharePoint</Value>
      </Eq>
   </Where>
   


Kodlardan da göreceğiniz gibi Where koşulunu belirtiyoruz. Where koşulunu içinde eşit durumu için <Eq> düğümünü kullanmak gerekiyor. <Eq> düğümünün içinde de sorgulanacak olan sütunun adı ve ardından da hangi değer ile sorgulanacağını belirtiyoruz. Sorgulama kriterlerinde;

Eşit olma durumu için: Eq
Eşit olmama durumu için: Neq
Değerin büyük olmasını sorgulamak için : Gt
Değerin büyük veya eşit oması durumu için: Geq
Küçük olma durumu için: Lt
Küçük veya eşit olma durumu için: Leq
Değerin NULL olma durumunu sorgulamak için: IsNull
NULL olmama durumu için: IsNotNull
Değerin bir değer ile başladığını sorgulamak için: BeginsWith
Değerin bir değeri içerdiğini sorgulamak için: Contains

Parametreleri kullanılır. Tabi bunlara ek olarak AND ve OR gibi sorgulama kriterleri ile ORDER BY gibi sıralama kriterleri de ekleyebiliyorsunuz. İşin içine AND ve OR'un girmesi ile birlikte tahmin edeceğiniz üzere hiyerarşi yine değişiyor ve sorgu kriterleri büyüdükte oldukça zorlaşıyor. Çözüm olarak ise sizin için istediğiniz CAML'ı üreten ücretsiz toolları kullanabilirsiniz. Piyasada kabul görmüş en iyi tool U2U'nun CAML Query Builder uygulamasıdır. Uygulamayı http://www.u2u.be/res/tools/camlquerybuilder.aspx adresinden indirebilirsiniz.4.0 versiyonunu SharePoint 2010 ile sorunsuzca kullanabilirsiniz.

Peki üretilen CAML'i nasıl kullanacağız? Aşağıda herhangi bir listenin tüm öğelerini döndüren bir kod parçasını görüyorsunuz.

SPSite siteCollection = new SPSite("http://sharepointdev:27500/");
SPWeb web = siteCollection.OpenWeb();
SPList liste = web.Lists["DataSorgulamaListesi"];
Literal1.Text = string.Empty;
foreach (SPListItem item in liste.Items)
{
      Literal1.Text += item.Title;
      Literal1.Text+="-"+item["Tip"]+"<br/>";
}

Aşağıdaki kodlar ise aynı listenin bir WHERE koşulu ile sorgulanmasını yani CAML ile sorgulanmasını göstermektedir. Gördüğünüz gibi bir tane SPQuery nesnesi oluşturuyoruz ve nesnenin Query parametresine CAML'ımızı belirtiyoruz. Ardından da GetItems() metodu ile SPQuery tipindeki nesnemizi belirterek CAML ile listemizi sorguluyoruz.

SPSite siteCollection = new SPSite("http://sharepointdev:27500/");
SPWeb web = siteCollection.OpenWeb();
SPList liste = web.Lists["DataSorgulamaListesi"];
Literal1.Text = string.Empty;
SPQuery sorgu = new SPQuery();
sorgu.Query = "<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>SharePoint</Value></Eq></Where>";

foreach (SPListItem item in liste.GetItems(sorgu))
{
      Literal1.Text += item.Title;
      Literal1.Text+="-"+item["Tip"]+"<br/>";
}

Perşembe, Eylül 06, 2012

SharePoint'te Person/Group (Kişi/Grup) Tipindeki Sütunları Sorgulama

SharePoint üzerinde geliştirme yaptığımızda bir listeyi sorgularken sizlerin de bildiği gibi CAML kullanıyoruz. CAML Query Builder aracı gibi yardımcı araçlar ile oluşturduğumuz CAML'ları C# kodumuzun içerisinde kullanıp parametrik değerler ile dinamik sorgular kullanabiliyoruz. Metin, Sayısal değer ya da Tarih gibi sütun tiplerini rahatlıkla sorunsuz bir şekilde kullandığımız CAML'da Kişi/Grup tipi gibi sütunlarda problem yaşabiliyoruz.Bu sorun veri tipinin görüntüleme özelliğinin arka planda saklanan datadan farklı olmasından kaynaklanmaktadır.

Bir tane Task listesini sorgulayıp oturum açan kişiye atanan görevleri listeleyeceğimiz bir WebPart yazalım. WebPart'ı yazarken proje açma, web part oluşturma ve UserControl tarafına bir tane Literal kontrolü ekleme adımlarını pas geçiyorum. Arka planda data sorgulamak için CAML Query Builder ile bir CAML oluşturalım çıktı aşağıdaki gibi olacaktır.

<Query>
   <Where>
      <Eq>
         <FieldRef Name='AssignedTo' />
         <Value Type='User'>burak</Value>
      </Eq>
   </Where>
</Query>


Gördüğünüz gibi direkt sütun tipi olarak User alında ve burak kullanıcı adına eşit olanlar sorgulanmaya çalışıyor. Sorguyu program üzerinden test ettiğimde doğal olaral bir şey gelmedi çünkü Task listesi AssignedTo sütununda varsayılan olarak DisplayName'i alıyor. Herkesin DisplayName'i değişken bir yapıya sahip olduğu için bu şekilde bir yöntem kullanmak çok sağlıklı olmayacaktır. Bu sebeple kullanıcının site üzerindeki ID'si üzerinden ilerlenebilir. Bu yöntemde ilk olarak kullanıcı sorgulanıp SPUser nesnesine atılıyor ve ardından da CAML'da yapılan ufak bir değişiklik ile kullanıcının ID ile sorgulanacağı belirtilip parametre olarak da ID veriliyor. Sonuç olarak da tam istediğimiz görünümü elde edebiliyoruz, o an oturum açan kullanıcının görevlerini kendisine görüntüleyebiliyoruz. Kodları aşağıdan inceleyebilirsiniz:

 
SPWeb web = SPContext.Current.Web; //Web'i alalım.
SPList gorevler=web.Lists["Tasks"]; //Sorgulayacağımız listesi alalım.
SPUser user = web.EnsureUser(SPContext.Current.Web.CurrentUser.LoginName); //Kullanıcıyı elde edelim.
SPQuery query = new SPQuery(); //CAML'ı kullanmak için SPQuery nesnemizi oluşturalım.
query.Query = String.Format("<Where><Eq><FieldRef Name='AssignedTo' LookupId='TRUE' /><Value Type='Integer'>{0}</Value></Eq></Where>", user.ID); //CAML'ı oluşturup kullanıcının ID'sini belirtelim.
//Sonuçları ekrana basalım.
Literal1.Text = String.Empty;
foreach (SPListItem item in gorevler.GetItems(query))
{
    Literal1.Text += item.Title+"<br>";
}

SharePoint 2013 Geliyor!

Bildiğiniz gibi geçtiğimiz ay SharePoint 2013'ün Consumer Preview sürümü yayınlandı. 2010 versiyonunun yeni sürümü olan 2013 sürümünde oldukça dikkat çekici ve heyecan verici özellikler var. SharePoint 2013'ü sizlere anlatmaya başlamadan önce son versiyonu kurup üzerinde zaman geçirmeyi tercih ettim bu sebeple 2013 rüzgarı bloğuma biraz daha geç etki etmiş oldu :) Bu yazıdan başlayarak pek çok özelliği sizlerle paylaşıyor olacağım, TCM işbirliği ile düzenleyeceğimiz webcast'ler ile de geniş çaplı bir yelpazede SharePoint 2013'ü ele alıyor olacağız. Şimdilik SharePoint 2013 kurulduğunda ilk dikkat çeken özellikleri inceleyelim.

Kurulum aşamasını SharePoint 2010 ile kıyasladığımızda göze çarpan bir fark ortaya çıkmıyor, SharePoint 2010'da da olduğu gibi önce Prerequest'leri ardından da SharePoint'i kuruyorsunuz. Burada bir kaç kurulumda benim de karşılaştığım genel olarak da çok fazla karşılaşılan bir sorun gözlemledim. Release sürümünde karşımıza çıkmayacağını düşündüğüm problem Prerequest'lerin ilk adımında .Net Fw 4.5 CP'i kurarken ortaya çıkıyor ancak çözüm çok basit, .NET Fw 4.5 CP'i ayrıca indirip kurduğunuzda geriye kalan işlemleri otomatik olarak yapıyor. 


SharePoint 2013 ilk olarak sosyal media özellikleri ile dikkat çekiyor. SharePoint 2010 versiyonunda genel olarak alt yapı halinde hazır olan kurumsal sosyal paylaşım özellikleri 2013'de direkt karşımıza çıkıyor, MySite'lardaki duvar, yorum ve etiketleme özellikleri tek kelime ile süper olmuş. Kendinizi bir anca Facebook üzerinde dolaşıyormuş gibi hissetmeye başlıyorsunuz. Kurumsal bir ortamda bu özellikleri ek geliştirme yapmadan kullanıyor olmak gerçekten mükemmel. Benzer özellikleri talep eden bir kaç müşterimizi çoktan SharePoint 2013'e yönlendirdik bile :)

Sosyal paylaşım alanındaki en güzel özelliklerden bir tanesi de Community Site şablonu olmuş. Bir konu, bir ürün ya da bir fikir üzerinde kurumunuz içerisinde bir topluluk oluşturup herkesin fikrini belirtmesi ancak bu kadar kolay olabilir. SharePoint 2013 ile birlikte gelen Community Site şablonu ile bir alt site oluşturmanız bir topluluk sitesi kurmak için yeterli oluyor, site size bir duvar sağlıyor, üyelik alt yapısı, bilgilendirmeler vs. de yanında ek olarak geliyor. Sözü fazla uzatmaya gerek yok, SharePoint'i kurmadan Facebook ya da diğer sosyal paylaşım sitelerinden örneklerine bakabilirsiniz :)

SharePoint 2010'da hemen hemen her eğitimde bana gelen bir soru vardı: "Doküman kütüphanelerine sürükle-bırak'la dosya ekleyemiyor muyuz?" Cevap gayet net: 2013'de ekleyebiliyorsunuz. Doküman kütüphanesi üzerinde de dolu yenilik karşımıza çıkıyor en beğendiğim özelliği paragraf başında zaten belirttim ama fazlası var. Tasarım son derece sade olmuş, ancak menü üzerindeki ...'ya tıkladığınızda direkt dokümanın ön izlemesi ve diğer özellikler sizi karşılıyor. Doküman yönetimi tarafındaki detayları ileride geniş bir şekilde ele alıyor olacağız.

SharePoint 2013'ü ilk kurduğumuzda merakla incelediğimiz konulardan bir tanesi de tasarım giydirmekti, tasarım giydirmek oldukça kolaylaşmış gibi görünüyor. Bir tane HTML hazırlayıp Upload ediyorsunuz ardından SharePoint'in yönlendirmeleri ile bunu MasterPage haline getiriyorsunuz. Sihirbaz yardımı ile Javascript ve CSS'leri de upload edip yeni tasarımınızı kullanmaya başlayabiliyorsunuz. Site Template tarafı 2010'da biraz esnemişti ancak 2013'de burada daha da özgürleşmiş bulunuyoruz şu anda bile Internet'te 2013 şablonları bulmaya başladık.

Sayfa içeriği oluşturmadaki en önemli yardımcımız metin editörü de SharePoint 2013'de yenilendi. Editör artık daha temiz HTML sağlıyor ve çok daha akıllı. Herhangi bir video sitesindeki embed kodunu kopyalayıp yapıştırdığınızda videoyu oynatacak kadar akıllı bir ürün haline geldi. Hayatımızı gerçekten oldukça kolaylaştıracak bir metin editörü kullanımımıza sunulmuş durumda.

SharePoint 2013'teki yukarıda anlattığım özellikleri ve daha fazlasını geniş bir şekilde ilerleyen yazılarda ele alıyor olacağız, bizi ve SharePoint 2013'ü izlemeye devam edin :)