новостная лента с использованием .Net Dataservices / OData / Atom? - PullRequest
1 голос
/ 21 мая 2010

Допустим, у меня есть приложение типа веб-CMS и модель EDM с сущностью под названием «статья», и мне нужно предложить

  1. возможность для клиентских приложений читать / запрашивать статьи (и другие ресурсы, хранящиеся в нашей базе данных)
  2. простой синдикационный канал этих статей для конечных пользователей (по аналогии с простым RSS-каналом)

Мне кажется, что для первого задания и службы данных .net 4 было бы идеально для этой работы. Во втором случае мне интересно (а) выбрать правильный формат для атома - я думаю, что это так - и (б) возможно ли добиться такого фида, используя тот же сервис ODo.net ado.net.

Я взглянул на некоторые примеры и кратко изложил подтверждение концепции:

http://localhost/projectname/DataService.svc/Articles

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xml:base="http://localhost/projectname/DataService.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Articles</title>
  <id>http://localhost/projectname/DataService.svc/Articles</id>
  <updated>2010-05-21T09:41:22Z</updated>
  <link rel="self" title="Articles" href="Articles" />
  <entry>
    <id>http://---------DataService.svc/Articles(1)</id>
    <title type="text"></title>
    <updated>2010-05-21T09:41:22Z</updated>
    <author>
      <name />
    </author>
    <link rel="edit" title="Article" href="Articles(1)" />
    <category term="Model1.Article" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
    <content type="application/xml">
      <m:properties>
        <d:int_ContentID m:type="Edm.Int32">1</d:int_ContentID>
        <d:Titel>hello world</d:Titel>
        <d:Source>http://www.google.com</d:Source>
      </m:properties>
    </content>
  </entry>
</feed>

и заметил, что, хотя канал работает и элементы отображаются, тег заголовка на уровне входа остается пустым. (в результате, когда вы проверяете этот канал в программе чтения каналов, вы не увидите заголовок). Я искал msdn, но не нашел способа сделать это, но это должно быть возможно. Stackoverflow сам использует подачу атома таким образом, так что это должно быть возможно. Верно?

Итак, я полагаю, мой вопрос таков; Есть ли способ, чтобы канал Atom ado.net dataservice выглядел как-то подходящий для обычного читателя новостей? - ИЛИ, я использую неправильный инструмент для неправильных целей и должен ли я искать что-то еще (возможно, API-интерфейс синдикации .net)?

1 Ответ

0 голосов
/ 26 мая 2010

Можно использовать службы данных WCF.

Здесь 'ссылка, которая сообщает нам, что возможно с помощью функции Friendly feeds: http://blogs.msdn.com/b/phaniraj/archive/2009/03/18/introducing-web-friendly-feeds-aka-friendly-feeds.aspx

Вот ссылка, которая говорит вам, как это сделать: http://blogs.msdn.com/b/phaniraj/archive/2009/03/28/ado-net-data-services-friendly-feeds-mapping-edm-types-i.aspx

Спасибо Pratik

...