Student Bart Vercruysse EEN WEBAPPLICATIE ALS ALTERNATIEF VOOR SPREADSHEETS

Maat: px
Weergave met pagina beginnen:

Download "Student Bart Vercruysse EEN WEBAPPLICATIE ALS ALTERNATIEF VOOR SPREADSHEETS"

Transcriptie

1 STAGE EINDWERK Studiegebied Handelswetenschappen en bedrijfskunde Bachelor Toegepaste Informatica Afstudeerrichting Toegepaste Informatica Academiejaar Student Bart Vercruysse Webontwikkeling EEN WEBAPPLICATIE ALS ALTERNATIEF VOOR SPREADSHEETS HET GESTRUCTUREERD REGISTREREN VAN DE KOSTEN VAN EEN VLOOT BINNEN KLEINE TRANSPORTBEDRIJVEN Stageplaats Omni-Soft Brugge BVBA Oostende Howest de Hogeschool West-Vlaanderen Rijselstraat Brugge T F

2 2

3 1. INTRODUCTIE 1.1 VOORWOORD Tijdens de voorgaande 5 semesters van de opleiding kregen we als student regelmatig de kans individueel of in groep een softwareontwikkelingsproject onder handen te nemen. Deze projecten, hoewel zeer leerrijk en boeiend, blijven altijd iets artificieels hebben. De opdracht is vaak mooi afgelijnd en de omstandigheden zijn nagenoeg ideaal. De stageperiode was voor mij dan ook de ideale gelegenheid de aangeleerde technieken en verworven vaardigheden in het echte bedrijfsleven uit te proberen. Het was een boeiende, leerrijke ervaring. Het gaf me de kans zelf te ervaren dat in de echte informaticawereld het constant maken van compromissen tussen productiviteit en functionaliteit een noodzaak is. In dit document vindt u een volledig verslag terug van het project die mij werd toevertrouwd tijdens de stageperiode. Ik probeer hier te verklaren hoe het project tot stand is gekomen en geef een overzicht van het uiteindelijke resultaat. Ik hoop via dit werk hoofdzakelijk mensen met interesse voor webdevelopment en het ontwikkelen van applicaties ter vervanging van spreadsheets aan te spreken. Daarnaast hoop ik ook het stagebedrijf aan de nodige informatie te helpen om vlot met de implementatie van het project te kunnen starten. Een bedanking aan mijn stagebegeleider Dirk Vandycke is hier zeker op zijn plaats. Niet alleen voor de nodige tips en steun tijdens de stage en het eindwerk maar ook voor de telkens leerrijke en boeiende contacturen tijdens de opleiding. De voorgestelde lectuur bleek telkens een verrijking. Lieven Mattheeuws en het volledige Omni-Soft team worden bedankt voor de steun en hulp tijdens de stage. Ik heb me ten alle tijde welkom gevoeld en kreeg altijd de kans mijn eigen opinie te uiten. Tot slot nog een dankwoordje voor mijn vriendin. Zonder haar was het volgen van deze opleiding nooit mogelijk geweest. Bart Vercruysse Toegepaste Informatica Hogeschool West-Vlaanderen 3

4 1.2 SAMENVATTING Mobility is DE beheersoftware voor de automatisering van verzekeringen binnen een transportbedrijf. Deze in ASP geschreven webapplicatie werd ontwikkeld door Omni-Soft Brugge. Dankzij de unieke samenwerking met het verzekeringskantoor D Hondt Kerckhof en partners verzekeringsmakelaars kan een anders tijdrovende administratieve taak volledig worden geautomatiseerd. De software geeft je een gestructureerd overzicht van alle verzekeringskosten en stelt de nodige verzekeringsdocumenten meteen ter beschikking. Verzekeringen mogen dan wel een van de grootste kosten zijn binnen een transportbedrijf, alle andere kosten verbonden aan de vloot dienen ook bijgehouden te worden. Grote transportbedrijven richten zich hiervoor tot dure bestaande softwarepakketten. Deze pakketten zijn onbetaalbaar voor kleine bedrijven en bieden hen een overdaad aan mogelijkheden. Zij zoeken hun toevlucht bij spreadsheets waar ze alles kunnen bijhouden wat zij nodig achten en ze eventueel de nodige grafieken kunnen generen. Deze spreadsheets hebben de neiging snel ongestructureerd te raken, missen uniformiteit, worden vaak over meerdere bestanden of locaties gespreid en bieden amper bescherming tegen menselijke fouten. Tijdens mijn stage kreeg ik de opdracht een prototype van een webapplicatie te ontwikkelen die deze bedrijven een alternatief biedt voor het gebruik van spreadsheets. De webapplicatie zorgt voor een gestructureerde registratie van de gegevens en gaat deze gecentraliseerd bewaren. Toch wordt de eenvoud zoals bij het gebruik van spreadsheets behouden en laat het de gebruiker toe enkel bij te houden wat bij hem van toepassing is. De webapplicatie biedt een interface die nauw aansluit bij het Mobility en kan zowel geïntegreerd in het pakket als volledig zelfstandig beschikbaar worden gesteld. Moderne technologieën zorgen voor een simpele maar dynamische interface. Het pakket biedt de mogelijkheid voertuigen, bestuurders en ritten te registreren. Alsook eigen kosten te definiëren en deze bij te houden. Van alle gegevens kan een gestructureerd overzicht worden opgevraagd en kunnen grafieken worden gegenereerd. Zo kunnen zij snel zien welk voertuig, bestuurder of wat dan ook binnen de vloot hen het meest gekost heeft binnen een opgegeven periode. 4

5 1.3 ABSTRACT Mobility is THE management software for the automation of insurance within a transport company. This web application, written in ASP, was developed by Omni-Soft Bruges. Thanks to a unique collaboration with the insurance broker "D Hondt Kerckhof en partners verzekeringsmakelaars it becomes possible to fully automate an otherwise time-consuming administrative task. The software provides a structured overview of all insurance claims and it makes sure the necessary insurance documents are immediately available. Insurance payments may by far be one of the biggest costs within a transport company, however all other costs associated with the fleet should also be tracked. Large transport companies can get themselves some expansive existing software. These packages are out of financial reach for small businesses and offer them an overload of possibilities. They seek refuge in spreadsheets where they keep track of only those instances important to them and if necessary, these spreadsheets offer them a wide array of charts to analyze the data. Unfortunately these spreadsheets tend to become unstructured rather quickly, lack uniformity, are often spread over several files or sites and provide limited protection for human errors. During my internship I had the chance to create a prototype of a web application, which could eventually provide these businesses an alternative to the use of spreadsheets. The web application provides a structured way of recording data, fully centralized in one spot. However, the simplicity, as we find it in the use of spreadsheets is maintained and allows the user to keep track of only those costs which apply to him. The web application provides an interface that closely matches the interface of Mobility and can be integrated into the package. On the other side, it s still perfectly possible to run the application fully autonomous. Modern technologies provide the user a simple but dynamic interface. The package allows management of vehicles, drivers and keeps record of the different interactions between those. The user can create his own costs and link these to the different vehicles within his fleet. All data can then be obtained, exported or even used inside the application to be analyzed or to generate overview graphs. The application provides a quick way to determine the biggest costs within a fleet in a certain time span. 1.4 KEY WORDS Webapplicatie webontwikkeling prototype kostenregistratie kostenbeheer - ASP.NET - AJAX aspxgridview DevExpress - spreadsheet rekenblad 3-tier Omni-Soft Brugge BVBA 5

6 INHOUD EEN WEBAPPLICATIE ALS ALTERNATIEF VOOR SPREADSHEET 1. Introductie Voorwoord Samenvatting Abstract Key words... 5 Inhoud Verklarende woordenlijst Stagebedrijf Omni-Soft Brugge BVBA Hun producten OmniSyndic OmnImmo Mobility Het team Kantoor Brugge Kantoor Oostende Stageproject Hoofdproject: prototype kostenregistratie vloot Algemeen Analyse Ontwerp Programmatie Mini-project: SQL reporter Situering Analyse

7 Ontwerp Programmatie Overzicht webapplicatie Gebruikers en polissen Voertuigen Filteren en sorteren Nieuwe voertuigen toevoegen Voertuigen aanpassen Algemeen en technische kenmerken Kostcategorieën Kostoverzicht Voertuigen verwijderen Bestuurders Bestuurders toevoegen Bestuurders aanpassen Bestuurders verwijderen Documenten koppelen Ritten registeren Kostenbeheer Nieuwe categorieën en kosten definiëren Het verwijderen van kosten of categorieën SQL reporter Sorteren en filteren Kolommen wijzigen Groeperen Exporteren Kritische reflectie Conclusie

8 7. Bijlagen Bijlage 1: ASPtoASPX.ASP Bijlage 2: ASPtoASPX.aspx Bijlage 3: Clearsessions.aspx + Clearsessions.cs Bijlage 4: Voorbeeld DAL en BLL Bijlage 5: SQL reporter Goedkeuring eindwerk

9 1.5 VERKLARENDE WOORDENLIJST Prototype: Verwijst in dit werkstuk naar een stuk software met als bestaansreden het weergeven van de hoofdfunctionaliteit en het bieden van een framework voor de ontwikkeling van een vooropgestelde applicatie. Zo n prototype ontwikkelen we om te onderzoeken welke technieken we best gebruiken om aan de noden van de klant (of in mijn geval het ontwikkelingsteam) te voldoen, zonder rekening te hoeven houden met alle te verwerken gegevens van de uiteindelijke applicatie. UID: Unique Identifier, een databank gegevenstype. Dit is een automatisch gegenereerde, unieke reeks tekens die als identifier voor de data kan gebruikt worden. IDE: Integrated Development Environement. Een stuk software die de softwareontwikkelaar toelaat stukken software te ontwikkelen met behulp van aangereikte functionaliteiten. Het gaat hier meestal om een totaalpakket van code-editor en een tool om de applicatie te compileren of te interpreteren. In bijna alle gevallen is er ook een debug module aanwezig. Generics: Laten de softwareontwikkelaar toe het type van een collectie door te geven aan de compiler, zodat deze dit kan controleren. 9

10 2. STAGEBEDRIJF 2.1 OMNI-SOFT BRUGGE BVBA Omni-Soft Brugge BVBA is een dochterbedrijf van verzekeringsmakelaar D Hondt Kerckhof en partners verzekeringsmakelaars of kortweg DKPV. Het is een ambitieus en nog volop groeiend softwarehuis die zich richt op overzichtelijke, flexibele en easy to use oplossingen op maat van de klant. Het bedrijf probeert steeds nauw samen te werken met de klant om zo tot een professioneel advies te komen. Hierbij wordt geprobeerd de administratieve taken binnen het bedrijf van de klant te vereenvoudigen en bedrijfsprocessen te automatiseren. Door de on-line-isering in de softwarewereld zijn webapplicaties een groot aandeel in de softwareaanbod van het bedrijf. Het gros van de ontwikkelde webapplicaties draait op de reeds enkele jaren oude ASP motor. Tijdens mijn stageperiode bleek het bedrijf volop bezig met investeren in nieuwe technologieën. Zo worden alle nieuwe projecten reeds in ASP.NET ontwikkeld en worden oude projecten laag per laag gemoderniseerd. Door de keiharde softwaremarkt en het grote aanbod gratis alternatieven hebben de bedrijfsactiviteiten zich doorheen de jaren uitgebreid. Zo biedt Omni-Soft ook netwerkbeheer of helpdesk ondersteuning aan bedrijven. Het IT team bestaat uit een goed werkende mix van softwareontwikkelaars en technici met verschillende professionele achtergronden. Zo slagen ze er in een naadloze integratie te bieden met bestaande omgevingen en voelen ze zich thuis op verschillende vakgebieden. 2.2 HUN PRODUCTEN OMNISYNDIC Een web-based programma voor de syndicus. Deze webapplicatie biedt modules voor het beheren van gebouwen en bewoners. Het contacteren en informeren van de bewoners wordt zo volledig geautomatiseerd. Ook een boekhoudkundige module en taakplanner zijn aanwezig. Er bestaat een spin-off van deze toepassing onder de naam OmniClub die voorziet in het beheer van clubleden en een module voor eenvoudig boekhouden aanbiedt. OMNIMMO Een webapplicatie speciaal ontwikkeld voor het immobilien kantoor. Het pakket biedt een volledig beheersysteem voor de verkoop en verhuur van panden en zorgt voor een rechtstreekse online publicatie. 10

11 MOBILITY Een online geïntegreerd beheersplatform voor transportverzekeringen. Dit is het paradepaardje van het bedrijf en een unieke toepassing op de Belgische markt. Mijn stageproject werkt nauw samen met deze toepassing. We gaan er dan ook iets dieper op pagina 11. Verdere verwijzingen naar dit softwarepakket zullen gebeuren onder de verkorte naam Mobility. Naast de bovenstaande algemene pakketten biedt het bedrijf hoofdzakelijk op maat gemaakte oplossingen, dit kan variëren van bedrijfsspecifieke client-server software tot het creëren van een website voor de verhuur van een vakantievilla in Spanje. 2.3 HET TEAM De werknemers van het bedrijf werken op verschillende sites, waarbij het ontwikkelingsteam zich in Oostende huist en de zaakvoerders zich in het kantoor van moederbedrijf DKPV in Brugge nestellen. KANTOOR BRUGGE Kurt D Hondt Zaakvoerder Omni-Soft Sandra De Groote Zaakvoerder KANTOOR OOSTENDE Guy Winne IT manager Software engineer Lieven Mattheeuws Software engineer Eric Walter Project manager Hardware specialist Hoewel ik tijdens mijn stageperiode hoofdzakelijk heb samengewerkt met de twee aanwezige software engineers heb ik ook behoorlijk wat kunnen bijleren van de project manager en tevens hardwarespecialist van dienst. Ik kreeg enkele malen de kans actief mee te werken bij het oplossen van netwerk of hardware problemen. Dit zowel binnen het bedrijf als op locatie bij klanten. Daarnaast wist hij me bijna dagelijks verbazen met boeiende toelichtingen bij nieuwe technologieën en ontwikkelingen in de wereld van hardware en besturingsystemen. 11

12 3. STAGEPROJECT 3.1 HOOFDPROJECT: PROTOTYPE KOSTENREGISTRATIE VLOOT ALGEMEEN SITUERING We bevinden ons in de transportsector. Wereldwijd een van de grootste bedrijfstakken met ook in België een aanzienlijke markt, die zelf die van buurland Nederland overstijgt. Op vlak van automatisering is Omni-Soft is hier reeds een gevestigde waarde dankzij het uniek softwarepakket Mobility. Dit stelt transportbedrijven in staat de administratie rond het verzekeren van hun vloot te automatiseren en het hele gebeuren aanzienlijk te versnellen. Belangrijk is te weten dat verzekeringen meteen ook de grootste kost zijn binnen deze bedrijven. We kunnen dus stellen dat de bedrijven het Mobility pakket gebruiken, hiermee 1 van hun grootste kosten perfect in beeld kunnen brengen. Voor het in kaart brengen van alle kosten omtrent de vloot moeten ze echter beroep doen op vaak zeer dure, grote softwarepakketten of aangepaste ERP systemen. Hierbij gaan ze de verzekeringskosten dubbel registeren, zodat ze kunnen genieten van de automatisering van de verzekeringen via Mobility en de management en kostenanalyse mogelijkheden van third party software. MOBILITY Mobility is een groot browser driven softwarepakket geschreven in ASP. Het pakket laat een samenwerking toe tussen zowel verzekeringsmakelaar als transportbedrijf. De grote kracht van het pakket Met betrekking tot het stageproject is enkel de module bestemd voor transportbedrijven van belang. Met het stuk voorzien voor de verzekeringsmakelaar wordt niet samengewerkt vanuit het stageproject en we hoeven hier dus verder geen rekening mee te houden. Zoals reeds eerder vermeld speelt Mobility een belangrijke rol bij de ontwikkeling van mijn prototype. Het is namelijk belangrijk dat de eindapplicatie zowel volledig autonoom als volledig geïntegreerd in de bestaande software kan werken. Er kunnen ook enkele bestaande modules worden overgenomen. Zo wordt is het uiteindelijk programma een mix van programmamodules die strikt tot het stageproject behoren en het gebruiken van reeds bestaande modules uit Mobility. We zien in onderstaand schema hoe de twee applicaties met elkaar verweven zijn. Zo zien we dat de gebruikersmodule in beide applicaties dezelfde is en de basis van de voertuigmodule ook zijn oorsprong bij Mobility kent. In theorie werkt dit zonder problemen. De verschillende modules zijn namelijk netjes afgeschermd geschreven en kunnen bijna volledig op zichzelf functioneren. De samenwerking ertussen is een kwestie van data doorgeven. 12

