U4-999 - Refactor backoffice to use new API

Created by Morten Christensen 08 Oct 2012, 19:37:15 Updated by Sebastiaan Janssen 03 Jan 2013, 13:15:00

This task involves refactoring a large part of the backoffice to make use of the new public api / datalayer. Deprecates old apis like Document, DocumentType etc. and introduces the usage of the newly implemented api.


Morten Christensen 29 Oct 2012, 15:16:57

There are quite a few challenges related to this task:

  • All events are currently hooked up to the Document API, which is quite difficult to get around (ignoring the events would be a major breaking change).
  • Examine is based on the events of the old API, so it would have to be updated/rewritten for the events in the new API.
  • Updating the XML Cache through the umbraco.content.Instance (content cache) is currently dependent on the old Document API.
  • The content cache updates the UmbracoSiteMapProvider, which uses NodeFactory.Node. So the sitemap provider should probably be updated to use IPublishedContent.
  • Actions and ActionHandlers are dependent on the old Document and User API, so question is if the current implementations should be changed with an overload method that accepts IContent rather then Document or if the ActionHandlers et al should be reimplemented in the Umbraco.Core namespace with new dependencies.

Morten Christensen 03 Jan 2013, 11:08:01

Document, DocumentType, Media, MediaType and parts of Content, ContentType and CMSNode have been refactored to use the new public api under the hood. We could potentially go on and on with the refactoring, but for version 6.0.0 the refactoring of these classes has been the aim to finish.

Priority: Normal

Type: Task

State: Fixed

Assignee: Morten Christensen

Difficulty: Difficult

Category: Architecture

Backwards Compatible: True

Fix Submitted:

Affected versions:

Due in version: 6.0.0


Story Points: