Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Emner
  • Opret bruger
  • Log ind
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

Konklusion af Polsag-review fra 2009: Elendig kode hånd i hånd med elendig kontrakt

Udgivet 10. feb 6.59Opdateret 10. feb 6.59

It skal spare kommunerne for 165 millioner kroner i 2012

Udgivet 9. feb 16.02Opdateret 9. feb 16.02

Adobe: Vi laver ikke Flash til Android-udgaven af Chrome

Udgivet 9. feb 15.15Opdateret 9. feb 15.15

Så oldnordisk er politiets it-miljø: Nostalgisk gensyn med 1980’erne

Udgivet 9. feb 14.22Opdateret 9. feb 15.12

EMC lægger flash-cache på PCIe-kort: 4.000 gange hurtigere end harddiske

Udgivet 9. feb 13.39Opdateret 9. feb 13.39
Flere it-nyheder »
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Seneste debat

  1. Domæne-forening: Lov om .aarhus og .cph var for tynd

    10 comments.
    Last update 25 minutter 13 sekunder
    Skrevet af Nikolaj Brinch Jørgensen
  2. Opdateret liste over danske iværksættere

    2 comments.
    Last update 3 timer 49 minutter
    Skrevet af Therese Hansen
  3. Stop SOPA, PIPA, ACTA, TPP og alle dem der kommer efter

    50 comments.
    Last update 8 timer 10 minutter
    Skrevet af Bjarne W. B. Petersen
  4. Derfor bliver dårlige it-projekter ikke stoppet i tide

    1 comment.
    Last update 8 timer 34 minutter
    Skrevet af Kasper Jørgensen
  5. Grotesk jobinterview i 2007: »Tag ikke jobbet, vi får alligevel aldrig Polsag til at virke«

    17 comments.
    Last update 8 timer 42 minutter
    Skrevet af Claus Waldersdorff Knudsen
  6. Så oldnordisk er politiets it-miljø: Nostalgisk gensyn med 1980’erne

    6 comments.
    Last update 8 timer 44 minutter
    Skrevet af Simon Justesen
  7. ACTA er i orden!

    51 comments.
    Last update 12 timer 8 minutter
    Skrevet af Jarle Knudsen
  8. It-advokat: Nu går grænsebommene ned over internettet

    10 comments.
    Last update 13 timer 54 minutter
    Skrevet af Niels Elgaard Larsen
Mere debat »

Information

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

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Digitaliseringsstyrelsen
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X 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
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Version2 udgives af

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