13 In praktijk blijkt het doorgeven van die data een groter probleem. We gaan hier twee verschillende technologieën combineren. Aan de ene zijde hebben we Mobility die volledig in ASP gecodeerd is, aan de andere zijde het stageproject geschreven in ASP.NET. Op de webserver zijn dit dus twee verschillende serverside script engines die de webpagina s generen. Het zijn ook twee afzonderlijke processen die sessievariabelen gaan bijhouden en afschermen. In het stuk Analyse gaan we dan ook even dieper in op de techniek die gebruikt werd om sessievariabelen van classic ASP door te geven naar ASP.NET en visa versa. Ook doordat we twee verschillende technologieën aan de kant van de server gebruiken zijn er twee aparte vertalingmodules voorzien. Zo dient tijdens de iets arbeidsintensievere taak voor het ophalen van de correcte labeltekst niet telkens langs de omzetpagina worden gegaan. KOSTENREGISTRATIE BIJ KLEINE TRANSPORTBEDRIJVEN Kleine transportbedrijven maken echter geen gebruik van de reeds bestaande softwarepakketten. Vaak gaan ze ook niet aankloppen bij softwarehuizen om een op maat gemaakt pakket te laten maken. Dit heeft twee logische redenen: Het kostenplaatje: De reeds beschikbare software is zondermeer duur te noemen. Voor deze kleinere transportbedrijven een investering die ze niet kunnen maken. Ook het op maat laten maken van software of het laten aanpassen van ERP toepassing zijn dure aan gelegenheden. 13

14 Overdaad aan mogelijkheden: Het dure prijskaartje is niet uit de lucht gegrepen. De bestaande pakketten bieden vaak een lange waslijst van mogelijkheden en te gebruiken modules. Kleine bedrijven die inderdaad zo n pakket in gebruik hebben, blijken in praktijk dan ook slechts een heel klein percentage hiervan te gebruiken. De kleine transportbedrijven geven dan ook zelf aan dat de kosten hier niet baten en ze deze investering achterwege laten. Ze gaan zelf opzoek naar oplossingen om voor zichzelf zo goed mogelijk een overzicht te creëren. Hierbij wordt in vele gevallen beroep gedaan op softwarepakketten die ze reeds gebruiken binnen de onderneming en hen in staat stellen alles wat nodig is te registreren. ALGEMEEN SPREADSHEETS TO THE RESCUE? Als ik het hierboven heb over softwarepakketten die reeds gebruikt worden binnen de onderneming, blijkt dit in praktijk hoofdzakelijk over een heel specifiek pakket te gaan. Bijna alle bedrijven hebben namelijk Microsoft Office of een variant in gebruik. Binnen dat zo n pakket vinden we het programma steevast een applicatie terug die de gebruiker instaat stelt snel en makkelijk spreadsheets of rekenbladen te creëren. Een meerderheid van de bedrijven gebruikt zo n rekenblad om alle gegevens rond kosten en voertuigen binnen een vloot te registeren en bij te houden. Tot op zekere hoogte blijkt dit een prima oplossing. De gebruiker kan zelf zo n rekenblad opstellen en daarin telkens wat voor hem nodig is registreren. De gebruiker krijgt ook de indruk, of vertrekt zelfs vanuit de intentie dat dit programma voor dergelijke zaken bedoeld is. We weten echter dat dit helemaal niet de bedoeling is van een rekenblad. Rekenbladen zijn geen databanken. Ze bieden geen relaties tussen de verschillende gegevens. Rekenbladen zijn bedoeld om op reeds gesloten gegevens berekeningen uit te voeren of grafieken te trekken. Microsoft is er zich van bewust dat hun software vaak verkeerdelijk wordt gebruikt en legt gebruikers in verschillende online hulpdocumenten uit in welke gevallen te kiezen voor rekenbladen of wanneer gebruik te maken van hun database gericht programma MS Access. De gouden regel is hier: gebruik rekenbladen enkel voor het uitvoeren van berekeningen op kleine hoeveelheden data. Wanneer je relationele gegevens wil opslaan, kies dan voor een echte database. DE KRACHT VAN EEN REKENBLAD De gebruikers mogen dan wel verkeerdelijk naar een rekenblad grijpen voor het beheren en opvolgen van hun vloot en kosten, we moeten ons ook afvragen of dit wel zo erg is? Brengt dit nadelen met zich mee? En als er inderdaad zoveel bedrijven dit gebruiken moet het gebruik vast ook vele voordelen bieden. Hieronder vinden we een lijst van de grootste voor en nadelen van een rekenblad. Dit zal later in dit document ook meteen een van de uitgangspunten zijn om met een alternatief op de proppen te komen. Als we namelijk een alternatief willen aanbieden, zal het belangrijk zijn zoveel mogelijk van de goede punten van de rekenbladen te behouden en zoveel mogelijk op de slechte punten in te spelen. Alleen dan zal de applicatie de gebruiker aanzienlijke voordelen bieden en een eventuele overstap beter te verantwoorden zijn. 14

15 VOORDELEN Gebruiksvriendelijk en vertrouwd: Rekenbladen kunnen door gebruikers van alle niveaus worden bewerkt. Daarnaast zijn veel gebruikers reeds vertrouwd met de look and feel van het pakket doordat ze andere software van dezelfde fabrikant dagelijks gebruiken. Prijskaartje: Goedkoop of gratis. Bij vele bedrijven is een programma voor het bewerken van rekenbladen aanwezig als onderdeel van een reeds aangekocht softwarepakket. Er bestaan ook degelijke, gratis softwarepakketten die deze taak op zich nemen. Flexibel: De gebruiker houdt enkel bij wat voor hem nodig is. Geen onnodige complexe schermen en geen bedrijfspecifieke kosten die niet kunnen geregistreerd worden. Compatibiliteit: Door de grote populariteit van programma s als Excel zijn de bestandsformaten die door deze programma s gebruikt worden bijna universeel geworden. Heel veel externe software biedt ondersteuning voor deze formaten wat het uitwisselen van data vaak makkelijk maakt. Rapportering/Grafieken: Een programma voor het bewerken van rekenbladen komt ook met een hele werkkist aan grafieken en tools die het analyseren van je data vereenvoudigen. Veel van deze programma s zijn ook al een heel eind op de markt en hebben zich op dit terrein geperfectioneerd dit vlak dan ook heel wat te bieden. NADELEN Interactief en foutgevoelig: deze knelpunten worden in het stukje Interactief gevaar en foutgevoeligheid. Beperkt tot 1 gebruiker: Rekenbladen bieden slechts beperkte ondersteuning voor het bewerken van de data door meerdere gebruikers op hetzelfde moment. Ze bieden geen garantie van exclusiviteit op de data en er is geen instantie die kan controleren of de data waarmee je werkt nog steeds de meest recente data is. Niet relationeel en niet gecentraliseerd: Doordat we geen relaties kunnen definiëren tussen de data en dus ook geen beperkingen kunnen opleggen op deze relaties is de kans op redundante gegevens groot. Daarnaast gaan bedrijven hun gegevens vaak over meerdere rekenbladen verspreiden dus kunnen we ook niet spreken van gecentraliseerde data. Dit maakt het beheer van beveiliging, rechten en back-up er niet makkelijker op. Beperkte hoeveelheden data: Rekenbladen hebben een zeer beperkte grote. Hoewel kleinere transportbedrijven maar een kleine hoeveelheid data moeten bijhouden en dus zelden het beperkte maximum aantal records zullen bereiken leidt de snelheid en het gebruiksgemak al snel onder de kleine hoeveelheid data. Moeilijk uit te breiden: Eens de structuur en de data binnen een rekenblad vastligt, is dit nog moeilijk uit te breiden. De uitbreiding en controle moet manueel gebeuren. We kunnen makkelijk nieuwe records toevoegen, echter de gegevens binnen de huidige records aanpassen is niet zonder gevaar. 15

16 INTERACTIEF GEVAAR EN FOUTGEVOELIGHEID Bij een rekenblad mogen we het gevaar van het interactief werken op de gegevens binnen dat rekenblad niet onderschatten. We werken namelijk altijd zelf en rechtstreeks op de gegevens. Buiten de eigen interpretatie van de gebruiker is er geen mechanisme die ingaven controleert of regels afdwingt. Wanneer we een rekenblad gebruiken om zowel data op te slaan (databank) als data te bewerken (formulier) is dit een gevaarlijke onderneming. De integriteit van de gegevens is volledig van de gebruikers afhankelijk en er is geen controle bij strikt getypeerde ingaven. De gebruiker wordt dus gedwongen zelf foutcontroles uit te voeren bij het wijzigen van gegevens als bij het aanmaken van nieuwe gegevens. WERKEN NAAR EEN OPLOSSING HET BIEDEN VAN EEN ALTERNATIEF Als stageproject is mij de opdracht gegeven een het prototype van een webapplicatie te ontwikkelen om deze kleine transportbedrijven een alternatief te kunnen bieden voor het gevaarlijke gebruik van spreadsheets. Het prototype moet de basis worden, waar zonder veel aanpassingen zowel een stand alone versie uit te produceren valt alsook voor een complete integratie binnen het bestaande pakket Mobility. Het zou uiteindelijk de bedoeling zijn dit pakket beschikbaar te stellen aan kleine transportbedrijven die reeds andere, commerciële, diensten van het stagebedrijf benutten. Aan de ontwikkeling van het prototype zijn enkele basisvoorwaarden verbonden, hierover kunt u meer lezen in het stuk Functionele en niet-functionele eisen, terug te vinden onder het hoofdstuk Analyse. Het kiezen voor een webapplicatie brengt out of the box al meteen een voordeel met zich mee. Aan de cliëntzijde zijn we namelijk losgekoppeld van een besturingssysteem. In de transportsector kan het platform van dienst sterk variëren van bedrijf tot bedrijf, hoewel de keuzes zich meestal beperken tot een Windows based platform of een bekende Linux distributie. Indien nodig kan een externe web server de server zijde op zich nemen. Voor het aanspreken van de applicatie zijn een compatibele web browser en indien extern, een internet aansluiting voldoende. We hoeven ons niets aan te trekken tijdens het uitwerken van een prototype over de compatibiliteit van de gebruikte technologieën en de uiteindelijke omgeving. STARTEN MET HET ONTWERP VAN EEN PROTOTYPE Bij de ontwikkeling van een prototype is het belangrijk de focus te behouden. We moeten vooraf duidelijk aflijnen wat we met het prototype willen bereiken en aan welke voorwaarden we willen voldoen. Zo niet dreigt het prototype een geheel van onafgewerkte technologieën te worden waarbij wel veel onderzoek zal verricht zijn maar weinig resultaten worden behaald. We stellen strikte doelen op en pas als deze zijn behaald wordt het prototype naar een volgend stadium opgewaardeerd. Bij het bedrijf waren er in hoofdzaak twee redenen om zo n prototype te ontwikkelen. Aan de ene zijde zijn ze opzoek naar welke eigenschappen de applicatie moet hebben om nuttig bevonden te worden. Hoe nuttig blijkt het idee die binnen het bedrijf speelt? Aan de andere kant willen ze te weten komen welke technologieën er gebruikt kunnen worden om de interface dynamischer te maken. Om deze opdracht tot een goed einde te brengen ben ik gestart bij een soort checklist van de te creëren applicatie. We hebben reeds in een vorig hoofdstuk een lijst opgesteld met alle sterke en zwakke punten van rekenbladen. Het was toen al duidelijk dat we minstens aan alle sterke punten moeten voldoen en verbetering 16

17 op de zwakke willen we de gebruiker enig voordeel bieden tegenover de huidige werkwijze. Ik heb dan ook deze punten gebruikt als richtlijn om de lijst op te stellen. Na de echte programma analyse kunnen voegen we hieraan de functionele en niet-functionele eisen aan toe om tot een geïmplementeerd geheel te komen. VOLGENDE GOEDE PUNTEN MOETEN BEHOUDEN BLIJVEN: Gebruisvriendelijk en vertrouwd: We maken gebruik van een cleane, intuïtieve interface. We bieden een gelijkaardige interface als die van het bestaande pakket Mobility. Gebruikers die dit pakket in gebruik hebben zullen zich hier dus meteen thuis voelen. Fexibel: De gebruiker moet zelf kunnen bepalen welke gegevens hij in de applicatie bijhoud en hoe diep hij hierin gaat. Hier gaat specifiek over het aanmaken van eigen kostencategorieën en types. Op dit vlak moet voordeel gehaald worden ten opzichte van applicaties die alle formulieren reeds vastleggen. Het gebeurt niet vaak dat de gebruiker alle aangereikte velden gebruikt en dit komt de overzichtelijkheid niet ten goede. Compatibiliteit: De webapplicatie biedt exportmogelijkheden naar Excelbestanden, vanaf dit punt blijven dezelfde compatibiliteit gegarandeerd als bij de vooraf gehanteerde werkwijze. Rapportering/Grafieken: Hier kunnen we onmogelijk dezelfde mogelijkheden bieden als jarenlange spelers zoals Excel. De belangrijkste mogelijkheden zijn voorzien in de webapplicatie zelf. Indien de gebruiker meer uitgebreide berekeningen of grafieken wil laten uitvoeren, kan er beroep gedaan worden op de exportmogelijkheden van de applicatie. Daarna kan de gebruiker Excel of gelijkaardig programma gebruiken,dit keer op de manier waarvoor het ontwikkeld was. BIJ VOLGENDE KNELPUNTEN MOET DE WEBAPPLICATIE EEN OPLOSSING BIEDEN: Interactief en foutgevoelig: Doordat er niet langer rechtstreeks op de gegevens wordt gewerkt maar een programma als het ware voor ons de gegevens bewerkt en verwerkt kan dit programma hier ook controles uitvoeren. Zo worden gegevens pas weggeschreven nadat ze door de applicatie zijn goedgekeurd. Hierdoor beperken we de kans op gebruikersfouten en corruptie van de gegevens. Beperkt tot 1 gebruiker: De applicatie kan een oneindig aantal gebruikers toestaan. Doordat er dit maal een instantie is die deze gebruikers kan sturen en de gegevens kan bewaken wordt de integriteit ervan bewaard en zijn de gebruikers zeker de meest recente gegevens beschikbaar te hebben en deze zonder problemen vanuit meerdere clienten kunnen aangepast worden. Niet relationeel en niet gecentraliseerd: Het gebruik van een databank laat ons toe relaties te definiëren tussen onze gegevens. Hierdoor wordt de data niet langer een geheel dankzij de interpretatie van de gebruiker maar kan de applicatie of databank server zelf de relaties en restricties op de gegevens interpreteren. Hierdoor kan verzekerd worden dat de gegevens volledig zijn en op de gewenste manier samenwerken. 17

