atomsite.net

The AtomPub server for .NET

Information - Browsing About

  1. Download AtomSite

    Quick Install   stable version 1.4

    Use web platform installer to quickly and automatically install AtomSite.

    Install AtomSite using the Microsoft Web Platform Installer

    Manual Install   latest version 1.4

    Copy directly to your IIS7 web server running ASP.NET MVC 1.0.

    Please read the getting started and installation pages.

    Download 1.4

    Nightly Build   experimental version 1.5

    This version is experimental. Get a sneak peak at upcoming features.

    See the roadmap and the changelog for more information.

    Get Nightly Build

    Source Code   hosted on Google Code

    AtomSite is open source. You are encouraged to take a look at the code.

    We are currently using SVN but are evaluating Git and Mercurial system.

    SVN Repo



    Previous Versions

    Posted by JarrettV on February 27 at 9:26 PM

  2. Road Map

    The following road map outlines planned or completed features.  This road map is subject to change based on user demand and contributions.

    Release 2.0 (Fall 2010)

    • MEF?
    • MVC 2.0?

    Release 1.5 (Spring/Summer 2010)

    • Database repository for large size collections 500+ entries
    • Page layout and template modification
    • CKEditor customizations
    • Performance improvements medium size collections on file system
    • Cleanup tools (rename media)
    • Custom urls, multiple urls, canonical url

    Release 1.4 (due 3/31/2010)

    • User management updates in AtomSite Manager
      • Create and delete users
      • Filter and page through user listing
    • Filter by category, search on entries and annotation listings
    • New twitter plugin
    • Better plugin installation restart notifications
    • Macros (inline content widget)
    • Widget management page added to AtomSite Manager
    • Medium trust support
    • Improved multi-folder workspace support
    • Improved asset management (for both page and master pages)
    • Improved dynamic links in AtomSite Manager
    • New error and 404 pages
    • Added role matrix page in AtomSite Manager
    • Updated javascript and libraries

    Release 1.3 (released 9/21/2009)

    • BlogML Plugin
      • Import / Export in Tools area of AtomSite Manager
      • Wizard import support
    • Pluggable tools area
    • Re-add Settings green theme
    • Re-add Hibiscus theme
    • jQuery plugin updates (single-ddm, tools, timeago)
    • Asset combination improvements with support for CDN (Content Delivery Network)
    • CKEditor 3.0 final

    Release 1.2 (released 8/4/2009)

    • Switch to CKEditor (not yet customized)
    • Updates to support Multi-user in AtomSite Manager
    • New Settings pages for Entire Site, Workspace, and Collections
      • Add New Workspaces
      • Add New Collections
      • Add/Remove Administrators
      • Add/Remove Authors and Contributors at both Workspace and Collection levels
      • Change the content types accepted for each collection
      • Remove categories for each collection
    • Smart Javascript Consolidation/Minification
    • Smart Stylesheet Consolidation/Minification
    • Smart Asset Management
    • Other fixes

    Release 1.1 (released 6/28/2009)

    • Improved Plug-in Management
      • Upload and install zipped plug-ins
    • Theme Chooser
    • AtomSite Manager Improvements
      • Dashboard and other pages
    • Other fixes

    Release 1.0 (released 5/1/2009)

    • Admin Pages
    • Plug-in Manager

    Release 0.9 (released 3/18/2009)

    • Plug-ins
    • Widgets
    • OpenID
    • Theming via YUI Grids
    • Name Change
    • ASP.NET MVC 1.0 RTM

    Release 0.8 (released 12/24/2008)

    • Spam Block
    • Html to Xhtml Conversion
    • New Theme (Settings)
    • Setup Wizard
    • Extended Content

    Release 0.7 (released 10/21/2008)

    • Trackbacks/Pingbacks
    • New Theme (Hibiscus)
    • Search
    • Recent Comments Control
    Posted by JarrettV on May 01 at 2:29 AM

  3. Screenshots

    Wizard

     Wizard WelcomeWizard OptionsWizard SettingsWizard Theme  Wizard Finish

    Typical Blog Page

    BlogPage

    AtomSite Manager

    Dashboard Entries Listing Edit Entry New Media with Scope Selector Users Plugins Annotations image

    Posted by JarrettV on May 01 at 1:26 AM

  4. Welcome

    Posted by JarrettV on May 01 at 1:22 AM

  5. Themes

    1. Overview
    2. Themes Location
    3. Cascading Theme
    4. Changing Theme
    5. Default Theme Layout
    6. Content and Include Areas
    7. Page Widths and Column Templates
    8. Changing Includes
    9. Writing a Basic Theme
    10. Advanced Themes

    Overview

    AtomSite has a very flexible theme system.  A theme is just a collection of assets dropped into the various asset theme folders.  You can control which theme is used at either the workspace or collection level.  The default theme contains standard content and include areas.  You can easily control what is included in these areas.  You can create a basic theme, that just includes a CSS stylesheet or you can do advanced modifications to the markup for the master page, individual pages, and even individual controls or widgets.

    Through the use of YUI Grids and the widget include system, there is a significant amount of modification possible without having to modify the default markup.  In fact, this whole site you're looking at http://atomsite.net is itself a simple theme that is just a CSS file and some images on top of what is provided out of the box.

    Theme Asset Locations

    Themes are stored in the varioius asset directories in the root of your application.  Each theme has its own directory that shares the name of the theme. For example, two very basic themes; "blue", "hibiscus":

    Theme Name Asset Type Location
    blue CSS /css/blue/blue.css
    Image /img/blue/bg.jpg
    View /themes/blue/BlogEntry.aspx
    Javascript /js/blue/BlogEntry.js
    hibiscus CSS /css/hibiscus/hibiscus.css
    Image /img/hibiscus/flower.png
    View /themes/blue/BlogComment.ascx

    For basic themes, the name of the stylesheet should match the name of the theme.

    Cascading Theme

    Themes can be built on top of the default theme.  The default theme contains all the files needed for displaying a website.  To simplify theme development, a designer does not need to re-invent these files for a new theme.  Therefore, if a required file is not provided by a theme, it will automatically fall-back and use a file from the default theme.  For example, a basic theme that only provides a CSS file and some image files will always fall-back to the default theme for how the markup is rendered.

    Changing Themes

    Themes can be controlled at two different scopes: workspace and collection.  Changing a theme at the workspace level will apply the theme to all collections within that workspace.  However, if you specify a different theme at the collection level, it will override the theme set at the workspace level.

    Setting a theme at the workspace level

    TODO: post image of service.config file here

    Setting a theme at the collection level

    TODO: post image of service.config file here

     

    Default Theme Layout

    The following diagram shows the default layout within the Site.Master file.  Please note the usage of YUI Grids layout.  This allows the side column to appear on either the left or the right. The built-in flexibility in this layout should support a large percentage of all common site layouts.

    Theme Layout

    Content and Include Areas

    In the above Site.Master Layout diagram, the areas marked with [icon] are content areas.  The areas marked with [icon] are include areas (for widgets).

    Content Areas

    More details coming soon

    Include Areas

    More details coming soon

     

    Page Widths and Column Templates

    The PageWidth can be controlled for each individual page at any scope.  Also, the column width can be controlled by using the PageTemplate (also at any scope).

    YUI Page Widths
    doc
    750px centered (good for 800x600)
    doc-2
    950px centered (good for 1024x768)
    doc-3
    100% fluid (good for everybody)
    doc-4
    974px fluid (good for 1024x768)
    doc-custom
    custom page width (set in CSS)
    YUI Column Templates
    yui-t1
    160px side column on left
    yui-t2
    180px side column on left
    yui-t3
    300px side column on left
    yui-t4
    180px side column on right
    yui-t5
    240px side column on right
    yui-t6
    300px side column on right

    Changing Includes

    Changing Page Includes

    More details coming soon

    Changing Widget Area Includes

    More details coming soon

    Writing a Basic Theme

    Starting with blank slate, CSS, images

    No markup changes, just CSS and YUI doc width or template changes

    Finally, you can theme individual Page views using an #id selector in your CSS as the body tag always has the id of the PageName.

    More details coming soon

     

    Writing an Advanced Theme

    Custom markup, with custom full site layouts and CSS and YUI doc widths

    Altering Site.Master, page markup, widget markup, etc.

    Creating new Content areas

    Creating new Include areas

    Cons of Advanced Themes, Compatibility, Upgradability, non-standard include areas

    More details coming soon

    Posted by JarrettV on March 25 at 1:38 PM

  6. Known Issues

    Release 1.0

    • Wizard does not trim whitespace off of the name when filling out the basic settings

     

    Release 0.9

    • Install to virtual folder (sub-folder) will result in 401 and/or 404 errors in Live Writer
      • add slash onto end of base address in service.config file, xml:base="http://localhost/AtomSiteDemo/">
    • Login path is incorrect in web.config and may cause problems with failed logins or OpenId logins

      <forms loginUrl="~/Login.xhtml"/>

      should say

      <forms loginUrl="~/Account/Login"/>

    Posted by JarrettV on March 24 at 8:40 AM

  7. 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

  8. Troubleshooting

    Important

    Setup logging with the correct switch source level.  AtomSite uses TraceSource by default.  If troubleshooting a remote server, you should enable logging to a file.

    Learn more about logging


    PUT and DELETE fail during the setup wizard
    Solution 1: Disable the WebDAV module in IIS7 also tweak web.config (via MaximumASP)
    Solution 2: Add the PUT and DELETE verbs in UrlScan [AllowVerbs] configuration
    Solution 3: jaffen says to try this post for IIS7.5 and server 2008
    Solution 4: Ignore the error (with reduced AtomPub functionality)
    Write access and delete access fail during the setup wizard
    Solution 1: Enable write access to the App_Data folder
    Solution 2: Help us develop a Sql Repository
    I get a 401 when trying to setup Live Writer.. but if I hit the service.atomsvc document from a browser I can get access to it once I login using forms authentication (the standard HTTP authentication fails repeatedly)
    Solution 1: IIS6, turn off IIS authentication
    Solution 2: IIS7, add <remove name="WindowsAuthenticationModue"/> to the system.webServer/modules tag in the web.config file
    Posted by JarrettV on March 21 at 3:08 PM

  9. AtomSite Installation

    1. Install ASP.NET MVC 1.0
    2. Setup Service Document
    3. Deploy Files to Server

    Install ASP.NET MVC Final

    Development: Download and install ASP.NET MVC 1.0.

    Deployment Only: If your server already has .NET 3.5 SP1 installed then you can skip this step.

    Setup Service Document

    AtomSite has a setup wizard in that will automatically test and alter your configuration.  However, for advanced scenarios, you may want to modify the configuration manually.

    Skip to Deployment

    Advanced Service Configuration :

    AtomSite is setup using a standards-based service document. This document contains information about your workspaces and collections. Out of the box, AtomSite comes with one workspace and three collections in the Service.config.  This file is located in the root next to the Web.config.

    ServiceConfig 

    You can create as many workspaces and collections as you wish.  You can control access by use of roles. Please note that the href to the collection must match the collection name as specified in the id. The id must be in tag format as described in URIs and URLs.

    Deploy Files to Server

    Development: Open the solution in Visual Studio.  Set the WebCore project as the startup project.  You can either build and run the project or right-click the WebCore project and choose publish to deploy the files to a server.

    Deployment: Open your favorite FTP client and upload the files to your server.  If you server has ASP.NET MVC installed, then you will not need to deploy the System.Web.Mvc.dll file with the other files in the bin folder.  If you uploaded all the files correctly, you should see the following file structure:

    FileStructure

    Open the browser to your website and you should see the setup wizard. Follow the steps in the wizard and make sure that you choose a strong password.

    Posted by JarrettV on March 17 at 11:39 PM

  10. 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

© Copyright 2012 Powered by AtomSite 1.4.0.0