Ana Sayfa | English Blog | Seminer TV | Dil Cookie Sil  Blog'u Mail ile takip et!       
Daron Yöndem - C#
bir yazılımcının tasarıları...
 Tuesday, February 09, 2010

Hatırlarsanız sizlerle daha önce bu sene Berlin'de yapılan TechEd Europe'dan izlenimlerini aktarmıştım. (Gün 1, 2, 3) Bu sene ilk defa Middle-East yani bizim bölgemizde de TechEd gerçekleşiyor. Dubai'da 1-3 Mart arasında gerçekleşecek olan TechEd ME 2010'da benim de iki oturumum var!

TechEd ME'ye indirimli kayıt ol!
TechEd ME'ye indirimli kayıt ol!

TechEd'in birinci günündeki oturumumun başlığı "New in C# and Visual Basic for 2010" şeklinde. Tahmin edebileceğiniz üzere Visual Studio 2010 ve .NET 4 RC üzerinden VB ve C# yeniliklerine göz atacağız bu oturumda. İkinci oturumum ise TechEd'in ikinci gününde "Windows Internet Explorer 8 in the Enterprise: Build, Deploy, and Manage Better Experiences" başlığını taşıyor. Bu oturumda IE8 ile beraber gelen yeni özelliklerin kurumsal alandaki kullanımına yönelik senaryoları inceleyeğiz ve bu araçların dağıtımı, yönetimi ile ilgili detayları ele alacağız. TechEd'de daha önce de TLC (Technical Learning Center)'da ve Silverlight Booth (ATE-Ask The Expert)'de görevli olmuş biri olarak bu sefer de oturumlarla katkıda bulunmak benim için çok heyecan verici.

Dikkat Dikkat! İndirim var!

İşte geldik sizin için elimde neler var kısmına :) Birincisi eğer TechEd ME'ye katılıyorsanız lütfen beni haberdar edin! Orada görüşelim! Eğer katılamıyorsanız ve katılmak istiyorsanız bu sefer de size özel %15 indirim kodunu kıvançla paylaşıyorum :) 52F42DC3 Bu kodu kullanarak TechEd ME'ye kayıt olursanız kayıtta %15 indirim alacaksınız! Hadi bakalım Dubai'de görüşmek üzere!

Update: Son dakika değişiliği ile bir üçüncü oturumum daha var TechEd ME'de! "Create Multitouch Applications on Windows, on Surface and on the Web" ;) Kaçırmayın!

Tuesday, February 09, 2010 12:30:11 PM (GTB Standard Time, UTC+02:00)  #    Comments [4]   C# | IE 8.0 | MultiTouch | Visual Basic 2010  | 
 Sunday, December 27, 2009

Koca bir INETA NEXT serisi bitti! :) Bu hafta sonu gerçekleştirdiğimiz Denizli etkinliği ile beraber 2009'ın NEXT serisine son vermiş olduk. Diyarbakır, İstanbul, Kayseri ve Denizli turumuz INETA kapsamında tüm sosyal topluluklar ve editörleri ile beraber son iki yılda gerçekleştirdiğimiz en büyük hareket oldu. Tüm bu seri boyunca katkıda bulunan INETA sosyal topluluklarımıza ve sevgili konuşmacılarımıza ÇOK teşekkürler.

Muammer Benzeş (birliktegelistir.com)
Erkan Balaban (Ceviz.net)
Oğuz Yağmur (csharpnedir.com)
Uğur Umutluoğlu (nedirtv.com)
Barış Kanlıca (yazgelistir.com)
Burak Selim Şenyurt (nedirtv.com)
Selçuk Yavuz (Ceviz.net)

Tüm etkinlikler boyunca en çok merak edilenlerden birinin "Beyin" olduğunu gördüm :) Biliyorsunuz ilk etkinliği duyurduğumuzda her şehirde bir katılımcıya yeni bir beyin vereceğimizden bahsetmiştik. Bu beyin konusunda ben her ne kadar samimi olsam da :) herkes "beyin" kelimesinden yola çıkarak çok farklı şeyler düşünmüş. Oysa gerçekten de "beyin" derken "beyin" demek istemiştim :)

Yepyeni bir beynin sahibi!
Yepyeni bir beynin sahibi!