18 Doordat alle recordgegevens in de databank zitten verdwijnt het gevaar dat de gebruiker meerdere fysieke locaties benut om de gegevens te bewaren. De gegevens staan altijd centraal en hierdoor kan beveiliging en het nemen van een reservekopie een pijnloos proces worden. Beperkte hoeveelheden data: In tegenstelling tot rekenbladen staat het gebruik van een databank ons toe zoveel records te registreren als we willen. Er is niet langer een maximum limiet. De databank engine is ook veel beter voorzien op het gebruik van grote aantalen data dus de snelheid zal hier gegarandeerd blijven. Moeilijk uit te breiden: Met de nieuwe werkwijze kan zowel bestaande data makkelijk uitgebreid worden als nieuwe gegevens makkelijk worden toegevoegd. Door het goed ontwerpen van onze databank en formulieren maakt het niet zoveel uit welke gegevens er hier uiteindelijk aan gekoppeld worden. De applicatie zal te allen tijde in staat zijn deze additionele gegevens te verwerken en aan de gebruiker voor te schotelen. In tegenstelling tot rekenbladen blijft de werking van de originele gegevens gegarandeerd en hoeft de gebruiker hier zelf geen controle op uit te voeren. ANALYSE FUNCTIONELE EISEN De gebruiker kan inloggen met een account uit Mobility. De gebruiker krijgt na het inloggen een polis selectiescherm te zien indien hij meerdere polissen beheert. Het aanmaken, aanpassen en verwijderen van voertuigen door de gebruiker. De gebruiker kan de voertuigen sorteren, filteren en exporteren. De gebruiker kan zelf kosten en kostcategorieën definiëren en hiervoor een standaard prijs opgegeven. De gebruiker kan deze kosten toekennen aan een voertuig. De gebruiker kan een visueel, algemeen overzicht opvragen van alle kosten binnen een vloot, binnen een opgegeven periode. De gebruiker kan een grafiek opvragen die alle kosten binnen het volledige wagenpark in kaart brengt, binnen een opgegeven periode. De gebruiker kan een grafiek opvragen die alle kosten in kaart brengt per voertuig, binnen een opgegeven periode. De gebruiker kan zelf bepalen of het hier gaat over een staaf-, lijn- of taartgrafiek. Het aanmaken, aanpassen en verwijderen van bestuurders door de gebruiker. Het koppelen van bestanden (afbeeldingen, tekstdocumenten) aan de bestuurders. Het registeren van een rit met een voertuig bij een bestuurder. De interface wordt de gebruiker in zijn eigen taal aangeboden. 18

19 NIET-FUNCTIONELE EISEN Gebruik de bestaande Microsoft SQL database opgemaakt voor Mobility, deze wordt waar nodig uitgebreid. De web applicatie wordt ontwikkeld in ASP.NET/C# Als programmastructuur word teen 3-tier model gebruikt zoals dit door Microsoft beschreven staat. De applicatie gebruikt een aangereikte stylesheet. ONTWERP DATABANK In het schema vinden we enkele hoofdtabellen terug. We hebben de Gebruiker en Polis, in veel gevallen zal dit een 1 op 1 relatie zijn. Slechts bij een beperkt aantal testgebruikers en beheerders, zullen we meerdere polissen aan eenzelfde gebruiker koppelen. De polis wordt als algemene identificatie doorheen de applicatie gebruikt, bijna alle andere gegevens worden dan ook hieraan gekoppeld. Zo zijn de hoofdtabellen Voertuig en Driver aan een polis gekoppeld. Om het schema overzichtelijk te houden zijn alle koppeltabellen vervangen door een icoon ( ). In zo n geval gaat het om eenvoudige koppeltabel die twee tabellen aan elkaar koppelt doormiddel van hun primaire sleutel en de combinatie van beide sleutels als eigen primaire sleutel gaat beschouwen. Het schema beperkt zich te de belangrijkste tabellen en hun belangrijkste waarden.tabellen die exclusief tot Mobility behoren worden niet weergegeven. De waarden tussen de haakjes zijn het datatype waarin we de gegevens opslaan. 19

20 De tabel PostType 1 bevat alle door de polishouder gedefinieerde kostencategorieën. Hieraan zijn dan de door de gebruiker gedefinieerde kosten, terug te vinden in de tabel PostSubType, gekoppeld. De echte registratie van een kost gebeurt via de tabel PostSubTypeVoertuig. Deze registreert een relatie tussen een voertuig en een postsubtype. De tabel Document bevat een verwijzing naar de fysieke locatie van het bestand en de nodige info over het document. Via een koppeltabel worden documenten of bestanden aan een bestuurder gekoppeld. De tabellen voertuigtype, antidiefstal en merk bevatten lijsten met de respectievelijke items. Via de tabel Status kunnen voertuigen, bestuurders en kosten op niet actief worden gezet zonder dat we ze uit de databank hoeven weg te gooien. Hierbij garanderen we zowel een blijvende werking van de gegevens binnen Mobility als het correct verlopen van opvragen over gegevens in het verleden. Om de applicatie meertalig te kunnen aanbieden aan de gebruikers zijn extra tabellen noodzakelijk. We hebben een tabel tr_language die alle beschikbare talen en een omschrijven hiervan bevat. Elke gebruiker is standaard gekoppeld aan een taal. Elke label op een pagina of binnen een usercontrol krijgt een vertaling die aan de correcte taalcode wordt gekoppeld. Ieder label wordt aan een pagina of usercontrol van de applicatie gekoppeld via de tabel tr_page. De tabellen PostType en PostSubType zijn beiden gekoppeld aan een eigen vertalingtabel. Hierin komen alle opgegeven vertalingen van de door de gebruiker gedefinieerde kosten en subkosten. 1 Er is bewust gekozen voor de benaming Post in plaats van Kost. Zo staat de databank open voor verandering en zal er nooit verwarring ontstaan indien de applicatie in een later stadium besluit ook opbrengsten te laten registeren. 20

21 ARCHITECTUUR 3-TIER Een van de niet functionele eisen de het stagebedrijf me oplegde was het gebruik van een Multi-tier clientserver architectuur bij de ontwikkeling van mijn applicatie. Het gaat hier over de meest gebruikte vorm van de Multi-tier architectuur, het 3-tier model. IMPLEMENTATIE Het basisprincipe van een 3 tier applicatie is bij de meesten wel gekend. We delen onze applicatie op in 3 lagen zodat we te allen tijde een laag kunnen vervangen of aanpassen. We splitsen hierbij de datalaag van de laag met business logica en houden deze op zijn beurt gescheiden van onze presentatielaag. De communicatie tussen de verschillende lagen verloopt lineaire, de twee uiterste lagen kunnen niet rechtstreeks met elkaar communiceren. De implementatie van deze architectuur verloopt volledig volgens de werkwijze aangerijkt door microsoft en beschreven door Scott Mitchell voor MSDN. Deze implementatie biedt een bijna naadloze samenwerking met de door microsoft standaard aangeboden.net data-controls wat de verdere ontwikkeling vlot laat verlopen. 21

22 Hierbij is het zeer belangrijk de strikte conventies door Microsoft opgegeven rond naamgeving en typeaanduidingen in acht te nemen om van de vlotte samenwerking gebruik te kunnen maken. In bijlage 4 kunt u een voorbeeld van een DAL en de bijpassende BLL klasse terugvinden. Bron: MEERTALIGE APPLICATIE ALGEMEEN Een van de eisen van het bedrijf is dat mijn prototype de interface meertalig kan aanbieden. Het is vaak zo dat zowel Nederlands-, Frans- als Engelstaligen dezelfde applicatie zullen gebruiken en dus gebruikerafhankelijk een vertaling moet voorzien worden. Er hiervoor mechanismen binnen het ASP.NET voorzien via Globalization en Localization. Hierbij wordt gebruik gemaakt van resource files (xml bestanden) die alle labels en waarden voor een bepaalde taal, cultuur of geografische locatie bevatten. Naast het vertalen kun je via deze weg ook verschillende implementaties voorzien voor de verschillende metrieke stelsels. Binnen het stagebedrijf wordt voor een andere aanpak gekozen. Er is een zelfgeschreven klasse die de vertaling op zich zal nemen. Deze klasse wordt bij alle projecten binnen het bedrijf gebruikt waar een meertalige interface nodig is. De softwareontwikkelaars die later met het prototype zullen verder werken lieten hier duidelijk hun voorkeur merken. Het is dan ook deze methode die in het stageproject werd geïmplementeerd. Bron: IMPLEMENTATIE Het eerst wat gebeurt, gebeurt nadat de gebruiker is ingelogd 2. Alle gebruikersgegevens, waaronder de voorkeurstaal bevinden zich nu in sessievariabelen van onze applicatie. Elke pagina is dankzij zijn master page voorzien van een string dictiornnary en een methode om deze op te vullen. Vanaf dat moment zal telkens een pagina initieel wordt geladen, tijdens de Load methode de string dictionary worden opgevuld met de correcte vertalingen. Deze worden opgehaald uit de database aan de hand van de pagina en de aangegeven taal. Tijdens het inladen van ieder label, gaat dit op zijn beurt de correcte waarde opvragen in de string dictionary. Doordat vertalingen aan een pagina gebonden zijn hoeft de applicatie telkens maar een hele kleine lijst van vertalingen in te laden. Bij het gebruik van zelfgemaakte usercontrols wordt hetzelfde principe toegepast. Deze worden dan niet vertaald tijdens het laden van de pagina maar tijdens de Load methode van de usercontrol zelf. 2 We kunnen de taal pas bepalen nadat we weten welke gebruiker en welke voorkeurstaal we mee te maken hebben. 22

23 Een handigheid die het bedrijf bij het vertalen gebruikt, is het voorzien van standaardvertalingen bij elke label en ervoor te zorgen dat deze opvallen op een pagina. Je kan dit doen door een opvallende prefix of suffix of het gebruik van een opvallend kleur. Labels die nog geen vertaling voor handen hebben worden binnen het stagebedrijf en als gevolg binnen het stageproject aangeduid door een spoorwegteken voor en na de standaardvertaling: bv. #label#. Zo kun je bij het ingeven van de verschillende vertalingen met 1 blik op de pagina meteen zien welke labels reeds van een vertaling voorzien zijn en bij de welke een vertaling ontbreekt. STRINGDICTIONARY VS DICTIONARY<TKEY, TVALUE> Binnen het.net framework is een StringDictionary niet meer dan een hash tabel met de sleutel en waarde sterk getypeerd om strings te zijn. Doordat we hier gebruik maken van een hash tabel kunnen we zeer snel de waarden gaan opvragen aan de hand van hun sleutel. Opgelet bij het opgeven van de sleutel. Vanaf.NET framework 1.1 gebruikt het framework de CultureInfo.Invariant klasse voor het vergelijken van strings. Een probleem die dit met zich kan meebrengen is het verliezen van hoofdletters binnen een key. Sinds de komst van generics wordt het gebruik van een Dictionary<string, string> de voorkeur. Deze klasse impelemteert IEnumerable<T>. Deze interface biedt prima ondersteuning voor het gebruik van User Integrated Queries(LINQ). Binnen het vertalingsysteem hebben we hier geen behoefte aan dus blijven we bij de oude StringDictionary. 23

24 Bronnen: OMZETTEN SESSIEVARIABELEN CLASSIC ASP NAAR ASP.NET ALGEMEEN Rond 1998 kwam Microsoft met een script-engine op de markt die in staat was aan de server zijde dynamisch websites te genereren. Rond 2001 werd een nieuwe technologie de wereld ingestuurd die aansloot op het nieuw uitgebrachte.net framework onder de naam ASP.NET. Binnen het stagebedrijf werden dynamische webtoepassingen tot voor kort hoofdzakelijk in ASP geschreven. Pas recentelijk worden nieuwe projecten in ASP.NET ontwikkeld. Stap per stap is het stagebedrijf bezig met het omzetten van de oude applicaties naar het nieuwe framework. Hierbij gaat het vaak over complexe applicaties en gebeurt de omzetting module per module. Tijdens deze periode is het dus noodzakelijk zowel de ASP applicatie als de ASP.NET samen aan te bieden en moeten ze in staat zijn informatie uit te wisselen. Hoewel Microsoft de nodige inspanningen heeft geleverd om beide technologieën vlot naast elkaar te laten bestaan, blijft het uitwisselen van sessie objecten tussen beiden een heikel punt. Beiden gebruiken hier een volledig ander mechanisme. Om dit op te lossen kunnen worden in hoofdzaak twee werkwijzen gehanteerd. In beide methoden komt het erop aan de sessieobjecten weg te schrijven en aan te bieden in een formaat die door beide frameworks ondersteunt wordt. COOKIES EN DATABASE Telkens wanneer de gebruiker een sessie opent, worden alle sessieobjecten opgeslagen in een databank. De gebruiker krijgt een unieke cookie aangereikt waarin de nodige informatie staat om de sessieobjecten in de databank terug te vinden. Wanneer de gebruiker een aanvraag doet bij de webapplicatie, zal deze cookie gebruikt worden om de sessie te identificeren. Nog voor de gevraagde webpagina geladen wordt, worden de sessieobjecten opnieuw geladen uit de databank. Een instantie van een aangepaste sessieklasse staat in voor het uit en inlezen van de sessies. Het gebruik van een HybridDictionary om de sessievariabelen bij te houden in de aangemaakte sessieklasse is aangeraden. Een HybridDictonary werkt namelijk optimaal voor zowel een beperkt aantal sessievariabelen 24

25 als een uitgebreide collectie. Zolang de verzameling klein blijft wordt achterliggend een ListDictionary gebruikt, wanneer de verzameling groter wordt gebeurt een omzetting naar een hashtabel. Hierdoor wordt in alle omstandigheden de meest efficiënte collectie gebruikt. Bron: FORMULIER POST De meest eenvoudige en snelle oplossing maakt gebruik van een verborgen formulier en verborgen velden. Bij deze methode is het gebruik van een databank overbodig. Wanneer de gebruiker van de ene applicatie naar de andere overgaat worden alle sessieobjecten geserialiseerd en ingevuld op de velden van het formulier. Vervolgens wordt het formulier doorgepost naar de doelapplicatie en worden alle velden hier uitgelezen en ingevuld in het sessieobject. Deze methode vergt minder implementatie dan bovenstaande, maar kan enkel worden toegepast wanneer: De sessieobjecten van het primaire type zijn (string, integer, boolean, ) Oplossing:Door een eigen serialisatie-object te voorzien kan het mogelijk worden complexe sessieobjecten om te zetten Het om niet gevoelige informatie gaat (de gegevens worden als plain text verstuurd) Oplossing:De informatie kan eerst worden gecodeerd en aan de andere zijde gedecodeerd wanneer het om gevoelige data gaat. IMPLEMENTATIE Gezien het stagebedrijf ook buiten het stageproject gebruik zal maken van een omzetmechanisme is voor de tweede methode gekozen. Aan de hand hiervan is relatief snel een universele oplossing te bouwen. Er zijn geen extra databank voorzieningen nodig. Om de implementatie aan te tonen wordt de situatie gebruikt waarbij de sessieobjecten moeten doorgegeven worden van een klassieke ASP pagina naar een ASP.NET pagina. Bij een verplaatsing van een ASP.NET naar ASP pagina wordt dezelfde methode toegepast. Er wordt telkens gebruik gemaakt van twee omzetpagina s. De ene in ASP formaat, ASPtoASPNET.asp, en dus in staat de ASP sessieobjecten uit te lezen. De andere in ASP.NET, ASPtoASPNET.aspx. Wanneer de gebruiker een klassieke ASP applicatie verlaat wordt deze doorverwezen naar ASPtoASPNET.asp doorverwezen. Hierbij wordt een querystring meegeven met een verwijzing naar de uiteindelijk doelpagina of applicatie. 25

