RSS Service

Veröffentlicht: 31. Jan 2006

AdventureWorks Cinema 1.0

Der RSS Service besteht aus insgesamt drei abrufbaren RSS-Feeds. Der Kinobesucher kann sich mit deren Hilfe über aktuelle Filme (alle oder personalisiert) und News informieren. Diese RSS-Feeds kann er sich mit einem RSS Reader seiner Wahl anzeigen lassen.

Auf dieser Seite
Aufbau des SamplesAufbau des Samples
Technologien und KonzepteTechnologien und Konzepte
FunktionalitätenFunktionalitäten
DownloadDownload

Mit dieser Beispielanwendung wird gezeigt, wie einfach man unter .NET einen RSS-Feed realisieren kann. Wie in diesem Beispiel gezeigt wird, benötigt man bei einer gegebenen Datenquelle für jeden weiteren RSS-Feed keine einzige Zeile Code mehr.

Der RSS Service wurde komplett in C# programmiert.

RSS Client

Aufbau des Samples

Der RSS-Service besteht aus insgesamt drei aspx-Webseiten plus einer zusätzlichen für die Fehlerbehandlung. Auf der Startseite befindet sich der Link zu zwei anderen aspx-Seiten auf denen jedoch nur die RSS-Ausgabe erstellt wird. Als RSS-Feed werden News, aktuelle Filme und die personalisierten aktuellen Filme angeboten.

Der personalisierte Film-RSS-Feed enthält nur die Filme, bei denen sich der Benutzer für mindestens ein Genre interessiert.

Um den personalisierten RSS-Feed zu erhalten, muss man sich einmal mit seiner Benutzerkennung und Passwort auf der Startseite anmelden. Nach erfolgreicher Anmeldung erhält der Besucher einen Link zu der Seite mit dem Film-RSS-Feed. Im Unterschied zum Standardlink zu dem Film-RSS-Feed enthält der Link noch als Parameter die Identifikationsnummer des Benutzers. Diesen Link kann er wie jeden anderen RSS-Link in seinem RSS-Reader hinzufügen.

Hat er einmal den Link zum personalisierten Film-RSS-Feed hinzugefügt, erhält er per RSS-Reader regelmäßig die neusten Informationen derjenigen Filme, die ihn interessieren, ohne sich erneut auf der Startseite anmelden zu müssen.

Technologien und Konzepte

In diesem Beispiel wird nur das RSS 2.0 Format, das einen XML-Dialekt darstellt, benutzt. Dies sieht beispielsweise wie folgt aus:

<rss version="2.0">
<channel>
<title>Beispiel RSS</title>
<link>http://www.microsoft.com</link>
<description>meine Beschreibung</description>
<item>
<title>first item title . </title>
        <description>first description . </description>
        <pubDate>Mon, 01 Aug 2005 00:00:00 GMT</pubDate> 
<link>http://www.microsoft.com</link>
</item>
       <item>
       <title>second item title . </title>
        <description>second description . </description>
        <pubDate>Tue, 01 Nov 2005 00:00:00 GMT</pubDate> 
<link>http://www.microsoft.com</link>
</item>
</channel>
</rss>

Die eigentlichen Informationen des RSS-Feeds befinden sich wie man am Beispiel erkennt im <item>-Bereich.

Da dieser Bereich nur mit veränderten Daten wiederholt ausgegeben wird, kann man ihn am besten durch das Steuerelement Repeater ausgeben. Um zusätzlich den Anfang und das Ende des RSS-Feeds generieren zu können, haben wir das Steuerelement Repeater erweitert. Das neue, erweiterte Steuerelement RssRepeater löscht am Beginn der Ausgabe jede vorherige Ausgabe und schließt die gesamte Ausgabe am Ende ab. Auf diese Weise wird sichergestellt, dass wirklich nur RSS-Daten ausgegeben werden. Außerdem enthält das Steuerelement RssRepeater zusätzliche Eigenschaften, um den Titel, den Link und die Beschreibung des RSS-Feeds zu setzen.

Das Steuerelement RssReapter kann genauso wie das Steuerelement Repeater eingesetzt werden. Man muss lediglich darauf achten, dass der RssRepeater den <item>-Bereich ausgibt. Ein auf einer aspx-Seite eingesetztes RssRepeater-Steuerelement könnte wie folgt aussehen:

<adventureworks:RssRepeater ID="NewsRepeater"
                            runat="server" 
                            DataSourceID="NewsDataSource" 
                            RssDescription="meine Beschreibung" 
                            RssLink="http://www.microsoft.com" 
                            RssTitle="Sample RSS">