Fotoğrafta da görebileceğiniz üzere arkadaşımız yeni beynini sevinçle karşılamış durumda :D Her şehirde bu şekilde bir beyin hediye etme şansımız oldu. Beynin özelliği gerçek bir beyin "vıcıklığında" olma ile beraber her ne yaparsanız yapın esnese de şeklini kaybetmiyor olması :)

Etkinliklerimize katılan herkese tekrar defalarca çok teşekkürler. Bizi takip etmeye devam edin ;)

Sunday, December 27, 2009 10:23:48 AM (GTB Standard Time, UTC+02:00)  #    Comments [1]   .NET Framework 4.0 | ASP.NET 4.0 | C# | Expression Blend | Expression Studio | IE 8.0 | IIS 7.0 | LINQ | PLINQ | Silverlight 4 | Visual Basic 2010 | Visual Studio 2010 | WCF | Windows 7 | WPF  | 
 Monday, December 21, 2009

Bugün INETA NEXT serimizin Kayseri ayağını tamamladık. Ceviz.NET'ten sevgili Selçuk Yavuz ile beraber konuşmacı olduğumuz etkinlik boyunca Silverlight, WPF, C#4, VB10, Visual Studio 2010, MVC2, ASP.NET 4 gibi konulara değindik.

INETA NEXT Kayseri
INETA NEXT Kayseri

Özellikle Kayseri etkinliği çevre illerin de katılımın da bölgesel bir etkinliğe dönüşmüştü. Yirmi kişilik ekiplerin başka şehirlerden gelebiliyor olması doğru bir konum seçtiğimiz adına güzel bir mesajdı diyebilirim. Tabi her zamanki gibi etkinlik saatleri sarktı bizim gidiş uçağımız gecikti vs derken özellikle şehir dışından gelen ekipler son oturumları otobüs saatleri nedeniyle kaçırdılar :( Yine de değerlendirme formlarına baktığımda herkesin mutlu olduğunu görmek çok sevindirici.

Kayseri'den bir kare...
Kayseri'den bir kare...

Kayseri aynı anda benim de baba memleketi olduğu için ayrı bir sempati duyduğumu itiraf etmeliyim. Diğer yandan pastırma, çemen ve mantı üçlüsü da efsanevi hareketlere yol açabiliyor :) Ama şunu tekrar öğrendim İstanbul'da mantı da yalan pastırma da! Geleceği dair hedeflerimi net bir şekilde belirledim artık. Bir helikopter satın alıp herşeyi memleketinde yemek gerek :)

Etkinlikte katkılarından dolayı iki süper MSP'ye çok teşekkür ediyorum! Sevgili İbrahim Kıvanç ve Mustafa Kaya! Çok teşekkürler tüm desteğiniz için. Ayrıca İbrahim bir de C# 4.0 dinamik diller desteği konusunda mini IronPython oturumu sundu ;) Süperdi!

Son olarak Erciyes Üniversitesi'nden hocalarımıza da tüm etkinlik boyunca bizi yalnız bırakmadıkları için ÇOK ÇOK teşekkürler. Sizlerin desteği bizim için çok önemli!

Gün sonunda hediyeler vs derken Kayseri'de de bir kişiye yeni bir beyin hediye ederek geri döndük :) Haftaya Denizli'de görüşmek üzere...

Monday, December 21, 2009 4:38:28 AM (GTB Standard Time, UTC+02:00)  #    Comments [7]   .NET Framework 4.0 | ASP.NET 4.0 | C# | MVC | Silverlight 4 | Visual Basic 2010 | Visual Studio 2010 | WPF  | 
 Sunday, December 13, 2009

Bugün INETA NEXT'in İstanbul ayağını gerçekleştirdik. Kişisel olarak benim için efsanevi bir hafta sonu oldu! Tüm konuşmacılarımıza tek tek milyonlarca defa teşekkür ediyorum. Ayrıca tabi ki yağmura rağmen tüm salonu dolduran herkese de onlarca teşekkürler! Umarım herkes için de bir o kadar faydalı bir aktivite olmuştur.

Katılım zirvede bir seminer! INETA NEXT!
Katılım zirvede bir seminer! INETA NEXT!