26 De pagina ASPtoASPNET.asp bevat een formulier die na aanvraag van de pagina ingevuld wordt met alle objecten aanwezig in het sessieobject. Vervolgens wordt dit formulier doorgepost naar de pagina ASPtoASPNET.aspx. Tijdens het inladen van deze pagina wordt het formulier uitgelezen en alle worden alle waarden in bijhorende ASP.NET sessieobjecten geplaatst. Eens deze taak is afgelopen stuurt de pagina de gebruiker door naar de uiteindelijk doelpagina. Wanneer de gebruiker in een later stadium terugkeert naar de klassieke ASP applicatie kan ervoor geopteerd worden het ASP sessieobject geladen te houden in de script engine. Het valt echter aan te raden het sessieobject leeg te maken wanneer de gebruiker de applicatie verlaat en deze indien nodig later terug op te vullen. Hierbij kunnen we de volledige sessie vernietigen of de sessievariabelen legen. Hiervoor zijn zowel binnen ASP als ASP.NET de methodes Session.Abandon() en Session.Clear() voorzien. Als bijlage 1, 2 en 3 bij dit document vindt u de code van deze pagina s terug. PROGRAMMATIE GEBRUIKTE SOFTWARE Naast onder vermelde software werd sporadisch beroep gedaan op de Microsoft SQL Manegement Studio 2008 voor het bewerken van de databank en op Adobe Photoshop CS 3 voor het bewerken van afbeeldingen en iconen. MICROSOFT VISUAL STUDIO

27 Wie.NET zegt, zegt Visual Studio. Tijdens de opleiding aan de hogeschool hebben we behoorlijk wat aandacht aan deze omgeving besteed en het werken hierin voelt dan ook best vertrouwd aan. Het stagebedrijf maakt nog niet zolang gebruik van deze software. Tot enkele maanden terug werden webapplicaties hoofdzakelijk in Classic ASP ontwikkeld. Om dit te realiseren werd beroep gedaan op Adobe producten. Dit gaf mij de kans wat te helpen bij de overstap en enkele basistechnieken aan te leren. Bron: RESHARPER Bron: Tijdens het project heb ik gebruik gemaakt van deze add-in voor Visual Studio. Dit stukje software voorziet enkele extra sneltoetsen en genereert standaard stukken vaak voorkomende code. De tool zorgt ervoor dat je code automatisch geformatteerd wordt volgens zelf opgelegde regels. Wat me persoonlijk het meest aanspreekt in mogelijkheden van deze add-in, staat los van Visual Studio. Resharper is namelijk ook beschikbaar voor heel wat andere IDE s. Hierbij stelt hij je in staat voor alle ondersteunde en op het systeem geïnstalleerde IDE s globale sneltoetsen te definiëren. Mensen die dus in verschillende omgevingen programmeren kunnen hier heel wat frustratie mee wegwerken. EXPRESSION WEB 3 Een WYSIWYG website editor van Microsoft. Voor het ontwikkelen van ASP.NET pagina s werd uitsluitend Visual Studio gebruikt. Wanneer het op classic ASP pagina s aankomt biedt Expression web net dat beetje meer. Intelliscense werkt een stuk scherper als het op klassieke ASP aankomt en de interface leent zich meer tot overzichtelijk in-page coding. Als er aanpassingen aan bestaande ASP pagina s dienden te gebeuren zocht ik dan ook mijn toevlucht bij deze editor. Bron: GEBRUIKTE TECHNOLOGIEËN Naast het door het bedrijf opgelegd gebruik van ASP.NET/C# en de aangereikte databank was ik volledig vrij in het gebruik van extra technologieën of programmabibliotheken. Hierbij kan het gaan om essentiële bouwstenen van de applicatie. Zo staat de flashcomponent FusionChartsFree in voor het genereren van grafieken binnen de applicatie. Bepaalde technologieën worden dan weer gebruikt om de gebruiker een meer dynamische ervaring te kunnen aanbieden binnen de browser. De twee belangrijkste binnen het stageproject waren de implementatie van voorgeprogrammeerde ASP.NET AJAX controls en het gebruik van FusionCharts Free. ASP.NET AJAX AJAX is eigenlijk een bundel van ontwikkelingstechnieken met als doel asynchrone gegevens op te vragen bij de webserver. Hierbij worden technologieën als Javascript en xml, in hoofdzaak het XMLhttpRequest om via de 27

28 client data uit te wisselen tussen client en server, gebruikt. Concreet laat dit je toe van enkel het stuk van je webpagina te vernieuwen die verandering ondergaat. Binnen het ASP.NET framework zijn slechts een beperkt aantal AJAX controls voorzien. Deze controls bevinden zich binnen de System.Web.UI namespace. Daarnaast biedt microsoft via de ASP.NET website een AJAX control toolkit aan. Deze toolkit bevat talrijke AJAX controls die perfect geïntegreerd kunnen worden in het ASP.NET framework en gebruikt kunnen worden binnen Visual Studio. De AJAX controls die aanbod kwamen tijdens de stageperiode worden hieronder toegelicht. Bron: SYSTEM.WEB.UI SCRIPTMANAGER ALGEMEEN De scriptmanager control staat in voor een central beheer van alle AJAX bronnen binnen een pagina. De scriptmanager gaat enkele essentiële taken uitvoeren voor het correct gebruik van de AJAX componenten binnen de pagina. Het gaat hierbij om: Een script registreren die compatibel is met het gedeeltelijk vernieuwen van een pagina. Hierbij wordt eerst het Microsoft AJAX library script geladen en wordt daarna rekening gehouden met afhankelijkheden van het zelfgeschreven script en de core library. Er wordt duidelijk gemaakt aan de browser of het om release of debug scripts gaat. Er wordt toegang voorzien tot de Web service methodes vanuit het script door deze Web services te registreren bij de ScriptManager. ASP.NET authenticatie is toegankelijk, deze wordt namelijk ook geregistreerd in de ScriptManager Het registreren van servercontrols die de interfaces IExtenderControl en IScriptControl implementeren bij de ScriptManager om client componenten te voorzien van het correcte script voor hun gedrag. Via de properties van het ScriptManager object kunnen globale instellingen voor deze taken worden vastgelegd. De ScriptManager biedt ondersteuning aan de AJAX controls standaard voorzien in de System.Web.UI namespace. Dit zijn de Timer, UpdatePanel en UpdateProgress controls. De AJAX controls aangeleverd zijn volledig afhankelijk van een ScriptManager control en zullen een kretieke fout opwerpen wanneer er geen ScriptManager teruggevonden wordt. Bron: IMPLEMENTATIE De implementatie van de ScriptManager binnen een ASP.NET pagina moet gebeuren voor de controls afhankelijk van de ScriptManager worden geladen. Zorg er dus voor dat dit zo vroeg mogelijk op de pagina gebeurt. Er mag ook maximum 1 ScriptManager aanwezig zijn dus het kan aangeraden zijn deze reeds in de MasterPage aan te maken wanneer het gebruik van AJAX zich over meerdere pagina s spreid. De syntax ziet er als volgt uit: 28

29 <asp:scriptmanager runat= server ID= ScriptManagerVoorbeeld > <AuthenticationService Path="uri"/> //Bevat de locatie van de Authenticatie Service. <ProfileService LoadProperties="string" Path="uri"/> //Hier kan zowel de locatie als de LoadPropertie van de //ProfileService worden opgegeven. <RoleService LoadRoles="True False" Path="uri"/> //Aangeven of de gebruikersrollen geregistreerd bij de RoleService //moeten geladen worden en op welke locatie die service zich //bevindt. <Scripts> //Hier kunnen constum scripts worden geregistreerd aan de //hand van ScriptReference tags. </Scripts> <Services> //Hier worden Services geregistreerd aan de hand van //ServiceReference tags. </Services> </asp:scriptmanager> UPDATEPANEL ALGEMEEN Het UpdatePanel is misschien wel de meest essentiële aangereikte AJAX control. Dankzij een UpdatePanel is het niet langer nodig altijd synchrone postbacks uit te voeren maar kunnen we enkel het deel van de pagina die moet vernieuwd worden asynchroon renderen. Door dit in stukken renderen van de webpagina kunnen we de gebruiker een veel vloeiendere interface voorschotelen. Het UpdatePanel difinieert een Panel waarbinnen we zo n partiële pagina opbouw kunnen forceren. Een updatepanel kan de opdracht gegeven worden altijd te worden ververst wanneer zich van binnen de control een postback opdringt. Het is ook mogelijk condities op te geven aan de hand waarvan het panel moet vernieuwd worden, zo kunnen we een vernieuwing afdwingen vanuit een andere control of deel van de webpagina buiten het panel. UpdatePanels kunnen zonder noemenswaardige problemen genesteld worden en er kunnen er zoveel geïntegreerd worden op een pagina als gewenst. Bron: IMPLEMENTATIE <asp:updatepanel runat= server ID= UpdatePanelVoorbeeld > UpdateMode="Always Conditional" //Deze eigenschap bepaald of de update conditioneel gebeurt aan de //hand van triggers of altijd moet plaatsvinden bij een postback //vanuit het panel. 29

30 <ContentTemplate> //Hier komen alle controls die zich in het panel moeten bevinden. </ContentTemplate> <Triggers> //Zowel PostBackTriggers als AsyncPostBackTriggers kunnen hier //worden toegevoegd. </Triggers> </asp:updatepanel> UPDATEPROGRESS ALGEMEEN Bij het gebruik van een UpdatePanel kunnen we de UpdateProgress control gebruiken om de status van de partiële pagina rendering aan de gebruiker weer te geven. We kunnen zo de gebruiker waarschuwen dat de pagina of een onderdeel bezig is met een bewerking. Tijdens de paritiële pagina rendering wordt de inhoud van de ProgressTemplate aan de gebruiker weergegeven. Dit kan gaan van een tekst met het verzoek even geduld uit te oefenen als een volledig dynamische statusbalk die ons verteld hoever de verwerking staat. De UpdateProgress instantie kan zich zowel binnen het UpdatePanel als erbuiten bevinden en wordt hieraan vast gekoppeld via een associatie met het ID van de UpdatePanel. Bron: IMPLEMENTATIE <asp:updateprogress runat= server ID= UpdateProgressVoorbeeld AssociatedUpdatePanelID="UpdatePanelID" //Hier komt het ID van te associëren UpdatePanel > <ProgressTemplate> //Hier komen alle controls die moeten weergegeven worden wanneer de //partiële pagina rendering van de geassocieerde UpdatePanel in //proces is. </ProgressTemplate> </asp:updateprogress> AJAX TOOLKIT TOOLKIT SCRIPTMANAGER De ToolkitScriptMananger breid de bestaande ScriptMananger uit met ondersteuning voor alle controls binnen het ASP.NET AJAX Toolkit. Doordat deze controls niet gekend zijn in de standaard ScriptManager wordt vanaf de implementatie van een van de controls van het toolkit het gebruik van de toolkitscriptmanager aangeraden. De ToolkitScriptManager biedt ondersteuning voor de reeds aanwezige AJAX controls in het ASP.NET framework. Het gebruik en de implentatie verlopen op dezelfde wijze als bij de klassieke ScriptManager. 30

31 CALENDAREXTENDER ALGEMEEN Bij de standaard ASP.NET controls is een kalander control voorzien. In tegenstelling tot de.net kalander control voor desktop applicaties kan deze niet open of dichtklappen. Om overzicht binnen formulieren te bewaren en plaats uit te sparen kan dit handig zijn. De CalandarExtender van het AJAX control Toolkit laat ons toe aan een TextBox aan de client zijde te voorzien van een kalender voor het ingeven van datums. Het is mogelijk deze popup te laten verschijnen wanneer de gebruiker de cursor in het tekstvak plaatst of de popup te laten verschijnen bij het aanklikken van een geassocieerde control. De kalander kan de cultuur gebonden instellingen van de browser gebruiken om de gebruiker een gekende kalender voor te schotelen. De CalendarExtender laat de gebruiker nog steeds toe handmatig een waarde in de TextBox control in te vullen. IMPLEMENTATIE <ajaxtoolkit:calendar runat="server" ID= CalendarVoorbeeld TargetControlID="TargetTextBox" //Verwijzing naar de ID van de TextBox Control waarbij de kalender //hoort. CssClass="ClassName" //Verwijzing naar de CSS klasse die instaat voor de layout van de //kalender. Als dit leeg gelaten wordt zal de standaard layout //toegepast worden. /> PopupButtonID="GeassocieerdeControlID" /> //Bij de PupopButtonID kunnen we de ID registreren van de control //waarbij bij het aanklikken de kalender tevoorschijn moet komen. MODALPOPUPEXTENDER ALGEMEEN Deze extender laat ons toe van een control een ModalPopup te maken. Voor de gebruiker lijkt het alsof de control een vester op zich is die hij binnen de webpagina kan openen, sluiten, eventueel verplaatsen of de grootte aanpassen. ModalPopups zijn ideaal voor het aanbieden van dialoogvensters aan de gebruiker waarbij de rest van de webpagina wordt afgeschermd. Het grote voordeel is dat de gebruiker fysiek binnen eenzelfde pagina en venster krijgt maar toch de gebruikerservaring krijgt van een extra venster of pagina. Door middel van CSS kunnen stijlen worden gedifinieerd waarmee de rest van de pagina kan worden afgeschermd en de indruk worden gegeven dat het om een echt dialoogvenster gaat. Hoewel we eender welke control als ModalPopup kunnen registreren valt het aan te raden hiervoor een Panel control te gebruiken en vervolgens de gewenste controls in het Panel te nestelen. 31

32 De ModalPopupExtender laat toe client side scripts te registreren voor het OnOK en OnCancel event en het associeren van controls met deze events zodat de gebruiker de Popup kan bevestigen of annuleren via de client zijde. IMPLEMENTATIE Tijdens de implementatie van de ModalPopupExtender kan het gebeuren dat de control die als Popup moet fungeren bij het inladen van de pagina kort zichbaar is. Om dit te verhinderen kan deze control worden voorzien van de style display: none. De ModalPopup zal nu ook bij het inladen van de pagina onzichtbaar blijven. Bij de activering zal deze display stijl overschreven worden. ASP.NET <ajaxtoolkit:modalpopupextender runat="server" ID="ModalPopupVoorbeeld" /> CSS TargetControlID="ButtonID" //Hier wordt de ID opgegeven van de control die voor het activeren //van de popup zal instaan. PopupControlID="PanelID" //De control die gebruikt wordt als ModalPopup zal hier //geregistreerd worden aan de hand van zijn ID BackgroundCssClass="modalBackground" //De CSS klasse die gebruikt wordt om achtergrond van de modalpopup //weer te geven. DropShadow="true" //Via een Boolean waarde kan hier bepaald worden of de popup een //DropShadow moet krijgen. OkControlID="OkButton" //De ID van de control die aan de clientzijde zal instaan voor het //bevestigen van de Popup. OnOkScript="onOk()" //Hier kan een script worden opgegeven die bij bevestiging aan de //client zijde moet worden uitgevoerd. CancelControlID="CancelButton" //De ID van de control die aan de cliëntzijde zal instaan voor het //annuleren. OnCancelScript= OnCancel() //Hier kan een script worden opgegeven die bij annulatie aan de //client zijde moet worden uitgevoerd. PopupDragHandleControlID="Panel3" //Indien we de gebruiker willen toestaan de popup binnen de pagina //te verplaatsen kunnen we hier een control ID specifieren waarmee //de popup verplaats kan worden. 32

33 Volgende stuk code wordt in de globale StyleSheet toegevoegd om ervoor te zorgen dat de popup eruit ziet als een echt dialoogvenster. De reden waarom de opacity op 3 verschillende wijzen moet worden vastgelegd komt doordat deze in iedere browser doormiddel van een andere syntax moet worden aangegeven..modalbackground background-color:#000; opacity: 0.50; -moz-opacity:0.50; filter: alpha(opacity=50); TABCONTAINER ALGEMEEN De TabContainer is een ASP.NET AJAX control die een collectie van tabbladen aanbied om de inhoud van een webpagina te structuren. De TabContainer bevat TabPanels die op hun beurt voorzien zijn van een HeaderTemplate en ContentTemplate. Hieraan kunnen we controls toevoegen om zo de inhoud van de hoofding en de pagina van een tabblad te bepalen. Bij een postback blijft de meest recent geslecteerde tab geregistreerd. De panels zijn in staat individueel te renderen doordat aan de basis een UpdatePanel ligt. Er is de mogelijkheid tabbladen af te schermen van gebruikers en ze dynamisch terug beschikbaar te stellen. IMPLEMENTATIE <ajaxtoolkit:tabcontainer runat="server" ID= TabContainerVoorbeeld > <ajaxtoolkit:tabpanel runat="server" ID= TabPanelVoorbeeld > //Per tabpanel word teen HeaderTemplate en ContentTemplate //opgegeven. <HeaderTemplate> //Hier komen alle controls die moeten weergegeven worden in de //header van het huidige TabPanel. </HeaderTemplate> <ContentTemplate> //Alle controls die zich binnen de tab moeten bevinden worden hier //opgegeven. /> </ContentTemplate> </ajaxtoolkit:tabcontainer> 33

