Podchaser Logo
Home
C# Blog Reader - 2 - Get data into an app

C# Blog Reader - 2 - Get data into an app

Released Friday, 26th October 2012
Good episode? Give it some love!
C# Blog Reader - 2 - Get data into an app

C# Blog Reader - 2 - Get data into an app

C# Blog Reader - 2 - Get data into an app

C# Blog Reader - 2 - Get data into an app

Friday, 26th October 2012
Good episode? Give it some love!
Rate Episode

In this video we'll build a set of classes to represent a blog post, a blog, and a collection of blogs that download RSS or Atom feeds from the Web using the SyndicationClient class.

Changes in the video as of 3/25/2013

  • Change URLs to use blogs.windows instead of windowsteamblogs. For feed1, change it to use the new SkyDrive blog in place of the deleted Developers blog.

 

        public async Task GetFeedsAsync()

        {

            Task<FeedData> feed1 =

                GetFeedAsync("http://blogs.windows.com/skydrive/b/skydrive/atom.aspx");

            Task<FeedData> feed2 =

                GetFeedAsync("http://blogs.windows.com/windows/b/windowsexperience/atom.aspx");

            Task<FeedData> feed3 =

                GetFeedAsync("http://blogs.windows.com/windows/b/extremewindows/atom.aspx");

            Task<FeedData> feed4 =

                GetFeedAsync("http://blogs.windows.com/windows/b/business/atom.aspx");

            Task<FeedData> feed5 =

                GetFeedAsync("http://blogs.windows.com/windows/b/bloggingwindows/atom.aspx");

            Task<FeedData> feed6 =

                GetFeedAsync("http://blogs.windows.com/windows/b/windowssecurity/atom.aspx");

            Task<FeedData> feed7 =

                GetFeedAsync("http://blogs.windows.com/windows/b/springboard/atom.aspx");

            Task<FeedData> feed8 =

                GetFeedAsync("http://blogs.windows.com/windows/b/windowshomeserver/atom.aspx");

            // There is no Atom feed for this blog, so use the RSS feed.

            Task<FeedData> feed9 =

                GetFeedAsync("http://blogs.windows.com/windows_live/b/windowslive/rss.aspx");

            Task<FeedData> feed10 =

                GetFeedAsync("http://blogs.windows.com/windows_live/b/developer/atom.aspx");

            Task<FeedData> feed11 =

                GetFeedAsync("http://blogs.windows.com/ie/b/ie/atom.aspx");

            Task<FeedData> feed12 =

                GetFeedAsync("http://blogs.windows.com/windows_phone/b/wpdev/atom.aspx");

            Task<FeedData> feed13 =

                GetFeedAsync("http://blogs.windows.com/windows_phone/b/wmdev/atom.aspx");

            Task<FeedData> feed14 =

                GetFeedAsync("http://blogs.windows.com/windows_phone/b/windowsphone/atom.aspx");

 

 

  • In GetFeedAsync, don't add 'http://windowsteamblog.com' to the item id when processing an Atom feed. They've updated the id format, so we can just use the id now.

 

                        if (feed.SourceFormat == SyndicationFormat.Atom10)

                        {

                            if (item.Content != null && item.Content.Text != null)

                            {

                                feedItem.Content = item.Content.Text;

                            }

                            if (item.Id != null)

                            {

                                feedItem.Link = new Uri("http://windowsteamblog.com" + item.Id);    // just use feedItem.Link = new Uri(item.Id);

 

 

  • Check for null values in GetFeed and GetItem.

 

            var matches = _feedDataSource.Feeds.Where((feed) => feed != null && feed.Title.Equals(title));

 

 

            var matches = _feedDataSource.Feeds

                .Where(group => group != null)

                .SelectMany(group => group.Items).Where((item) => item.Title.Equals(uniqueId));

              

 

mp4high&WT.dl=0&WT.entryid=Entry:RSSView:37af503ef5d34e03a21ca0f5017a1204

Show More

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features