İki gün boyunca hızlı bir "geleceğe bakış" attık. SL 4, VB10, CS4, ASP.NET 4, WF4, IIS Media Services, IE Development vs derken epey bir içeriğe hızlıca göz atma şansımız oldu. Tabi hediyelerimiz de eksik olmadı :) NEXT serisine uygun şekilde Windows 7 hediyemizin yanı sıra Windows 7 T-Shirtlerimiz, Visual Studio 2010 atkılarımız, laptop stickerlarımız! havalarda uçuştu desem yeridir :)

INETA NEXT İstanbul ayağı...
INETA NEXT İstanbul ayağı...

Tekrar katılan herkese defalarca teşekkürler. Çok yakında etkinlikte konuşan tüm konuşmacılarımızın sunumlarını ve video kayıtlarını da sizlerle www.inetatr.org üzerinden paylaşacağız. İçerikler ve paylaşımlar hazır olduğunda ben de twitter ve blog üzerinden duyuracağım.

Bu arada unutmayın :) blogumu sayfanın en üstündeki linkten kayıt olarak mail ile de takip edebilirsiniz.

Haftaya hafta sonu Kayseri'de görüşmek üzere!

Not: Tüm etkinlik fotoğraflarına buradan ulaşabilirsiniz: http://skydrive.live.com/inetanext09istanbul

Sunday, December 13, 2009 11:29:09 PM (GTB Standard Time, UTC+02:00)  #    Comments [3]   .NET Framework 4.0 | ASP.NET 4.0 | C# | IE 8.0 | Seminer | Silverlight 4 | Visual Basic 2010 | Visual Studio 2010 | WCF | WF  | 
 Friday, December 11, 2009

Bugün Balıkesir'deydik! Balıkesir Üniversitesi'nden sevgili MSP'miz Armağan Semih Göçmen'ın organizasyonu ile bir günlük hızlandırılmış bir seminer serisi düzenledik. Silverlight 4, WPF, IIS 7, C# gibi konulara değindiğimiz gün boyunca benimle beraber sevgili MVP'lerimizden Muammer Benzeş de konuşmacı olarak da yer aldı. Kendisine desteğinden dolayı teşekkür ediyorum.

Balıkesir Seminerleri
Balıkesir Seminerleri

Balıkesir Üniversitesi eğitim görevlisi hocalarımıza da ayrıca teşekkür etmem gerek. Hem kişisel anlamdaki sıcak yaklaşımları hem de oturumlarımızda bahsi geçen yeni teknolojilere olan genel ilgili ve bakışları beni heyecanlandırmadı desem yalan olur. Bu heyecanın oturumlarımıza katılan herkese da yansıdığını ümit ediyorum.

Katılan herkese ayrıca çok teşekkürler. Balıkesiri tanımak ve sizlerle beraber olmak süperdi! En kısa zamanda tekrar görüşmek üzere!

Friday, December 11, 2009 11:32:25 PM (GTB Standard Time, UTC+02:00)  #    Comments [3]   C# | Silverlight 4 | WPF  | 
 Monday, December 07, 2009

Bu hafta sonu iki gün boyunca INETA NEXT turumuzun ilk ayağı olan Diyarbaklır'daydık. Sevgili Muammer Benzeş ve Erkan Balaban ile beraber sunduğumuz oturumlarda, Silverlight 4, ASP.NET 4, VB 10, C# 4, Windows 7 ve WPF 4 gibi konulardan bahsettik. Benim için çok eğlenceli olduğu kadar da güzel bir iki gün oldu.

INETA NEXT Diyarbakır
INETA NEXT Diyarbakır

Organizasyon boyunca öğrenci katılımının yanı sıra Diyarbakır Belediyesi, Emniyet Müdürlüğü gibi birçok devlet kurumundan da görevli arkadaşlarla tanışma şansımız oldu. Yukarıdaki fotoğraftan görebileceğiniz üzere standart community aktivitelerine göre biraz yaş ortalaması yüksek :) Bu çerçevede anlattıklarımızın kısa vadede gerçek hayata geçmesi olasılığı da bir o kadat yüksek oluyor. Etkinlik sonunda dağıttığımız değerlendirme formlarından birindeki yorum hem etkinliğin faydasını hem de etkisini özetliyordu :) "Çok güzel ve yeni teknolojilerle neler yapılabileceği öğrendik. Artık yazılımcı ekibimizin bizden çekeceği var!" :)