34 FUSIONCHARTS FREE FusionCharts Free is een component die de gebruiker dynamisch gegenereerde Flash grafieken aanbied. De component kan gebruikt worden in zowel webtoepassingen als dekstop applicaties en presentaties. FusionCharts Free is de gratis community editie van het betalende en sterk uitgebreide FusionCharts 3. Laat u niet afschrikken door het feit dat een community versie gebruikt werd. De community versie biedt een meer dan degelijke ondersteuning voor volgende grafieken: 2D en 3D staafgrafieken Lijngrafieken 2D en 3D taart- en cirkel grafieken Vlakgrafieken De implementatie van de component in een ASP.NET pagina gebeurt als volgt. Het pakket omvat een klassenbibliotheek voor ASP.NET, een bestand met de nodige JavaScript functies en een map met SWF bestanden die de daadwerkelijke Flash grafieken generen. Aan de hand van de klassenbibliotheek kunnen we een instantie van een FusionChartUtil klasse aanmaken. Deze zal instaan voor het laden voor de registratie van de correcte JavaScript functies alsook het voorzien van het SWF bestand met de correcte data voor de te generen grafiek. De JavaScript functies laten de gebruiker toe door te klikken op de grafieken op zo op een volgende pagina te komen. Zo kan een systeem van pivoteren doorheen grafieken worden opgebouwd. Dit gebeurt wanneer de gebruiker op een stuk van een grafiek klikt, en op basis van die waarde een andere grafiek voorgeschoteld krijgt. Dergelijke systemen zijn aan een grote opmars bezig en tonen een groot potentieel binnen de markt van de data analyse. Wanneer het mogelijk is doorheen alle data van een applicatie te pivoteren kan de gebruiker deze techniek gebruiken om specifieke records grafisch terug te vinden of om nieuwe inzichten in de trends binnen de gegevens te verwerven. 34

35 De data wordt de SWF bestanden aangereikt doormiddel van het XML formaat. Hoewel XML een prima universeel formaat is hiervoor was het binnen het prototype wenselijke een systeem te voorzien om ObjectDataSources rechtstreeks aan een FusionChart te koppelen. Gezien alle gegevensoverdracht binnen het project via de databank en ObjectDataSources plaatsvindt. Er werd een klasse aangemaakt, FCGenerator, die op basis van een ObjectDataSource en de te gebruiken waarden binnen dit object een FusionChart inlaad in de gewenste pagina. Hierbij wordt ervoor gezorgd dat de bijhoorende FusionChartUtil instantie wordt aangemaakt en dus de noodzakelijke JavaScript functies worden geregistreerd. Bron: 3.2 MINI-PROJECT: SQL REPORTER SITUERING Bijna binnen alle webapplicaties ontwikkeld door het stagebedrijf zijn exportmogelijkheden en door de gebruiker aan te passen rapportering noodzakelijk. Het is dus wenselijk een applicatie te voorzien die het mogelijk maakt eender welke Microsoft SQL databank aan te spreken, hiervan de resultaten weer te geven in een lijst en deze aan de gebruiker door te geven. Vervolgens is de gebruiker in staat zelf deze lijst naar zijn noden aan te passen en hem vervolgens te exporteren naar het formaat van keuze. Als we de applicatie volledig zelfstandig opbouwen en het mogelijk maken hem vanuit alle andere webapplicaties aan te spreken dienen deze mogelijkheden niet telkens opnieuw geïmplementeerd te worden. Gebruikers die meerdere applicaties gebruiken zullen zo ook telkens dezelfde, familiare werkwijze kunnen toepassen. 35

36 Mij werd gevraagd de aanzet te geven tot zo n applicatie om deze zowel binnen het prototype als binnen bestaande webapplicaties te kunnen gebruiken. In de codering en implementatie hiervan werd mij een grote vrijheid gegeven. ANALYSE FUNCTIONELE EISEN De gebruiker kan een connectiestring en selectstatement opgeven aan de hand van: o Het sessie object, o Het posten van een formulier, o Het doorgeven van querystrings. De gebruiker krijgt een lijst met de resultaten van de query. De gebruiker kan de resultaten filteren. De gebruiker kan de resultaten sorteren. De gebruiker kan bij de lijst met resultaten de kolomvolgorde wijzigen. De gebruiker kan kolommen uit de lijst verwijderen. De gebruiker kan de lijst groeperen. De gebruiker kan het bewerkte resultaat exporteren o Als Excel bestand, o Als PDF bestand. NIET-FUNCTIONELE EISEN Volledig autonome applicatie. De programmatie gebeurt in het ASP.NET/C# framework. ONTWERP WERKEN ZONDER VASTE DATABASE Als we de applicatie in staat willen stellen eender welke Microsoft SQL databank te bevragen, wil dit zeggen dat we vooraf niet weten met welke gegevens we zullen werken. Alle controls en objecten voor het weergeven en aanpassen van deze resultaten moeten dus at-runtime worden aangemaakt. Om dit te bewerkstellen laten we een controller object de webpagina(view) beheren. Bij het laden van de applicatie zal deze de gebruiker om een connectie-string en een select-statement vragen en dit doorgeven aan het controller object. De controller zal op zijn beurt een overzicht opstellen aan de hand van de aangereikte gegevens en dit correct afbeelden op de pagina. De connectiestring zal alle nodige informatie bevatten voor het leggen van een verbinding met de databank en de initiele catalogus. Het gebruik van de geïntegreerde Microsoft SQL server beveiliging en authenticatie is hierbij aangeraden. Wanneer gebruiker en wachtwoord via de connectiestring worden doorgegeven kan de applicatie onmogelijk garanderen dat deze niet plain text over het netwerk worden vestuurd en dus voor iedereen beschikbaar zijn. Via de geïntegreerde beveiliging moeten we er enkel voor zorgen dat de SQLreporter voldoende rechten heeft om de databank te bevragen. 36

37 Als select statement kan iedere geldige Microsoft SQL select query opgegeven worden. Er kan gebruik worden gemaakt van variabelen binnen deze sql statements. De aangepaste syntax hiervoor zijn de tekens <%% als prefix en de tekens %%> als suffix bij de gewenste naam van de variabele. De applicatie geeft de gebruiker dan net voor het uitvoeren van de opgraving de kans de verschillende variabelen van een waarde te voorzien via een invulformulier. Zo moet binnen de applicatie waaruit de reporter wordt aangesproken geen rekening gehouden worden met het invullen van deze variabelen. De controllerklasse die instaat voor de generatie van het overzicht en de klasse die instaat voor het genereren van het invulformulier wanneer er zich variabelen in het select statement bevinden zijn terug te vinden in bijlage 5. GEBRUIKSSCENARIOS Het aanreiken van de connectie string en het select statement moet op verschillende werkwijzen mogelijk zijn. FORMULIER BINNEN DE APPLICATIE Om de applicatie zelfstandig te gebruiken is een eenvoudig formulier beschikbaar waar de gebruiker een connectie en een query kan opgeven. Deze methode is hoofdzakelijk bedoeld voor het vlug uittesten van opgravingen of het controleren van een connectie string. Het zal dan ook hoofdzakelijk het ontwikkelingsteam en niet de eindgebruiker die deze weg zal gebruiken. FORMULIER BUITEN DE APPLICATIE 37

38 Het is eveneens mogelijk een bestaand formulier door te zenden naar de applicatie. Dit formulier moet een connectiestring en select query bevatten. De corresponderende ID s van de velden op het formulier waarin de connectiestring en het select statement terug te vinden zijn worden doorgegeven via twee respectievelijke querystrings. SESSIEVARIABELEN Wanneer de applicatie binnen dezelfde sessie wordt aangeroepen waarin de applicatie werkt die verwijst naar de SQL reporter is het mogelijk de connectie string het select statement door te geven via het sessieobject en de bijhorende sessievariabelen. Een strikte naamgeving moet hier worden gerespecteerd. QUERYSTRING Ook via het opgeven van de connectie string en het select statement via bijpassende querystrings moet de applicatie in staat zijn een resultaat terug te bezorgen. Hoewel de laatste methode een zeer snelle en vanuit om het eender welke situatie een uitweg biedt. Is het niet altijd wenselijk de verbinding- en databankinformatie via de URL beschikbaar te stellen. PROGRAMMATIE SOFTWARE Er werd uitsluitend gebruik gemaakt van Visual Studio 2008 voor de ontwikkeling van deze applicatie. TECHNOLOGIEËN Naast de technologieën die reeds toegepast worden in het hoofdproject word hier ook gebruik gemaakt van de de suite Developer Express v2009 volume 3. Deze suite bevat ASP.NET controls die uitbreidingen bieden op de standaard aangeboden ASP.NET controls. Ref. ASPXGRIDVIEW ALGEMEEN Het aspxgridview is een ASP.NET control ontwikkeld door softwarehuis DevExpress. Deze control biedt naast dezelfde mogelijkheden als de standaard ASP.NET GridView control heel wat extra functies. Naast het aanbieden van extra functionaliteit is deze ook een stuk sneller dan deze in het.net framework aangeboden. Zowel het initieel inladen van gegevens als het doorbladeren van gegevens gaat sneller dan met welke andere gratis of commerciële GridView control. Onder de extra mogelijkheden vallen onder andere het grouperen van data, het werken met geavanceerde filters, dynamische grid bewerkings mogelijkheden en een uitgebreide master-detail ondersteuning. 38

39 IMPLEMENTATIE Bij de implementatie koppelen we het aspxgridview aan een ObjectDataSource. Dit gebeurt op identieke wijze als bij een klassiek GridView. 4. OVERZICHT WEBAPPLICATIE 4.1 GEBRUIKERS EN POLISSEN Het volledig gebruikersbeheer van de webapplicatie verloopt via de bestaande gebruikersmodule uit Mobility. Wanneer de gebruiker binnen Mobility verschillende polissen beheert, krijgt hij een selectiescherm. Wanneer de gebruiker geen polissen binnen Mobility bezit wordt deze automatisch naar het overzicht van zijn vloot doorgestuurd. 4.2 VOERTUIGEN Na de authenticatie van de gebruiker krijgt hij een overzicht van het volledige wagenpark te zien. Deze pagina fungeert als hoofdpagina van de applicatie. Dit overzicht is een lijst met alle belangrijkste identificatiegegevens van ieder voertuig(plaatnummer, chassisnummer, vlootnummer, type). FILTEREN EN SORTEREN Het overzicht kan gefilterd worden aan de hand van een trefwoord of een stuk van een woord. Hiervoor is rechtsboven het overzicht een tekstveld voorzien. Een duidelijk flikkerend icoon verschijnt wanneer een filter 39

40 actief is. Het is zo dat de applicatie de data initieel zal laden en hierop zal verder filteren. Er is dus geen extra verkeer naar de database telkens de gebruiker een andere filter opgeeft. Het sorteren gebeurt klassiek door een klik op de kolomkop. Een pijl heeft de huidige sortering aan. NIEUWE VOERTUIGEN TOEVOEGEN Een nieuw voertuig aan een vloot toevoegen kan via de knop linksboven het overzicht. De gebruiker krijgt een venster te zien waarmee via een formulier een nieuw vertuig geregistreerd kan worden. Zolang het voertuig niet is aangemaakt, krijgt de gebruiker enkel de mogelijkheid algemene info over het voertuig op te geven. Eens deze zijn opgegeven komen de extra tabbladen beschikbaar en kan de gebruiker additionele informatie opgeven. Op deze maken we het in eerste instantie de gebruiker makkelijker. De informatie over het voertuig wordt dankzij de tabbladen visueel opgesplitst in categorieën. We schotelen de gebruiker ook enkel de tabbladen voor die hij op dat moment nodig heeft. Hoe minder info, hoe makkelijker de juiste terug te vinden. Op de tweede plaats zorgt dit ervoor dat we de gebruiker al kunnen controleren op eventuele duplicaten voor dat we het voertuig effectief toevoegen. We verplichten de gebruiker alle informatie die het voertuig uniek maakt bij de start op te geven. Zo kunnen we deze meteen staven aan deze in de voertuigen reeds in de databank. 40

41 VOERTUIGEN AANPASSEN Het aanpassen van een voertuig gebeurt rechtstreeks in het overzicht. Wanneer de gebruiker op de knop aanpassen hoort. van het gewenste voertuig klikt. De gebruiker krijgt toegang tot alle data die bij het voertuig Hierbij komen dezelfde tabbladen tevoorschijn als bij het aanmaken van een nieuw voertuig. Deze tabbladen kunnen we opsplitsen in 2 categorieën. Aan de ene zijde hebben we de door de ontwikkelaar gedefinieerde tabbladen. Deze kunnen formulieren, overzichten of grafieken bevatten. Daarnaast ondersteunt het prototype ook de door de gebruiker gedefinieerde kostcategorieën. 41

42 ALGEMEEN EN TECHNISCHE KENMERKEN Deze tabbladen bevatten formulieren voor het bewerken van de basisinfo van een vertuig. Hierbij is zoveel mogelijk geprobeerd de verschillende types aan bod te brengen (tekst, numerieke waarden, data en tijd, lijsten en tekstblokken). Doordat het om een prototype gaat is de manier waarop het formulier wordt opgebouwd en de ondersteuning voor de verschillende ingave types belangrijker dan de effectieve inhoud van de formulieren. KOSTCATEGORIEËN Naast de voorgeprogrammeerde tabbladen vinden we per kostencategorie ook een apart tabblad terug. Nieuw gemaakte kosten kunnen aan een voertuig worden gekoppeld via het tabblad met de bijpassende categorie. Op dit tabblad krijgt de gebruiker een overzicht van de reeds geboekte kosten en kan hij deze beheren of nieuwe toevoegen. Een kost registreren kan enkel als de beheerder reeds kostcategorieën en kosten in het systeem voorzien heeft. Bij het registreren van een kost wordt een standaardprijs aangereikt, de gebruiker kan deze indien gewenst aanpassen. Hij kan een datum en opmerking aan de kost koppelen. KOSTOVERZICHT Het tabblad kostoverzicht geeft de gebruiker een grafisch overzicht van alle kosten gekoppeld aan een voertuig. Bij dit overzicht kan een start en einddatum worden opgegeven. Zo wordt enkel rekening gehouden met de kosten die binnen deze periode vallen. Initieel krijgt de gebruiker een overzicht van alle categorieën. Hierop kan worden doorgeklikt om een overzicht van alle kosten binnen de categorie op te vragen. 42

43 VOERTUIGEN VERWIJDEREN Naast de knop voor het aanpassen van een voertuig vinden we die voor het verwijderen. De gebruiker wordt nog om een bevestiging gevraagd alvorens het de applicatie het voertuig gaat verwijderen. Om ervoor te zorgen dat voertuigen die zowel binnen het prototype als binnen Mobility geregistreerd staan hierdoor geen problemen veroorzaken wordt het voertuig niet echt verwijderd uit de databank. Enkel de status van het voertuig wordt binnen het prototype op niet actief gezet. Voor de gebruiker van het prototype lijkt het weliswaar alsof het voertuig verwijderd is. 4.3 BESTUURDERS De gebruiker kan de bestuurders binnen zijn bedrijf beheren door te kiezen voor de knop bestuurders in het hoofdmenu. De opbouw van deze pagina lijkt sterk op die voor de voortuigen. Opnieuw gaat het hier over een overzichtslijst, dit keer met alle belangrijkste info over alle bestuurders. Het filteren en sorteren gebeurt op dezelfde wijze als bij de voertuigen. BESTUURDERS TOEVOEGEN Een nieuwe bestuurder registreren kan via het formulier Nieuwe gebruiker. Dit formulier wordt de gebruiker aangeboden via de knop Nieuwe bestuurder toevoegen linksboven het overzicht. Net als bij het registreren van nieuwe voertuigen is enkel de hoofdtab beschikbaar zolang de bestuurder nog niet aan de databank is toegevoegd. Eens geregistreerd komen de additionele tabbladen beschikbaar. 43

