We hereby release the first Release Candidate (RC1) of the upcoming version 1.0.

This contains multiple new features and bugfixes, but also a new, more consistent API. The changes to the API were necessary for it to then remain stable throughout the whole 1.x livespan. The most dominant changes are

  1. The public API now (almost) only consists of interfaces. This allows for mocking of the SmartAPI objects and thus easy testing of client code without the need of a running RedDot Server.
  2. Simple collections of objects (e.g. Project->Pages, ContentClass->Content Class Elements, Page->Assigned Keywords) got replaced with special collection objects. Those objects also contain methods for their server-side manipulation (e.g. the creation of a page in a project or the assignment of a keyword to a page). This leads to a consistent experience and allows for easy future extensions without breaking of binary/source compatibility.

Most of the API is already considered final and will most likely not change from now on, so you can start porting your projects without having to worry about future API changes. Noteable exceptions are the new folder/file API which wasn’t ready for the RC1 and the disappearence of the public Session class in favour of the ISession interface (Session already just implements ISession, so only Session construction through the constructor will be replaced for version 1.0).

We invite you, to give the RC a try and give us feedback before the final release of the long term supported version 1.

Changelog:

2013-04-18: Version 0.9.9.0 (1.0RC1)
————————————
Major API overhaul in preparation of the 1.0 long term API stable release.
- Introduction of interfaces for everything, the client code interacts with,
to make automatic testing of client code easier,
because Smart API can now be mocked and no real RedDot server is needed.
- More consistent naming of methods/properties
- Consistent representation of collections in extra objects to allow for easy
future extension without breaking source/binary compatibility or cluttering of
interfaces/namespaces

Features:
- Support for Importing/Exporting/Copying of projects
- Access to asynchronous processes on the server
- Access to linking and appearence schedule of pages
- Access to main language variant of a project
- Support for groups and and group (un-)assignment to projects
- Versioning for projects can be enabled/disabled
- Support for changing most of the properties of users
- Support for creation and deletion of users

Bugfixes:
- Login with someone who was last logged in to a no longer existing project no longer throws an exception
- Page elements referencing files in subfolders no longer throw an exception on access to the file
- Creating a Session object for an existing session on server versions before 10.0 no longer creates a new session key,
if the project isn’t switched
- The standard language gets determined correctly