Diyarbakır'da yazılım sektörü nerede?
Diyarbakır'da yazılım sektörü nerede?

Etkinliğimizde bulunan katılımcılardan Murat the Hiperaktive :) (Kendisine bu ismi taktık ama daha haberi yok) Diyarbakır'ın yazılım sektörü çerçevesinde ne kadar parlak bir noktada olduğunun ip uçlarını veriyor. Murat Bey bir müşterisinin ihtiyaçlarını tespit edip hem donanım hem de yazılım kısmı ile ilgilenerek gerekli çözümleri üretip gerçek hayata geçirmiş. Bunun gibi Diyarbakır içerisinde ve dışında kullanılan bir çok yazılımdan bahsetme şansı oldu bize. Özellikle bu yazılımlardan birini yakından inceleme şansımız oldu. Nasıl mı? Bir künefeci için yapmış olduğu sistemi yerinde gösterdi :) Yukarıdaki fotoğrafta da gördüğünüz üzere künefe siparişimi bir masadaki bir ekrandan giriyorum ve sipariş otomatik olarak alt kattaki bir bilgisayara düşüyor. Sistemin detaylarına girmeyeceğim fakat garsonsüz ve iki katlı bir künefecenin yaratılmasında bu yazılımın büyük katkısı olduğu kesin. Fikir süper, implementasyon süper! Kısmen tek kişilik dev kadro olarak kendisine "Helal olsun!" diyorum.

Etkinlik duyurusu Diyarbakır caddelerinde.
Etkinlik duyurusu Diyarbakır caddelerinde.

Etklinliğimize Dicle Üniversitesi ev sahipliği yaptı. Özellikle sevgili hocamız Mehmet Siraç Özerdem'e buradan milyonlarca kez teşekkür etmek istiyorum. Diyarbakır'da etkinliğimizin kahramanı olan hocamızın misafirperverliği kesinlikle istisnai bir mükemmeliğe sahipti. Tabi ek olarak konuşmacılarımıza ve tüm katılımcılarımıza da onlarca teşekkürler. İki gün boyunca bizi yalnız bırakmadınız.

Umarım katılan herkes için faydalı bir etkinlik olmuştur. Bizim için muhteşemdi. INETA NEXT Turu'na Diyarbakırı dahil ettiğimiz için ÇOK memnun kaldım. Bir dahakine görüşmek üzere Diyarbakır!

Monday, December 07, 2009 1:12:40 PM (GTB Standard Time, UTC+02:00)  #    Comments [6]   ASP.NET 4.0 | C# | Silverlight 4 | Visual Basic 2010 | WPF  | 
 Sunday, November 29, 2009

INETA NEXT etkinliklerimizle ilgili duyuruyu bundan yaklaşık bir hafta önce sizinle paylaşmıştım. Maalesef o zamanlarda içeriği paylaşma şansımız yoktu çünkü içeriğimizde daha Microsoft tarafından lansmanı yapılmamış ürünlere dair oturumlar olacaktı :) Eh artık zamanı geldi ve içeriğimizi paylaşmaktan gurur duyuyorum.

Diyarbakır - Dicle Üniversitesi, Tıp Fakültesi Konferans Salonu
5 Aralık
11.00-12.30 Visual Basic  10 Yenilikleri - Daron Yöndem (yazgelistir.com)
14.00-15.30 Windows 7'de neler var? - Muammer Benzeş (birliktegelistir.com)
16.00-17.00 Silverlight 4 - Daron Yöndem (yazgelistir.com)
6 Aralık
11.00-12.30 C# 4.0 Yenilikleri - Erkan Balaban (ceviz.net)
14.00-15.30 WPF 4 ile 3D Animasyon Programlama - Daron Yöndem  (yazgelistir.com)
16.00-17.30 ASP.NET 4.0 - Erkan Balaban (ceviz.net)

İstanbul - Microsoft Ofisi (Kroki)
12 Aralık
;
10.00-11.00 Silverlight 4 - Daron Yöndem (yazgelistir.com)
11.00-12.00 ASP.NET MVC 2 - Oğuz Yağmur (csharpnedir.com)
14.00-15.00 IIS Media Services - Muammer Benzeş (birliktegelistir.com)
15.15-16.15 Visual Basic 10 Yenilikleri - Daron Yöndem (yazgelistir.com)
13 Aralık
11.00-12.30 ASP.NET 4.0 Yenilikleri - Uğur Umutluoğlu (nedirtv.com)
14.30-15.45 Workflow Foundation 4.0 - Burak Selim Şenyurt (csharpnedir.com)
16.00-17.00 C# 4.0 Yenilikleri - Erkan Balaban (ceviz.net)
17.15-18.00 IE 8 Toolbar Geliştirme  - Barış Kanlıca (yazgelistir.com)

