DocktorUI focuses on providing an highly customizable and lightweight docking framework in a compact, efficient and hassle-free UI component library. It tries to meet everyday's developers needs by being unobtrusive and small while still fulfilling one of the major needs in UI construction with its highly efficient layout and rendering engine.
In this section DocktorUI's main features are described into more detail.
Development on the DocktorUI library has been focused in concentrating the most useful UI components into a single easy to redistribute package. This is mostly composed of a flexible layout engine and an advanced docking windowing system that allows a great amount of GUI configurations to be built easily.
Care has been given to make sure the highly customization capabilities would not negatively affect performance or reliability. These choices are driven by the knowledge, derived from experience, that in most situations a developer needs effective ways of controlling complex layouts while hardly finds useful to have thousands of specialized UI widgets which only increase file size and maintenance costs.
The layout engine at the base of the docking framework is an highly abstracted space organization mechanism of which the docking architecture is a specialization. It is possible to take advantage of this complex system to build much more customized and flexible UI configurations.
The rendering engine used to draw all of DocktorUI's interface elements is highly optimized for full customization. The entire process is centralized in a single helper class that can be extended and reused across all components to establish different styles with just a few lines of code. The rendering process can be overwritten either globally or locally for single components.
The docking infrastructure supports all common functionality expected in such a UI framework, which includes the possibility of having docking controls as "floating" panels, detached from any container or form. These floating panels are kept in sync with the main form and are drawn in a peculiar style making it easy to discern from other docking states.
The centralized UI rendering engine takes particular care in respecting the user's theming choices by always trying to apply operating system theme color preferences and rules as to make the entire appearance blend in with the rest of the system applications and visual elements.
The DocktorUI library ships with a generic tabbing interface built from scratch and thus fully integrated with the rest of the framework. Tab views are the abstract representation of tab containers. A tab view can be easily used as a generic Tab Control which blends very homogeneously with the rendering infrastructure.
The DocktorUI library employs an easy and mild license checking system in order to free the developer from worrying about license validation errors, thus ensuring a smooth user experience for his applications. The main reasoning behind this is that it is more important to provide a good service to paying customers rather then limiting illegal users.
Additionally, the forms under which the library itself can be licensed allows for both small independent developers and large enterprises to take the most out of their investment. For additional details see the Licensing Page.
The main goal for adopting .NET in the development cycle comes from the need of having an easy prototyping technology that allows developers to quickly built their applications in order to deliver as fast and cheap as possible. This approach also makes it necessary to have a quick feedback in case any code-related problem arises. This is the reason why a ticket-based support system has been constructed in order to cover those efficiency needs. Users or maintaners can report any DocktorUI related issue easily and quickly and keep track of their reports as the add up.
For the same reasons outlined in the Efficient ticket support section, quick prototyping requires code that is easy to use and understand. For this reason particular care has been given to constructing a clear API that is both flexible and powerful as not to limit the developer's intentions in any way.
The aim of the DocktorUI project is to deliver a solid library containing some of the most necessary UI components and ensure that the great proportion of developers can use it. As explained in the Unobtrusive Licensing section, in order to accomplish this, the licensing had to be unobtrusive and allow for different prices for different needs. In this way, independent developers with a lower budget don't need to invest in a customer support they won't be needing anyway, while larger enterprises can have the safety of a prompt feedback to problems they encounter.