44 BESTUURDERS AANPASSEN Om de gegevens van reeds geregistreerde bestuurders aan te passen, gebruiken we de knop aanpassen van het respectievelijke record in de overzichtslijst met alle bestuurders. De gebruiker krijgt een overzicht te zijn waarbij de verschillende gegevens in categorieën worden opgesplitst aan de hand van tabbladen. Via deze tabbladen krijgt de gebruiker toegang tot de formulier die het wijzigen van de gegevens over de bestuurder voorzien en kunnen documenten en ritten aan een bestuurder worden gekoppeld. De gebruiker kan de wijzigen te allen tijde opslaan of annuleren. BESTUURDERS VERWIJDEREN Een bestuurder verwijderen kan via het vuilnisbak -icoon in de overzichtslijst. De gebruiker zal een dialoogvenster te zijn krijgen waarbij er wordt gewaarschuwd voor de gevolgen van het verwijderen van een bestuurder. De gebruiker kan hierbij bevestigen om de gegevens daadwerkelijk te verwijderen of het proces te annuleren. Net zoals bij de voertuigen gaat het hier niet om het fysiek verwijderen van de gegevens uit de databank maar enkel om het niet actief zetten van de status van deze records. DOCUMENTEN KOPPELEN 44

45 Aan een bestuurder kunnen documenten worden gekoppeld via het tabblad Documenten. Bij de selectie van deze categorie krijgt de gebruiker een overzicht van de reeds aanwezige documenten. Vanuit dit overzicht kunnen documenten opnieuw worden verwijderd of worden geraadpleegd. Bij het toevoegen van nieuwe documenten word een kopie genomen van het lokale bestand op de webserver. In de databank wordt een verwijzing naar dit bestand bijgehouden. Bij het verwijderen van een document wordt zowel het fysieke document als de verwijzing uit de databank verwijderd. Via de toegangsrechten op de webserver worden de fysieke bestanden afgeschermd. Zo krijgt enkel de webapplicatie toegang tot de bestanden. Deze zal op zijn beurt controleren of de gebruiker gemachtigd is dit document te benaderen. RITTEN REGISTEREN Naast documenten kunnen ook ritten bij een bestuurder worden geregistreerd. Een rit bevat een startlocatie en starttijd en wordt voorzien van een bestemming en aankomsttijd. Aan een rit wordt naast een bestuurder ook een voertuig gekoppeld. Nieuwe ritten koppelen kan via het dialoogvenster Nieuwe rit toevoegen. Achteraf een rit aanpassen of verwijderen kan opnieuw vanuit de overzichtslijst. Bij het verwijderen van een rit wordt deze op niet actief gezet en niet fysiek uit de databank verwijderd. Voor de koppeling met een voertuig krijgt kan de gebruiker rechtstreeks een plaatnummer ingeven of een voertuig opgeven aan de hand van een lijst. De zoekfunctionaliteit van de browser kan het opzoeken hierin versnellen. 45

46 Indien de adres bij de start en eindbestemming correct zijn ingegeven kan de gebruiker een visueel overzicht overzicht van de rit opvragen. Dit overzicht wordt de gebruiker aangeboden via Google Maps. Google Maps krijgt hierbij de gegevens via QueryStrings. Bron: 4.4 KOSTENBEHEER Via de pagina Kostenbeheer is het mogelijk zelf kostcategorieën en kosten te definiëren. De toegang van deze pagina kan indien gewenst gelimiteerd worden tot gebruikers die beheersrechten hebben. De pagina bevat een overzicht van alle reeds gedefinieerde kosten. NIEUWE CATEGORIEËN EN KOSTEN DEFINIËREN Tijdens het creëren van een nieuwe categorie krijgt de gebruiker meteen de kans een vertaling op te geven voor aangemaakte talen. Eens er minstens 1 categorie aangemaakt is kan de gebruiker hieraan kosten beginnen toevoegen. Opnieuw kan dit in meerdere talen. Hierbij kan een standaardprijs worden opgegeven en een omschrijving wat de kost inhoud. Opnieuw kunnen hier meteen alle vertalingen worden opgegeven. Daarnaast kan de gebruiker via het kostenbeheer reeds bestaande kosten en categorieën aanpassen en de tabvolgorde wijzigen. Zoals eerder aangegeven zal iedere categorie bij het bewerken van een voertuig worden weergegeven op een apart tabblad, de volgorde waarin deze tabbladen verschijnen is deze tabvolgorde. Zo kan de gebruiker volledig een eigen structuur opbouwen. HET VERWIJDEREN VAN KOSTEN OF CATEGORIEËN Enkel lege categorieën kunnen door de gebruiker worden verwijderd. Kosten kunnen altijd worden verwijderd. Daarbij wordt opnieuw het principe toepast van een kost op niet actief te zetten in plaats van hem uit de database te verwijderen. Dit keer niet om een goede samenwerking met Mobility te garanderen maar de reeds geboekte kosten aan een voertuig gekoppeld te houden. 46

47 4.5 SQL REPORTER Via de SQL reporter module krijgt de gebruiker de mogelijkheid lijsten of overzichten van alle gegevens binnen de webapplicatie op te vragen. Vervolgens kan hij deze gaan filteren of groeperen en exporteren naar Excel of pdf formaat. De grote flexibiliteit en eenvoud van de SQL reporter module laat de gebruiker toe volledig zelf de lijsten aan te passen waardoor tussenkomst van technici niet langer nodig is bij het exporteren van de gegevens. De SQL reporter is binnen het prototype bereikbaar via het navigatiemenu onder de naam Rapportering en export. SORTEREN EN FILTEREN Het sorteren van de gegevens gebeurt klassiek via een klik op de kolomtitel. Een pijl zal de huidige sorteervolgorde weergeven. Filteren kan va de filter rij die zich net onder de kolomtitels bevind. Hierbij is het mogelijk de soort filter te kiezen uit een lijst, zo hoeft de gebruiker geen speciale tekens of complexe formules in te geven om meer geavanceerde filters op te bouwen. KOLOMMEN WIJZIGEN Via de knop aanpassen opent zich een paneel waar de gebruiker kolommen heen kan slepen die hij niet langer in de tabel wil opnemen. De gebruiker kan nog steeds sorteren of filteren op deze kolommen maar ze zullen niet langer op het scherm of tijdens het exporteren aanwezig zijn. De gebruiker kan te allen tijde de kolom opnieuw toevoegen door deze opnieuw op de tabel te slepen. 47

48 De volgorde van de kolommen kan eveneens aangepast worden. Hierbij is het voldoende de kolomkop naar de gewenste locatie te verslepen. Het overzicht zal zich vervolgens aanpassen. GROEPEREN Door een kolomkop naar het groeppaneel bovenaan de pagina te slepen zal in de lijst een groepsbreking plaatsvinden volgens de aangegeven waarde. De gebruiker kan dit tot op verschillende niveaus doorvoeren om zo een eigen overzicht te creëren. Wanneer het over gegevens gaat die bedragen voorstellen kan hiervan een subtotaal weergegeven worden per groep. Alle groepen en subtotalen worden tijdens het exporteren bewaard waardoor het snel generen van rapporten of af te drukken lijst verwezenlijkt kan worden. 48

49 EXPORTEREN Via de twee knoppen naast het label Export kan de huidige lijst, inclusief groepering, filter en sortering, geëxporteerd worden. Hier bestaat de keuze tussen een pdf bestand, voor rechtstreekse afdruk of de export naar een Excel bestand om eventuele verdere berekeningen op de data door te voeren. De bestanden worden rechtstreeks naar de client weggeschreven, wat ervoor zorgt dat de lijsten nooit fysiek op de server aanwezig zijn. Zo blijft de veiligheid verzekerd. Voorbeeld export naar Excel en PDF bestand 49

50 5. KRITISCHE REFLECTIE Ik heb me tijdens de gehele opleiding altijd meer thuis gevoeld wanneer het ging om het ontwikkelen van een desktop applicatie ten opzichte van een webtoepassing. Een stage leek me dan ook de ideale manier om mezelf te verplichten ook in deze tak van de informatica goed te presteren. Bij de keuze van stageplaats ging mijn voorkeur dan ook uit naar bedrijven die zich hierop toespitsen. Tijdens de eerste kennismaking met de uiteindelijk aangewezen stageplaats kreeg ik dan ook goed nieuws, de stageopdracht wordt een webapplicatie. Bij de start van het stageproject was de omschrijving van de opdracht zeer ruim en het echte doel behoorlijk onduidelijk. De eerste ontwikkelingsmomenten verliepen dan ook eerder moeizaam. Dankzij goede tips van het aanwezige ontwikkelingsteam en in het bijzonder mijn stagementor kwam ik tot een duidelijker uitgestippeld project en was de eerste stap in de ontwikkeling van het prototype een feit. De volgende stap was het opzetten van een framework waarbinnen de applicatie kon worden opgebouwd. Tijdens de opleiding wordt ons vooral aangeleerd horizontaal te ontwikkelen en laag per laag af te handelen. Deze werkwijze is prima voor afgelijnde projecten. Dit toepassen bij de ontwikkeling van een prototype is nefast voor een goede progressie. Bij een prototype is het onduidelijk hoe ver een laag zich uitstrekt. Het is hier heel gevaarlijk de laag zo sterk uit te breiden dat een implementatie van de laag binnen de opgegeven termijn onmogelijk wordt. Na een tweetal ontwikkelingsweken werd me dan ook duidelijk dat het stukken productiever is om verticaal en in functie van de programma modules te programmeren. Per module worden alle lagen afgewerkt, dan wordt overgestapt naar de volgende. Niet alleen brengt dit de zekerheid met zich mee dat alle zowel alle lagen als alle programmaonderdelen mooi afgeschermd worden, het geeft je ook veel vaker een gevoel iets bereikt te hebben wat dan weer stimulerend werkt. Wat me tijdens de stageperiode het meest tegenviel aan mezelf was het gebrek van parate kennis over geziene leerstof of technieken. Het gebeurde naar mijn mening te vaak dat ik bij een probleem of procedure enkel wist de handelingen uit te voeren als de nodige documentatie voor handen was. Uiteindelijk zal hetzelfde resultaat bereikt worden maar kostbare tijd is zo verloren gegaan en dit is jammer. Het meest boeiende aan de stageperiode was de grote vrijheid in de gebruikte technologieën en implementaties. Ik kreeg de kans deze echt te onderzoeken en hiermee testen uit te voeren. Zo leerde ik veel nieuwe ASP.NET controls kennen en kon ik zelfs kort het ASP.NET MVC framework onder de loep nemen. Een boeiende ervaring. Over het resultaat van de stageopdracht ben ik in grote lijnen tevreden. De algemene structuren liggen mooi vast en het prototype kan naar een echte versie worden omgezet. Het is jammer dat ikzelf niet meer de tijd heb gehad een gebruiksklare versie van de applicatie op te zetten. Er zijn nog tal van toevoegingen die hier kunnen gebeuren. Het integreren van draaitabellen en een volledig grafische weergave van de vloot zouden zeker op hun plaats zijn. De gebruiker moet eveneens een veel grotere vrijheid krijgen in het opvragen van resultaten. Het mini-project, de SQL-reporter beidt nog tal van mogelijkheden tot uitbreiding. Toch mag het resultaat er best wezen. De applicatie werd door het stagebedrijf dan ook warm onthaald. Enkele dagen na het afronden van dit project werd de toepassing al binnen het stagebedrijf in gebruik genomen. Het was een leuke ervaring een project zo snel ook in praktijk in werking te zien. Vooral het verfijnen van de groepeermogelijkheden en het correct afhandelen van paging zijn hier addities die nog gewenst zijn. Naast de gedocumenteerde projecten kreeg ik binnen het stagebedrijf ook de kans aan heel wat andere projecten mee te werken. Hier waren er in eerste instantie algemene ontwikkelingsproblemen waarbij het 50

51 ontwikkelingsteam opzoek was naar een bruikbare oplossing en ik de kans kreeg hieraan mee te werken. Ik was zelden in staat meteen een oplossing aan te reiken maar heb toch meermaals, na de nodige research, een goede oplossing kunnen aanreiken. Ook tijdens de installatie van een nieuwe testserver kreeg ik de kans mijn steentje bij te dragen. Een andere toffe en leerrijke afwisseling met het programmeren was de installatie van een draadloos netwerk op locatie bij een klant. Ik heb een boeiende, naar mijn mening, geslaagde stage achter de rug. De keuze om hier te kiezen voor een techniek die me minder lag heb ik me niet beklaagd. Ik kon behoorlijk wat bijleren en uittesten. Dit alles in een echte, real-life, omgeving. 51

52 6. CONCLUSIE Het gehele ontwikkelingsproces had veel sneller kunnen verlopen. Er is behoorlijk wat tijd gegaan naar het opzoeken van de meest toepasbare werkwijze en de te gebruiken technologieën. Ik aanzie dit zeker niet als verloren tijd. Ik heb nu meer inzicht bij het ontwikkeling van een minder afgelijnde applicatie en hoe ik deze kan openhouden voor de echte implementatie. Het resultaat mag dus voor de eindgebruiker niet zo spectaculair lijken, de weg die het heeft afgelegd was lang en onder de motorkap zit meer dan je afhankelijk zou denken. Bij de aanvang van dit verslag had ik het over de goede en slechte punten die zich aanbieden bij de manier waarop de kleine transportbedrijven hun kosten registreren. Ik schreef toen dat de te ontwikkelen applicatie minstens aan deze goede punten moet voldoen en de snelpunten moet aanpakken. Gezien alle punten inderdaad werden verwerkt in de applicatie kunnen we concluderen dat de opdracht geslaagd is. Ook over het verdere verloop van de stage ben ik tevreden. Ik heb de indruk zowel veel te hebben geleerd van het stagebedrijf als redelijk wat te hebben kunnen teruggegeven. Zo n wisselwerking zorgt dat de stage zowel voor de student als het stagebedrijf een meerwaarde kan zijn. Het schrijven van dit document bleek een uitdaging op zich. Ik had het niet makkelijk de tijdens de stage verzamelde informatie te structureren en duidelijk samen te vatten. Het is een periode waar behoorlijk veel gebeurt is en heel wat interessante onderwerpen aan bod kwamen. Hieruit een selectie maken is niet makkelijk. Toch hoop ik een duidelijk document te hebben afgeleverd waaraan ik niet alleen zelf veel heb gehad maar waarmee de lezer ook iets kan aanvangen. 52

53 7. BIJLAGEN BIJLAGE 1: ASPTOASPX.ASP <% Response.Write("<body>") Response.Write("<form name=frm id=frm action=asptoaspx.aspx method=post >") for each Item in Session.Contents Response.Write("<input type=hidden name=" & Item) Response.Write( " value='" & Session(item) & "' >") next if len(request.querystring("uri")) >4 then Response.Write("<input type=hidden name=uri value=" & Request.querystring("URI") & ">") end if Response.Write("</FORM>") Response.Write("</body>") Response.Write("<script type='text/javascript'>frm.submit();</script>") %> BIJLAGE 2: ASPTOASPX.ASPX <TITLE>ASPTOASPX.aspx</TITLE> Page language="c#" %> <script runat=server> private void Page_Load(object sender, System.EventArgs e) for(int i=0;i<request.form.count;i++) Session[Request.Form.GetKey(i)]=Request.Form[i].ToString(); Response.Redirect(Session["URI"].ToString(),true); </script> 53