Kayseri - Erciyes Üniversitesi Mühendislik Fakültesi Konferans Salonu
19 Aralık
11.00-12.30 C# 4.0 Yenilikleri -Burak Selim Şenyurt  (csharpnedir.com)
14.00-15.30 Silverlight 4 - Daron Yöndem (yazgelistir.com)
15.45-16.45 ASP.NET 4.0 - Selçuk Yavuz (ceviz.net)

20 Aralık
11.00-12.30 ASP.NET MVC 2 - Selçuk Yavuz (ceviz.net)
14.00-15.30 Visual Basic 10 Yenilikleri - Daron Yöndem (yazgelistir.com)
15.45-16.45 Workflow Foundation 4.0 - Burak Selim Şenyurt (csharpnedir.com) 

Denizli - Pamukkale Üniversitesi Kongre Kültür Merkezi Ana Salon
26 Aralık
11.00-12.30 Silverlight 4.0 - Daron Yöndem (yazgelistir.com)
14.00-15.30 C# 4.0 Yenilikleri - Oğuz Yağmur (csharpnedir.com)
15.45-16.45 Asp.NET 4.0 Yenilikleri - Uğur Umutluoğlu (nedirtv.com)
27 Aralık
11.00-.12.30 Visual Basic 10 Yenilikleri - Daron Yöndem (yazgelistir.com)
14.00-15.30 Asp.NET MVC 2 - Oğuz Yağmur (csharpnedir.com)
15.45-16.45 ASP.NET AJAX 4.0 - Uğur Umutluoğlu (nedirtv.com)

Kayıt için www.inetatr.org adresini ziyaret etmeyi unutmayın!

Bu arada ilk etkinlik duyurumuzda da yer alan "Bir katılımcıya yeni bir beyin verilecektir" :) cümlesi biraz merak uyandırmış. Zaten amacı da buydu söz konusu cümlenin. Merak etmeye devam etmeniz gerekecek fakat emin olun bir katılımcıya çekilişle yeni bir beyin vereceğiz :) Bizde yalan yok :) Ayrıca birçok da sürpriz hediye olacak, benden söylemesi.

Sunday, November 29, 2009 2:43:22 PM (GTB Standard Time, UTC+02:00)  #    Comments [11]   .NET Framework 4.0 | ASP.NET | ASP.NET 4.0 | C# | IIS 7.0 | Seminer | Silverlight 4 | Visual Basic 2010 | Visual Studio 2010 | WCF | WF | Windows 7 | WPF  | 
 Wednesday, October 21, 2009

C# 4.0 ile beraber gelen yeni özelliklerden biri de Opsiyonel Parametreler. Hali hazırda VB'de yer alan bu özelliğin eksikliğini hissetmiyordum desem yalan olur. Görsel ders içerisinde Opsiyonel Parametrelerin kullanımına dair ufak bir örnek görebilirsiniz.

Yukarıdaki videoyu bilgisayarına indirmek blogumun SeminerTV bölümünden faydalanabilirler.

İyi seyirler...

Wednesday, October 21, 2009 4:26:29 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]   C# | Visual Studio 2010  | 
 Sunday, May 03, 2009

Bu hafta sonu epey yoğun bir tempo ile Ankara'da Bilkent Üniversitesi'ndeki iki etkinlik ve Çankaya Üniversitesi'ndeki bir etkinlik arasında gidip geldim :) Tüm bu tempo içerisinde XLINQ konusundan bahsettiğim her dakikada VB'nin Inline XML özelliğine hayran kalmayan kalmadı diyebilirim :) Ama gelin C#'cılar için de faydalı olabilecek bir ipucunu sizlerle paylaşiyim.

WCF Rest Starter Kit Preview 2

