atomsite.net

The AtomPub server for .NET

Information - Browsing Features

  1. CDN for Assets

    AtomSite supports content delivery networks for improving the performance of asset downloads.  A CDN allows you to spread the assets your site needs across multiple servers.  Web browsers can download the site faster because it can make multiple calls when assets are separate domains.

    Adding New CDN Locations in AtomSite

    You can add CDN locations in AtomSite by adding a <cdn> element in the service.config <service> element.  For example:

    <svc:cdn>
      <svc:asset name="jquery.tools-1.1.1.min.js" url="http://cdn.jquerytools.org/1.1.1/tiny/jquery.tools.min.js"/>
    </svc:cdn>

    If there are multiple locations for the same asset, AtomSite will always use the first location.

    Default CDN Locations

    The default CDN locations in AtomSite (for version 1.3) are shown below.

    <cdn xmlns="http://atomsite.net/info/Service">
      <!-- These are the default CDN asset locations, when multiple, always uses first one -->
      <!-- These locations can be overridden in the <service> element of the service.config -->
      <asset name="reset-fonts-grids-2.7.0.css" url="http://yui.yahooapis.com/2.7.0/build/reset-fonts-grids/reset-fonts-grids.css"/>
      <asset name="jquery-1.3.2.min.js" url="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"/>
      <asset name="jquery-1.3.2.min.js" url="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js"/>
      <asset name="jquery.tools-1.1.1.min.js" url="http://cdn.jquerytools.org/1.1.1/tiny/jquery.tools.min.js"/>
    </cdn>
    Posted by JarrettV on September 21 at 1:06 PM

  2. Annotations and Comments

    Overview

    AtomSite has full featured support for annotations (also known as comments). Annotations can be turned on/off at the collection level or individual entry level. You can require annotations to be approved before they are visible. AtomSite is built to support paging and threading of annotations. AtomSite supports annotations in accordance with Atom Threading Extension.

    Control

    AtomSite supports multiple methods for controlling if an entry supports annotations. The first method is by modifying the configuration setting called annotationsOn on the collection.

    annotationsOn
    true = annotations are on
    false = annotations are off

    You can gain granular control over who is allowed to annotate by changing the role matrix at either the service, workspace or collection level. As shown below, the default role matrix allows anyone to annotate.

    <svc:roleAction name='Annotate' admin='True' author='True' contrib='True' user='True' anon='True'/>
    

    You can also control annotations at the entry level by the allowAnnotate setting on each entry.

    Finally, annotations can be controlled by an expiration date set by the annotateDaysOpen setting.* Annotations on an entry will appear closed after X number of days past the published date.

    Approvals

    When an annotation is created, the annotation may be automatically approved depending on their role. As seen below in the default role matrix, users and anonymous users comments must be approved by an administrator, author, or contributor.

    <svc:roleAction name='ApproveAnnotation' admin='True' author='True' contrib='True' user='False' anon='False'/>
    

    Annotations that have not been approved will only show to authorized users. The unapproved annotations will show up as red. When the annotation is successfully approved, it fades to green (via jQuery). The website supports approving individual annotations or all annotations at the same time.

    Paging

    AtomSite was designed to support paging comments. This is valuable when an entry has too many annotations that may slow the page down. The backend and service layer already support paging.  In the future, a theme will be available that supports this paging on the front-end.

    Threading

    As mentioned earlier, annotations are created by posting an entry to any existing entry. Since every annotation is an entry, this allows you to thread the entries. In the blogosphere, this is known as nested comments.

    The backend does support threading comments. However, there is not yet first class support for this on the front-end. It is scheduled for a future release.

    Technical

    AtomSite supports new annotations by posting an entry to the address of any existing entry. The user's browser talks directly to the service using an ajax request.

    POST /blog/2008/08/24/BlogSvcNowSupportsComments.atom HTTP/1.1
    x-requested-with: XMLHttpRequest
    Accept-Language: en-us
    Referer: http://atomsite.net/blog/2008/08/24/BlogSvcNowSupportsComments.xhtml
    Accept: application/xml, text/xml, */*
    Content-Type: application/atom+xml;type=entry
    UA-CPU: AMD64
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Win64; x64;
    .NET CLR 2.0.50727; SLCC1; .NET CLR 3.5.21022; .NET CLR 3.5.30428; .NET CLR 3.5.30729)
    Host: blogsvc.net
    Content-Length: 196
    Connection: Keep-Alive
    Pragma: no-cache
    Cookie: ASP.NET_SessionId=fr1fix55vfyqiivzypp05b55
    
    <entry xmlns='http://www.w3.org/2005/Atom'>
      <title>Comment</title>
      <author>
        <name>Test</name>
        <email>test@test.com</email>
        <uri>http://test.com</uri>
      </author>
      <content type='html'>Test</content>
    </entry>
    
    HTTP/1.1 201 Created
    Cache-Control: private
    Content-Type: text/plain
    Location: http://atomsite.net/blog/2008/08/24/BlogSvcNowSupportsComments/Comment.atom
    Server: Microsoft-IIS/7.0
    X-AspNet-Version: 2.0.50727
    X-Powered-By: ASP.NET
    Date: Sun, 24 Aug 2008 20:47:19 GMT
    Content-Length: 67
    
    ..snip..
    

    The response will now contain a cookie to remember anonymous user details. If the request is from an AJAX call it will return the html to add the web page, otherwise it will return the Atom entry.

    $.ajax({
      type: "POST",
      url: "<%= AnnotationHref %>",
      data: "<entry xmlns='http://www.w3.org/2005/Atom'>
          <title>Comment</title>
          <author>
            <name>" + parse($('#txtName').val()) + "</name>
            <email>" + encodeURI($('#txtEmail').val()) + "</email>
            <uri>" + encodeURI($('#txtWebsite').val()) + "</uri>
          </author>
          <content type='html'>" + parse($('#txtComment').val()) + "</content>
        </entry>",
      contentType: "application/atom+xml;type=entry",
      dataType: "xml",
      complete: function(req) {
        if (req.status == 201) {
          reset();
          $.ajax({
            url: "/blog/<some entry>.atom" + req.responseText,
            success: function(html) {
              $(html).hide().appendTo("#annotations").addClass("annotationSelf").fadeIn("slow");
            }
          });
        } else {
          alert('Failed to post comment: ' + req.statusText);
        }
      }
    });
    

    *This feature will be available in future version.

    Posted by JarrettV on March 21 at 3:46 PM

  3. AtomSite Overview

    AtomSite is built with extensible web standards that unleash your social website and blog


    AtomSite is search engine optimized and performance optimized for quick page loads


    Start a blog, manage a website, and publish your great content online.  With extensibility built in, the possibilities are endless.

    What's New in AtomSite 1.4?
    • Manage Widgets. The new widget management page allows you to add, edit, and configure widgets.
    • Inline Widgets. Add a widget (poll, contact form, etc) into the content of an entry.
    • Manage Users. In AtomSite Manager, users can be filtered, added, or updated.
    • Medium Trust. You can now run AtomSite on more shared hosting providers.

    AtomSite has the features you expect from a modern day content management system.

    First rate blogging with support for
    • Multiple-authors and contributors
    • SEO and performance optimizations
    • Drafts, approvals, and scheduled publishing
    • Trackback and Pingback support
    • Anti-spam features
    • Comments with Gravatar and OpenID
    • XHTML compliance even with rich html comments
    • Fully theme-able
    • FTP deploy on IIS7
    • Setup wizard
    • Full AtomPub based management
    • Familiar AtomSite Manager administration dashboard
    • Full extensibility with plugins, widgets, macros

    More About AtomSite »

    Posted by JarrettV on March 17 at 11:31 PM

  4. Ratings

    BlogSvc supports rating entries. Rating count, rating sum, and raters data is stored as extension elements on each entry.

    Ratings can be turned on/off via the ratingsOn setting on the collection. The default value is on (true).

    The website uses jQuery Rater Plugin to supply a great front-end experience. The website will automatically update the rating via Ajax once a user has rated the entry. Note: it also supports tracking who rated an entry by IP to reduce the possibility of users rating an entry multiple times.

    Posted by JarrettV on September 02 at 4:04 PM

  5. Features

    AtomPub Extensions
    check Service Document key WSSE Authentication check Atom Threading Extension check Setup Wizard
    check Multiple Workspaces check Multiple Collections warn Multipart Media Creation check Simple/Full Themes
    check Internal Categories check External Categories check Comment Approval check XHTML Compliance
    check Collection Feed check Media Support check Ratings check Extended Entries
    check Etags check Draft Control key Authorization key OpenID
    Read More
    Posted by JarrettV on August 08 at 5:32 PM

© Copyright 2010 Powered by AtomSite 1.4.0.0