54 BIJLAGE 3: CLEARSESSIONS.ASPX + CLEARSESSIONS.CS ASP.NET Page Language="C#" AutoEventWireup="true" CodeFile="ClearSessions.aspx.cs" Inherits="ASPNET_Converter_ClearSessions" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="frmclearsessions" runat="server"> <div> clearing session... </div> </form> </body> </html> C# using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class ASPNET_Converter_ClearSessions : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) Session.Clear(); Response.Redirect(Request.QueryString["URI"].ToString()); 54

55 BIJLAGE 4: VOORBEELD DAL EN BLL DAL klasse: BLL klasse: using System; using System.Collections.Generic; using System.Linq; using System.Web; using RittenDataSetTableAdapters; using StatusDataSetTableAdapters; [System.ComponentModel.DataObject] public class RittenBLL #region Adapter declaration private RittenAllTableAdapter _adapterall = null; protected RittenAllTableAdapter AdapterAll get if (_adapterall == null) _adapterall = new RittenAllTableAdapter(); return _adapterall; private Voertuig_RitTableAdapter _adaptervoertuig = null; protected Voertuig_RitTableAdapter AdapterVoertuig get if (_adaptervoertuig == null) 55

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Software Requirements Specification

Software Requirements Specification Software Requirements Specification PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

Externe pagina s integreren in InSite en OutSite

Externe pagina s integreren in InSite en OutSite Externe pagina s integreren in InSite en OutSite Document-versie: 1.1 Datum: 04-10-2013 2013 AFAS Software Leusden Niets uit deze uitgave mag verveelvoudigd worden en/of openbaar gemaakt worden door middel

Nadere informatie

Software Requirements Specification

Software Requirements Specification Software Requirements Specification PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage

Nadere informatie

Software Design Document

Software Design Document Software Design Document PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie

Nadere informatie

IcarOS maakt het mogelijk op een veilige manier bestanden en informatie online uit te wisselen. IcarOS biedt een eenvoudige en gebruiksvriendelijke

IcarOS maakt het mogelijk op een veilige manier bestanden en informatie online uit te wisselen. IcarOS biedt een eenvoudige en gebruiksvriendelijke IcarOS maakt het mogelijk op een veilige manier bestanden en informatie online uit te wisselen. IcarOS biedt een eenvoudige en gebruiksvriendelijke interface waarmee u meteen aan de slag kan. Zonder enige

Nadere informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire5 Rapporten maken via ODBC Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...

Nadere informatie

Orbis Software. Portal4U. Whitepaper. Deze whitepaper geeft u meer informatie over ons standaardproduct Portal4U van Orbis Software Benelux BV.

Orbis Software. Portal4U. Whitepaper. Deze whitepaper geeft u meer informatie over ons standaardproduct Portal4U van Orbis Software Benelux BV. Orbis Software Whitepaper Deze whitepaper geeft u meer informatie over ons standaardproduct van Orbis Software Benelux BV Orbis Standaard Product Maak eenvoudig uw eigen Portals Met beschikt u over een

Nadere informatie

TranSearch WEBPlus. Overzicht

TranSearch WEBPlus. Overzicht TranSearch WEBPlus Overzicht TranSearch WebPlus is de laatste in een lange rij intuïtieve oplossingen van UK Software Limited. TranSearch WebPlus is wederom een hoogstaande oplossing voor datamanagement

Nadere informatie

Business Intelligence www.globalservices.be www.sap-training.be

Business Intelligence www.globalservices.be www.sap-training.be Business Intelligence www.globalservices.be www.sap-training.be Global Services + Business Intelligence = perfect match! Het concept Wenst u ook sneller inzicht in beleidsinformatie, rapportering en cijfers?

Nadere informatie

Archipol 6 voor gebruikers

Archipol 6 voor gebruikers Archipol 6 voor gebruikers Agenda Evolutie installed base Sterkten Archipol versie 6 Extra document types Module wapens Beheer Notulen 3 Archipol installed base Versie 4 : 31 % Versie 5 : 29 % Versie 6

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

edocs database structuur info

edocs database structuur info edocs database structuur info EMAIL WEBSITE Zwolle, 3 jan. 12 j.moorman@edocs.nl www.edocs.nl PAGINA 2 VAN 6 Background info edocs is een digitale archiveringsproduct voor windows platforms geschreven

Nadere informatie

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties 2 Supportdesk Pro Introductie Inhoudsopgave I Supportdesk Pro 3 1 Inleiding... 3 2 Werkwijze... 3 II Zaken 4 1 Introductie... 4 2 Zaken beheren... 4 3 Handmatig... invoeren zaken basis 4 4 Verwerken...

Nadere informatie

Orbis Software. Ship4U. Whitepaper. Deze whitepaper geeft u meer informatie over ons standaardproduct Ship4U van Orbis Software Benelux BV.

Orbis Software. Ship4U. Whitepaper. Deze whitepaper geeft u meer informatie over ons standaardproduct Ship4U van Orbis Software Benelux BV. Orbis Software Whitepaper Deze whitepaper geeft u meer informatie over ons standaardproduct van Orbis Software Benelux BV Orbis Standaard Product Automatische verzendetiketten Handmatig aanmaken van verzendetiketten

Nadere informatie

Analyse Programmeertalen

Analyse Programmeertalen Analyse Programmeertalen De keuze van een programmeertaal mag niet onderschat worden. Het is dankzij deze taal dat de gebruiker interactie heeft met het complete systeem. Het is dus vanzelfsprekend dat

Nadere informatie

Efficiëntie? Dat is werken

Efficiëntie? Dat is werken Efficiëntie? Dat is werken met actuele informatie. Punt. Isabel Corporate Synchroniser Isabel Corporate Synchroniser Hoe efficiënt werkt u vandaag? Vandaag is het uitwisselen van bestanden tussen Isabel

Nadere informatie

Effectief opslaan en terugvinden van informatie OFFICE FILING

Effectief opslaan en terugvinden van informatie OFFICE FILING Effectief opslaan en terugvinden van informatie OFFICE FILING Snelle toegang tot uw dossiers optimaliseert uw productiviteit Informatie vormt de levenslijn binnen uw onderneming de basis van effectieve

Nadere informatie

Data quality tracking tool

Data quality tracking tool Data quality tracking tool Stageproject Over data cleansing werk Eén van de onderdelen van werk rond datakwaliteit uitgevoerd door Kapernikov is het systematisch oplossen van gedetecteerde datafouten in

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren

Nadere informatie

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica ECTS fiche Module info OPLEIDING STUDIEGEBIED AFDELING MODULE MODULENAAM Programmeren 5 MODULECODE B STUDIEPUNTEN 10 VRIJSTELLING MOGELIJK ja Handelswetenschappen en bedrijfskunde HBO Informatica Evaluatie

Nadere informatie

Inhoud. Wat is Power BI?... 3. Voorbeelden gemaakt met Power BI... 4. Beginnen met Power BI... 6. Werkruimte uitleg... 7

Inhoud. Wat is Power BI?... 3. Voorbeelden gemaakt met Power BI... 4. Beginnen met Power BI... 6. Werkruimte uitleg... 7 Inhoud Wat is Power BI?... 3 Voorbeelden gemaakt met Power BI... 4 Beginnen met Power BI... 6 Werkruimte uitleg... 7 Naar een dashboard in 3 stappen... 8 Stap 1: Gegevens ophalen... 8 Stap 2: Rapport maken...

Nadere informatie

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail Beknopte dienstbeschrijving Beveiligen van e-mail m.b.v. digitale certificaten en PKI Document: Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail Inhoudsopgave 1. Inleiding 2 2. Snel te

Nadere informatie

SKILLS (Ervaring in jaren)

SKILLS (Ervaring in jaren) Contact the Agency Laurens Simonse 02201031 L.simonse@lsg.nl Bart Nijskens 052302211 B.nijskens@lsg.nl ROCKSTARS Rob Roepnaam: Rob Regio: Eindhoven Geboortedatum: 23 maart 19 Nationaliteit: Nederlands

Nadere informatie

BEFDSS. Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6

BEFDSS. Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6 Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6 Inhoudstafel... 1 1 Voorwoord... 3 2 De samenstelling van het uitwisselingsformaat... 4 3

Nadere informatie

Handleiding CMS Online Identity Webontwikkeling. Handleiding CMS

Handleiding CMS Online Identity Webontwikkeling. Handleiding CMS Handleiding CMS 1 Inhoudsopgave 1. Inloggen... 3 2. Het CMS... 3 3. Websitecontent... 4 3.1 Een nieuwe pagina toevoegen... 4 3.2 Een pagina wijzigen... 4 3.3 Een pagina verwijderen... 5 4. De WYSIWYG editor...

Nadere informatie

Zelftest Java EE Architectuur

Zelftest Java EE Architectuur Zelftest Java EE Architectuur Document: n1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA EE ARCHITECTUUR Nota:

Nadere informatie

Uitgebreid voorstel Masterproef Informatica. Titel van het project : Ontwikkeling van remote controlled Alert & Task Agent

Uitgebreid voorstel Masterproef Informatica. Titel van het project : Ontwikkeling van remote controlled Alert & Task Agent HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project : Ontwikkeling van remote controlled Alert & Task Agent Datum: Naam student: Glenn Jacob Interne promotor: Wim Van den Breen In

Nadere informatie

Zicht - Content Management Systeem een algemene beschrijving

Zicht - Content Management Systeem een algemene beschrijving Zicht - Content Management Systeem een algemene beschrijving Versie april/2008 Zicht nieuwe media ontwerpers 2008 1 Inleiding Een Content Management Systeem (CMS) is een webapplicatie waarmee je zonder

Nadere informatie

Tips & Tricks: Tip van de maand November 2010. Office Integratie

Tips & Tricks: Tip van de maand November 2010. Office Integratie Tips & Tricks: Tip van de maand November 2010 Door: Martijn Janssen Introductie Office Integratie De Teamcenter MS Office-integratie maakt gebruik van Microsoft Office 2003 of 2007 in een beheerde Teamcenter

Nadere informatie

Handleiding kasten Extern documentenbeheer

Handleiding kasten Extern documentenbeheer Handleiding kasten 1. Inleiding... 3 2. Voorbereiding en organisatie... 4 2.1. Fysieke locatie van de kast(en) bepalen... 4 2.1.1. Ftp of http-server instellingen... 4 2.1.2. Locatie op je eigen boekhoudserver

Nadere informatie

Handleiding: CIA - User Management

Handleiding: CIA - User Management Handleiding: CIA - User Management Onderwerp: Project: Ten behoeve van: Vanwege: Handleiding beheer gebruikers van CIA - Gerechtsdeurwaarders CIA Central Identification & Authentication server NKGB National

Nadere informatie

Uitgebreid voorstel Masterproef Informatica

Uitgebreid voorstel Masterproef Informatica HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Optimalisatie & ontwikkeling van een gegevenstransfertool voor Business Intelligence-gebruikers Datum : 01/11/2012 Naam student

Nadere informatie

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat: Training Trainingscode Duur Gepubliceerd Taal Type Leermethode Kosten SF2015V8 4 dagen 02/02/2015 Nederlands & Engels Developer, basis Invidueel & klassikaal Op aanvraag Deze training richt zich op het

Nadere informatie

Handleiding: User Management Schuldbemiddelaars

Handleiding: User Management Schuldbemiddelaars Handleiding: User Management Schuldbemiddelaars Betreffende: Project: Handleiding beheer gebruikers van CBB voor schuldbemiddelaars CBS: Centrale Bron Schuldbemiddelaars Centraal Bestand van Berichten

Nadere informatie

Marlin Family. Marlin

Marlin Family. Marlin PCA Mobile PCA Mobile Organisatie PCA Mobile BV maakt deel uit van de Mobile Solution Group en biedt met ruim 40 enthousiaste collega s een veelomvattend pakket van innovatieve en gebruiksvriendelijke

Nadere informatie

Software Engineering Groep 4

Software Engineering Groep 4 Software Engineering Groep 4 Software Design Description Jeroen Nyckees (Design Manager) Jan-Pieter Hubrecht (Project Manager) 3 e Bachelor Computerwetenschappen se4-1112@wilma.vub.ac.be 11 december 2011

Nadere informatie

Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw

Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw In de whitepaper waarom u eigen documenten niet langer nodig heeft schreven we dat het rondmailen van documenten geen

Nadere informatie

Application interface. service. Application function / interaction

Application interface. service. Application function / interaction Les 5 Het belangrijkste structurele concept in de applicatielaag is de applicatiecomponent. Dit concept wordt gebruikt om elke structurele entiteit in de applicatielaag te modelleren: softwarecomponenten

Nadere informatie

BEST/Rentm in de Cloud

BEST/Rentm in de Cloud BEST/Rentm in de Cloud Productvoorstelling www.cloudsyndic.com A. Dorp 37, 2861 Onze-Lieve-Vrouw-Waver T. +32 15 75 30 58 F. +32 15 75 21 42 E. info@cloudsyndic.com 1 BEST/Rentm in de Cloud - Flow 2 Algemeen

Nadere informatie

HBO5 Informatica Netwerkbeheer (90 studiepunten) In deze module leer je projecten op te stellen en te programmeren in de VB.NET-omgeving.

HBO5 Informatica Netwerkbeheer (90 studiepunten) In deze module leer je projecten op te stellen en te programmeren in de VB.NET-omgeving. STUDIEFICHE CVO DE AVONDSCHOOL Opleiding HBO5 Informatica Netwerkbeheer (90 studiepunten) Module A5 Programmeren 1 (9 studiepunten) Plaats van de module in de opleiding: In deze module leer je projecten

Nadere informatie

Efficy Mobile Efficy Mobile is een nieuwe interface van Efficy voor mobiele toestellen ter intentie van gebruikers die met Efficy werken onderweg.

Efficy Mobile Efficy Mobile is een nieuwe interface van Efficy voor mobiele toestellen ter intentie van gebruikers die met Efficy werken onderweg. 2012, Efficy sa/nv Nieuwe Functionaliteiten in Efficy 2012 Summer Efficy 2012 Summer voegt een aantal interessante nieuwe functionaliteiten toe aan wat anders een natuurlijke opvolging van de Spring release

Nadere informatie

HANDLEIDING DOMEINREGISTRATIE EN DNS- BEHEER

HANDLEIDING DOMEINREGISTRATIE EN DNS- BEHEER HANDLEIDING DOMEINREGISTRATIE EN DNS- BEHEER versie 2.0, 11 december 2009 SURFNET BV, RADBOUDKWARTIER 273, POSTBUS 19035, 3501 DA UTRECHT T +31 302 305 305, F +31 302 305 329, WWW.SURFNET. NL INHOUD 1.

Nadere informatie

Invantive 2012 Release 1 (build 44)

Invantive 2012 Release 1 (build 44) Invantive 2012 Release 1 (build 44) Invantive Estate Invantive Vision Invantive Control Invantive Producer Invantive Query-programma Invantive Composition Invantive Studio 30 maart 2012 Oplossingen van

Nadere informatie

1. Milieuklacht... 2 1.1 Handleiding opladen XML in mkros... 2 2. Werken met Refertes... 5

1. Milieuklacht... 2 1.1 Handleiding opladen XML in mkros... 2 2. Werken met Refertes... 5 1. Milieuklacht............................................................................................. 2 1.1 Handleiding opladen XML in mkros......................................................................

Nadere informatie

Software Requirements Specification

Software Requirements Specification Software Requirements Specification PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage

Nadere informatie

Introduction to IBM Cognos Express = BA 4 ALL

Introduction to IBM Cognos Express = BA 4 ALL Introduction to IBM Cognos Express = BA 4 ALL Wilma Fokker, IBM account manager BA Ton Rijkers, Business Project Manager EMI Music IBM Cognos Express Think big. Smart small. Easy to install pre-configured

Nadere informatie

Handleiding TWYSK Risicotool. Online webapplicatie voor het vastleggen en beheren van risico-informatie

