Het framework
Achtergrond
Een goede fundering geeft mogelijkheden en kansen voor de toekomst. Dus hebben we er een gebouwd. XsDesktop is gebouwd met de volgende principes in het achterhoofd:
- Houd het zo simpel mogelijk;
- Houd het intuïtief, kijk vanuit de gebruiker;
- Houd het zo licht mogelijk;
- Gebruik/ondersteun open standaarden;
- Maak het uitbreidbaar;
- Maak het cross-browser compatibel.
Houd het zo simpel mogelijk
Eenvoud is een mogelijk begrip. Subjectief als het is. Het framework als API (application programming interface) is alleen beschikbaar voor software ontwikkelaars maar ook zei hebben profijt bij een eenvoudige interface voor het bouwen van hun software. Een eenvoudige, solide API helpt software ontwikkelaars zich te kunnen focussen op het business gedeelte van hun applicaties, de feitelijke functionaliteit dus.
Houd het intuïtief, kijk vanuit de gebruiker
De gebruiker van het framework, de software ontwikkelaar, is binnen XsDesktop niet geïntresseerd in het bouwen van grafische interfaces met (X)HTML en CSS. Een software ontwikkelaar wil een formulier maken met interface-elementen zoals knoppen, lijsten, keuzelijsten, menu's etc. XsDesktop levert al deze interface-elementen als onderdeel van het framework. Het framework bevat eveneens veel andere herbruikbare componenten voor onder andere de communicatie met de server, cultuurgebonden weergave van waarden etc.
Al deze standaard interface-elementen en componenten garanderen een uniforme omgeving voor de eindgebruiker met gebruiksvriendelijkheid als de nummer één prioriteit.
Houd het zo licht mogelijk
Door het ontwikkelen van standaard componenten en ze beschikbaar te maken via het framework, hoeft niet elke software ontwikkelaar zijn eigen code te schrijven maar kan de componenten simpelweg implementeren. Om deze reden kunnen de applicaties lichtgewicht zijn en omdat het framework maar eenmalig wordt gedownload is over overall download beperkt.
Gebruik/ondersteun open standaarden
Om op andere systemen aan te sluiten, en zij op XsDesktop, is het van groot belang om interfaces te hebben die gebaseerd zijn op standaarden. Niet alleen de communicatie tussen de client en de server maar ook de downloadbare data die door veel applicaties wordt aangeboden.
Maak het uitbreidbaar
XsDesktop is geschreven met een moderne blik op software ontwikkeling. De functionaliteit in het framework is opgedeeld in groepen (namespaces) om ervoor te zorgen dat componenten geen conflict krijgen met elkaar. Daarnaast maakt het framework uitgebreid gebruik van overerfing waardoor wijzigingen op basis componenten direct effect heeft op componenten hoger in de hiërarchie.
Maak het cross-browser compatibel
Elke browser op elk platform heeft zijn eigenaardigheden. Het framework heeft als doel om deze eigenaardigheden op te vangen en ze te verbergen voor de software ontwikkelaars en hun applicaties. Het is beter om het eenmaal op te lossen in het framework dan in elke applicatie apart.
Naast cross-browser compatibel streven we er ook naar applicaties te schrijven zonder de noodzaak voor een plugin in je browser. Slechts enkele applicaties hebben een plugin nodig (ActiveX component, Flashplayer) maar het meerendeel draait zonder!
XsDesktop is succesvol getest in de meest moderne browsers van dit moment.
Schema
Het framework kan geschematiseerd worden als nevenstaand (klik erop voor een vergroting).
Technische consequenties
In de basis bestaat een applicatie in XsDesktop uit twee delen. Een clientside deel en een serverside deel.
Serverside is alles gebouwd met het Microsoft .NET Framework. Met behulp van de nieuweste .NET technologiën is veel code op generieke wijze opgezet om het bruikbaar te maken voor de applicaties. Hiermee ontstaat voor de software ontwikkelaar de mogelijkheid zich meer te focussen op hun applicaties en businessrules, ook serverside.
Clientside hoeft de software ontwikkelaar zich niet meer bezig te houden met de Document Object Model (DOM) van de browser. Het JavaScript-framework handelt de verschillen tussen de browsers af. En als het framework ergens nog niet in voorziet, kan het eenvoudig, eenmalig worden toegevoegd en vervolgens vaak gebruikt worden.
Functionele scheiding
Omdat de gebruikersinterface en de opslag van data fysiek gescheiden zijn, worden software ontwikkelaars gedwongen hun applicaties meerlaags (multi-tier) op te bouwen. Interface en businesslogica aan de clientside en opslag en dataverwerking serverside. Deze scheiding biedt software ontwikkelaars tevens de mogelijkheid om verschillende soorten interfaces (web, stand-alone) te maken met de serverside applicatie.
Geheugenbeheer
XsDesktop is zo geheugenvriendelijk als mogelijk. Ondanks dat het een "fat client" omgeving is, is het ontworpen om zo weinig mogelijk geheugen te
gebruiken. Het laad alleen de code van de applicaties die gestart worden. Niet van alle applicaties die in het menu opgenomen zijn en nooit gestart worden
gedurende een bezoek. En in het framework zelf is functionaliteit opgenomen om automatisch geheugen intensieve zaken op te ruimen als ze niet langer
nodig zijn (bijvoorbeeld als je een applicatie sluit).
Maar natuurlijk kan er nog meer gedaan worden om geheugengebruik verder terug te dringen, we profileren de code geregeld om het beste resultaat te
bereiken.