InfoQ

News

AtomPub in the .NET World

Posted by Hartmut Wilms on Aug 22, 2008 05:51 AM

Community
.NET,
SOA
Topics
.NET Framework
Tags
Atom ,
AtomPub

With the advent of .NET 3.5 SP1 and Microsoft’s decision to support the Atom Publishing Protocol (AtomPub) for services offered by Microsoft's Live Platform, AtomPub is gaining momentum in the .NET world. In addition BlogSvc.net, an AtomPub server for WCF and .NET, features an implementation of the AtomPub protocol based on a provider model.

BlogSvc.net is an open source project hosted on CodePlex and started by Jarret Vance:

BlogSvc is an open source implementation of the Atom Publishing Protocol. It is built on top of a provider model. There are providers for the file system and databases. The service is compatible with Live Writer.

BlogSvc is written in C# 3.5, uses the new web programming model in WCF, and relies heavily on LINQ and other new language features. BlogSvc can be used with or without IIS.

Since BlogSvc.net has been written before the official release of .NET 3.5 SP1, it provides its own implementation of a syndication object model. As Steve Maine has announced, Microsoft also “added strongly-typed OM for all of the constructs defined in the Atom Publishing Protocol specification (like ServiceDocument and Workspaces) and put them in the System.ServiceModel.Syndication namespace”.

Steve and Scott Hanselman point out that Jarret might profit from the ServiceDocument and Workspace classes, i.e. the syndication object model in System.ServiceModel.Syndication, and “be able to remove most of his "BlogService.Core" project”. Read the details in Scott’s article, which also offers a brief analysis of BlogSvc.net’s code.

In spite of many articles, which partially reduce BlogSvc.net and Syndication/AtomPub support in .NET Framework 3.5 (SP1) to a means of implementing content management systems or blog engines, AtomPub offers a much wider area of application. In an interview, available on InfoQ, Dan Diephouse talks about the benefits of using the Atom Pub and Atom standards for business applications.

Related Sponsor

Red Gate Software makes ingeniously simple tools for over 500,000 SQL Server and .NET professionals.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.