Wir geben hiermit den ersten Release Candidate (RC1) der bald erscheinenden Version 1.0 heraus.

Dieser beinhaltet neben neuen Features und Bugfixes auch eine veraenderte, konsistentere API, da die API innerhalb der 1.x Versionsreihe und damit fuer einen langen Zeitraum stabil bleiben muss. Die API-Aenderungen umfassen inbesondere zwei Gebiete:

  1. Die oeffentliche API besteht (fast) nur noch aus interfaces. Dieser Schritt ermoeglicht es, beispielsweise durch “mocking”, Code, der die SmartAPI nutzt, zu testen, ohne dass ein laufendes RedDot-System benoetigt wird.
  2. Dort, wo Klassen auf Mengen von Objekten anderer Klassen verweisen (bspw. Project->Pages, ContentClass->Content Class Elements, Page->Assigned Keywords), werden diese in speziellen Collection-Objekten gekapselt, ueber die auch die Manipulation (bspw. das Erstellen einer Seite im Projekt oder das Zuweisen eines Keywords zu einer Seite) stattfindet. Dies fuehrt zu einer konsistenteren API und erlaubt zukuenftige Erweiterungen, ohne binary/source-Kompatibilitaetsverletzungen.

Die Umstellung der API ist weitestgehend abgeschlossen, so dass man beim Entwickeln gegen den RC 1 weitestgehend sicher sein kann, seine Programme fuer die Lebenszeit der 1.x Versionsreihe nicht mehr an SmartAPI-Aenderungen anpassen zu muessen. Davon ausgenommen ist eine neue Folder/File API, die es leider nicht rechtzeitig in den RC 1 geschafft hat, sowie das Verschwinden der public Session Klasse zugunsten des ISession-Interfaces (Session implementiert ISession, so dass einzig die Sessionerzeugung ueber den Konstruktor betroffen sein wird).

Wir laden ausdruecklich dazu ein, den RC zu testen und Feedback vor der finalen Version 1.0 zu geben.

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