Windows Universal Application development

Maat: px
Weergave met pagina beginnen:

Download "Windows Universal Application development"

Transcriptie

1 Scriptie ingediend tot het behalen van de graad van PROFESSIONELE BACHELOR IN DE ELEKTRONICA-ICT Windows Universal Application development Bart Bogaerts Departement Wetenschappen en Techniek Opleiding Elektronica-ICT Academiejaar Interne promotor: Patrick Van Houtven Externe promotor: Tom Wuyts Versie: 12 juni 2015

2 Dankwoord Allereerst wil ik graag Mark Devos en het bedrijf Calidos bedanken om mij de mogelijkheid te geven hier stage te lopen. Het hele team van Calidos ben ik dankbaar voor een zeer aangename tijd en hun hulp tijdens de stage. Daarnaast wil ik graag Patrick Van Houtven en Tom Wuyts, mijn promotors, bedanken voor de hulp en begeleiding tijdens mijn stage. Alsook collega s Bart Lannoeye, Maarten Merken en Stijn De Cat, bij wie ik steeds terecht kon met vragen, wil ik bij deze bedanken. Ten slotte wil ik graag nog een dankwoord richten aan Tim Dams voor de ondersteuning tijdens mijn stageperiode en alle administratieve taken die daarbij komen kijken. Antwerpen, 12 juni 2015 Bart Bogaerts i

3 Abstract Het project van Calidos bestaat uit de ontwikkeling van een desktop applicatie geschikt voor Windows 8.1. Hierbij zal ik mij moeten integreren in een team dat reeds aan de ontwikkeling van de applicatie bezig is. De Windows applicatie dient ondersteuning te bieden aan ziekenhuizen en andere organisaties in de zorg. De applicatie is ontwikkeld om de workflow van klinische studies te organiseren. Een klinische studie is een proces waarbij men een geneesmiddel test en evalueert. Dit proces wordt op een geselecteerde patiëntengroep getest. De workflow van een klinische studie omvat verschillende aspecten. Namelijk: Plannen van patiëntcontacten Uitvoeren van de contacten Opvolging van de contacten Monitoring vanuit firma Audits Facturatie Al deze aspecten worden verwerkt in de Windows applicatie. Deze applicatie wordt aangeboden aan ziekenhuizen en andere zorgorganisaties. Het gebruik hiervan zal resulteren in een geoptimaliseerd werkproces. Een gedeelte van de ontwikkeling van deze applicatie is als bachelorproef aan mij toegewezen. Bij de ontwikkeling van dit bepaald departement van de applicatie, moet er rekening gehouden worden met de stijl en architectuur dat het team in acht neemt bij het ontwikkelen van de software. De opdracht is volbracht wanneer het gedeelte volledig functioneel en visueel aan de eisen voldoet. Rekening houdende met bepaalde regels die tijdens het programmeren gerespecteerd worden. Deze regels worden toegelicht in de codering handleiding. Indien dit volbracht is, zal de opdracht uitbreiden. De uitbreiding zal de ontwikkeling van een nieuw departement inhouden. Het zal een soortgelijke structuur hebben als voorafgaande opdracht. ii

4 Inhoudsopgave Dankwoord Abstract i ii 1 Situering Bestaande situatie Doel Gebruikte technologieën Windows 8.1 Universal Application C# XAML MVVM Prism voor Windows Store ASP.NET Web API Microsoft Azure SQL Database Azure AD Authentication Library Entity Framework Gebruikte software Visual Studio Team Foundation Server Telerik UI for Windows Universal ReSharper Bespreking Onderzoek Ontwikkeling configuratieschermen van lijsten Streefdoel Oplossing met tussenresultaten Ontwikkeling configuratieschermen van logs Streefdoel iii

5 INHOUDSOPGAVE iv Oplossing met tussenresultaten Resultaten Configuratieschermen van lijsten Configuratieschermen van logs Besluit 51 A Codering handleiding 54 A.1 Behaviors A.2 Gebruikte stijlen A.3 Project structuur A.4 Overzichtelijke klasse file A.5 Klasse structuur A.6 Naamgeving B Navigatie 58 B.1 Navigatie met parameters B.2 Parsen van navigatie parameters C UserControl met databinding en implementatie 60 D VisualState bepalen vanuit MVVM 62

6 Lijst van figuren 1.1 Windows Projectstructuur van een Windows Universal Application Functie van Windows Runtime Windows apparaten (PC, laptop en tablet) Windows Phone Windows apparaten (PC, Windows Phone en tablet) C# XAML MVVM architectuur en interactie Prism voor Windows Store apps NuGet ASP.NET Web API Microsoft SQL Azure Entity Framework Visual Studio Team Foundation Server ReSharper Configuratie overzichtscherm Scherm met overzicht van alle lijsten Configuratiescherm van een lijst in definitie toestand Configuratiescherm van een lijst in items toestand Configuratiescherm van een lijst in item-definitie toestand Foutmelding bij het saven van een lijst Button element in XAML XAML resource style Property van het type RelayCommand Tussenresultaat van het configuratie overzichtscherm CommandBar met button Toepassing van keyword await Tussenresultaat van het lijsten overzichtscherm v

7 LIJST VAN FIGUREN vi 2.14 Genummerde usercontrols Dependency property van het type string TextBlock 1 met binding op de dependency property Implementatie van een usercontrol met databinding op de dependency properties Een gedefinieerde VisualState van een VisualStateManagerl Enum en property Configuratiescherm van een lijst in lijst-definitie toestand Configuratie overzichtscherm Logs overzichtscherm Logs overzichtscherm Configuratiescherm van een log in kolommen toestand Configuratiescherm van een log in kolom-definitie toestand Configuratiescherm van een log in kolom-waarden toestand Tussenresultaat configuratie overzichtscherm Tussenresultaat logs overzichtscherm Overzichtscherm van de lijsten Configuratiescherm van een lijst in lijst-definitie toestand Configuratiescherm van een lijst in nieuwe-lijst toestand Configuratiescherm van een lijst in item-definitie toestand Configuratiescherm van een lijst in nieuw-item toestand Configuratiescherm van een lijst met foutmelding Overzichtscherm van de logs Configuratiescherm van een log in log-definitie toestand Configuratiescherm van een log in kolom-waarden toestand Configuratiescherm van een log in kolom-waarden toestand C.1 Usercontrol XAML C.2 UserControl code behind C.3 UserControl implementatie D.1 Usercontrols D.2 Visual State Manager D.3 Enum to visual state control D.4 Extended Visual State Manager D.5 Enum D.6 Bindable property D.7 Visual State zetten

8 Hoofdstuk1 Situering Het bedrijf Calidos werkt met een team van softwareontwikkelaars aan een groot project. Het project bestaat uit de ontwikkeling van een Windows Universal Application met C# en XAML. De applicatie is gericht naar pc s en tablets die op Windows 8.1 draaien. De applicatie zal de naam Maät dragen. De oorsprong hiervan komt uit de Egyptische mythologie waar Maät de godin van de kosmische orde, waarheid en rechtvaardigheid is. De applicatie dient ondersteuning te bieden aan ziekenhuizen en andere organisaties in de zorg. Ondersteuning zowel op vlak van planning, opvolging en organisatie van een klinische studie. Dit aangeboden in een overzichtelijke Windows 8.1 applicatie. Figuur 1.1: Windows 1

9 HOOFDSTUK 1. SITUERING Bestaande situatie Bij de aanvang van de stage was de ontwikkeling van Maät reeds aan de gang. Er is gekozen voor het creëren van een Universal Windows applicatie. Dit is een applicatie dat op eender welk Windows toestel kan draaien. Bij de keuze van een Universal Windows Application template worden er in Visual Studio 3 solutions aangemaakt, namelijk: Windows, Windows Phone en Windows Shared. Maar zoals reeds vermeld dient de applicatie enkel op PC s, laptops en tablets te kunnen draaien. Daarom zal er enkel in de Windows en Windows Shared solution gewerkt worden en niet in de Windows Phone solution. Merk dus op dat in de onderstaande figuur de blauwe tiles niet aan de orde zijn. Figuur 1.2: Projectstructuur van een Windows Universal Application Bij de start van de stage was er reeds heel wat ontwikkeld. Hieronder een overzicht. Meer technische uitleg over enkele van deze ontwikkelingen of technologieën worden verder in het document beschreven. Start Windows 8.1 Universal Application project Implementatie MVVM-patroon met prism library Creatie XAML resource file Creatie converters (Vb. VisibilityConverter, InverseBooleanConverter,...) Creatie controls (Vb. EnumToVisualState) Web API service Database Demodata

10 HOOFDSTUK 1. SITUERING Doel Het doel van de stage is om een departement van de gehele applicatie te ontwikkelen. Het gedeelte dat als bachelorproef wordt verwezenlijkt, is de ontwikkeling van de configuratieschermen voor de lijsten. Dit houdt de ontwikkeling in van de schermen waar de gebruiker lijsten kan configureren. Hoe het geheel er functioneel en visueel moet uitzien bij de eindgebruiker is reeds bepaald. Als deze opdracht volbracht is zal er een code review plaatsvinden. Deze code review houdt het volgende in. Samen met de externe promotor zal de code geanalyseerd worden om deze dan vervolgens waar nodig te optimaliseren, vereenvoudigen of bepaalde functionaliteiten op een andere manier aan te pakken. Overbodige en duplicate code moet zo minimaal mogelijk zijn. Ook de leesbaarheid van de geschreven code is een belangrijke factor. Dit zodat een collega op elk ogenblik de code duidelijk kan begrijpen en eventueel uitbreiden of wijzigen. De configuratieschermen voor de lijsten zijn afgewerkt wanneer het functioneel en visueel aan de eisen voldoet. Er moet op een zo leesbare en efficiã nt mogelijke manier geprogrammeerd zijn. Volledig vrij van bugs, errors en exceptions. Als deze opdracht volbracht is, dan wordt er aan een volgend gedeelte begonnen. Dit gedeelte zal de ontwikkeling van de configuratieschermen van de logs inhouden. Dit gedeelte heeft een soortgelijke structuur als de configuratieschermen van de lijsten maar zal iets complexer en uitgebreider zijn. Ook hier is reeds bepaald hoe het geheel er functioneel en visueel moet uitzien bij de eindgebruiker. Alsook moet dit gedeelte op een zo leesbare en efficiã nt mogelijke manier geprogrammeerd zijn. Volledig vrij van bugs, errors en exceptions.

11 HOOFDSTUK 1. SITUERING Gebruikte technologieën In dit gedeelte worden gebruikte technologieën toegelicht Windows 8.1 Universal Application Vooraleer kan uitgelegd worden wat een Windows Universal Application is, is het van belang dat volgende begrippen worden toegelicht. Windows Runtime stelt Windows Store applicaties in staat om in verschillende programmeertalen geschreven te worden. Zoals onderstaande figuur aantoont. Figuur 1.3: Functie van Windows Runtime Een Windows Runtime applicatie is een applicatie die gebruik maakt van Windows Runtime en draait op Windows 8 of 8.1 apparaten, zoals PC s, laptops, tablets of Windows Phones. Een Windows Store app is een Windows Runtime app die draait op Windows-apparaten (zoals PC s, tablets of laptops) en kan worden verkocht in de Windows Store. Figuur 1.4: Windows apparaten (PC, laptop en tablet)

