İşlevsel ve yordamsal programlama karşılaştırması (LINQ to XML)

Çeşitli XML uygulaması türleri vardır:

  • Bazı uygulamalar kaynak XML belgelerini alır ve kaynak belgelerden farklı bir şekilde yeni XML belgeleri üretir.
  • Bazı uygulamalar kaynak XML belgelerini alır ve sonuç belgelerini HTML veya CSV metin dosyaları gibi tamamen farklı bir biçimde üretir.
  • Bazı uygulamalar kaynak XML belgelerini alır ve bir veritabanına kayıt ekler.
  • Bazı uygulamalar veritabanı gibi başka bir kaynaktan veri alır ve bu kaynaktan XML belgeleri oluşturur.

Bunların tümü XML uygulaması türleri değildir, ancak bunlar bir XML programcısının uygulaması gereken işlev türlerinin temsili bir kümesidir.

Bu tür uygulamaların tümüyle, bir geliştiricinin uygulayabileceği iki karşıt yaklaşım vardır:

  • Bildirim temelli bir yaklaşım kullanarak fonksiyonel yapı oluşturma.
  • Bellek içi XML ağacının yordam kodu kullanılarak değiştirilmesi.

LINQ to XML her iki yaklaşımı da destekler.

İşlevsel yaklaşımı kullanırken, kaynak belgeleri alıp dönüştürmeler yazarsınız ve tamamen istenen şekilde yeni belgeler oluşturursunuz.

Bir XML ağacını yerinde değiştirirken, gerektiğinde düğümleri ekleyen, silerek ve değiştirerek bellek içi XML ağacındaki düğümler arasında geçiş yapıp gezinen kod yazarsınız.

LINQ to XML'yi her iki yaklaşımla da kullanabilirsiniz. Aynı sınıfları ve bazı durumlarda aynı yöntemleri kullanırsınız. Ancak iki yaklaşımın yapısı ve hedefleri farklıdır. Örneğin, farklı durumlarda, bir veya diğer yaklaşım genellikle daha iyi performansa sahip olur ve daha fazla veya daha az bellek kullanır. Buna ek olarak, bir veya diğer yaklaşımın daha kolay yazılması ve daha sürdürülebilir kodlar elde edilmesi daha kolay olacaktır.

İki yaklaşımın karşıt olduğunu görmek için bkz . Bellek içi XML ağacı değişikliği ve işlevsel yapı.

İşlevsel dönüşümler yazma öğreticisi için bkz. Saf işlevsel dönüşümlere giriş.