Aslında sizlere anlatacağım işlevsellik Rest based servislerin kullanımı için hazırlanmış. İsterseniz bu çerçevede aşağıdan download edebileceğiniz paketi bilgisayarınıa yükleyip diğer özellikleri de inceleyebilirsiniz. Fakat bizim bu yazımızda odaklanacağımız nokta C# ile XML sorgulama ve hızlıca XML yaratma konuları olacak.

http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24644

Özünde bugün rahatlıkla C# ile XML sorgulayabilir veya yaratabilirsiniz fakat elinizde hazır bir XML kodu olduğunu düşünürsek bu kodu yaratacak veya okuyacak C# kodunu yazarken sürekli hedef XML'in yapısını incelemek zorunda kalıyoruz. VB'de Inline XML bu sorunu tamamen çözse de C# içerisinde ancak WCF Rest Starter Kit ile beraber gelen araçları kullanarak işimizi kolaylaştırabiliriyoruz.

WCF Rest Starter Kit ile beraber "Past XML as Types"
WCF Rest Starter Kit ile beraber "Past XML as Types"

Elimizde gelen hazır bir formatta XML yaratalım!

Elimize aşağıdaki gibi hazır bir formatta XML geldiğini varsayalım. Bir şekilde bu XML ile aynı yapıda elimizde yer alan farklı bir veriden XML oluşturmak durumunda kalırsak tek tek her tagı yaratan XElement, XAttribute vs nesnelerini yaratmamız gerekecektir. Oysa eğer bilgisayarınızda WCF Rest Starter Kit yükledi iseniz işiniz daha kolay.

[XML]

<?xml version="1.0" encoding="utf-8" ?>

<DenemeVeri>

  <Urunler>

    <Urun No="145">

      <Adi>Örnek Ürün</Adi>

      <Kodu>df234sd</Kodu>

    </Urun>

    <Urun No="146">

      <Adi>Örnek Ürün</Adi>

      <Kodu>df234sd</Kodu>

    </Urun>

  </Urunler>

</DenemeVeri>

WCF Rest Starter Kit kurulumunu tamamladıktan sonra doğrudan Visual Studio'nun Edit menüsüne giderseniz "Past XML as Types" diye bir seçenek göreceksiniz. Yukarıdaki örnek XML'i kopyaladıktan sonra Visual Studio içerisinde herhangi bir projeye yeni bir CS dosyası ekleyip içine kopyaladığımız XML'i "Past XML as Types" diyerek yapıştıralım.

[C#]

/// <remarks/>

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3521")]

[System.Diagnostics.DebuggerStepThroughAttribute()]

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]

[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]

public partial class DenemeVeri

{

 

    private DenemeVeriUrunler urunlerField;

 

    /// <remarks/>

    public DenemeVeriUrunler Urunler

    {

        get

        {

            return this.urunlerField;

        }

        set

        {

            this.urunlerField = value;

        }

    }

}

/// <remarks/>

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3521")]

[System.Diagnostics.DebuggerStepThroughAttribute()]

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]

public partial class DenemeVeriUrunler

{

 

    private DenemeVeriUrunlerUrun urunField;

 

    /// <remarks/>

    public DenemeVeriUrunlerUrun Urun

    {

        get

        {

            return this.urunField;

        }

        set

        {

            this.urunField = value;

        }

    }

}

/// <remarks/>

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3521")]

[System.Diagnostics.DebuggerStepThroughAttribute()]

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]

public partial class DenemeVeriUrunlerUrun

{

 

    private string adiField;

 

    private string koduField;

 

    private DenemeVeriUrunlerUrunFiyatlar fiyatlarField;

 

    private byte noField;

 

    /// <remarks/>

    public string Adi

    {

        get

        {

            return this.adiField;

        }

        set

        {

            this.adiField = value;

        }

    }

 

    /// <remarks/>

    public string Kodu

    {

        get

        {

            return this.koduField;

        }

        set

        {

            this.koduField = value;

        }

    }

 

    /// <remarks/>

    public DenemeVeriUrunlerUrunFiyatlar Fiyatlar

    {

        get

        {

            return this.fiyatlarField;

        }

        set

        {

            this.fiyatlarField = value;

        }

    }

 

    /// <remarks/>

    [System.Xml.Serialization.XmlAttributeAttribute()]

    public byte No

    {

        get

        {

            return this.noField;

        }

        set

        {

            this.noField = value;

        }

    }

}