12 HOOFDSTUK 1. SITUERING 5 Een Windows Phone Store app is een Windows Runtime app die draait op Windows Phones en kan worden verkocht in de Windows Phone Store. Figuur 1.5: Windows Phone Huidige versies van Visual Studio bieden een Universal Windows Application template aan waarmee zowel een Windows Store applicatie als een Windows Phone Store applicatie gecreëerd word in hetzelfde project. Figuur 1.6: Windows apparaten (PC, Windows Phone en tablet) Wanneer het ontwikkelen voltooid is kunnen er applicatie pakketten voor de Windows Store en Windows Phone Store geproduceerd worden met slechts één enkele actie om de applicatie aan de klanten aan te bieden op elk Windows apparaat. Zoals reeds vermeld is de applicatie Maät een Universal Windows applicatie die enkel gericht is naar PC s, laptops en tablets. Maät zal dus verkrijgbaar zijn als Windows Store applicatie. In het Windows Phone gedeelte van het project wordt niet gewerkt. De oorsprong van de keuze om een Universal Windows applicatie te creëren komt van Microsoft met het volgende advies. De beste manier om voorbereid te zijn op Windows 10 is om uw Universal Windows applicatie te ontwikkelen voor Windows 8.1 en Windows Phone 8.1.

13 HOOFDSTUK 1. SITUERING C# C# is de programmeertaal waarin de achterliggende code van de applicatie Maät ontwikkeld wordt. C# is ontwikkeld door Microsoft. De programmeertaal is samen met het.netframework geïntroduceerd, en wordt beschouwd als de belangrijkste taal voor dit platform. Figuur 1.7: C# XAML XAML of voluit Extensible Application Markup Language dient als opmaaktaal om de gebruikersinterface, om elementen, gebeurtenissen en andere onderdelen daarvan te definiëren. De taal is ontwikkeld door Microsoft en is gebaseerd op XML. Figuur 1.8: XAML

14 HOOFDSTUK 1. SITUERING MVVM Het Model-View-ViewModel (MVVM) patroon zorgt voor een scheiding in de applicatie van de business en presentatie logica ten opzichte van zijn user interface (UI). Door de applicatie logica en de UI te scheiden is de applicatie makkelijker te ontwikkelen, testen en onderhouden. Ook een sterke verbetering van code re-use kan hieruit voortvloeien. Bij gebruik van het MVVM-patroon wordt de UI van de applicatie en de onderliggende presentatie en business logica opgedeeld in onderstaande drie klassen. View (encapsuleert de UI en UI logica) De verantwoordelijkheid van de view is om de structuur en het uitzicht van wat de gebruiker ziet op het scherm te definiëren. Ideaal gezien bezit de achterliggende code van de view enkel een constructor die de InitializeComponent methode aanroept. Viewmodel (encapsuleert de presentatie logica en staat) Het viewmodel zal de presentatie logica voor zijn rekening nemen. Het viewmodel implementeert properties en commands waarop de view kan databinden. Ook informeert het de view over toestand veranderingen via notification events. Model (encapsuleert de business logica en data) Het model definieert data structuren gebaseerd op het data model van de applicatie zowel als het ondersteunen van business en validatie logica. Alsook kan het model code bevatten om toegang tot de gegevens en caching te ondersteunen, hoewel hiervoor meestal een aparte data repository wordt gebruikt. Figuur 1.9: MVVM architectuur en interactie

15 HOOFDSTUK 1. SITUERING Prism voor Windows Store Prism helpt ontwikkelaars bij het ontwikkelen van Windows Store apps. Het versnelt de ontwikkeling door het verlenen van support bij MVVM, gekoppelde communicatie en de core services in Windows Store apps. Prism helpt bij het ontwikkelen van een consistente en hoge kwaliteit app. De gebruikte Microsoft.Practices.Prism.StoreApps bibliotheek is een klasse bibliotheek die MVVM support biedt met lifecycle management, en core services aan de applictie. Figuur 1.10: Prism voor Windows Store apps NuGet

16 HOOFDSTUK 1. SITUERING ASP.NET Web API ASP.NET is een onderdeel van het.net framework van Microsoft. ASP.NET Web API is een framework dat de ontwikkeling van HTTP services die een breed scala van clients bereiken vergemakkelijkt, inclusief browsers en mobiele toestellen. Op basis van client requests wordt data teruggegeven. Wanneer een client een request om data verstuurt als JSON of XML, behandelt het Web API framework het request type en geeft de data terug op basis van het media type. Standaard geeft het Web API framework JSON en XML gebaseerde antwoorden. Web API is een ideaal platform om puur HTTP gebaseerde services te ontwikkelen waar de verzoeken en antwoorden gebeuren met het HTTP protocol. De client kan een GET, PUT, POST en DELETE request sturen en krijgt vervolgens het passend Web API antwoord. Samenvattend is de Web API: Een HTTP service Ontworpen voor een breed bereik Gebruikt HTTP als een applicatie protocol, niet als een transport protocol Figuur 1.11: ASP.NET Web API

17 HOOFDSTUK 1. SITUERING Microsoft Azure SQL Database SQL Database is een relationele database service in de cloud, gebaseerd op de Microsoft SQL Server engine. SQL Database biedt betrouwbare prestaties, schaalbaarheid, data bescherming en bijna geen administratie aan cloud ontwikkelaars en solution architecten. SQL Database ondersteunt de bestaande SQL Server tools, libraries en API s, wat het verplaatsen van de cloud vergemakkelijkt. Binnen enkele seconden kan een SQL database opgezet en operationeel zijn, zonder virtuele machines of infrastructuren te managen. Zo kan er gefocust worden op het ontwikkelen en managen van de applicatie. SLA (Service Level Agreement) verzekert een bijna nul down tijd van de applicatie. De ingebouwde data bescherming via auditing, restore en geo-replication garanderen dat de data altijd beschermd is. SQL Database biedt de mogelijkheid om data te herstellen naar elk moment in tijd tot 35 dagen terug. De laatste versie van SQL Database, V12, biedt bijna complete compatibiliteit met de SQL Server engine. Figuur 1.12: Microsoft SQL Azure

18 HOOFDSTUK 1. SITUERING Azure AD Authentication Library De Azure AD Authentication Library (ADAL) voor.net maakt het mogelijk voor client applicatie ontwikkelaars om eenvoudig gebruikers te authentificeren naar cloud of on-premises Active Directory (AD), en vervolgens de access tokens te verkrijgen voor het beveiligen van API calls. ADAL voor.net heeft vele functies om authenticatie gemakkelijker te maken voor ontwikkelaars. Het biedt de volgende functies: Asynchrone methoden ADAL voor.net ondersteunt asynchrone varianten voor elke methode die een token verwerven, wat zal resulteren in een applicatie die veel sneller reageert tijdens het verificatieproces. Token acquisitie ADAL voor.net vergemakkelijkt het proces van het verwerven van tokens van Azure AD met behulp van verschillende identiteit providers, protocollen en verificatie types. ADAL kan het volledige token acquisitie proces beheren in slechts een paar lijnen code, inclusief de authenticatie gebruikerservaring. Als alternatief kunnen ruwe verificatiegegevens voorzien worden die de applicatie of gebruiker representeren en ADAL zal het token ophalen. Token cache ADAL voor.net slaat alle toegangstokens standaard op in een in-memory token cache, maar de mogelijkheid om zelf een cache implementatie te schrijven of de token cache volledig uit te schakelen bestaat. Automatische token vernieuwing In toevoeging aan de token cache, ondersteunt ADAL automatische vernieuwing van tokens wanneer deze verlopen. ADAL zal een query sturen naar de token cache om te controleren of de token verlopen is, en vervolgens trachten een nieuwe token te verkrijgen met gebruik van de cached refresh token. Doordat ADAL het meeste van de complexiteit behandelt, helpt het een ontwikkelaar zich te focussen op business logica in de applicatie en eenvoudig resources te beveiligen zonder een expert op gebied van security te zijn.

19 HOOFDSTUK 1. SITUERING Entity Framework 6 Entity Framework (EF) is een Object Relational Mapper (ORM) en is een component van het.net framework. Het EF stelt ontwikkelaars in staat om met data in de vorm van domeinspecifieke objecten en properties te werken, zonder zich te bekommeren om de onderliggende database tables en columns waar deze data wordt opgeslagen. Met het EF kunnen ontwikkelaars werken op een hoger niveau van abstractie wanneer zij omgaan met data. Zo kunnen data georiã nteerde applicaties ontwikkeld worden met minder code. Figuur 1.13: Entity Framework 6

20 HOOFDSTUK 1. SITUERING Gebruikte software In dit gedeelte wordt gebruikte software toegelicht Visual Studio 2013 Microsoft Visual Studio is een programmeerontwikkelomgeving van Microsoft. Standaard zit er in Visual Studio een complete set aan ontwikkelingstools om computerprogramma s te ontwikkelen in diverse talen. De talen Visual Basic.Net, C#, F# en C++ worden in de standaardeditie meegeleverd. Visual Studio kan gebruikt worden om ASP.NET webapplicaties, XML webservices, desktopapplicaties en mobiele toepassingen te ontwerpen. Visual Studio is uitermate geschikt om Windows applicaties te ontwikkelen omdat er diverse standaardbibliotheken en MFC-klassenbibliotheken met programmeercode worden meegeleverd. Zo kan er op een eenvoudige wijze Windows-kenmerken zoals vensters en keuzemenu s aan een programma gegeven worden. Het uitermate handige debugsysteem is een grote meerwaarde aan Visual Studio. Men kan duidelijk stap per stap in detail debuggen. Verder wordt er ook een volledige versie van de MSDN library meegeleverd. Visual Studio is ontworpen om het.net framework te ondersteunen. Figuur 1.14: Visual Studio 2013

21 HOOFDSTUK 1. SITUERING Team Foundation Server Beheer je repositories, build processen, testinfrastructuur en lab deployment allemaal tijdens het gemakkelijk samenwerken en rapporteren van de status. Team Foundation Server (TFS) ondersteunt het team van ontwikkelaars bij het verbinden, samenwerken en tijdig afleveren van resultaten. TFS is gecreëerd om meer uit het team van ontwikkelaars te krijgen. Het is de applicatie lifecycle management hub voor Visual Studio. Het stelt alle belanghebbenden in staat om deel te nemen aan het ontwikkel proces met het gebruik van slechts 1 enkele solution. TFS wordt gebruikt om zowel projecten als teams te managen. Het gebruik van TFS zal resulteren in een snellere ontwikkeling van de software. Figuur 1.15: Team Foundation Server

