Aracılığıyla paylaş


Dağıtım Mimarisi

Dağıtım API'si, bağlı içeriğin çeşitli biçimlerde kabloya yazılmasını sağlayan, biçimsiz bir programlama modeli sağlamak üzere tasarlanmıştır. Soyut veri modeli aşağıdaki sınıflardan oluşur:

Bu sınıflar, bazı adlar farklı olsa da Atom 1.0 belirtiminde tanımlanan yapılarla yakından eşlenir.

Windows Communication Foundation'da (WCF), dağıtım akışları, dönüş türünün türetilmiş sınıflarından SyndicationFeedFormatterbiri olduğu başka bir hizmet işlemi türü olarak modellenir. Bir akışın alınması, istek-yanıt ileti değişimi olarak modellenmiştir. İstemci hizmete bir istek gönderir ve hizmet yanıt verir. İstek iletisi bir altyapı protokolü (örneğin ham HTTP) üzerinden ayarlanır ve yanıt iletisi yaygın olarak anlaşılan bir dağıtım biçiminden (RSS 2.0 veya Atom 1.0) oluşan bir yük içerir. Bu ileti alışverişlerini uygulayan hizmetlere dağıtım hizmetleri denir.

Bir dağıtım hizmetinin sözleşmesi, sınıfının bir örneğini SyndicationFeedFormatter döndüren bir dizi işlemden oluşur. Aşağıdaki örnekte, bir dağıtım hizmeti için arabirim bildirimi gösterilmektedir.

[ServiceContract]
[ServiceKnownType(typeof(Atom10FeedFormatter))]
[ServiceKnownType(typeof(Rss20FeedFormatter))]
public interface IBlog
{
    [OperationContract]
    [WebGet(UriTemplate="GetBlog?format={format}", BodyStyle=WebMessageBodyStyle.Bare)]
    SyndicationFeedFormatter GetBlog(string format);
}

Dağıtım desteği, akışları hizmet olarak kullanılabilir hale getirmek için birlikte WebHttpBehavior kullanılan bağlamayı WebHttpBinding tanımlayan WCF REST Programlama Modeli'nin üzerine kurulmuştur. WCF REST Programlama Modeli hakkında daha fazla bilgi için bkz . WCF Web HTTP Programlama Modeline Genel Bakış.

Not

Atom 1.0 belirtimi, tarih yapılarından herhangi birinde kesirli saniyelerin belirtilmesine olanak tanır. WCF uygulaması seri hale getirilirken ve seri durumdan çıkarılırken kesirli saniyeler yoksayılır.

Nesne Modeli

Dağıtım için nesne modeli, aşağıdaki tablolardaki sınıf gruplarından oluşur.

Biçimlendirme Sınıfları:

Sınıf Açıklama
Atom10FeedFormatter Bir örneği Atom 1.0 biçiminde seri hale getiren bir SyndicationFeed sınıf.
Atom10FeedFormatter<TSyndicationFeed> Türetilmiş sınıfları Atom 1.0 biçiminde seri hale SyndicationFeed getiren bir sınıf.
Atom10ItemFormatter Bir örneği Atom 1.0 biçiminde seri hale getiren bir SyndicationItem sınıf.
Atom10ItemFormatter<TSyndicationItem> Türetilmiş sınıfları Atom 1.0 biçiminde seri hale SyndicationItem getiren bir sınıf.
Rss20FeedFormatter Bir örneği RSS 2.0 biçiminde seri hale getiren bir SyndicationFeed sınıf.
Rss20FeedFormatter<TSyndicationFeed> Türetilmiş sınıfları RSS 2.0 biçiminde seri hale SyndicationFeed getiren bir sınıf.
Rss20ItemFormatter Bir örneği RSS 2.0 biçiminde seri hale getiren bir SyndicationItem sınıf.
Rss20ItemFormatter<TSyndicationItem> Türetilmiş sınıfları RSS 2.0 biçiminde seri hale SyndicationItem getiren bir sınıf.