/// <remarks/>

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3521")]

[System.Diagnostics.DebuggerStepThroughAttribute()]

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]

public partial class DenemeVeriUrunlerUrunFiyatlar

{

 

    private byte[] fiyatField;

 

    private byte seviyeField;

 

    /// <remarks/>

    [System.Xml.Serialization.XmlElementAttribute("Fiyat")]

    public byte[] Fiyat

    {

        get

        {

            return this.fiyatField;

        }

        set

        {

            this.fiyatField = value;

        }

    }

 

    /// <remarks/>

    [System.Xml.Serialization.XmlAttributeAttribute()]

    public byte Seviye

    {

        get

        {

            return this.seviyeField;

        }

        set

        {

            this.seviyeField = value;

        }

    }

}

Yukarıda da gördüğünüz üzere biraz önce yapıştırdığımız tüm XML kodu bir anda Entity'ler olarak karşımıza çıkıyor. Böylece artık bu Entity'leri kullanarak aynı formatta bir XML yaratabiliriz. Gelin bir deneyelim;

[C#]

        DenemeVeri Ornek = new DenemeVeri();

        DenemeVeriUrun[] Urunler = new DenemeVeriUrun[1];

        DenemeVeriUrun YeniUrun = new DenemeVeriUrun();

        YeniUrun.Adi = "Örnek Ürün";

        YeniUrun.Kodu = "123";

        YeniUrun.No = 123;

        Urunler[0] = YeniUrun;

        Ornek.Urunler = Urunler;

 

        XmlSerializer MySerializer = new XmlSerializer(typeof(DenemeVeri));

        TextWriter TW = new StringWriter();

        MySerializer.Serialize(TW, Ornek);

        Response.Write(TW.ToString());

Yukarıdaki kod içerisinde aslında XML taglarından türetmiş olduğumuz Entity'leri kullanarak yeni bir XML kaynağı yaratabiliyoruz. Tüm bunları yaparken nesneler tanımlı olduğu için hem nested itemların yapılarını kontrol etmemize gerek kalmıyor hem de Intellisens bize yardımcı oluyor :)

Peki ya XML sorgularken?

Elimizde tanımı hazır bir XML dosyasından Entity'leri yarattığımıza göre aslında yine bildiğimiz bir XML'i okuyarak bu Entity'lere de çevirebiliyor olmamız gerek. Böylece XML sorgularken karşılaştığımız ve karşımızdaki XML'in yabancı bir yapıya sahip olmasından yola çıkan zorluklardan yine kurtulabiliriz.

[C#]

        XDocument Dok = XDocument.Load(Server.MapPath("XMLFile.xml"));

        XmlSerializer MySerializer = new XmlSerializer(typeof(DenemeVeri));

        TextReader TW = new StringReader(Dok.ToString());

        DenemeVeri Denek = MySerializer.Deserialize(TW) as DenemeVeri ;

        Response.Write(Denek.Urunler.Count());

Yukarıda gördüğünüz kod içerisinde ilk olarak makalemizin başındaki XML'in kayıtlı olduğu bir XML dosyasını okutuyoruz. Söz konusu XML dosyasının içeriğinden yarattığımız Entity'ler projemizin içerisinde yine hazır bulunuyorlar. Bu noktadan sonra tek yapmamız gereken eldeki XML'i DeSerialize ederek yine elde tanımlı Entity'lere çevirmek. Çeviri işlemini de tamamladıktan sonra artık rahat rahat istediğimiz veriye Intellisense'in de yardımı ile ulaşabiliriz. Hedef XML'in yapısı hiç bilmesek de sorgulama yapmak Entity'ler sayesinde kolaylaşıyor.

[C#]

        Response.Write((from inc in Denek.Urunler where inc.No==145 select inc.Adi).Single());

Yukarıda gördüğünüz sorgu aslında biraz önce DeSerialize ettiğimiz XML'i sorguluyor. Yine Intellisense ve LINQ yardımı ile sorgunun kodunu yazmak da çok kolaylaşıyor.

Hepinize kolay gelsin ;) C#'cılar ;)

Sunday, May 03, 2009 3:13:34 PM (GTB Standard Time, UTC+02:00)  #    Comments [11]   LINQ | C#  | 
Copyright © 2010 Daron Yöndem. Tüm hakları saklıdır.