Gestructureerde grafische user interfaces met XUL Waar het gaat om het ontwikkelen van rich-client applicaties, loopt het Java platform in sommige opzichten nog wat achter. Het is wel degelijk mogelijk om in Java applicaties te bouwen met rijke en complexe gebruikersinterfaces – zie bijvoorbeeld de Eclipse IDE. “Rapid Application Development” is het echter bepaald niet. Opdracht XUL (XML UI Language), de open-source tegenhanger van Microsoft’s WPF, is een methode waarmee eenvoudig en gestructureerd een rich-client applicatie kan worden gebouwd op basis van XML. Door een strenge scheiding aan te brengen tussen GUI-ontwerp en code, wordt het bouwen en onderhouden van de GUI hopelijk een stuk eenvoudiger. XUL is een techniek die op dit moment nog in de kinderschoenen staat. Info Support wil graag voorop lopen en start daarom vast een onderzoekstraject naar dit veelbelovende onderwerp. Deze afstudeeropdracht vormt daar een onderdeel van. 1. 2. 3. Onderzoek de verschillende XUL libraries, al dan niet open-source, die op dit moment voor Java beschikbaar zijn. Bouw, na een keuze gemaakt te hebben, een eenvoudige proof-of-concept applicatie op basis van de gekozen library. Schrijf een uitgebreidere evaluatie van de gekozen library, naar aanleiding van de proof-of-concept applicatie. Breng in kaart hoe bruikbaar de library is en wat er nog aan ontbreekt. Als uitgangspunt voor de proof-of-concept applicatie kan de standaard “Bikeshed” applicatie worden gebruikt, of kan worden samengewerkt met één van de andere afstudeeropdrachten voor de back-end. In de eerste fase van het afstudeertraject zullen in samenspraak met de opdrachtgever(s) de functionele en technische eisen aan de applicatie worden bepaald. De nadruk ligt op het research-aspect, niet op het opleveren van een volledig functionele applicatie. Afhankelijk van hoe volwassen en compleet de huidige libraries blijken te zijn, kan een deel van het werk bestaan uit het doen van bijdragen aan een open-source implementatie. In de proof-of-concept applicatie dienen tenminste de volgende aandachtspunten aan bod te komen: • • • • • • • Aanroepen van een back-end d.m.v. webservices. Complexe dialogen met combo-boxes, list-boxes, radio buttons, checkboxes etc. Weergave van complexe data middels tabellen, grafieken, boomstructuren etc. Invoeren en wijzigen van “rich text”. Gebruikersvriendelijkheid d.m.v. sneltoetsen, drag-and-drop functionaliteit en undo/redo mogelijkheden. Een gestructureerd mechanisme voor technische en functionele foutmeldingen. Deployment en versiebeheer (bijv. middels Java Webstart). Alternatieven: • • Moet zowel de cliënt als de data-laag worden gebouwd, dan is dit een opdracht die meer geschikt is voor twee personen. Er bestaat echter al een implementatie van de domeinlaag, die mogelijk hergebruikt kan worden; in dat geval kan worden volstaan met één persoon. Als alternatief voor de Bikeshed applicatie kan deze opdracht mogelijk worden gecombineerd met één van de andere afstudeeropdrachten waarbij een applicatie moet worden gebouwd. • Nice-to-have: verifieer dat de gebouwde applicatie platform-onafhankelijk is en ook werkt onder bijv. Linux. Inzetbaarheid Het op te leveren product bestaat uit een onderzoeksrapport met aanbevelingen voor de selectie en inzet van een XUL library, en een voorbeeld-applicatie. Deze kunnen als basis worden gebruikt voor het opnemen van XUL ondersteuning in de Info Support Java ontwikkelstraat. Methoden & technieken • • • • • • Planning: Gezien het research-karakter van de opdracht is een “agile” aanpak, bijvoorbeeld XP, het meest toepasselijk Ontwerp: UML, statusovergangsdiagrammen Bouwtool: Eclipse Bouwtaal: Java 5 Applicatie omgeving: Windows XP, Java 5, Eclipse, IBM Websphere of Microsoft Visual Studio (voor de back-end webservice), Microsoft SQL Server Applicatie technieken: XUL Benodigde kennis & interesse • • Vereist: basis Java kennis Nuttig: basis kennis van rich-client ontwikkeling (bijv. Java Swing of SWT) en XML Fasen • • • • • • • • • Vooronderzoek Onderzoek PVA (plan van aanpak) FO (functioneel ontwerp) TO (technisch ontwerp) Bouwen Testen Opleveren Onderzoeksverslag