atomsite.net

The AtomPub server for .NET

News Blog - For the year 2008

  1. Wizard Release 0.8

    settings The eighth release of BlogSvc includes a new setup wizard. Also, this release contains the following new or improved features:

    • Setup wizard will test your installation on your web server
    • Setup wizard will modify your service.config and users.config
    • New green theme called "Settings" (see right)
    • All entries are cleansed from html to xhtml
    • Comments allow html only from a whitelist of tags
    • Authorized comments can use any tags
    • New support for wlwmanifest.xml
    • Entries can now be split in live writer or with <!--more--> comment
    • Collection page now only shows first part of post when split
    • New ExtendedEntriesOn setting for each collection which alters wlwmanifest.xml
    • Feeds now only show first part of post when ExtendedEntriesOn
    • Updates to jQuery rater plugin based on community feedback
    • Updated Search to use render partial
    • Updated views and partials to use strongly typed models
    • BaseController and BaseModel greatly increase view potential
    • Updated all existing entries to Xhtml
    • Remove emails from annotation feeds (to prevent spam)

    Visit the release page on codeplex to download.

    kick it on DotNetKicks.com
    Posted by JarrettV on December 24 at 1:38 AM

  2. New Setup Wizard

    The next release will make setting up BlogSvc.net very simple.  You won't even need to manually edit the config files as they are done as part of the wizard.

    Loading…

    Wizard Steps

    The wizard currently has 3 steps:

    Read More
    Posted by JarrettV on December 22 at 11:29 AM

  3. Extended Entries Support

    Split in Live Writer I added extended content support for people who like to only show part of the post on their feed and listing pages.

    There is a new setting on each collection called "ExtendedEntriesOn" which will alter the wlwmanifest.xml depending on the setting. Please note that setting this value to false will not disallow the <!--more--> tag. However, a theme designer may alter the display/layout of the theme based on this setting.

    The collection page and simple entry partial were modified to have a "Read More" link whenever there is extended content.

    For feeds, if ExtendedEntriesOn=True then each entry in the feed will not show the extended content (it will only show the content before the split).

    Live Writer has built in support for splitting entries as seen in the picture to the right.

    Posted by JarrettV on December 18 at 6:59 PM

  4. Trackback Release 0.7

    Hibiscus Theme Screenshot The seventh release of BlogSvc includes support for Trackbacks. Also, this release contains the following new or improved features:

    • Updated to latest MVC Beta
    • A new theme: Hibiscus (see right)
    • Auto-ping links upon create/update entry
    • Trackback client and server support
    • Pingback client and server support
    • Search support added to both backend and frontend
    • Search relevance ordering based on term hit count
    • Updates to use RenderPartial instead of controls
    • New recent comments display
    • Additional sort support through repository
    • New separate credential storage in Users.config
    • New date/time support via timezone configuration
    • New time ago jQuery feature shows relative time to user
    • New support for storing entries in database
    • Updated paging for both atom and web
    • Bug fix to date/time storage
    • Comment feeds at collection, workspace, and entire app level now supported
    • Retrieve entries at multiple different levels
    kick it on DotNetKicks.com
    Posted by JarrettV on October 21 at 10:00 PM

  5. New Theme Hibiscus

    Hibiscus Clipart

    This theme has not yet been updated for Release 0.9.

    Release 0.7 has a new theme called Hibiscus.  You can see this theme applied to the latest release on our test server: http://atomsite.net. To save time, the theme is built on top of the default theme using an import.image

    @import url('../default/default.css');

    This theme consists of only a CSS stylesheet and eight new images. The rest of the theme is inherited from the default theme. The theme can be applied to either a single collection or a whole workspace by setting the theme property in the Service.config document.

    <workspace svc:default="true" svc:theme="hibiscus">

    I created this theme for my wife Kristin. It is based on a clipart found at the open clip art library called Hibiscus Remixed. Kristin altered the colors and I created the CSS and other images.

    View Screenshot

    kick it on DotNetKicks.com
    Posted by JarrettV on October 21 at 1:07 AM

  6. Trackback and Pingback Support

    Trackback

    Trackback and pingback support is the top new feature of the next release.  The support is unique in that it utilizes an MVC controller to receive trackbacks and pingbacks.  I've also implemented auto-ping support for sending trackback and pingbacks to all the links in the content of an entry upon publish or update.

    I believe that the Atom Threading Extension was built upon the notion of a trackback.  This is why we are using the existing annotation support in BlogSvc for annotating an entry when a trackback or pingback occurs.  Therefore, a trackback is just another atom entry with it's content source pointing back to the target location.

    BlogSvc is unique in that it tries to extract information from the target location when it is not provided.  This sometimes occurs with trackbacks and it is always the case with pingbacks.

    The trackback and pingback support was built to verify the target location refers back to the entry.  To further reduce potential spam, it also supports plugging in a spam blocking service.

    Please let us know if you have any questions about the new trackback and pingback support.

    Posted by JarrettV on October 20 at 9:09 AM

  7. New Global Date and Time Support

    image With .Net 3.5 there is great new support for working with dates across time zones.  Check out Dan Rigsby's blog for some great posts about the new classes.

    Working with Dates and Times in .Net 3.5 Series:
    Part 1: DateTime vs. DateTimeOffset in .Net
    Part 2: TimeZone vs. TimeZoneInfo in .Net

    BlogSvc directly benefits from these enhancements in two ways:

    • Configure all dates to show in preferred timezone
    • Show time relative to the user (via jQuery)

    Two new configuration settings allow you to control which timezone your website uses.  The TimeZoneInfoId sets the timezone based on the timezones loaded on the server.  The TimeZoneDisplay sets a shorthand value that can be shown next to the times on your site.

    BlogSvc utilizes the <abbr> to allow a concise view of the date.  By hovering over the date you can see an unambiguous view of the time.  BlogSvc also uses the jQuery Time Ago plugin to show relative times that make sense to viewers.

    Posted by JarrettV on October 07 at 10:01 PM

  8. Test Trackback

    This post is for testing trackbacks.

    Posted by JarrettV on October 03 at 12:52 PM

  9. MVC Release 0.6

    image The sixth release of BlogSvc includes the switch over to MVC preview 5. Along with this switch are the following new or improved features:

    • Improvements to markup for clean CSS themes
    • Fully dynamic theme support
    • Fix: unapproved comments filtered
    • New unapproved comment shows "need approval" message
    • Password filtering from service doc
    • Refactor away the global statics
    • BlogSvc.net website is now separate project
    • Simple personal blog included as default
    • Fix: authentication for multiple authors/contributors
    • Removed dependency on ManagedFusion URL rewriting
    • New authors added upon entry update
    • Side controls work across collection and entry pages
    • AtomPubController is fully testable
    • Better ajax support via jQuery and MVC
    • Added subtitle extension to workspace
    • Improved ratings control using jQuery plugin
    • Simplified deployment structure

    You can read about some of the benefits of switching to MVC in my previous post.

    We will put together a roadmap for future releases of BlogSvc and we would really love to hear your feedback on this release what you'd like to see in future releases.  Please leave a comment below and let us know what you think!

    You can download this release from Codeplex.

    Kick this if you find MVC + AtomPub + jQuery exciting: kick it on DotNetKicks.com

    Posted by JarrettV on October 02 at 5:34 AM

  10. Now on ASP.NET MVC Preview 5

    I'm proud to announce the next release is built on MVC.  The move to MVC has many benefits for BlogService:MvcLayout

    1. No more WCF issues
    2. Testable
    3. Simplified authentication
    4. VS.net development server support
    5. Better flexibility around themes
    6. Url rewriting no longer required
    7. Better ajax scenarios
    8. Cleaner deployment structure (see right)
    9. Less configuration required

    This website is already running on MVC and it appears overall speed has increased both on the browser and through Windows Live Writer (even on the new beta).

    If you like to discuss the change to MVC, please head on over to the discussion already in progress.

    Posted by JarrettV on September 30 at 10:03 AM

  11. Theme Scenarios

    The development team is discussing themes in BlogSvc.  I'm really interested in pushing towards using stylesheets as the primary method of altering a theme.  As demonstrated by the success of the CSS Zen Garden, designers are comfortable working with CSS.  I also believe it is safe to say that as browser technology continues to mature, designers will gain additional flexibility through CSS improvements.

    The end-user scenario is very important to me and I want to target the whole range of users.  Lets start with a non-technical user like my lovely wife.  After talking with her, the ideal workflow for her would be:

    1. Click a link on her blog that takes her to a website like http://www.freewpthemes.net/
      Manage
    Read More
    Posted by JarrettV on September 20 at 3:30 PM

  12. Multiple Blogs via Collections and Workspaces

    One of the major goals of BlogSvc is to support multiple blogs within a single application instance.

    BlogSvc defaults to single workspace mode.  Release 0.5 only supports a single workspace installed to the root of the website. With this single workspace, you can have any number of collections. For example, a personal site might have collections for:

    1. Personal Blog
    2. Work Blog
    3. Media Uploads
    4. Articles or Pages
    5. Photo Blog

    Each of these collections can have multiple authors and contributors.  However, it is likely that all the collections will be controlled by the same author(s).  BlogSvc utilizes workspaces as a way to segment collections within a single application instance.  Future versions of BlogSvc will support multiple workspaces in two different ways:

    Also, the next release will support installation to a virtual directory.  Virtual directory installations should support sub-folder workspace installations.

    Posted by JarrettV on September 14 at 7:53 PM

  13. Convert from BlogEngine.Net to BlogSvc

    Jvance I've added some code to the Test project to convert my blog over from BlogEngine.net. I exported the data as a BlogML file and then ran it through the code. It created a service document and atom entries. It worked well but is currently specialized for my situation.

    1. Some items in the future that should be considered:
    2. BlogML exports from other blog engines
    3. Broken links to images
    4. Updating links within content of existing blog posts
    5. GUI to guide the user

    By adding a rewrite rule I can permanently redirect the old post locations to the new location.

    #relocate old BlogEngine.NET posts
    RewriteRule /post/(.+)\.aspx$ /blog/$1.xhtml [R=301,L]

    Check out my site which is based on a new blue theme that will be included with the next release.

    Posted by JarrettV on September 13 at 12:13 PM

  14. Setup Development Environment

    HostsFile Abouch over on the discussion forum has a great post about how to setup BlogSvc on a local IIS7 server.  He explains the  steps of adding a new binding for hosting the service along side other existing websites in IIS7.  This is needed because BlogSvc does not currently support installation to a directory below the root. We do plan to support that scenario in the future.

    Also, the test project references the web testing assembly that is only available with Test/Suite edition of Visual Studio.  You can safely remove this project until I have removed the dependency.

    Posted by JarrettV on September 10 at 5:03 PM

  15. Deployment Release 0.5

    The fifth release of BlogSvc is the first release that is ready for deployment. It includes an installation guide and the following great new/improved features:

    1. Entry ratings
    2. Annotation approval (comment approval)
    3. Browse by date, month or year
    4. Browse by category
    5. Browse by person, author, or contributor
    6. Collection index (archive)
    7. Collection & Feed Paging
    8. Full suite of Domain tests
    9. Install guide plus other documentation http://atomsite.net/info/Overview.xhtml
    10. ASP.Net forms authentication support
    11. Forms redirect bypass for WSSE
    12. Javascript (jQuery) code consolidated
    13. New Controls
      1. Archive Listing
      2. Category Listing
      3. Category Cloud
      4. Recent Entries
    14. Object model improvements (XmlBase)

    As you can see, this brings BlogSvc in the realm of a fully featured blog engine.  The combination of AtomPub, the Asp.net website, and windows live writer allows full control over content.

    For example, use Windows Live Writer to:

    • Create new entries
    • Upload images
    • Update existing entries
    • Delete entries
    • Add new categories
    • Publish drafts

    Use the website to:

    • Create new annotations (comments)
    • Approve individual comments
    • Approve all comments
    • Delete a comment

    Looking forward to the next release, we hope to include database support. Also, we may move towards using the MVC framework.  If there are any "must-have" features you'd like to see in the next release, please let us know in the comments.

    Posted by JarrettV on September 08 at 10:23 PM

  16. Release 0.4

    CodePlex I have posted the fourth release to CodePlex. This release contains new support for the Atom Threading Extensions.  This means that BlogSvc supports threaded comments.  The website was also updated with new annotation controls using special jQuery support.  As part of this release we have created/updated the following documentation.

    There is a known issue with this release where media uploads fail with a 404 not found.  It has been fixed in latest source code.

    Looking forward to the next release, we will focus on testing, documentation, and installation.  There will be some great new features on the website such as:

    1. Rating entries (jQuery Stars)
    2. Approval system (comment moderation)
    3. New pages for browsing by category, date, or person (author or contributor).
    Posted by JarrettV on August 28 at 11:43 PM

  17. BlogSvc Now Supports Comments

    Capture The WCF annotation support in BlogSvc has been updated with the standardized Atom Threading Extensions.  The website has also been updated with a very unique method of creating new comments.  Lets just say, classic forms + jquery + ajax + rest = awesome.  Most of the new code is in the Annotate.ascx.  And most of that code is javascript/jquery code.

    Currently, BlogSvc only supports anonymous comments.  I do plan to support OpenID. In the meantime, all commentators are required to supply an email and website.  Commentators can use html in their comments.  I am using some anti-xss code to sanitize the html.

    Thanks to jquery there is some pretty validation going on.  I must say, I really like jquery.  However, there are some quarks when working with jquery and calling a service that returns xml with a custom content-type such as application/xml+atom.  However, I found workarounds to get things working.

    Finally, BlogSvc does support threading comments.  However, the website does not yet support annotating an annotation.  It should be very easy to add using jquery.

    I've also added some technical information to the Documentation.

    Feel free to leave a comment to test things out.

    kick it on DotNetKicks.com
    Posted by JarrettV on August 23 at 9:49 PM

  18. Refactor Session

    I have rearranged the solution during a large refactor session. Any non-domain specific logic has been moved into a new services project.  The provider pattern has been replaced with a repository.  The repositories and services all have interfaces to support future extensibility.  I've already leveraged the authenticate interface to support multiple authentication schemes.

    DomainProject  RepoServicesProjects

    Posted by JarrettV on August 19 at 8:37 AM

  19. From Urn to Tag URIs

    I'm migrating the usage of the urn scheme for IDs to the tag scheme.  Only registered types are allowed to use the urn scheme.  The tag scheme actually fits in very close to how I was using the urn scheme so the migration should be pretty painless.  I've posted a new entry about URIs and URLs in BlogSvc that give plenty of examples of how BlogService will ID and locate resources.

    Posted by JarrettV on August 11 at 4:31 PM

  20. BlogSvc AtomPub Release 0.3

    I've uploaded a new release to CodePlex. This is the first release containing solid AtomPub support. Also, the website has been improved.  This release contains the following new/improved features:

    1. Object model usage improvements (such as ToString)
    2. FileAtomPubProvider configuration extensions including file and folder paths
    3. Administrator support added to AppService
    4. WSSE authentication that supports anonymous and token expiration
    5. Roles added based on AppService
    6. Saving of AppService and AppCategories documents
    7. Add category (fixed, unfixed) to internal or external categories
    8. ETag support for caching and improved Live Writer performance
    9. HEAD request supported on entry and media resources
    10. New website, with new controls
    11. Load RSS feed using Syndication support in .NET 3.5

    This release has been tested on both IIS 6 and IIS 7 integrated.  The next release may leave IIS 6 support behind in favor of IIS 7 integrated mode.  This would improve the URI formats throughout the system.  However, the ID's would remain unchanged as they were designed to support many URL schemes.

    BlogSvc creates IDs that are made up of 3 to 4 parts:

    urn:{workspace*}.{domain}:{collection},{entryPath}

    The workspace is optional unless there are multiple workspaces on the same site. The domain typically matches the domain of where the site is being hosted. The collection signifies the collection in the workspace. The entry path is a comma separated listing of the entry location in an optional thread.

    Examples
    Blog Collection urn:blogsvc.net:blog
    About Entry in Info Collection urn:blogsvc.net:info,About
    Blog Post on Multi-user Site urn:kristin.jvance.com:blog,2008-08-08-AnotherPost
    Comment to Blog Post urn:blogsvc.net:blog,2008-08-08-MyBlogPost,1
    Response to a Comment urn:blogsvc.net:blog,2008-08-08-MyBlogPost,1,1

    See the release page for more details.

    kick it on DotNetKicks.com
    Posted by JarrettV on August 11 at 3:22 AM

  21. New Website

    BlogSvc just got a new website.  There are plenty of tweaks that still need to be done.  This site can be used as an example of using BlogSvc directly through the provider API.  With the strongly typed Atom and AtomPub objects, it is very simple to program against.  And if you prefer to work directly with the Xml then that is also available.  Also, live writer support is fully functional with WSSE authentication.

    image

    Posted by JarrettV on August 11 at 3:21 AM

  22. Ape Results 8/7

    APP Service doc: http://atomsite.net/blog.svc/service

    Summary: 0 errors, 6 warnings.

    1. TESTING: Service document and collections.

    2. ✓ Retrieval of Service Document: it exists and is served properly.

    3. Found these collections:

      • 'FrontPage Blog' accepts application/atom+xml;type=entry

      • 'Image Store' accepts image/png, image/jpeg, image/gif

    4. Will use collection 'FrontPage Blog' for entry creation.

    5. ✓ Page 1 of Entry collection: it exists and is served properly.

    6. ✓ Entry collection has correct app:edited value order.

    7. TESTING: Entry-posting basics.

    8. Now in the Entries feed:

      • Test Multi-pic Post

      • BlogSvc Preview Release 0.2

    9. ✓ Posting of new entry to the Entries collection reported success, Location: http://atomsite.net/blog.svc/www/blog/2008-08-07-Ape-64739

    10. Examining the new entry as returned in the POST response

    11. ✓ Returned entry is consistent with posted entry.

    12. ✓ Provided categories included in Returned entry.

    13. ✓ Server preserved foreign markup in Returned entry.

    14. ✓ Retrieval of newly created entry: it exists and is served properly.

    15. Examining the new entry as retrieved using Location header in POST response:

    16. ? Client-provided slug 'ape-64739' not used in server-generated URI.

    17. ✓ Retrieved entry is consistent with posted entry.

    18. ✓ Provided categories included in Retrieved entry.

    19. ✓ Server preserved foreign markup in Retrieved entry.

    20. Examining the new entry as it appears in the collection feed:

    21. ✓ Entry from collection feed is consistent with posted entry.

    22. ✓ Provided categories included in Entry from collection feed.

    23. ✓ Server preserved foreign markup in Entry from collection feed.

    24. ✓ Update of new entry reported success.

    25. ✓ Title of new entry successfully updated.

    26. ✓ Entry deletion reported success.

    27. ✓ Entry not found in feed after deletion.

    28. TESTING: Collection re-ordering after PUT.

    29. ✓ Page 1 of Entries with multi-post: it exists and is served properly.

    30. ✓ Entries with multi-post has correct app:edited value order.

    31. ✓ Entries correctly ordered after multi-post.

    32. ✓ Page 1 of Entries post-update: it exists and is served properly.

    33. ✓ Entries post-update has correct app:edited value order.

    34. ✓ Entry deletion reported success.

    35. ✓ Entry deletion reported success.

    36. ✓ Entry deletion reported success.

    37. ✓ Entries correctly ordered after update of multi-post.

    38. TESTING: Content sanitization

    39. ✓ Retrieval of unclean XHTML entry: it exists and is served properly.

    40. ? Published entry retains xhtml:script element.

    41. ? Published entry retains 'background' attribute.

    42. ? Published entry retains 'style' attribute.

    43. ? Published entry retains dangerous hyperlink: 'javascript:evil'.

    44. ✓ Entry deletion reported success.

    45. Will use collection 'Image Store' for media creation.

    46. TESTING: Posting to media collection.

    47. ✓ Post of image file reported success, media link location: http://atomsite.net/blog.svc/www/media/2008-08-07-Apix-70783

    48. ✓ Retrieval of media link entry: it exists and is served properly.

    49. ? Client-provided slug 'apix-70783' not used in Media Resource URI.

    50. ✓ Retrieval of media resource: it exists and is served properly.

    51. ✓ Media resource was apparently stored and retrieved properly.

    52. ✓ Entry deletion reported success.

    53. ✓ Media link entry no longer in feed.

    54. ✓ Media resource no longer fetchable.

    55. TESTING: Media collection re-ordering after PUT.

    56. ✓ Page 1 of Pictures from multi-post: it exists and is served properly.

    57. ✓ Pictures from multi-post has correct app:edited value order.

    58. ✓ Fetch image to get ETag: it exists and is served properly.

    59. ✓ Update one of newly posted pictures went OK.

    60. ✓ Page 1 of MLEs post-update: it exists and is served properly.

    61. ✓ MLEs post-update has correct app:edited value order.

    62. ✓ Entry deletion reported success.

    63. ✓ Entry deletion reported success.

    64. ✓ Entry deletion reported success.

    65. ✓ Entries correctly ordered after update of multi-post.

    Posted by JarrettV on August 07 at 8:58 AM

  23. Test Multi-pic Post

    Test update

    Forest  Desert Landscape

    Posted by JarrettV on August 07 at 1:57 AM

  24. BlogSvc Preview Release 0.2

    I've put a new release up on codeplex. This release includes an implementation of Atom Publishing Protocol on WCF 3.5.  In the words of Tim Bray:

    An Atompub implementation lets you create, retrieve, update, and delete (CRUD) Web Resources. ... Atompub starts with a Service Document, which contains one or more named Workspaces, which contain Collections, which are what you actually POST to in order to start up the CRUD process.  So the idea is simple; have a collection that when you POST to it, creates a new publication.

    The object model is based off of the Atom Syndication Format and the AtomPub specs.  All of the objects are based off of Xml or the new XElement. This means that each object has an Xml property that points to the underlying xml. The object's propeties have getters and setters which access the xml as strongly typed values.

    Atom Syndication Format Atom Publishing Protocol
    AtomCategory AppCategories
    AtomContent AppCollection
    AtomEntry* AppControl
    AtomFeed AppService
    AtomGenerator AppWorkspace
    AtomLink*  
    AtomPerson Atom Threading Extension
    AtomSource ThreadInReplyTo
    AtomText * Extended

    The objects listed above all support extensions and furthermore, it is very easy to add strongly typed access to those extensions. Note: .NET 3.5 already contains objects that are close to the Atom objects above and .NET 3.5 SP1 will have objects for AtomPub. See System.ServiceModel.Syndication namepace. In a future blog post, I will explain why I decided to go with the above object model over what is provided in the framework.

    This release should work in IIS6 or IIS7 with .NET 3.5.  Also the SVC handler must support all verbs.  Since AtomPub is RESTful, you'll need PUT and DELETE to go along with the usual GET and POST verbs.

    The WCF service is built using the new Web Programming Model available in 3.5.  However, it is designed to support normal web services as well (more on this in a future post).  A neat WCF feature with this release is the support of media entries allowing a user to post images to a collection.  I found the trick to supporting raw data on Carlos' blog.  However, there is a catch. Anytime you want to accept unknown content types and known content types, you must only deal with Stream objects.  For example, although CreateEntry will always return an AtomEntry document you must specify a Stream because the input could be an AtomEntry or say a JPG image.

    [ServiceContract]
            public interface IAtomPub
            {
            [WebGet(BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "{workspaceName}/{collectionName}/{entryName}/media")]
            Stream RetrieveMedia(string workspaceName, string collectionName, string entryName);
    
            [WebInvoke(BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "{workspaceName}/{collectionName}")]
            Stream CreateEntry(string workspaceName, string collectionName, Stream stream);
    
            [WebGet(UriTemplate = "{workspaceName}/{collectionName}/{entryName}")]
            Stream RetrieveEntry(string workspaceName, string collectionName, string entryName);
    
            [WebInvoke(BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "{workspaceName}/{collectionName}/{entryName}", Method = "PUT")]
            Stream UpdateEntry(string workspaceName, string collectionName, string entryName, Stream stream);
    
            [WebInvoke(UriTemplate = "{workspaceName}/{collectionName}/{entryName}", Method = "DELETE")]
            void DeleteEntry(string workspaceName, string collectionName, string entryName);
    
            [WebGet(UriTemplate = "service")]
            AppService RetrieveService();
    
            [WebGet(UriTemplate = "{workspaceName}/{collectionName}/category?scheme={scheme}")]
            AppCategories RetrieveCategories(string workspaceName, string collectionName, string scheme);
    
            [WebGet(UriTemplate = "{workspaceName}/{collectionName}")]
            AtomFeed RetrieveFeed(string workspaceName, string collectionName);
            }
    

    You can direct it to a strongly typed implementation by checking the content type.

    public Stream CreateEntry(string workspaceName, string collectionName, Stream stream)
            {
            string contentType = WebOperationContext.Current.IncomingRequest.ContentType;
            AtomEntry entry;
            if (contentType == Atom.ContentType || contentType == Atom.ContentTypeEntry)
            {
            entry = new AtomEntry();
            XmlReader reader = new XmlTextReader(stream);
            entry.Xml = XElement.Load(reader);
            entry = CreateEntry(workspaceName, collectionName, entry);
            }
            else entry = CreateMedia(workspaceName, collectionName, stream);
            return GetStream(entry);
            }
    

    Please see the release page for more details.

    In the next post, I will discuss workspace, collection, entry names, id's, links, etc.

    Posted by JarrettV on August 04 at 5:22 PM

© Copyright 2010 Powered by AtomSite 1.4.0.0