• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 23.04.2016 00:55:33C programlama 2 oyun
  • 20.04.2016 16:34:41Local Database
  • 15.04.2016 14:26:15Fatura kayıt işlemi
  • 21.03.2016 01:55:30C# problem

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LINQ
  • LibreOffice
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

Ado.Net Data Services 1.5 CTP2 - Web Friendly Feeds

Ado.Net Data Services v1.5 CTP1 ile gelen Web Friendly Feeds özelliği, CTP2 sürümünde eklenen iki yeni eşleştirme seçeneği ile genişletilmiştir.

01.01.2013

Yazar: Burak Selim Şenyurt (Google+)

Kategori: ADO.NET

3246

Merhaba Arkadaşlar,

Ado.Net Data Services v1.5 CTP1 ile gelen Web Friendly Feeds özelliği, CTP2 sürümünde eklenen iki yeni eşleştirme seçeneği ile genişletilmiştir. Durun bir dakika...Web Friendly Feeds nedir? Undecided Arkadaşlıktan farklı bir şey olsa gerek Wink Öncelikle bu konuya açıklık getirmek gerekiyor.

Web Friendly Feeds özelliği, bir Entity'nin herhangibir özelliğini(Property), Ado.Net Data Service' inden çıktı olarak üretilen Atom içeriğindeki bir elemente eşleştirmekte kullanılmaktadır. Nitekim servisin ürettiği varsayılan Atom içeriğinde yer alan author name, url, title vs... gibi bilgiler zaten standart olarak kabul edilmiştir ve bu nedenle söz konusu elementleri değerlendiren yorumlayıcılara, var olan Entity içeriğindeki bazı özellik değerlerinin aktarılması istenebilir. Bir başka deyişle, servisin ürettiği içeriğin kaynağındaki özelliklerin çıktıda map edileceği yerler, Atom içeriğindeki belirli noktalar olarak belirlenebilir.

Çok doğal olarak eşleştirmenin çalışma zamanında değerlendirilmesi gerekmektedir. Ado.Net Data Servislerin, arka planda Entity Framework veya Custom LINQ Provider kullandığı düşünüldüğünde, eşleştirme işleminin nerede bildirileceği şu anda bizim için öğrenilmesi gereken yegane noktadır. Bir geliştirici olarak söz konusu eşleştirme bildirimlerinin nitelik(attribute) veya konfigurasyon bazlı olarak yapılacağının düşünülmesi son derece doğaldır ki bunların çalışma zamanında ele alınması gerekmektedir. Biz bu yazımızda önce eksikliği anlamaya çalışacak, sonrasında ise Entity Framework kullanılması halinde eşleştirmeyi nasıl gerçekleştirebileceğimizi inceleyeceğiz.

Öncelikle basit bir Asp.Net Web uygulaması oluşturalım ve aşağıdaki EDM grafiğinde görülen Ado.Net Entity Data Model öğesini söz konusu projeye ekleyelim. Her zamanki gibi kobay olarak AdventureWorks veritabanını hedef alıyor olacağız.

Contact tablosunu değerlendirmek amacıyla basit bir Ado.Net Data Services v1.5 CTP2 öğesini projeye ekleyerek devam edelim. Öğemizin kod içeriğini aşağıdaki gibi geliştirmemiz konumuz için yeterlidir.

using System.Data.Services;

namespace WebFriendlyFeed
{
    public class AdventureServices
        : DataService<AdventureWorksEntities>
    {
        public static void InitializeService(DataServiceConfiguration config)
        {          
            config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);       
            config.DataServiceBehavior.MaxProtocolVersion = System.Data.Services.Common.DataServiceProtocolVersion.V2;
     }
    }
}

Söz konusu servis üzerinden Contact tablosundaki örneğin ilk 3 satırı talep ettiğimizde aşağıdakine benzer bir çıktı elde ederiz.

Eksiklik şudur; standart atom feed içeriğinde yer alan author/name ve title elementlerinin içeriği boştur. Bu bilgilerin eksik olması şu aşamada önemli değilmiş gibi görünebilir. Ama bu atom feed çıktısını değerlendiren bir uygulamada söz konusu alanlar belirli amaçlar ile kullanılıyor olabilir ve bu nedenden boş olmaları yararlı olmayabilir. Örneğin Internet Explorer' ın feed içeriklerini görsel olarak yorumlama özelliğini(Turn on feed reading view) açtığımızda aynı sorgu aşağıdaki sonucu üretecektir.

Görüldüğü gibi ilk etapta feed entry' leri ile ilişkili title veya author/name gibi elementler doldurulmadığı için okunabilir bir içeriğin oluşmadığı görülmektedir. Üstelik Title gibi alanlara göre sıralama işlemi yapılmasıda mümkün değildir. İşte Ado.Net Data Services 1.5 sürümünde getirilen Web Friendly Feed özelliği, söz konusu standart entry elementlerinden bazılarının, entity içeriğinden beslenmesini sağlayabilmektedir. Peki ama nasıl? Undecided Örneğimizde Entity Framework modeli kullanıldığından, Conceptual Schema Definition Language(CSDL) içeriğinde bazı ayarlamalar yapılması gerekmektedir. (Tabi Entity modelinin Update edilmesi halinde bu değişikliklerin uçabileceğini hatırlatmam gerekir.) Aşağıdaki şekilde görüldüğü gibi.

