Information on how to write a task system backend for Tasque
A Tasque Backend is an implementation of the Tasque.Backends.IBackend interface. A backend is essentially where Tasque reads and stores tasks.
The following backends currently exist:
- o This is purely for debugging
- Evolution Data Server (EDS)
- o Use your tasks from Evolution
o SiteScape?/Novell Teaming & Conferencing
- Remember the Milk (RTM)
- o This is the default backend
- o Stand-alone local store
Each backend should implement a public constructor that takes no arguments. When Tasque starts up, it will search its assembly (tasque.exe) for implementations of Tasque.Backends.IBackend. It loads each one it finds and queries its name so it can be displayed in the Preferences Dialog. If you do too much in the constructor, you may consume more memory than is needed and also cause Tasque to be too slow at startup.
Instead of doing work in the constructor, you should do the work in the IBackend.Initialize () method. This will only be called if your backend has been selected as the one to use.
Backend entity IDs
Backend entity IDs are identification tokens (usually a number, id string or GUID) that identify an entity in Tasque. An entity in Tasque is one of Task, Task List and Note. When it comes to assigning IDs in Tasque, care must be taken to use a sufficiently scoped ID. Therefore we distinguish between 3 levels of uniqueness scopes of IDs:
1st level scope: System-scope IDs: An ID is unique among all entities of the system (= backend), even among entities of different types. E.g.: No Task ID must be the same as a Task List ID (or any other entity ID in the system).
2nd level scope: Entity-type-scope IDs: An ID is unique among its fellow entities. E.g. each Task has its own unique ID but the ID of a Task may be the same as the ID of a Task List.
3rd level scope: Sub-type-scope/Custom-context-scope IDs: An ID is unique in a certain context, which has a scope that is smaller than the scope of an entity type. E.g.: 2 Tasks of different users may have the same ID. This would be a user context sensitve ID.
Tasque requires the use of 2nd level scope uniqueness, that is entity-type-scope IDs.