Denis Sletkov from Adit Software
Adit Testdesk is software geared to creating, maintaining, running, and analyzing tests, exams, and quizzes. Although we are a comparatively new company (doing business since 2005), our software is already in use in several colleges and commercial companies.
Testdesk allows you to create tests of any complexity using its built-in library of question types. You can use true/false questions, multiple choice questions, matching questions, to name but a few. The look of the test is easily customizable using not only text, but images, tables, and OLE objects.
The key features of Testdesk are:
- Create any test you need
- Protect your tests from unauthorized access
- Choose from a multitude of question types
- Provide a response to answers
- Limit the time needed to answer questions
- Customize the look of your tests
- Maintain full control over interpretation of results
- Provide an easy-to-use, user friendly interface
Although we consider our software to be easy to use, we recognized that we needed to keep up with the state of the art for user interfaces. For our new version we decided to move from a toolbar interface to a ribbon. Since we did not want to write our own ribbon, we compared all the ribbon controls on the market and settled on the one from DevExpress. There were several reasons for that choice, including the ability to use 32-bit icons (we'd used them in the current "toolbar" version), and the ability to incorporate other, third-party controls in the ribbon interface.
This is the main interface for the editor.
This is Testdesk's text editor. (Many thanks to EC Software for their extensions.)
And this is our report designer for Testdesk with the new Office 2007 style using DevExpress' ribbon (the designer is a third-party control). The default look for this designer looked ugly to our eyes, and we needed to make the look-and-feel conform to the rest of the application.
We also chose ExpressQuantumGrid for Testdesk by comparing it against other grid controls in the market. We preferred it because of its ability to get data not only from a standard database, but also a custom provider that we could write to get data from an in-memory database, other files, object storage, and so on. Also we liked that ExpressQuantumGrid is ready to use in simple cases without having to write any lines of code.
The selection of a navbar wasn't so simple, unfortunately. We wanted a control that maximized its use screen estate by displaying many actions in a small space. We created a small prototype, but recognized that it didn't look nice. We tried DevExpress' navbar instead -- it looked good -- but found that there were some things we weren't happy with, for example, the big top and bottom paddings. However, all was not lost: we created a special skin based on the Windows Vista look and our navbars now look pretty good, even though we say so ourselves:
A further goal was a component to enter "tree-like" data, for example, to specify the correct answer condition. We created such a control using the panel and added controls to it, but found that a lot of window handles were needed and we couldn't control the inevitable flicker. Instead we took a look at the Filter Builder in the ExpressQuantumGrid and modified it to suit our purposes. We found it very comfortable for entering tree-like data for things like the Outcome Filter, Variable Actions, Score conditions, and the like, as you can see here:
Another plus point for the controls from DevExpress was the documentation. Unlike a lot of help documentation out there where you are lucky to get more than a brief method description, with DevExpress the help contains how-tos, lots of description, and examples. Going further, it's a pleasure to read the code: it's well-structured, totally object-oriented, with no funny hacks or undocumented tricks.
ExpressSkins is also a pleasure to use: not only are there fun skins but also the standard traditional business skins are present as well.
Although it seems that everything was plain sailing with us using the DevExpress controls, we weren't happy with the spreadsheet control. We felt that it was too frozen in time and could do with some important updates.
In summary our main objective was to create exactly what we wanted in as short an amount of time as possible. With DevExpress' controls we were able to achieve that goal. Our application is functional, good looking, with an iconic interface.