İlk olarak bir namespace ilave edildiğini görüyoruz. Bu namespace ilave edilmez ise, FC_KeepInContent veya FC_TargetPath gibi nitelikleri kullanamayız. Yeri gelmişken bu niteliklerin ne iş yaptıklarını açıklayalım. CSDL içeriğinde yer alan FirstName özelliğinin değerinin Atom Feed içerisindeki author/name elementinde çıkması için FC_TargetPath niteliğine SyndicationAuthorName değeri atanmıştır. Benzer şekilde Atom Feed içeriğinin bir Contact için üretilen Title elementinde LastName özelliğinin değerinin çıkması için, FC_TargetPath niteliğine SyndicationTitle değeri atanmıştır. Aynı işlem Email adresi içinde gerçekleştirilmiş ve özellik değerinin author/email elementinde çıkması için FC_TargetPath niteliğine SyndicationAuthorEmail değeri atanmıştır. Buna göre FC_TargetPath niteliğinin değerinin, entity özelliğinin hangi atom alanında çıkacağını belirttiğini ifade edebiliriz. FC_KeepInContent niteliğine atanan false değeri ilede, atom feed' in element noktlarında çıkan değerlerin, üretilen Contact elementine ait content içeriğinde gösterilmemesi sağlanmaktadır. Buna göre biraz önce yaptığımız talebi tekrarlarsak aşağıdaki çıktıları alırız.

Ve atom çıktısını içeriği;

Görüldüğü üzere FirstName ve EmailAddress bilgileri, author elementi altındaki name ve email alt elementlerine yazılmıştır. Ayrıca entry' nin title elementinin içeriğinede LastName özelliğinin değerinin yazıldığı görülmektedir. Bununla birlikte buradaki özellikler, entry elementi altındaki content elementi içeriğindende çıkartılmıştır. Süper Smile Peki Atom Feed Entry Elementlerinden hangilerine atamalar yapabiliriz? İşte Ado.Net Data Services v1.5 CTP2 eklentilerinin de yer aldığı son liste. 

Entity tip özelliklerini hangi Atom Entry elementlerine eşleştirebiliriz.

author/email -> SyndicationItemProperty.AuthorEmail
author/name -> SyndicationItemProperty.AuthorName
author/uri  -> SyndicationItemProperty.AuthorUri
published  -> SyndicationItemProperty.Published
rights  -> SyndicationItemProperty.Rights
summary -> SyndicationItemProperty.Summary (CTP2 ile Gelmiştir)
title  -> SyndicationItemProperty.Title
Updated -> SyndicationItemProperty.Updated (CTP2 ile Gelmiştir)
contributor/name -> SyndicationItemProperty.ContributorName
contributor/email -> SyndicationItemProperty.ContributorEmail
contributor/uri -> SyndicationItemProperty.ContributorUri

Tekrardan görüşünceye dek hepinize mutlu günler dilerim.

WebFriendlyFeed.rar (35,28 kb)

Yazar Hakkında

Burak Selim Şenyurt

Burak Selim Şenyurt

buraksenyurt.com

Yıldız Teknik Üniversitesi Matematik Mühendisliği mezunu olan Şenyurt, 1999 yılında profesyonel olarak adım attığı yazılım dünyasında, 2003 yılından beri Microsoft .Net teknolojileri ile ilgilenmektedir. Yazılım hayatına Assist Line isimli Call Center firmasında Delphi programcısı olarak başlayan Şenyurt sonrasında, sırasıyla Bizitek(Junior Developer), Netron(Master Trainer), Citibank(Outsource Senior Software Developer), Innova(Application Development Consultant), ve TCM(Software Architect) firmalarında görev almıştır. Su anda ING Bank bünyesinde Kıdemli Yazılım Danışmanı olarak görev yapmaktadir. 2006, 2007 yıllarında C#, 2008,2009,2010 yıllarında ise Connected System Developer kategorisinde Microsoft MVP seçilen Şenyurt, evli ve 1 çocuk babasıdır. C# diline olan düşkünlüğü, oğluna S(h)arp adının verilmesinde önemli bir etken olmustur.

Sosyal Medya

ORANLAR

  • 3246izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Hocam Link başka sayfaya yönlendiriyor.
  • merhaba benim merak ettiğim bir konu var y...
  • Merhaba download linki çalışmıyor. Rica et...
  • Nevzat Bey selamlar, Açıkçası bizler a...
  • Parametreleri Cache İşleminden Yalıtma kon...

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 120031
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 65116
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 48278
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