Handleiding TWYSK Risicotool. Online webapplicatie voor het vastleggen en beheren van risico-informatie Handleiding TWYSK Risicotool Online webapplicatie voor het vastleggen en beheren van risico-informatie Handleiding Twysk risicotool De Twysk risicotool is in opdracht van Twynstra Gudde ontwikkeld als

Nadere informatie

B.Sc. Informatica Module 4: Data & Informatie

B.Sc. Informatica Module 4: Data & Informatie B.Sc. Informatica Module 4: Data & Informatie Djoerd Hiemstra, Klaas Sikkel, Luís Ferreira Pires, Maurice van Keulen, en Jan Kamphuis 1 Inleiding Studenten hebben in modules 1 en 2 geleerd om moeilijke

Nadere informatie

Invantive 2012 Release 1 (build 44)

Invantive 2012 Release 1 (build 44) Invantive 2012 Release 1 (build 44) Invantive Estate Invantive Vision Invantive Control Invantive Producer Invantive Query-programma Invantive Composition Invantive Studio 30 maart 2012 Oplossingen van

Nadere informatie

Beschrijving functioneel en technisch design van de website

Beschrijving functioneel en technisch design van de website Bespreking Punten: Beschrijving functioneel en technisch design van de website Nr. Punt 1 Student 2 Bedrijf 3 Algemene lay out 4 Technologieën 5 Webruimte en datatrafiek 1. Student Registratie Bij de registratie

Nadere informatie

De nieuwe generatie Toegangsbeheer.

De nieuwe generatie Toegangsbeheer. De nieuwe generatie Toegangsbeheer. Toekomstgericht Toegangsbeheer. Software eigenschappen. Simpel en visueel. Simpel betekent niet basis, het betekent dat het product correct werd ontworpen. Het systeem

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Les 10 : Aanmaken van een database (deel2).

Les 10 : Aanmaken van een database (deel2). Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van

Nadere informatie

Werking van de Office Connector, en het oplossen van fouten.

Werking van de Office Connector, en het oplossen van fouten. Werking van de Office Connector, en het oplossen van fouten. De Office Connector zorgt ervoor dat de Microsoft Officeomgeving gebruikt kan worden als ontwerp en genereeromgeving voor documenten waarbij

Nadere informatie

INHOUDSOPGAVE 3. 3.5 Het Boekenwinkeltje... 90 3.5.1 Registreer.aspx... 90 3.6 Opgaven... 97

INHOUDSOPGAVE 3. 3.5 Het Boekenwinkeltje... 90 3.5.1 Registreer.aspx... 90 3.6 Opgaven... 97 Inhoudsopgave 1 Inleiding 8 1.1 Het.Net Framework................................ 8 1.1.1 Het.Net Ontwikkelingsmodel....................... 8 1.1.2 Compilatie en Uitvoering in.net.....................

Nadere informatie

Prijzen RIVOS. RIVOS Prijzen Pagina 1

Prijzen RIVOS. RIVOS Prijzen Pagina 1 Prijzen RIVOS De totale investering voor RIVOS bestaat uit de basis aanschafprijs, optionele modules, bijkomende kosten en jaarlijks terugkerende kosten. De basis aanschafprijs wordt bepaald door het aantal

Nadere informatie

Zelftest Informatica-terminologie

Zelftest Informatica-terminologie Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Easy Business Tools - Multi-user module

Easy Business Tools - Multi-user module Easy Business Tools Multi-user module Wat is de Multi-user module en wat kan ik er mee doen? De multi-user module is een gebruikerslicentie waardoor 5 computers in een netwerk kunnen samenwerken in Mijn

Nadere informatie

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Inleiding Visual Basic en VBA. Karel Nijs 2009/01 Inleiding Visual Basic en VBA Karel Nijs 2009/01 Leswijze Eerst wat theorie Begeleid met (korte) oefeningen Ms Excel 2003 Online hulp: http://www.ozgrid.com/vba/ http://msdn.microsoft.com/en-us/library/sh9ywfdk(vs.80).aspx

Nadere informatie

CaseMaster WS E-Commerce Webshop

CaseMaster WS E-Commerce Webshop CaseMaster WS E-Commerce Webshop CaseMaster Webshop Het aantal webshops groeit nog steeds en de ontwikkelingen hierin volgen elkaar in snel tempo op. Om succesvol te blijven, is het van belang dat uw software

Nadere informatie

Gebruikersvriendelijke beheer van bestanden in SharePoint

Gebruikersvriendelijke beheer van bestanden in SharePoint #1 Oplossing wereldwijd. Bewezen in omgvangrijke omgevingen 100+ en 10.000+ gebruikers. GeONE is uw partner voor SharePoint Informatie Management. GeONE levert het volledige pakket aan SharePoint toepassingen

Nadere informatie

XAMPP Web Development omgeving opzetten onder Windows.

XAMPP Web Development omgeving opzetten onder Windows. XAMPP Web Development omgeving opzetten onder Windows. Inhoudsopgave 1. Lees dit eerst... 2 2. Inleiding... 2 1 Xampp downloaden... 2 2 Installatie Xampp 1.7.4 op externe harddisk... 3 3 XAMPP herconfiguren...

Nadere informatie

Verplichtingen administratie. Brochure - Verplichtingen administratie

Verplichtingen administratie. Brochure - Verplichtingen administratie Brochure - Verplichtingen administratie Ontwikkeld door: Van der Heijde Automatisering B.V. Registratie van verplichtingen van debiteuren en aan crediteuren Uitgebreide structuur voor autorisatie van verschillende

Nadere informatie

TimeManager. ERP voor Dienstverleners. SalesManager Software 2013 The Customer Centric Software Company

TimeManager. ERP voor Dienstverleners. SalesManager Software 2013 The Customer Centric Software Company TimeManager ERP voor Dienstverleners SalesManager Software 2013 The Customer Centric Software Company 2 Inleiding Bent u werkzaam in Professional Services? Met onze geïntegreerde CRM en Project Management

Nadere informatie

Handleiding Opmaken fiche 281.10

Handleiding Opmaken fiche 281.10 Opmaken fiche 281.10 1. Inleiding... 3 2. Voorbereidingen... 4 3. Personeelsleden als leverancier in de boekhouding voorzien... 7 3.1. Manueel leveranciersfiches voor de personeelsleden aanmaken... 7 3.2.

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 DocumentManager

Functionele beschrijving: scannen naar UNIT4 DocumentManager Functionele beschrijving: scannen naar UNIT4 DocumentManager Algemeen Met de KYOCERA Scannen naar UNIT4 DocumentManager beschikt u over een efficiënte oplossing om uw documenten te scannen naar UNIT4 DocumentManager

Nadere informatie

Website van het openbaar ministerie Korte gebruikershandleiding voor Content Managers

Website van het openbaar ministerie Korte gebruikershandleiding voor Content Managers Website van het openbaar ministerie Korte gebruikershandleiding voor Content Managers De website van het openbaar ministerie is momenteel (tijdelijk) te vinden op volgende intranetadres: http://10.241.132.229.

Nadere informatie

TEKLYNX LABEL ARCHIVE. Beveiliging, Tracering en Controle van uw label printproces was nog nooit zo eenvoudig!

TEKLYNX LABEL ARCHIVE. Beveiliging, Tracering en Controle van uw label printproces was nog nooit zo eenvoudig! TEKLYNX LABEL ARCHIVE BEVEILIGING TRACERING INTEROPERABILITEIT Beveiliging, Tracering en Controle van uw label printproces was nog nooit zo eenvoudig! TEKLYNX' LABEL ARCHIVE is de laatste toevoeging aan

Nadere informatie

Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 2de jaar Toegepaste Informatica

Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 2de jaar Toegepaste Informatica Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 2de jaar Toegepaste Informatica Bookinto Analyse- en ontwerprapport Teamnr: 64 Ewout SPITAELS (2Ti6) Olivier NUYTS

Nadere informatie

SHAREPOINT ONLINE (SAMEN-)WERKEN IN DE WOLKEN. http://www.ie-net.be - Workshop SharePoint 1

SHAREPOINT ONLINE (SAMEN-)WERKEN IN DE WOLKEN. http://www.ie-net.be - Workshop SharePoint 1 SHAREPOINT ONLINE (SAMEN-)WERKEN IN DE WOLKEN 1 WIE ZIJN WIJ? 2 WIE BENT U? Professional Op zoek naar productiviteit Samenwerken met Collega s Externe partijen Onderaannemers 3 WAT IS ONS PLAN? 1. Wat

Nadere informatie

The OSI Reference Model

The OSI Reference Model Telematica Applicatielaag Hoofdstuk 16, 17 Applicatielaag 4Bevat alle toepassingen die van het netwerk gebruik maken n E-mail n Elektronisch nieuws n WWW n EDI (Electronic Data Interchange) n Napster,

Nadere informatie

Alfresco Document Management

Alfresco Document Management Pagina 1 van 6 Alfresco Document Management Efficiënter kunnen (samen)werken, altijd en overal kunnen beschikken over de benodigde informatie en geen zorgen hoeven maken over IT en back-up? Lagere kosten

Nadere informatie

Programming Content Management Server 2002

Programming Content Management Server 2002 Met behulp van Content Management Server 2002 (CMS) kun je eenvoudig te onderhouden websites bouwen en beheren. De business driver van CMS is het gebruiksvriendelijk beheer van een website, in het bijzonder

Nadere informatie

Release notes UNIT4 Multivers Online 8.0

Release notes UNIT4 Multivers Online 8.0 Release notes UNIT4 Multivers Online 8.0 UNIT4 Multivers is een product van: UNIT4 Software B.V. Telefoon 0184 444444 Postbus 102 Telefax 0184 444445 3360 AC Sliedrecht Supportlijn 0184 444555 Supportfax

Nadere informatie

Bedrijfssystemen vervangen door Slim Software Nabouwen

Bedrijfssystemen vervangen door Slim Software Nabouwen Bedrijfssystemen vervangen door Slim Software Nabouwen Codeless White Paper Roland Worms, Directeur Wouter van der Ven, Lead Software Architect Inhoudsopgave 1. Introductie 2. Het IT dilemma. Als standaard

Nadere informatie

Installatiehandleiding Business Assistent

Installatiehandleiding Business Assistent Installatiehandleiding Business Assistent Wijzigingsgeschiedenis Versie Datum Omschrijving Status 0.1 25-09-2014 Eerste opzet van het installatie Concept document. 1.0 04-11-2014 Geen: Commercieel maken

Nadere informatie

Software Design Document

Software Design Document Software Design Document PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie

Nadere informatie

Y.S. Lubbers en W. Witvoet

Y.S. Lubbers en W. Witvoet WEBDESIGN Eigen Site Evaluatie door: Y.S. Lubbers en W. Witvoet 1 Summary Summary Prefix 1. Content en structuur gescheiden houden 2. Grammaticaal correcte en beschrijvende markup 3. Kopregels 4. Client-

Nadere informatie

Katholieke Hogeschool Kempen ASP

Katholieke Hogeschool Kempen ASP Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica ASP www.projectchatroom.be Yorkim Parmentier 3TI4 Andy Geluykens 3TI4 Academiejaar

Nadere informatie

3NELåKANåOOKåBETROUWBAAR METå!CCEPTå&INANCIEEL

3NELåKANåOOKåBETROUWBAAR METå!CCEPTå&INANCIEEL !CCEPTå!UTOMATISERING 3NELåKANåOOKåBETROUWBAAR METå!CCEPTå&INANCIEEL - / / ) %æ#) * & %2 3 De boeken bijhouden in een mooie, moderne en snelle omgeving? Accept Financieel is dé complete software voor iedere

Nadere informatie

Xampp Web Development omgeving opzetten onder Windows.

Xampp Web Development omgeving opzetten onder Windows. Xampp Web Development omgeving opzetten onder Windows. Inhoudsopgave 1. Lees dit eerst... 2 2. Inleiding... 2 3. Installatie Xampp... 3 1.1 Installatie Xampp Launcher... 7 1.2 Controle geïnstalleerde bestanden...

Nadere informatie

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren Om eens wat ervaring op te doen met de Windows Azure Marketplace heb ik een publieke en gratis databron gekozen

Nadere informatie

E-crown. Inhoud. Communicatieplatform - Gebruikershandleiding

E-crown. Inhoud. Communicatieplatform - Gebruikershandleiding E-crown Communicatieplatform - Gebruikershandleiding Inhoud 1. Wordpress multisite 2. Content beheer a. Content types b. Speciale content c. Publiceren, wachtend op review en concept d. Content sorteren

Nadere informatie

Nieuw in Mamut Business Software en Mamut Online

Nieuw in Mamut Business Software en Mamut Online // Mamut Business Software Nieuw in Mamut Business Software en Mamut Online Inhoud Voorwoord 3 Nieuwe versie 3 Over updates naar een nieuwe versie 4 Nieuw in Mamut Business Software 7 Relatiebeheer 7 Verkoop

Nadere informatie

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

Wijzigingen volledig onder controle en geborgd

Wijzigingen volledig onder controle en geborgd Installation Management Platform IMProve 2014 is het ultieme hulpmiddel om het beheer van uw (terminal) serverfarm continu, stap voor stap, op een hoger niveau te brengen. Gedocumenteerd, geborgd en reproduceerbaar

Nadere informatie

Een suite van web applicaties om geografische informatie in de organisatie te presenteren

Een suite van web applicaties om geografische informatie in de organisatie te presenteren M A P I N F O E X P O N A R E Een suite van web applicaties om geografische informatie in de organisatie te presenteren INTRODUCTIE VAN MAPINFO EXPONARE MapInfo Exponare is ontwikkeld om gebruikers toegang

Nadere informatie

SIMPLIFYSCAN. A sharp choice in intelligent scanning

SIMPLIFYSCAN. A sharp choice in intelligent scanning SIMPLIFYSCAN A sharp choice in intelligent scanning SIMPLIFYSCAN: A SHARP CHOICE IN INTELLIGENT SCANNING SimplifyScan maakt het voor gebruikers mogelijk om documenten op een eenvoudige wijze te scannen

Nadere informatie

Applicatie Integratie in de zorg: implementatie tips uit de praktijk

Applicatie Integratie in de zorg: implementatie tips uit de praktijk Applicatie Integratie in de zorg: implementatie tips uit de praktijk Veel zorginstellingen geven aan informatievoorziening te willen verbeteren. Om bijvoorbeeld de cliënt meer centraal te stellen of Het

Nadere informatie

Functionele beschrijving: scannen naar Exact Globe.

Functionele beschrijving: scannen naar Exact Globe. Functionele beschrijving: scannen naar Exact Globe. Algemeen Met de KYOCERA scannen naar Exact Globe beschikt u over een efficiënte oplossing om uw documenten te scannen naar Exact Globe. Met deze oplossing

Nadere informatie

MyCareNet in uw Apotheek?

MyCareNet in uw Apotheek? MyCareNet in uw Apotheek? Met deze brochure willen we onze klanten informeren over de invoering van MyCareNet MyCareNet in uw apotheek MyCareNet is een initiatief van het NIC (Nationaal Intermutualistisch

Nadere informatie

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april 2009. Versie 2.1.0

Technisch ontwerp. Projectteam 6. Project Web Essentials 02 april 2009. Versie 2.1.0 Projectteam 6 Faculteit Natuur en Techniek Hogeschool Utrecht Projectleider: Hans Allis, hans.allis@student.hu.nl Technisch ontwerp Project "Web Essentials" 02 april 2009 Versie 2.1.0 Teamleden: Armin

Nadere informatie

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens Nieuwbouw Vereenvoudigd en versnelt Java ontwikkeling Huub Cleutjens Inhoud IBS en Java Keuzes: taal / architectuur Productiviteit / arbeidsdeling IBS Java Development Accelerator Persistence UI Persistence

Nadere informatie

Any data from any source available at any time as information on your favorite mobile device

Any data from any source available at any time as information on your favorite mobile device MOBILE BUSINESS APPS Any data from any source available at any time as information on your favorite mobile device YOUR VIEW ON BUSINESS Introductie Oplossingen Any2info is een innovatieve ICT-onderneming

Nadere informatie