The framework
Background
A good foundation gives opportunities for the future. So we build one. XsDesktop is build with some principles in mind:
- Keep it as simple as possible;
- Keep it intuitive, look from a users point of view;
- Keep it as lightweight as possible;
- Use/support open standards;
- Make it extensible;
- Make it cross-browser compatible.
Keep it as simple as possible
Simple is a difficult thing. Subjective as it is. The framework as API is only available for software developers but they also have advantages of a simple interface for building their software. A simple, solid API helps software developers to focus on the business part of their applications.
Keep it intuitive, look from a users point of view
The user of the framework, the software developer, is within XsDesktop not interested in creating GUI's (graphical user interfaces) with (X)HTML and CSS. A software developer wants to create a form with controls on it like buttons, lists, pickboxes, menu's, etc. XsDesktop delivers all these controls as part of the framework. The framework also contains lots of reusable components for communicating with the server, enable culture-specific display of values and many more.
All these standard controls and components guarantee a uniform environment for the end-user where usability is the number one priority.
Keep it as lightweight as possible
By developing standard components and making them available through the framework, not every software developer has to write his own code but can simply implement these components. Because of that the applications can be lightweight and since the framework is only loaded once the code that should be download is limited.
Use/support open standards
To be able to connect to other systems it is important to have interfaces on the system which are bases on open-standards. Not only communication between the client and the server but many applications offer downloads of the data in some sort of standard format.
Make it extensible
XsDesktop is written with a modern view on software development in mind. The functionality in the framework is grouped in dedicated parts (namespaces) to make sure components will not conflict with each other. Beside that the framework makes intensive usage of inheritance which enables changes in base components to have effect on higher (in the hierarchy) components.
Make it cross-browser compatible
Every browser on every platform has it's own peculiarities. The framework has as purpose to capture those peculiarities and hide them for the software developers and their applications. Beter solved once in the framework then in every application separately.
Beside being cross-browser compatible we also intend to write the applications without needing some sort of plugin for your browser. So only few applications need a plugin (ActiveX component, Flashplayer) and the majority will run without!
XsDesktop has successfully been tested in the most modern browsers of this moment.
Schema
The framework can be put in a schema as displayed on the right (click for large version).
Technical consequenses
So basically and application in XsDesktop contains of two parts. A client-side part and a server-side part.
Server-side everything is build using the Microsoft .NET Framework. Using the latest .NET technologie a lot of code is written in a generic way to make it usable for other applications. Giving a software developer the chance to focus on their applications, also on the server-side.
On the client, software developers do not have to deal with the Document Object Model (DOM) of the browser anymore. The JavaScript-framework handles the differences between the different browsers. And if the framework does not contain something yet, it can be easily extended so we add it once and use it many times.
Functional separation
Because the userinterface and storage of data are physically separated, the software developers are forced to write their applications in more than one layer (multi-tier). Interface and businesslogic at the client and storage and dataprocessing on the server. This separation enables software developers to use different types of interfaces (web, stand-alone) with the server-side application.
Memory management
XsDesktop is being as memory friendly as possible. Although it is a "fat client" environment, it is designed to use as little resources as possible. It only loads the code for the applications that are run. Not the ones that appear in the menu and are never launched during a session. And in the framework itself their are features for automatically cleaning up resources when they are no longer needed (for example when closing an application). And of course there can be done more to save resources, we are continiously profiling for the best results.