Nesne Modeli Sınıfları:

Sınıf Açıklama
SyndicationCategory Bir dağıtım akışının kategorisini temsil eden bir sınıf.
SyndicationContent Dağıtım içeriğini temsil eden bir temel sınıf.
SyndicationElementExtension Bir dağıtım öğesi uzantısını temsil eden bir sınıf.
SyndicationElementExtensionCollection SyndicationElementExtension nesneleri topluluğu.
SyndicationFeed En üst düzey akış nesnesini temsil eden bir sınıf.
SyndicationItem Akış öğesini temsil eden bir sınıf.
SyndicationLink Bir dağıtım akışı veya öğesi içindeki bağlantıyı temsil eden bir sınıf.
SyndicationPerson Atom Person yapısını temsil eden bir sınıf.
SyndicationVersions Desteklenen dağıtım protokolü sürümlerini temsil eden bir sınıf.
TextSyndicationContent Son kullanıcıya görüntülenecek içeriği SyndicationItem temsil eden bir sınıf.
TextSyndicationContentKind Desteklenen farklı metin dağıtım içeriği türlerini temsil eden bir numaralandırma.
UrlSyndicationContent Başka bir kaynağın URL'sini içeren dağıtım içeriğini temsil eden bir sınıf.
XmlSyndicationContent Tarayıcıda görüntülenmeyen dağıtım içeriğini temsil eden bir sınıf.

Nesne modelindeki temel veri soyutlamaları, ve sınıflarına SyndicationFeed karşılık gelen Akış ve SyndicationItem Öğe'dir. Akış, bazı akış düzeyinde meta verileri (örneğin, Başlık, Açıklama ve Yazar), bilinmeyen uzantıları depolamak için bir konum ve akışın diğer bilgi içeriğini oluşturan bir dizi öğeyi kullanıma sunar. Öğe bazı öğe düzeyinde meta verileri (örneğin, Başlık, Özet ve YayınTarihi), bilinmeyen uzantıları depolamak için bir konum ve öğenin bilgi içeriğinin geri kalanını içeren bir içerik öğesi sağlar. Akış ve Öğe'nin temel soyutlamaları, Atom 1.0 ve RSS belirtimlerinde başvuruda bulunan ortak veri yapılarını temsil eden ek sınıflar tarafından desteklenir.

Akış örneğinde taşınan bilgiler çeşitli XML biçimlerine dönüştürülebilir. XML'ye ve XML'den dönüştürme işlemi sınıfı tarafından SyndicationFeedFormatter yönetilir. Bu sınıf soyut; Atom 1.0 ve RSS 2.0 Atom10FeedFormatter ve Rss20FeedFormatteriçin somut uygulamalar sağlanır. Türetilmiş Akış sınıflarını kullanmak için, türetilmiş bir Akış sınıfı belirtmenize izin verdikleri şekilde veya Rss20FeedFormatter<TSyndicationFeed> kullanınAtom10FeedFormatter<TSyndicationFeed>. Türetilmiş öğe sınıflarını kullanmak için veya Rss20ItemFormatter<TSyndicationItem> türetilmiş bir öğe sınıfı belirtmenize izin verdikleri şekilde kullanınAtom10ItemFormatter<TSyndicationItem>. Üçüncü taraflar, farklı dağıtım biçimlerini desteklemek için kendi uygulamalarını SyndicationFeedFormatter türetebilir.

Genişletilebilirlik

  • Dağıtım protokollerinin temel özelliklerinden biri genişletilebilirliktir. Hem Atom 1.0 hem de RSS 2.0, belirtimlerde tanımlanmayan dağıtım akışlarına öznitelikler ve öğeler eklemenize olanak sağlar. WCF dağıtım programlama modeli, özel öznitelikler ve uzantılarla çalışmanın iki yolunu sağlar: yeni bir sınıf ve gevşek türetilmiş erişim türetme. Daha fazla bilgi için bkz . Dağıtım Genişletilebilirliği.

Ayrıca bkz.