22 HOOFDSTUK 1. SITUERING 15 TFS biedt de volgende functies: Version control Check-in, check-out, manage versies, of gebruik merging om controle over het teamproject te behouden. Ondersteuning voor zowel gecentraliseerde versie controle (Team Foundation Version Control) als voor gedistribueerde versie controle (Git) in TFS geeft het team de flexibiliteit om de versie controle technologie te gebruiken naar keuze. Agile planning & samenwerking Gebruik de agile werkwijzen in uw eigen tempo met behulp van templates voor Scrum, Agile of CMMI. Het is ook mogelijk om third party templates te gebruiken of zelf een template te creã ren. Werk samen met elke betrokkene bij het project gedurende het ontwikkelproces door het gebruik van werkitems, Kanban boards, en feedback verzoeken zodat iedereen die betrokken is bij het project geïntegreerd kan worden in de workflow. Build Vat bugs en andere quality issues vroegtijdiger in de ontwikkeling. Met het gebruik van build is er een continue integratie om code te valideren op clean configuraties en een integratie van testen voor extra zekerheid. Blijf up-to-date over de laatste succesvolle build vanaf uw project homepage of binnen Visual Studio. Web-based test case management Autoriseer en executeer testen op afstand, wat het gemakkelijker maakt voor alle teamleden om deel te nemen in de test case reviews. Ook bestaat de mogelijkheid om unit testen te profileren om betere code te ontwikkelen door middel van het opvolgen van de end-to-end flow van de code, inclusief de unit test zelf. Reporting Volg werkitems met behulp van reporting in TFS om rapporten op basis van de huidige stand van de werkzaamheden te genereren. Query of maak werkitems favorieten om snel informatie te verwerven.

23 HOOFDSTUK 1. SITUERING Telerik UI for Windows Universal De eerste native user interface (UI) controls om Universal Windows apps te ontwikkelen. UI for Windows Universal biedt de volgende functies: Build apps once, deploy on all Windows devices UI voor Windows Universal bespaart veel tijd voor Windows ontwikkelaars omdat men de code slechts 1 keer moet schrijven, en herbruiken voor zowel Windows Phone 8.1 en Windows 8.1 apps. Windows Store ready UI Strikte naleving van de Windows Store design richtlijnen. Native Universal Windows Controls Natively built, draait op zowel Windows 8.1 en Windows Phone 8.1. Designed for touch Speciaal ontworpen voor de Windows 8 en Windows Phone touch omgeving. Delightful UI Deze suite volgt de design richtlijnen van zowel Windows 8.1 en Windows Phone 8.1 en biedt een prachtige UI in uw applicaties. Unmatched performance Geavanceerde UI virtualisatie garandeert uitzonderlijke prestaties van uw applicatie.