<ItemTemplate>
<item>
<title><%# DataBinder.Eval(Container.DataItem, "Subject") %></title>
<description><%# DataBinder.Eval(Container.DataItem, "Text") %> </description>

Dieses angegebene Beispiel funktioniert ohne weiteren Code in C# oder Visual Basic .NET schreiben zu müssen.

Zusätzlich zu allen anderen Texten kann man die Beschreibung, den Link und den Titel des Steuerelements RssRepeater in eine Ressourcen-Datei auslagern. Dies wird in dieser Beispielanwendung strikt durchgesetzt, so dass eine bestmögliche Lokalisierbarkeit geboten wird.

Des Weiteren wird in dieser Beispielanwendung darauf geachtet, dass jeder aufgetretene Fehler behandelt wird. Um dies umzusetzen, haben wir eine aspx-Seite ("DefaultErrorPage.aspx") erstellt, die angezeigt wird, sobald ein Fehler aufgetreten ist.

Um den personalisierten Film-RSS-Feed zu realisieren wird, ein Parameter mit der Identifikationsnummer des Benutzers übergeben. Dieser Link mit Parameter wird generiert, wenn sich der Benutzer beim RSS-Service anmeldet und kann von dort kopiert und mit jedem RSS-Feed-Programm benutzt werden. Diese Funktionsweise ist datentechnisch nicht kritisch, da man maximal einer Identifikationsnummer die bevorzugten Genres zuordnen kann. Auf den eigentlichen Benutzer kann man nicht zurück schließen. Mit Hilfe der Identifikationsnummer werden die Filme, für die sich der Benutzer (der sich hinter der Identifikationsnummer verbirgt) interessiert, von der Datenquelle geholt und vom RssRepeater ausgegeben. Falls keine Identifikationsnummer als Parameter mitgeliefert wird, werden alle Filme ausgegeben.

Funktionalitäten

Mit dieser Beispielanwendung kann man sich RSS-Feeds abonnieren. Dazu navigiert man zu der Startseite des RSS-Service. Dort wählt man sich einen der Links aus und kopiert ihn. Diesen Link kann man nun in einem RSS-Reader seiner Wahl als neuen RSS-Feed hinzufügen. Nun bekommt man regelmäßig Informationen von AdeventureWorks Cinema.

Als Alternative kann man sich auf der Startseite zuerst anmelden. Der Link, der nach erfolgreicher Anmeldung angezeigt wird, enthält zusätzlich eine Identifikationsnummer des Benutzers. Mit dieser Identifikationsnummer wird der Film-RSS-Feed zu personalisiert, dass nur die Filme ausgegeben werden, für die sich der Benutzer interessiert. Diesen Link kann man genauso wie die anderen beiden Links zu einem RSS-Reader seiner Wahl hinzufügen.

Download

Voraussetzungen

1.

Visual Studio 2005 Professional oder Team Systems 2005 mit dem .NET Framework 2.0

2.

SQL Server 2005 Express

3.

Internet Browser (z.B. den Internet Explorer)

4.

AdventureWorks CinemaServer

Optional kann ein RSS-Reader installiert werden, damit die jeweiligen RSS-Feeds dargestellt werden können.

Installation

1.

Installieren Sie AdventureWorks CinemaServer

2.

Starten Sie AdventureWorks CinemaServer

3.

Entpacken Sie den Inhalt der zip-Datei in einen beliebigen Ordner.

4.

Öffnen Sie die Datei RssSerivce\Web.Config mit Visual Studio 2005 oder einem Text-Editor.

5.

Passen Sie, wenn nötig, in dieser Datei die Adresse von dem CinemaServer an:
<setting name="CinemaAccessService_WebService_CinemaServiceImplementation"
serializeAs="String">
<value>http://localhost:1524/CinemaWebService/Service.asmx</value>
</setting>

6.

Öffnen Sie nun "CinemaRssService.sln" mit Visual Studio 2005

7.

Im Projektmappen-Explorer von Visual Studio 2005 sehen Sie mehrere Projekte.
Prüfen Sie, ob das Projekt "RssService" als Startprojekt ausgewählt ist, legen Sie es ggf. als Startprojekt fest (Rechtsklick auf das Projekt).

8.

Starten Sie nun die Anwendung.

Auf der "Login"-Webseite können Sie als Benutzernamen "Administrator" und als Kennwort "admin" eingeben, um einen personalisierten Feed zu erhalten. Weitere Benutzerdaten finden Sie hier.

Hier erreichen Sie unser Downloadcenter, um das Sample herunterzuladen.


AdventureWorks Cinema 1.0

Home

Downloads

Die Anwendungen

CinemaServer

Windows Client

Mobile Client

Office Client

Web Client

RSS Service