Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (4)
Emner Webapplikationer

Web 2.0 og .Net 3.5 - Del 2:4

Af admin adminuser 1. maj 2008 kl. 00:30

Som nævnt tidligere lavede jeg 4 demoer til fire emner på dagens Techtalk. Andet emne var introduktion til syndikeringsmulighederne i Windows Communication Foundation.

Demo: RSS og Atom med WCF

Kort fortalt kommer WCF med en projekt template til frembringelsen af feeds. Default templaten for et sådan projekt kan give en kørende service med syndikeringsendpoints.

Det er WCF's ABC model som stadig følges og med default template kode vil man få et simpelt kørende feed på et endpoint.

  1. Først laves kontrakten...
  2. ...og denne implementeres

Jeg tester mine feed endpoints fra en browser eller jeg kan skrive en simpel html klient som dels indeholder links til de enkelte feeds og dels udtager titel og indhold af de enkelte posts og skriver dem i html'en.

  1. html klient
  2. codebehind til klienten

Det giver så mulighed for at prøve det i en browser og få følgende:

Voila feeds og content!

Send Tweet
Udskriv
Om admin adminuserFollow @version2

Kommentarer (4)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
René Løhde 1. maj. 2008 - 00.50
 
1. Først laves kontrakten...

[code=csharp]
using System;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Syndication;
using System.ServiceModel.Web;
namespace SyndicationService
{
[ServiceContract]
[ServiceKnownType(typeof(Atom10FeedFormatter))]
[ServiceKnownType(typeof(Rss20FeedFormatter))]
public interface IFeed1
{
[OperationContract]
[WebGet(UriTemplate = "*", BodyStyle = WebMessageBodyStyle.Bare)]
SyndicationFeedFormatter CreateFeed();
}
}
[/code]

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
René Løhde 1. maj. 2008 - 00.51
 
2. ...og denne implementeres

[code=csharp]
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Syndication;
using System.ServiceModel.Web;
namespace SyndicationService
{
public class Feed1 : IFeed1
{
public SyndicationFeedFormatter CreateFeed()
{
SyndicationFeed feed = new SyndicationFeed("Alt omWebservices!", "Feed fra Renés blog - alt godt om webservices!", null);
List items = new List();
string s = "You can easily change.....";
SyndicationItem item1 = new SyndicationItem("Webservices er Fedt!", s, null);
SyndicationItem item2 = new SyndicationItem("Den fede webservicelever stadigt!", s, null);

        items.Add(item1);  
        items.Add(item2);  
        feed.Items = items;  
        // rss ->http://localhost:8731/Design_Time_Addresses/SyndicationService/Feed1/  
        // atom ->http://localhost:8731/Design_Time_Addresses/SyndicationService/Feed1/?format=atom  
        string query = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["format"];  
        SyndicationFeedFormatter formatter = null;  
        if (query == "atom")  
        {  
            formatter = new Atom10FeedFormatter(feed);  
        }  
        else  
        {  
            formatter = new Rss20FeedFormatter(feed);  
        }  
        return formatter;  
    }  
}  

}
[/code]

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
René Løhde 1. maj. 2008 - 00.52
 
3. html klient

[code=html]
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Mash_up._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Test af RSS og Atom feed</title>
</head>
<body>
<form id="form1" runat="server">
<% Response.Write(getFeedEntries("http://localhost:8731/Design_Time_Addresses/SyndicationService/Feed1")); %>
<p />
<div>
<a href="http://localhost:8731/Design_Time_Addresses/SyndicationService/Feed1/">
<img alt="RSS feed" src="feedlogo.gif"/> RSS
</a>
</div>
<div>
<a href="http://localhost:8731/Design_Time_Addresses/SyndicationService/Feed1/?fo...
<img alt="Atom feed" src="feedlogo.gif"/> Atom
</a>
</div>
</form>
</body>
</html>
[/code]

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
René Løhde 1. maj. 2008 - 00.53
 
4. codebehind til klienten

[code=csharp]
public string getFeedEntries(string uri)
{
XDocument doc = XDocument.Load(uri);
var entries = from entry in doc.Descendants("item")
select new
{
title = entry.Element("title").Value,
description = entry.Element("description").Value
};
string s = "";
foreach (var e in entries)
{
s += "
" + e.title + "
" + e.description + "";
}
return s;
}
[/code]

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

De 170 fyrede hos IBM Danmark får 30.000 kroner i hånden

Udgivet 24. maj 12.19Opdateret 24. maj 12.19

Google vinder patentsagen om Android: Brød ikke Oracles Java-patenter

Udgivet 24. maj 11.30Opdateret 24. maj 11.30

Danske HP-ansatte er fyringstruede: Indkaldt til stormøde

Udgivet 24. maj 10.37Opdateret 24. maj 11.56

HP fyrer 27.000 ansatte

Udgivet 24. maj 10.10Opdateret 24. maj 10.10

Kinect til Windows klar på dansk til juni

Udgivet 24. maj 9.24Opdateret 24. maj 9.24

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Seneste debat

  1. GOTO - programming with the stars (F#)

    4 comments.
    Last update 8 minutter 8 sekunder
    Skrevet af Mikkel Bundgaard
  2. Google vinder patentsagen om Android: Brød ikke Oracles Java-patenter

    1 comment.
    Last update 19 minutter 11 sekunder
    Skrevet af Thomas Løcke
  3. Oracle tabte, vandt Google Java ?

    11 comments.
    Last update 21 minutter 38 sekunder
    Skrevet af Poul-Henning Kamp
  4. Sådan formaterer du tekst i debatten på Version2

    34 comments.
    Last update 33 minutter 53 sekunder
    Skrevet af Jesper Lund Stocholm
  5. Kynisk it-guru: »Internettet er basalt set noget lort«

    5 comments.
    Last update 41 minutter 57 sekunder
    Skrevet af Henrik Mikael Kristensen
  6. HTML5 – det nye sort?

    14 comments.
    Last update 1 time 10 minutter
    Skrevet af Per Friis
  7. EMC: Derfor skal du undgå både public og privat cloud

    2 comments.
    Last update 1 time 38 minutter
    Skrevet af Jesper Grønbæk
  8. Meego-afløseren Tizen klar til at tage kampen op med Android

    8 comments.
    Last update 2 timer 13 minutter
    Skrevet af Jacob Sparre Andersen

Mere debat »

It-virksomheder

Incube
|
BEC
|
Omada
|
Relation House
|
Pekke
|
Halibut
|
C2IT
|
Brugertest.nu
|
Computerfriend.DK
|
Siemens
|
Praktisk IT
|
Stay Secure Denmark
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300