24 HOOFDSTUK 1. SITUERING ReSharper ReSharper (R#) is een tool die men kan gebruiken in Visual Studio. Deze tool maakt Microsoft Visual Studio een veel betere Integrated Development Environment (IDE). ReSharper gaat de functies van Visual Studio uitbreiden. ReShaper biedt volgende functies en ondersteuningen: Code analysis Resharper breidt Visual Studio uit met meer dan 1700 code inspecties voor C#, VB.NET, ASP.NET, JavaScript, TypeScript en andere technologieã n. Voor de meeste inspecties biedt ReSharper een quick-fix (gloeilamp icoontje) om code te verbeteren. Navigation and search ReSharper helpt onmiddellijk te landen op elke code in een solution, onafhankelijk hoe groot het is. Het helpt ook met het navigeren van elk symbool naar gerelateerde code, zoals implementaties van een interface, extensie methoden van een klasse of toepassingen van een field. Refactorings Meer dan 40 refactorings en meer dan 200 context acties helpen om veilig code te organiseren en verplaatsen in een solution, verantwoordelijkheid te verdelen, ontkoppelen, de complexiteit te verminderen, of gewoon gebruik maken van een alternatieve taal syntax. Code formatting and cleanup Configureer en pas toe welke codering stijl u en uw team het beste schikt. Codering stijl en formattering instellingen voor C# VB.NET, ASP.NET, JavaScript, TypeScript en andere programmeertalen kunnen worden toegepast in elke scope, van een selectie tot een solution. Code generation ReSharper kan veel code voor u creëren, van nieuwe files en klassen tot conditionele blokken, van methoden en properties tot gelijkheid controles. Figuur 1.16: ReSharper

25 Hoofdstuk2 Bespreking In dit hoofdstuk wordt omschreven hoe de opdracht tot stand is gekomen. Zowel onderzoek, gewenste resultaat, aanpak, en tussenresultaten zullen hier aan bod komen. Vooraleer de mede ontwikkeling van Maät van start kon gaan is er een korte tutorial gevolgd. De tutorial leert de basis om een Windows Store Application te maken. Het is een korte en duidelijke tutorial. Een goede kennismaking met de technologie. De link van de tutorial: aspx 2.1 Onderzoek Bij het toekomen aan het bedrijf vonden er de eerste twee dagen inleidingen en presentaties plaats. Hier is er zowel algemene uitleg als gebruikte technologieën als handleidingdocumenten toegelicht. Er is belangrijke documentatie ter beschikking met tips en richtlijnen voor bij het ontwikkelen van de applicatie. Bij de integratie in het project is het belangrijk dat Bijlage A wordt doorgenomen en gerespecteerd. 18

26 HOOFDSTUK 2. BESPREKING Ontwikkeling configuratieschermen van lijsten In de applicatie moeten lijsten volledig geconfigureerd kunnen worden. Een lijst bestaat uit: Gegevens: Items: Code (uniek) Naam Omschrijving Is meta (ja/neen) Gegevens: Code (uniek) Naam Omschrijving Volgordenummer Is actief (ja/neen) De doelstelling is het ontwikkelen van de schermen waar lijsten volledig geconfigureerd kunnen worden.

27 HOOFDSTUK 2. BESPREKING Streefdoel In dit gedeelte komen de visuele en functionele doelstellingen aan bod. Configuratie overzichtscherm Allereerst moet het scherm voorzien worden met een tegel die het configureren van lijsten aantoont. Wanneer op deze tegel wordt geklikt, moet er een navigatie plaatsvinden naar het scherm met een overzicht van alle lijsten. Figuur 2.1: Configuratie overzichtscherm

28 HOOFDSTUK 2. BESPREKING 21 Lijsten overzichtscherm Het overzichtscherm, waar alle bestaande lijsten worden weergegeven, heeft volgende doelstellingen. Elke lijst moet worden voorgesteld door een aparte tegel. In deze tegel moet de naam, code en omschrijving van de lijst in kwestie worden afgebeeld. Wanneer op een tegel wordt geklikt, moet een navigatie plaatsvinden naar het scherm waar de lijst in kwestie kan worden geconfigureerd. Bij rechtermuisklik op het scherm moet onderaan een commandobar verschijnen. Op deze commandobar moet een knop voorzien worden met de optie om een nieuwe lijst toe te voegen. Wanneer op deze knop wordt geklikt, moet de navigatie plaatsvinden naar het scherm waar de gebruiker een nieuwe lijst kan creëren. Dit is hetzelfde scherm waar de gebruiker een bestaande lijst kan configureren. Figuur 2.2: Scherm met overzicht van alle lijsten

29 HOOFDSTUK 2. BESPREKING 22 Configuratiescherm lijst Het configuratiescherm van een lijst heeft volgende doelstellingen. Aangezien een lijst bestaat uit gegevens en een aantal items, moeten er 2 opties voorzien worden. Enerzijds een optie Definitie waar de gebruiker de gegevens van de lijst kan aanpassen. Anderzijds een optie Items waar een overzicht van de items weergeven wordt. Wanneer optie Definitie geselecteerd wordt, moeten de gegevens van de lijst aangepast kunnen worden. Er zijn 3 mogelijke scenario s, namelijk: Scenario 1 De lijst in kwestie is een meta lijst. In dit geval moeten de gegevens read-only zijn. Scenario 2 De lijst in kwestie is een gewone lijst. In dit geval moet de gebruiker enkel de naam en omschrijving kunnen aanpassen. Scenario 3 Creatie van een nieuwe lijst. Bij nieuwe lijsten de gebruiker de code invullen. De code van een lijst is uniek. Dit wil zeggen, wanneer een lijst wordt toegevoegd met een reeds bestaande code moet een foutmelding verschijnen. De visuele en functionele aspecten van deze foutmelding komen verder in het hoofdstuk aan bod. Figuur 2.3: Configuratiescherm van een lijst in definitie toestand

30 HOOFDSTUK 2. BESPREKING 23 Wanneer men optie Items selecteert moet de gebruiker een overzicht van de items te zien krijgen. De items moeten gerangschikt staan volgens volgordenummer. Alsook moet een zoekfunctie voorzien worden. De zoekfunctie moet zoeken op de naam en code van de items. Tot slot moet er een knop voorzien worden om een nieuw item toe te voegen. De knop moet onbedienbaar zijn wanneer het gaat om een meta lijst. Figuur 2.4: Configuratiescherm van een lijst in items toestand

31 HOOFDSTUK 2. BESPREKING 24 Bij het selecteren van een item moet de gebruiker de gegevens van dit item kunnen aanpassen. Er zijn 3 mogelijke scenario s, namelijk: Scenario 1 Het item is een meta item. In dit geval moeten alle gegevens read-only zijn. Scenario 2 Het item is een normaal item. In dit geval moet de gebruiker alle gegevens, uitgezonderd de code, kunnen aanpassen. Scenario 3 Creatie van een nieuw item. In dit geval kan de gebruiker de code invullen. De code van een item is uniek. Dit wil zeggen, wanneer een item wordt toegevoegd met een reeds bestaande code moet een foutmelding verschijnen. De visuele en functionele aspecten van deze foutmelding komen verder in het hoofdstuk aan bod. Figuur 2.5: Configuratiescherm van een lijst in item-definitie toestand

32 HOOFDSTUK 2. BESPREKING 25 Het saven van de lijst moet gebeuren bij een hyperlink naar een ander scherm, terugnavigatie en het wisselen van een control op het scherm. Tijdens het saven moet er via een spinner of ladenbalkje duidelijk gemaakt worden dat er een save aan de gang is. Wanneer het saven mislukt, moet er een foutmelding getoond worden. De foutmelding moet voorzien zijn van een standaard foutmeldingstekst die aantoont dat er iets misgelopen is bij het saven. Wanneer deze foutmelding verschijnt, moeten er 2 mogelijke acties voor de gebruiker voorzien worden. Namelijk: Actie 1: Opniew proberen In dit geval moet de gebruiker terug naar het scherm gebracht worden waar hij aan het configureren was. De gebruiker moet zich in de actuele toestand van het scherm bevinden waar hij wijzigingen heeft aangebracht. Actie 2: Wijzigingen ongedaan maken Ook in dit geval moet de gebruiker terug naar het scherm gebracht worden waar hij aan het configureren was. De gebruiker moet zich in de initiële toestand van het scherm bevinden. De wijzigingen die de gebruiker had aangebracht moeten ongedaan gemaakt zijn. Figuur 2.6: Foutmelding bij het saven van een lijst

33 HOOFDSTUK 2. BESPREKING Oplossing met tussenresultaten Hier wordt de oplossing en aanpak van het streefdoel besproken. Ook tussenresultaten worden gepresenteerd. Aangezien MVVM-patroon in het project wordt gehanteerd is alle logica in het viewmodel gecodeerd en alle visuele elementen in de view. Het principe van MVVM staat uitgelegd bij gebruikte technologieën. Configuratie overzichtscherm Zoals in streefdoel beschreven staat moet op dit scherm een tegel voorzien worden die de navigatie naar het scherm met een overzicht van alle lijsten voor zich neemt. 1. View Bij dit scherm is simpelweg 1 enkele button gedefinieerd. De Command property van de button is gebind op de gepaste property van het viewmodel. Voor de opmaak van de button is gebruik gemaakt van een vóór-gedefinieerde stijl. Figuur 2.7: Button element in XAML De opmaak van alle controls zijn in een XAML resource file gecodeerd. Het voordeel hiervan is dat deze stijl slechts 1 keer moet worden gedefinieerd en kan worden herbruikt doorheen de applicatie. Wanneer een verandering van opmaak gewenst is, moet deze slechts op 1 enkele plaats worden aangepast. Figuur 2.8: XAML resource style

34 HOOFDSTUK 2. BESPREKING Viewmodel In de viewmodelklasse is de gepaste property, in dit geval van het type RelayCommand, aangemaakt waarop de view kan binden. Figuur 2.9: Property van het type RelayCommand Op deze manier wordt de buttonklik opgevangen. Bijgevolg is de gewenste logica geïmplementeerd. In dit geval is dit de navigatie naar het volgende scherm. De navigatieservice was reeds ontwikkeld en doorheen de applicatie gebruikt. De implementatie van deze navigatieservice staat beschreven in Bijlage B. Het tussenresultaat van dit scherm, met geïmplementeerde navigatie bij een klik op de button, ziet er als volgt uit. Figuur 2.10: Tussenresultaat van het configuratie overzichtscherm

35 HOOFDSTUK 2. BESPREKING 28 Lijsten overzichtscherm Zoals in streefdoel beschreven staat is dit het scherm met het overzicht van alle lijsten. Elke lijst moet vertegenwoordigd zijn door een tegel met gegevens in. Alsook een optie om een lijst toe te voegen is een doelstelling. 1. View Om de lijsten te visualiseren als tegels is gebruik gemaakt van een GridView. Deze heeft een binding op de property van het viewmodel die alle lijsten representeert. Elke lijst is voorgesteld aan de hand van een GridViewItem met de nodige binding om de informatie in de tegel te visualiseren. De opmaak is telkens gedefinieerd in de XAML resource file. Om een lijst toe te voegen is gebruik gemaakt van een Windows control, namelijk de CommandBar. Deze verschijnt bij rechtermuisklik. Op deze commandobar is de button, met binding op de gepaste property van het viewmodel, geïmplementeerd. 2. Viewmodel Figuur 2.11: CommandBar met button Bij het toekomen op het scherm wordt de load methode uitgevoerd. Deze methode is een async methode. Dit wil zeggen dat de methode asynchroon wordt uitgevoerd. Het voordeel hiervan is dat de applicatie kan doorgaan met de acties die op dat moment aan de gang zijn, zonder invloed te ondervinden of een niet responsieve user interface te verkrijgen. Bij het gebruik van asynchrone methoden komt nog een groot voordeel kijken. In een asynchrone methode kan men het keyword await toepassen. Zie onderstaande figuur. Figuur 2.12: Toepassing van keyword await Op deze manier worden alle bestaande lijsten opgehaald met behulp van de gepaste GetListSetAsync methode. Het keyword await zorgt ervoor dat alle code na de await pas wordt uitgevoerd wanneer de ge-awaite GetListSetAsync methode afgehandeld is. De property die alle lijsten bevat is beschikbaar voor de view vanuit databinding. De properties zijn uitgerust met notification events waar nodig. Deze events zorgen ervoor dat de view geüpdatet wordt bij een wijziging van de propertywaarde.

36 HOOFDSTUK 2. BESPREKING 29 De navigatieservice wordt getriggerd, vanuit de view, bij een klik op een lijsttegel. Aan de navigatieservice wordt de geselecteerde lijst als parameter meegegeven. Het tussenresultaat van dit scherm ziet er als volgt uit. Figuur 2.13: Tussenresultaat van het lijsten overzichtscherm

37 HOOFDSTUK 2. BESPREKING 30 Configuratiescherm lijst Zoals in het streefdoel beschreven staat is dit het scherm waar de lijst in kwestie volledig geconfigureerd kan worden. 1. View De view bestaat uit de implementatie van enkele usercontrols. Meer bepaald 6, voor elke verticale configuratiekolom is een usercontrol ontwikkeld. Merk op bij onderstaande afbeelding zijn 4 usercontrols aangegeven. Zowel de Definitie van de lijst als de foutmelding usercontrol is niet zichtbaar. Figuur 2.14: Genummerde usercontrols Een usercontrol bestaat uit gewenste XAML controls, opmaak en indien nodig beperkte logica. Elke usercontrol staat in voor een gedeelte van de UI (user interface). Het voordeel van usercontrols is dat deze doorheen de applicatie herbruikt kunnen worden. Bijvoorbeeld, ontleden we usercontrol 1 van bovenstaande figuur. Deze bestaat uit 2 TextBlocken, namelijk ABC en [ABC], en een GridView met 2 GridViewItems, namelijk: Definitie en Items. Het probleem dat we hier ondervinden is het volgende. TextBlock 1 moet op de naam van de lijst gedatabind worden en TextBlock 2 op de code van de lijst. Dit kan niet rechtstreeks gedatabind worden aangezien de usercontrol geen communicatie met het viewmodel heeft. Daarbij zou de usercontrol te specifiek worden waardoor de herbruikbaarheid vervalt.

38 HOOFDSTUK 2. BESPREKING 31 De oplossing hiervoor is het gebruik van dependency properties. Zoals de naam zegt, zijn dit afhankelijke properties. Deze dependency properties worden in de achterliggende code van de usercontrol gedefinieerd. De dependency properties hebben in dit geval de naam Title en Code, en zijn beide van het type string aangezien het over TextBlocken gaat. Onderstaande figuur weergeeft de dependency property voor TextBlock 1, namelijk de Title. Figuur 2.15: Dependency property van het type string De Text property van TextBlock 1 moet gebind worden op de hiervoor aangemaakte dependency property in de achterliggende code. Opgelet, deze is hoofdlettergevoelig! Zie onderstaande figuur. Figuur 2.16: TextBlock 1 met binding op de dependency property Op dit moment zal de TextBlock nog geen data visualiseren. Dit komt doordat er nog geen data op de Title dependency property gebind is. Dit gebeurt bij de implementatie van de usercontrol op het werkelijke scherm. Merk op dat de aangemaakte dependency properties toegankelijk zijn. Figuur 2.17: Implementatie van een usercontrol Voor meer code over dit voorbeeld wordt verwezen naar Bijlage C.

39 HOOFDSTUK 2. BESPREKING 32 Naast de implementatie van de nodige usercontrols met gepaste databinding, is een Visual State Manager geïmplementeerd. In de Visual State Manager zijn alle mogelijke visuele toestanden gedefinieerd. In onderstaande figuur een voorbeeld van een visuele toestand, namelijk de ShowDefinition toestand. Bij deze visuele toestand zijn slechts de bovenste twee usercontrols zichtbaar. Figuur 2.18: Een gedefinieerde VisualState van een VisualStateManager Tot slot is een EnumToVisualState control gebruikt. Deze control maakt het mogelijk om vanuit het viewmodel de visuele toestand te bepalen. 2. Viewmodel In de viewmodelklasse zijn de nodige properties en commands, waarop de view kan databinden, geïmplementeerd. Ook informeert het de view over toestand veranderingen via notification events. Aan de hand van een enum, die bestaat uit alle visuele toestandnamen van de Visual State Manager in de view, wordt in het viewmodel de gewenste visuele toestand op de juiste moment gezet. Figuur 2.19: Enum en property Voor meer voorbeeldcode, waarbij de visuele toestand wordt gezet vanuit het viewmodel, wordt verwezen naar Bijlage D.

40 HOOFDSTUK 2. BESPREKING 33 Bij het mislopen van het saveproces wordt dit opgevangen. Bijgevolg wordt de correcte visuele toestand gezet, om de foutmelding te tonen. Bij het verschijnen van deze foutmelding kan de gebruiker 2 acties ondernemen, namelijk: Opnieuw proberen en Wijzigingen ongedaan maken. Samenvattend is in de viewmodelklasse de logica achter onderstaande acties gecodeerd. Gebruikmakend van de keywords async en await waar nodig. Saven Visuele toestand bepalen Lijst toevoegen Item toevoegen Mogelijke acties bij de foutmelding Zoekfunctie op de items 3. Model (data repository) Codering van beperkte validatie logica. Het tussenresultaat van dit scherm in ShowDefinition toestand, ziet er als volgt uit. Figuur 2.20: Configuratiescherm van een lijst in lijst-definitie toestand

41 HOOFDSTUK 2. BESPREKING Ontwikkeling configuratieschermen van logs In de applicatie moeten logs volledig geconfigureerd kunnen worden. Een log is een verzameling van informatie over een zaak waar het van belang is om informatie over bij te houden. Een voorbeeld van een log is: Inventaris van stalen. Over deze log moet allerlei informatie worden bijgehouden, zoals bijvoorbeeld: aantal verstuurde stalen, type staal, moment van stockage staal,... Dit zijn de kolommen van de log. Een log kan verschillende versies hebben, waarbij slechts 1 versie geconfigureerd kan worden. Dit wordt de werkversie genoemd. Een logversie bestaat uit: Gegevens: Code (uniek) Naam Omschrijving Versienummer Is actief (ja/neen) Verbonden aan (instelling, patiënt of studie) Meervoudig voorkomen (ja/neen) Kolommen: Gegevens: Code (uniek) Naam Omschrijving Volgordenummer Is actief (ja/neen) Is deel van de sleutel (ja/neen) Datatype (tekst, ja/neen, datum, lijst of datum en tijd) De doelstelling is het ontwikkelen van de schermen waar logs volledig geconfigureerd kunnen worden.

42 HOOFDSTUK 2. BESPREKING Streefdoel In dit gedeelte komen de visuele en functionele doelstellingen aan bod. Configuratie overzichtscherm Dit is hetzelfde scherm als bij de lijsten. Hier moet een extra tegel voorzien worden die het configureren van logs aantoont. Wanneer op deze tegel wordt geklikt, moet een navigatie plaatsvinden naar het scherm met een overzicht van alle logs. Figuur 2.21: Configuratie overzichtscherm

43 HOOFDSTUK 2. BESPREKING 36 Logs overzichtscherm Het overzichtscherm, waar alle bestaande logs worden weergegeven, heeft volgende doelstellingen. Elke log moet worden voorgesteld door een aparte tegel, net zoals bij de lijsten. In deze tegel moet de naam van de log worden afgebeeld. Wanneer op een tegel wordt geklikt, moet de navigatie plaatsvinden naar het scherm waar de log geconfigureerd kan worden. Net zoals bij de lijsten, moet bij rechtermuisklik op de pagina een commandobar verschijnen. In deze commandobar moet een knop voorzien worden met optie om een nieuwe log toe te voegen. Wanneer op deze knop wordt geklikt, moet de navigatie plaatsvinden naar het scherm waar de gebruiker een nieuwe log kan creëren. Dit is hetzelfde scherm waar de gebruiker een bestaande log kan configureren Figuur 2.22: Logs overzichtscherm

44 HOOFDSTUK 2. BESPREKING 37 Configuratiescherm log Het configuratiescherm van een log heeft volgende doelstellingen. Aangezien een log verschillende versies kan bevatten, moet hiervoor aan de hand van een dropdown menu een optie voorzien worden om te wisselen tussen deze versies. Aan de hand van een button moet de gebruiker zowel de werkversie van de log kunnen opvragen als de werkversie freezen. Wanneer optie Definitie geselecteerd wordt, moet de gebruiker de gegevens van de logversie in kwestie kunnen aanpassen. Er zijn 3 mogelijke scenario s, namelijk: Scenario 1 De versie van de log is de werkversie. In dit geval moeten alle gegevens van de log aanpasbaar zijn met uitzondering op de code. Scenario 2 De versie van de log is een frozen versie. In dit geval moeten de gegevens read-only zijn. Scenario 3 Creatie van een nieuwe log met werkversie. In dit geval kan de gebruiker de code invullen. De code van een log is uniek. Dit wil zeggen, wanneer een log wordt toegevoegd met een reeds bestaande code, moet er een foutmelding verschijnen. De visuele en functionele aspecten van deze foutmelding komen verder in het hoofdstuk aan bod. Figuur 2.23: Logs overzichtscherm

45 HOOFDSTUK 2. BESPREKING 38 Wanneer men optie Kolommen selecteert moet de gebruiker een overzicht van de kolommen te zien krijgen. De kolommen moeten gerangschikt staan volgens volgordenummer. Alsook moet een zoekfunctie voorzien worden. De zoekfunctie moet zoeken op de naam en code van de kolommen. Tot slot moet een knop voorzien worden om een nieuwe kolom toe te voegen. De knop moet onbedienbaar zijn wanneer het gaat om een frozen logversie. Figuur 2.24: Configuratiescherm van een log in kolommen toestand

46 HOOFDSTUK 2. BESPREKING 39 Bij het selecteren van een kolom moeten er 2 opties voorzien worden. Enerzijds een optie Definitie waar de gebruiker de gegevens van de geselecteerde kolom kan aanpassen. Anderzijds een optie Waarden waar de gebruiker het datatype van geselecteerde de kolom kan wijzigen. Bij het selecteren van optie Definitie moeten de gegevens van de kolom aangepast kunnen worden. Er zijn 2 mogelijke scenario s, namelijk: Scenario 1 De logversie is een frozen versie. In dit geval moeten alle gegevens read-only zijn. Scenario 2 De logversie is de werkversie. uitgezonderd de code. In dit geval moeten alle gegevens aanpasbaar zijn Figuur 2.25: Configuratiescherm van een log in kolom-definitie toestand

47 HOOFDSTUK 2. BESPREKING 40 Bij het selecteren van optie Waarden moet het datatype van de kolom aangepast kunnen worden. Bij optatie van datatype Lijsten moet de gebruiker een keuze kunnen maken tussen de bestaande lijsten. Waarbij de gebruiker ook kan navigeren naar deze gekozen lijst. Figuur 2.26: Configuratiescherm van een log in kolom-waarden toestand De logversie moet gesavet worden bij een hyperlink naar een ander scherm, terugnavigatie en het wisselen van een control op het scherm. Tijdens het saven moet er via een spinner of ladenbalkje duidelijk gemaakt worden dat er een save aan de gang is. Wanneer het saven mislukt, moet er een foutmelding getoond worden. Deze foutmelding met onderneembare acties, is dezelfde als bij de lijsten.

48 HOOFDSTUK 2. BESPREKING Oplossing met tussenresultaten Hier wordt de oplossing en aanpak van het streefdoel besproken. Ook tussenresultaten worden gepresenteerd. Aangezien MVVM-patroon in het project wordt gehanteerd is alle logica in het viewmodel gecodeerd en alle visuele elementen in de view. Het principe van MVVM staat uitgelegd bij gebruikte technologieën. Configuratie overzichtscherm Zoals in streefdoel beschreven staat moet op dit scherm een extra tegel voorzien worden die de navigatie naar het scherm met het overzicht van alle logs implementeert. 1. View In de view is simpelweg een extra button toegevoegd. Deze button heeft een binding op de gepaste property in het viewmodel, waar de logica wordt behandeld. 2. Viewmodel In de viewmodelklasse is de gepaste property aangemaakt waarop de button van de view kan binden. Op deze manier wordt de buttonklik opgevangen. Bijgevolg is de gewenste logica geïmplementeerd. In dit geval is dit de navigatie naar het volgende scherm. Het tussenresultaat van dit scherm ziet er als volgt uit. Figuur 2.27: Tussenresultaat configuratie overzichtscherm

49 HOOFDSTUK 2. BESPREKING 42 Lijsten overzichtscherm Zoals in streefdoel beschreven staat is dit het scherm met het overzicht van alle logs. Elke log moet vertegenwoordigd zijn door een tegel met gegevens in. Alsook een optie om een log toe te voegen is een doelstelling. 1. View Om de logs te visualiseren als tegels wordt hetzelfde gedaan als bij de lijsten. Dit wordt verwezenlijkt aan de hand van een GridView die een binding heeft op de gepaste property in het viewmodel. In dit geval zal deze property een collectie zijn van alle logs. Elke log wordt voorgesteld door een GridViewItem. Om een log toe te voegen, is net zoals bij de lijsten, een commandobar gedefinieerd. Op de commandobar is de button, met binding op de gepaste property van het viewmodel, geïmplementeerd. 2. Viewmodel Alle logs worden, net zoals bij de lijsten, opgehaald op de gepaste manier. Dit gebeurd met de implementatie van de keywords async en await. Alle logs zijn beschikbaar als property waarop de view kan databinden. De navigatieservice wordt getriggerd, vanuit de view, bij een klik op een logtegel. Aan de navigatieservice wordt de geselecteerde log als parameter meegegeven. Het tussenresultaat van dit scherm ziet er als volgt uit. Figuur 2.28: Tussenresultaat logs overzichtscherm

50 HOOFDSTUK 2. BESPREKING 43 Configuratiescherm lijst Zoals in het streefdoel beschreven staat is dit het scherm waar de log in kwestie volledig geconfigureerd kan worden. 1. View In de view, net zoals bij de lijsten, zijn verschillende usercontrols, voorzien van de nodige dependency properties, geïmplementeerd. Elke usercontrol staat in voor een gedeelte van de UI. Bij het implementeren van een usercontrol, worden de bijhorende dependency properties gedatabind op de hiervoor aangemaakte properties in het viewmodel. Alsook bevindt zich hier de volledige implementatie van een Visual State Manager met nodige binding en controls. Hier wordt gedefinieerd welke usercontrol in welke toestand zichtbaar is. Vanuit het viewmodel wordt de visuele toestand bepaald. Tot slot is de dropdown, met binding op de gepaste properties van het viewmodel, geïmplementeerd. De dropdown maakt het mogelijk om tussen de versies van de log te wisselen. 2. Viewmodel In de viewmodelklasse zijn de nodige properties en commands, waarop de view kan databinden, aangemaakt. Ook informeert het de view over toestand veranderingen via notification events. Tot slot is in die viewmodelklasse de logica achter onderstaande acties gecodeerd. Gebruikmakend van de keywords async en await waar nodig. Saven Visuele toestand bepalen Log toevoegen Kolom toevoegen Wisselen tussen versies van de log Werkversie creëren Mogelijke acties bij de foutmelding Zoekfunctie op de kolommen 3. Model (data repository) Codering van beperkte validatie logica.

51 Hoofdstuk3 Resultaten In dit hoofdstuk wordt het eindresultaat visueel gepresenteerd met een korte toelichting. 3.1 Configuratieschermen van lijsten Onderstaande figuur is het scherm met het overzicht van alle bestaande lijsten. rechtermuisklik, verschijnt de optie om een lijst toe te voegen. Bij Figuur 3.1: Overzichtscherm van de lijsten 44

52 HOOFDSTUK 3. RESULTATEN 45 Het volgende scherm is het configuratiescherm van een lijst. In onderstaande figuur bevindt het configuratiescherm zich in lijst-definitie toestand. In deze staat kan de gebruiker de gegevens van de lijst wijzigen. Figuur 3.2: Configuratiescherm van een lijst in lijst-definitie toestand Hetzelfde configuratiescherm in nieuwe-lijst toestand, ziet er als volgt uit. Figuur 3.3: Configuratiescherm van een lijst in nieuwe-lijst toestand

53 HOOFDSTUK 3. RESULTATEN 46 Bij de selectie van een item kan de gebruiker de gegevens het geselecteerde item wijzigen. Bovendien kan de gebruiker de zoekfunctie op items hanteren. Figuur 3.4: Configuratiescherm van een lijst in item-definitie toestand Het configuratiescherm in onderstaande figuur bevindt zich in de nieuw-item toestand. In deze staat kan de gebruiker een nieuw item toevoegen. Figuur 3.5: Configuratiescherm van een lijst in nieuw-item toestand

54 HOOFDSTUK 3. RESULTATEN 47 Tot slot, de foutmelding bij het mislopen van een configuratie. De gebruiker kan 2 mogelijke acties ondernemen wanneer deze foutmelding voor komt. Figuur 3.6: Configuratiescherm van een lijst met foutmelding

55 HOOFDSTUK 3. RESULTATEN Configuratieschermen van logs Onderstaande figuur is het scherm met het overzicht van alle logs. Om een log te configureren dient de gebruiker een selectie te maken. Bij rechtermuisklik, verschijnt de optie om een log toe te voegen. Figuur 3.7: Overzichtscherm van de logs

56 HOOFDSTUK 3. RESULTATEN 49 Het volgende scherm is het configuratiescherm van een log. In onderstaande figuur bevindt het configuratiescherm zich in de log-definitie toestand. In deze staat kan de gebruiker de gegevens van de log wijzigen. Switchen tussen versies is mogelijk door een optie in de dropdown te selecteren. Figuur 3.8: Configuratiescherm van een log in log-definitie toestand

57 HOOFDSTUK 3. RESULTATEN 50 Wanneer het configuratiescherm zich in kolom-waarden toestand bevindt, kan de gebruiker het datatype van de kolom aanpassen. Figuur 3.9: Configuratiescherm van een log in kolom-waarden toestand Bij datatype Lijst kan de gebruiker een lijst kiezen en hiernaar navigeren om eventueel wijzingen aan te brengen. Figuur 3.10: Configuratiescherm van een log in kolom-waarden toestand

58 Hoofdstuk4 Besluit De doelstellingen bij de configuratieschermen van de lijsten zijn volledig behaald. De gebruiker kan lijsten volledig configureren. Bij mogelijke problemen tijdens het saven zal de gebruiker deze kunnen behandelen op de gewenste manier met behulp van een overzichtelijke foutmelding. De doelstellingen bij de configuratieschermen van de logs zijn ook volledig behaald met uitzondering op het freezen van een logversie. Hier moet in de data repository de juiste mapping geschreven worden om dit te voltooien. Dit is een gedeelte waar een collega een automapper voor geschreven heeft. Bij implementatie van deze automapper is dit gedeelte voltooid. Tijdens het verloop van de stage zijn de configuratieschermen gebruikt bij demonstraties voor klanten. Dit motiveerde mij om telkens zo snel mogelijk een mooi en efficiënt resultaat neer te zetten. Op het einde van de stageperiode is bevestigd door de bedrijfsleider, Mark Devos, dat de ontwikkelde schermen in het werkelijke project gaan worden opgenomen. Dit mits mogelijk enkele aanpassingen en uitbreidingen. Dit was voor mij een zeer mooie afsluiter van een leerrijke stageperiode. De stage- en bachelorproef was een zeer positieve ervaring. Het was een uiterst leerrijk proces, zowel op vlak van programmeerkennis als op vlak van integratie en communicatie in een team. Tot slot is het mij deze stageperiode heel duidelijk geworden hoe het toepassen van het MVVM-patroon resulteert in een overzichtelijke werkstructuur voor ontwikkelaars. Waarbij de onderhoudbaarheid van de code sterk verbetert. 51

59 Bibliografie [1] Online video cursus over het ontwikkelen van Windows Universal apps met C# en XAML. developing-universal-windows-apps-with-c-and-xaml [2] Stack Overflow is een vraag en antwoord site voor professionele en enthousiaste programmeurs. [3] Voorbeeld met uitleg over de EnumToVisualState Control die in de applicatie is toegepast. aspx [4] Voorbeeld met uitleg over de NumericTextBoxBehavior die in de applicatie is toegepast. [5] Informatie over Universal Windows applicaties. [6] Informatie over Windows Runtime. source=rss&utm medium=rss&utm campaign=windows-runtime-reimagining-app-development-with-the-windows-ru [7] Informatie over programmeertaal C# [8] Informatie over opmaaktaal XAML. Application Markup Language [9] Informatie over het Model-View-ViewModel (MVVM) patroon. 52

60 BIBLIOGRAFIE 53 [10] Informatie over Prism voor Windows Store applicaties. [11] Informatie over ASP.NET Web API. [12] Informatie over Microsoft Azure SQL Database. sql-database-technical-overview/ [13] Informatie over Azure AD Authentication Library. [14] Informatie over Entity Framework 6. Framework [15] Informatie over Microsoft Visual Studio. Visual Studio [16] Informatie over Team Foundation Server. ProductFeatures [17] Informatie over Telerik UI voor Windows Universal applicaties. [18] Informatie over de tool ReSharper. [19] Informatie over Microsoft Behavior Software Development Kit. [20] Visual Studio tips en tricks in verband met de formattering van code. visual-studio-tips-and-tricks-formatting-your-code.aspx

61 BijlageA Codering handleiding Deze documentatie kan geraadpleegd worden voor tips en regels tijdens het coderen van Maät. Om leesbaarheid van code tussen verschillende ontwikkelaars te verbeteren, proberen we vast te houden aan onderstaande codering richtlijnen. A.1 Behaviors Microsoft Behavior SDK wordt gebruikt voor het toepassen van behaviors. Het Behaviors Software Development Kit (SDK) voor Visual Studio 2013 biedt informatie over behaviors, welke stukjes code zijn die hergebruikt kunnen worden om interactiviteit toe te voegen aan uw applicaties. Om een behavior te integreren kan je het op elk object slepen en zijn properties wijzigen zodat het je applicatie schikt. A.2 Gebruikte stijlen Alle gedeelde stijlen/xaml resources die niet op de pagina/control zelf gedeclareerd zijn moeten gedocumenteerd worden. A.3 Project structuur Eén klasse of interface per file. Tenzij de klasse zeer klein is of gerelateerd is aan een klasse dat de hoofdklasse is in de file. 54

62 BIJLAGE A. CODERING HANDLEIDING 55 Het code bestand heeft dezelfde naam als de klasse binnenin. Extra delen kunnen toegevoegd worden voor duidelijkheid. Bijvoorbeeld ListsRepository.GetDto.cs (alle logica op het verkrijgen van) Sub namespaces worden altijd vertegenwoordigd door een correcte foldernaam. A.4 Overzichtelijke klasse file De eerste belangrijke stap om leesbare code te bekomen is het onderhouden van een overzichtelijke klasse file. Verwijder ongebruikte code en grote blokken van commentaar uit oude code. nodig, kunnen deze altijd worden opgehaald via TFS version control history. Indien Verwijder ongebruikte usings, ofwel via een add-in (bv. ReShaper) ofwel in Visual Studio zelf. Eén ongebruikte using is geen ramp, 15 ongebruikte usings verlaagt de leesbaarheid van de code. Figuur A.1 Gebruik witruimte voor de leesbaarheid van de code. Zoals tussen methoden en in blokken code om logica te splitsen. Gebruik de default code formattering.

63 BIJLAGE A. CODERING HANDLEIDING 56 A.5 Klasse structuur Dezelfde structuur toepassen in elke klasse zal iedereen in staat stellen om code gemakkelijk te vinden zonder het toepassen van trucjes zoals regions en commentaar blokken. Volgens onderstaande structuur: Private readonly fields Private fields and constants Constructor Public fields In case of a viewmodel: Bindable properties Bindable commands Public methods In case of a viewmodel: LoadDataAsync / SaveDataAsync Protected / private methods Event handlers, inclusief de callback methode van een MVVM command A.6 Naamgeving XAML x:name XAML controls hebben een naam nodig om toegankelijk te zijn via andere XAML code. Gebruik de volledige variabele naam als het type van de control gekend moet zijn. Vb. x:name= ItemsListView x:uid Dit veld wordt gebruikt door het WindowsRT resources system voor wat ingesteld kan worden van een.resw/.xlf file. Zowel lokalisatie als meer geavanceerde resource tricks op een dependency property (vb. Width) van een UI element. Gebruik de naam van de pagina voor pagina specifieke controls om het vinden waar de resource gebruikt is te vergemakkelijken. Vb. x:uid= LogEntry HeaderKeyFields

64 BIJLAGE A. CODERING HANDLEIDING 57 The name of resources should show what type of resource it is: Converter: x:key= VisibilityConverter Brush: x:key= StaticHeaderBrush Margin: x:key= GridGroupRightMargin ItemTemplate: x:key= LogTileDataTemplate or x:key= LogTileItemTemplate Styles: show what the style can be used for in the name of the style x:key= TileTextStyle TargetType= TextBlock x:key= NavBarButtonStyle TargetType= Button x:key= NoHoverGridViewStyle TargetType= GridView C# Gebruik geen Hungarian notatie (vb. txtsometext, isomeint,... ) voor variabelen. Geef alle variabelen een nuttige complete naam. Neem bijvoorbeeld de naam logentryinfo, hier is onmiddellijk geweten met wat wordt omgegaan. Tenslotte moet er enkel de eerste keer de inspanning worden geleverd om de naam te typen, de rest wordt gedekt door IntelliSense. Afgezien van deze specifieke richtlijnen, is gezond verstand een must in het toepassen van object georiënteerde patronen en architecturale beslissingen. Het is ook van belang om bij twijfels niet te aarzelen om naar de input van een collega te vragen.

65 BijlageB Navigatie Door het gebruik van MVVM moet de navigatie getriggerd worden in het viewmodel en niet in code van de view. De ViewModelBase klasse heeft een property NavigationService dat gebruikt kan worden in elke afgeleide viewmodel. Alle bestaande pagina URL s zijn gedefinieerd in de PageTokens klasse. B.1 Navigatie met parameters Voorbeeld van een navigatie naar de pagina ConfigOverviewList zonder parameters mee te geven: NavigationService.Navigate(PageTokens.ConfigOverviewList, null); Voorbeeld van een navigatie naar de pagina ConfigOverViewList met een querystring als parameter: NavigationService.Navigate(PageTokens.ConfigOverviewList, id=-1 ); Een betere manier om parameters mee te geven met navigatie is het gebruik van de QueryParameterDicti Voorbeeld van navigatie naar de pagina ConfigOverViewList met een dictionary als parameter: var parameters = CreateQueryParameterDictionary(); parameters.add(navigationparameters.context, TempContext.Patient); NavigationService.Navigate(PageTokens.NoteEntry, parameters); 58

66 BIJLAGE B. NAVIGATIE 59 B.2 Parsen van navigatie parameters Bij het toekomen op een pagina, is de complete navigatie string inclusief de meegegeven parameters beschikbaar in de deeplink variabele. Het ophalen van de QueryParameterDictionary van deze string kan simpelweg gedaan worden door de GetQueryStringParameters methode aan te roepen. Deze methode is een extensie methode op string. Voorbeeld: var queryparameters = deeplink.getquerystringparameters(); Het ophalen van de waarden uit deze dictionary kan via de beschikbare extensie methodes. Voorbeeld: private void ParseQueryParameters(QueryParameterDictionary queryparameters) ( IsNew = queryparameters.getbooleanvalue(navigationparameters.isnew); cliniccd = queryparameters.getvalue(navigationparameters.cliniccd); logentryid = queryparameters.getintvalue(navigationparameters.id); )

67 BijlageC UserControl met databinding en implementatie UserControl XAML Figuur C.1: Usercontrol XAML 60

68 BIJLAGE C. USERCONTROL MET DATABINDING EN IMPLEMENTATIE 61 UserControl code behind UserControl implementatie Figuur C.2: UserControl code behind Figuur C.3: UserControl implementatie

69 BijlageD VisualState bepalen vanuit MVVM UserControls Figuur D.1: Usercontrols 62

70 BIJLAGE D. VISUALSTATE BEPALEN VANUIT MVVM 63 Visual State Manager Figuur D.2: Visual State Manager

Universal Windows Application Development

Universal Windows Application Development Universal Windows Application Development Stage- en bachelorproef Bart Bogaerts AP University College Antwerpen Version: June 15, 2015 Outline n 2/31 Outline n 3/31 Stageplaats Calidos Mechelen Werkprocedure:

Nadere informatie

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT Slimmer samenwerken met SharePoint Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT Workflows, forms, reports en data WAAROM KIEZEN VOOR K2? Of u nu workflows moet maken voor items in SharePoint

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

Installatie SQL: Server 2008R2

Installatie SQL: Server 2008R2 Installatie SQL: Server 2008R2 Download de SQL Server 2008.exe van onze site: www.2work.nl Ga naar het tabblad: Downloads en meld aan met: klant2work en als wachtwoord: xs4customer Let op! Indien u een

Nadere informatie

MA!N Rapportages en Analyses

MA!N Rapportages en Analyses MA!N Rapportages en Analyses Auteur Versie CE-iT 1.2 Inhoud 1 Inleiding... 3 2 Microsoft Excel Pivot analyses... 4 2.1 Verbinding met database... 4 2.2 Data analyseren... 5 2.3 Analyses verversen... 6

Nadere informatie

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Page 1 1 Kees Vianen Senior Sales Consultant Technology Solutions Oracle Nederland Agenda Geschiedenis van Oracle Portal Portal

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

Projectplan. Elektronica-ICT Artesis. Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce

Projectplan. Elektronica-ICT Artesis. Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce Elektronica-ICT Artesis Projectplan Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce Projectplan ter voorbereiding van de bachelorproef en stage Academiejaar

Nadere informatie

Selenium IDE Webdriver. Introductie

Selenium IDE Webdriver. Introductie Selenium IDE Webdriver Het Wielsem 10, 5231 BW s- Hertogenbosch, telefoon 073-6409311 e- mail info@testwork.nl internet http://www.testwork.nl 1 Inhoudsopgave 1 Inhoudsopgave... 2 2 Selenium IDE... 3 3

Nadere informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern

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

Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement.

Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement. Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement. Algemeen Met KYOCERA scannen naar UNIT4 Cura Documentmanagement beschikt u over een efficiënte oplossing om uw documenten te scannen

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

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

Business Workflow innovaties in SAP S/4 HANA

Business Workflow innovaties in SAP S/4 HANA Business Workflow innovaties in SAP S/4 HANA Op dit moment vindt er wereldwijd een technologie gebaseerde bedrijfsrevolutie plaats die op het eerste gezicht geen grenzen kent. Met zeer grote snelheid worden

Nadere informatie

Installatie SQL Server 2012

Installatie SQL Server 2012 Installatie SQL Server 2012 Download de SQL Server express net Advanced Services van de website: https://www.microsoft.com/en-us/download/details.aspx?id=29062 klik op Download. Als u een 64 bit variant

Nadere informatie

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: Eenvoudig voorbeeld. Er wordt verondersteld dat er met VS 2008 EXPRESS gewerkt wordt. Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: (Sommige schermafdrukken zijn afkomstig

Nadere informatie

Functionele beschrijving: Scannen naar AFAS Profit.

Functionele beschrijving: Scannen naar AFAS Profit. Functionele beschrijving: Scannen naar AFAS Profit. Algemeen Met de Kyocera Scannen naar AFAS Profit beschikt u over een efficiënte oplossing om uw documenten te scannen naar AFAS Profit. Met deze oplossing

Nadere informatie

Mach3Framework 5.0 / Website

Mach3Framework 5.0 / Website Mach3Framework 5.0 / Website Handleiding Mach3Builders Inhoudsopgave 1 Inloggen...5 1.1 Ingelogd blijven...6 1.2 Wachtwoord vergeten...7 2 Applicatie keuzescherm...8 2.1 De beheeromgeving openen...9 3

Nadere informatie

InterSmart: A Twitter based quiz application for PowerPoint audiences

InterSmart: A Twitter based quiz application for PowerPoint audiences Scriptie ingediend tot het behalen van de graad van PROFESSIONELE BACHELOR IN DE ELEKTRONICA-ICT InterSmart: A Twitter based quiz application for PowerPoint audiences David De Beuckelaer bachelor elektronica-ict

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

Werkomgeving. Android Studio. Android - werkomgeving 1/6

Werkomgeving. Android Studio. Android - werkomgeving 1/6 Android - werkomgeving 1/6 Werkomgeving Android Studio Installatie Ga naar de volgende URL: http://developer.android.com/sdk/index.html Klik op de knop "Download Android Studio for Windows" om het programma

Nadere informatie

Installatie SQL Server 2008R2

Installatie SQL Server 2008R2 Installatie SQL Server 2008R2 Download de SQL Server 2008.exe van onze site: www.2work.nl Ga naar tabblad: Downloads en meld aan met: klant2work en wachtwoord: xs4customer Let op! Indien u een Windows

Nadere informatie

DRIVEN BY AMBITION SUCCESVOL EXACT IMPLEMENTEREN IN DE PRIVATE CLOUD

DRIVEN BY AMBITION SUCCESVOL EXACT IMPLEMENTEREN IN DE PRIVATE CLOUD DRIVEN BY AMBITION SUCCESVOL EXACT IMPLEMENTEREN IN DE PRIVATE CLOUD WOENSDAG 11 MEI INN STYLE, MAARSSEN Introduction Huub van Langerak Expert team Marc Eilander Expert team 3 Agenda Exact private cloud

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

Installatie SQL Server 2014

Installatie SQL Server 2014 Installatie SQL Server 2014 Download de SQL Server Express net advanced Services van de website: https://www.microsoft.com/en-us/download/details.aspx?id=42299 klik op Download. Als u een 64 bit variant

Nadere informatie

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES Day WEB 1APP FOR CONTAINERS 04-10-2018 Lead - Consultant Cloud Infra & Apps@ InSpark Twitter: @Johanbiere Community blog: talkingazure.com

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

IBIS-TRAD Handleiding installatie IBIS-TRAD databases (MS-SQL)

IBIS-TRAD Handleiding installatie IBIS-TRAD databases (MS-SQL) Handleiding installatie IBIS-TRAD databases (MS-SQL) Inhoudsopgave 01 INSTALLATIE IBIS-TRAD DATABASES (MS-SQL) 1 01.01 Stap 1: Installeren IBIS-TRAD databases (MS-SQL) 2 01.02 Stap 2: Rechten verlenen

Nadere informatie

Functionele beschrijving: scannen naar Trivium FORTUNA.

Functionele beschrijving: scannen naar Trivium FORTUNA. Functionele beschrijving: scannen naar Trivium FORTUNA. Algemeen Met KYOCERA scannen naar Trivium FORTUNA beschikt u over een efficiënte oplossing om uw documenten te scannen naar Trivium FORTUNA. Met

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

januari TTNWW Handleiding TST tools voor het Nederlands als Web services in een Workflow Meertens Instituut, Joan Muyskensweg 25, 1096 CJ Amsterdam

januari TTNWW Handleiding TST tools voor het Nederlands als Web services in een Workflow Meertens Instituut, Joan Muyskensweg 25, 1096 CJ Amsterdam januari 2013 TTNWW Handleiding TST tools voor het Nederlands als Web services in een Workflow Meertens Instituut, Joan Muyskensweg 25, 1096 CJ Amsterdam Table of Contents Inleiding... 3 Gebruik van de

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

Is APEX a worthy substitute for Oracle Forms?

Is APEX a worthy substitute for Oracle Forms? your oracle solu+ons partner Is APEX a worthy substitute for Oracle Forms? APEX for mission critical applications: the Groupm business-case By Ronny Boeykens & Stijn Van Raes iadvise o Opgericht in 2004

Nadere informatie

Tips & Tricks: Tip van de maand januari 2009

Tips & Tricks: Tip van de maand januari 2009 Tips & Tricks: Tip van de maand januari 2009 Project Management met Teamcenter 2007 Door: Ramon van Raak Beheert u complexe projecten dan weet u als geen ander dat de projectvoorbereiding de basis legt

Nadere informatie

Functionele beschrijving: scannen naar van Brug software.

Functionele beschrijving: scannen naar van Brug software. Functionele beschrijving: scannen naar van Brug software. Algemeen Met de KYOCERA scannen naar van Brug Software beschikt u over een efficiënte oplossing om uw documenten te scannen naar het Notarieel

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

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV arthur@1secure.nl

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV arthur@1secure.nl SOA Security en de rol van de auditor... ISACA Roundtable 2 juni 2008 Arthur Donkers, 1Secure BV arthur@1secure.nl 1 SOA Web 2.0, web services en service oriented architecture (SOA) is tegenwoordig de

Nadere informatie

MADASTER PLATFORM. IFC export in BIM software. Archicad 21 & Revit 2019

MADASTER PLATFORM. IFC export in BIM software. Archicad 21 & Revit 2019 MADASTER PLATFORM IFC export in BIM software Archicad 21 & Revit 2019 Juni 2018 Inleiding Deze handleiding dient ter ondersteuning van het importeren van uw gebouw naar het Madaster platform. Om u bestand

Nadere informatie

Twee types van invoegtoepassingen

Twee types van invoegtoepassingen Zo gebruik je invoegtoepassingen of add-ins in Excel Van toepassing op Office 2013-2016 Add-ins of invoegtoepassingen zijn extra functies of opdrachten die je aan Officeprogramma s kan toevoegen. Ondanks

Nadere informatie

Siemens workpoints en DHCP options

Siemens workpoints en DHCP options Siemens workpoints en DHCP options Dit document beschrijft de configuratie en werking van een Windows 2003 DHCP server in combinatie met Siemens optipoint en Siemens OpenStage toestellen (aangemeld op

Nadere informatie

Document informatie Revisie: 3 Datum: GrassHopper Installatie en gebruik

Document informatie Revisie: 3 Datum: GrassHopper Installatie en gebruik Document informatie Revisie: 3 Datum: 17-01-2014 GrassHopper Installatie en gebruik Document historie Revisie Datum Door Beschrijving 1 29-10-13 Bastiaan van Kesteren Initiële versie 2 13-12-13 Bastiaan

Nadere informatie

Net2 kaarten bedrukken

Net2 kaarten bedrukken kaarten bedrukken kaarten bedrukken - Welke methode? Er bevinden zich twee pakketen om kaarten te bedrukken in de software. Een basis vast formaat dat al aanwezig is in de software sinds 2003 (V3.16) en

Nadere informatie

Externe toegang met ESET Secure Authentication. Daxis helpdesk@daxis.nl Versie 2.0

Externe toegang met ESET Secure Authentication. Daxis helpdesk@daxis.nl Versie 2.0 Externe toegang met ESET Secure Authentication Daxis helpdesk@daxis.nl Versie 2.0 Inhoudsopgave: Inhoudsopgave:... 1 Inleiding:... 2 Stap 1: Download eenmalig Eset Secure Authentication op uw smartphone...

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

Your view on business On your favorite device

Your view on business On your favorite device ANY2INFO OVER ONS Your view on business On your favorite device Any2info is een ICT-onderneming gespecialiseerd in de ontwikkeling van standaard software waarmee mobiele bedrijfsapps kunnen worden gebouwd

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

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

Applicatie voor het beheer en opvragen van logs uit verschillende Hudson applicaties. Stage opdracht

Applicatie voor het beheer en opvragen van logs uit verschillende Hudson applicaties. Stage opdracht Applicatie voor het beheer en opvragen van logs uit verschillende Hudson applicaties INHOUDSOPGAVE 1 Intro... 4 2 Hudson... 4 3 Jouw functie... 4 4 Stage opdracht... 4 5 Kandidatuur stellen... 5 3 1 Intro

Nadere informatie

VIVA2.0. Opstarten. VIVA2.0 Opstart instructie

VIVA2.0. Opstarten. VIVA2.0 Opstart instructie Opstarten VIVA2.0 VIVA2.0 Opstart instructie CORILUS BV - PELMOLEN 20-3994 XZ HOUTEN - T 0031 (0)30 634 72 50 - F: 0031 (0)30 606 78 71 - info@corilus.nl - www.corilus.nl Voorwoord Beste Viva gebruiker,

Nadere informatie

Installatie van sqlserver

Installatie van sqlserver Installatie van sqlserver Download SQLserver 2005 Express basis van de website van 2work: www.2work.nl, tabblad downloads; beveiligde zone. De inlog gegevens kunnen via de helpdesk aangevraagd worden.

Nadere informatie

React en React Native voor websites en apps

React en React Native voor websites en apps React en React Native voor websites en apps H A N S-PE T E R H ARMSEN HEEFT DI T GE SCH R E V EN IN APRI L 2017 Deze whitepaper is bedoeld voor product owners en beslissers. Hij gaat over React, een JavaScript

Nadere informatie

Verwerken van binnenkomende bedrijfsdocumenten met OpenText Business Center

Verwerken van binnenkomende bedrijfsdocumenten met OpenText Business Center Verwerken van binnenkomende bedrijfsdocumenten met OpenText Business Center Inleiding Een belangrijk component van SAP Invoice Management (SIM) is de herkenning en extractie van relevante velden van een

Nadere informatie

INSTALLATIE EXCHANGE CONNECTOR

INSTALLATIE EXCHANGE CONNECTOR HANDLEIDING INSTALLATIE EXCHANGE CONNECTOR INSTALLATIE EXCHANGE CONNECTOR 0 0 HANDLEIDING INSTALLATIE EXCHANGE CONNECTOR INSTALLATIE EXCHANGE CONNECTOR HANDLEIDING datum: 10-08-2018 1 Inleiding... 1 2

Nadere informatie

Acht stappen voor JSF

Acht stappen voor JSF Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites

Nadere informatie

DE ELEKTRONISCHE IDENTITEITSKAART (EID)

DE ELEKTRONISCHE IDENTITEITSKAART (EID) DE ELEKTRONISCHE IDENTITEITSKAART (EID) MS OFFICE OUTLOOK 2007 (WINDOWS) VERSIE 1.1.1 NL Disclaimer Fedict is niet verantwoordelijk voor om het even welke schade die een derde zou ondervinden ingevolge

Nadere informatie

INHOUD VAN SERVICE CALLS

INHOUD VAN SERVICE CALLS INHOUD VAN SERVICE CALLS door Welke service zit wel/niet in het Swiftpage abonnement? De technische support door Swiftpage als onderdeel van een actief abonnement of supportplan is onderhevig aan de systeemgebonden

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

Opdrachtformulering (pagina 3 van 7)

Opdrachtformulering (pagina 3 van 7) Afstudeerovereenkomst van Tim Wils Bijlage 1 Opdrachtformulering (pagina 3 van 7) Dit project betreft een eigen framework (soort API) waarmee relatief gemakkelijk en in korte tijd eindproducten opgezet

Nadere informatie

De Outlook en SharePoint integratie

De Outlook en SharePoint integratie Direct vanuit Outlook e-mailberichten en/of bijlagen opslaan in SharePoint ( drag and drop ). GeONE is uw partner voor SharePoint Informatie Management. Alle document management functionaliteiten beschikbaar

Nadere informatie

Een eerste applicatie

Een eerste applicatie Een eerste applicatie 2.1 Inleiding Programmeren in Visual Basic.NET doe je niet alleen door regels met code te schrijven. Je begint met het ontwerpen van een venster in de design mode met allerlei controls,

Nadere informatie

Globale kennismaking

Globale kennismaking Globale kennismaking Kennismaking Tesla CMS 1. Dashboard 2. pagina beheer - pagina aanmaken - pagina aanpassen - pagina verwijderen - pagina seo opties - zichtbaarheid pagina 3. subpagina beheer - subpagina

Nadere informatie

Delft-FEWS & Web Services

Delft-FEWS & Web Services Delft-FEWS & Web Services Presentatie Delft-FEWS Gebruikers dag 2018 Marc van Dijk, Rudie Ekkelenkamp, Stef Hummel 5 Juni 2018 Delft-FEWS & (Web) Services 1. Delft-FEWS 2. Roadmap 3. Standaarden Verzamelen

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

Versturen van email vanuit een Delphi VCL toepassing

Versturen van email vanuit een Delphi VCL toepassing Versturen van email vanuit een Delphi VCL toepassing Voor Delphi bestaan uiteraard verschillende libraries om emails te versturen, maar in dit voorbeeld wordt een C# Dotnet library gebruikt en aangesproken

Nadere informatie

Releasen met een druk op de knop: Met behulp van Continuous Delivery sneller uw doel bereiken

Releasen met een druk op de knop: Met behulp van Continuous Delivery sneller uw doel bereiken Releasen met een druk op de knop: Met behulp van Continuous Delivery sneller uw doel bereiken De business organisatie heeft altijd stijgende verwachtingen van uw IT organisatie. Meer dan ooit is het van

Nadere informatie

ArcGIS Mobile ADF. Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag

ArcGIS Mobile ADF. Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag ArcGIS Mobile ADF Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag Agenda Wat is de Mobile ADF? Architectuur Demo Wat is de mobile ADF? Ontwikkeltoolkit voor mobiele (Smart Client)

Nadere informatie

HANDLEIDING EXTERNE TOEGANG CURAMARE

HANDLEIDING EXTERNE TOEGANG CURAMARE HANDLEIDING EXTERNE TOEGANG CURAMARE Via onze SonicWALL Secure Remote Access Appliance is het mogelijk om vanaf thuis in te loggen op de RDS omgeving van CuraMare. Deze handleiding beschrijft de inlogmethode

Nadere informatie

iphone app - Rapporten

iphone app - Rapporten iphone app - Rapporten Rapporten - iphone App Net2 AN1114-NL Deze Paxton applicatie is gratis verkrijgbaar in de App Store. Deze applicatie is ontwikkeld om gebruikt te worden op elk ios apparaat versie

Nadere informatie

uziconnect Installatiehandleiding

uziconnect Installatiehandleiding uziconnect Installatiehandleiding VANAD Enovation is een handelsnaam van ENOVATION B.V. Alle rechten voorbehouden. Niets uit deze uitgave mag worden openbaar gemaakt of verveelvoudigd, opgeslagen in een

Nadere informatie

Handleiding TAPI Driver

Handleiding TAPI Driver Handleiding TAPI Driver Auteur: Marketing Datum: 01-10-2014 Versie: 2.0 Aantal bladen: 7 Nummer: 1021 2 P a g i n a Inhoud 1. Inleiding... 3 2. Installatie TAPI Driver... 4 2.1 Toegang Operator... 5 2.2

Nadere informatie

Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM

Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM Tips & Tricks Eigen Widgets in CRM Eigen Widgets in CRM Introductie De WebUI van CRM 7.0 maakt het mogelijk om je eigen widgets te maken en deze in je eigen view te gebruiken. Dat kan door gebruik te maken

Nadere informatie

Technologieverkenning

Technologieverkenning Technologieverkenning Videocontent in the cloud door de koppeling van MediaMosa installaties Versie 1.0 14 oktober 2010 Auteur: Herman van Dompseler SURFnet/Kennisnet Innovatieprogramma Het SURFnet/ Kennisnet

Nadere informatie

Functionele beschrijving: Scannen naar Pro Management

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

Nadere informatie

Angular Best Practices Door Alex en Chris van Beek

Angular Best Practices Door Alex en Chris van Beek Angular Best Practices Door Alex en Chris van Beek Over ons Enthousiastelingen Software Architecten bij Luminis Arnhem B.V. Gespecialiseerd in Microsoft technologie:.net, Azure en Windows Twitter: @Beekje

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

Handleiding Magento - Yuki

Handleiding Magento - Yuki Handleiding Magento - Yuki www.webwinkelfacturen.nl Samenvatting Dit is de handleiding voor de koppeling van Magento naar Yuki. De koppeling zorgt dat voor facturen in Magento automatisch een factuur of

Nadere informatie

Model driven Application Delivery

Model driven Application Delivery Model driven Application Delivery Fast. Flexible. Future-proof. How Agis streamlines health procurement using Mendix Model driven Application Platform Mendix in a nutshell Mendix delivers the tools and

Nadere informatie

Bijlage 8. Testprogramma brandreactiemodulen LBK

Bijlage 8. Testprogramma brandreactiemodulen LBK Bijlage 8 Testprogramma brandreactiemodulen LBK INHOUDSOPGAVE 1 Algemeen... 1 1.1 Introductie... 1 2 Algemene Setup Instructies... 2 2.1 Setup instructies... 2 2.2 Programma start... 2 3 Configureren...

Nadere informatie

Ondersteuning van zorg gerelateerde processen en activiteiten voor patiënt en zorgverstrekkers

Ondersteuning van zorg gerelateerde processen en activiteiten voor patiënt en zorgverstrekkers Ondersteuning van zorg gerelateerde processen en activiteiten voor patiënt en zorgverstrekkers Contact persoon: Thera Splinter: 020 6445160 team@webfysio.nl Contact persoon: Joost Nagelmaeker: 0642115336

Nadere informatie

Handleiding Inloggen met SSL VPN

Handleiding Inloggen met SSL VPN Handleiding Inloggen met SSL VPN Beveiligd verbinding maken met het bedrijfsnetwerk via de Desktop Portal Versie: 24 april 2012 Handleiding SSL-VPN Pagina 1 van 10 Inleiding SSL VPN is een technologie

Nadere informatie

Handleiding Magento - Asperion

Handleiding Magento - Asperion Handleiding Magento - Asperion www.webwinkelfacturen.nl Samenvatting Dit is de handleiding voor de koppeling van Magento naar Asperion. De koppeling zorgt dat voor facturen in Magento automatisch een factuur

Nadere informatie

Fun met webparts in ASP.Net

Fun met webparts in ASP.Net Fun met webparts in ASP.Net Deel 2:User controls en Webparts door Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Inhoudsopgave FUN MET WEBPARTS IN ASP.NET... 1 DEEL 2:USER CONTROLS EN WEBPARTS...

Nadere informatie