.NET Framework

Succesvolle demo Ikpraat.nl bij Stichting Philadelphia Zorg

Vanochtend heb ik samen met onze account manager Sander Oldenburg een succesvolle demo gegeven van Ikpraat.nl bij Stichting Philadelphia Zorg.

Stichting Philadelphia Zorg is een landelijke netwerkorganisatie met circa 8.200 medewerkers die in en vanuit circa 800 locaties ondersteuning bieden aan ruim 8.000 cliënten in de gehandicaptenzorg. Philadelphia wil er vanuit een christelijke visie aan bijdragen dat mensen met een verstandelijke beperking gelukkig kunnen zijn en het beste uit zichzelf kunnen halen.

Ikpraat.nl is in een afgeschermde ontmoetingsplaats op het internet, waar mensen met een beperking, met familie, vrienden, begeleiders en zorgverleners op een eenvoudige manier en dus binnen een veilige omgeving met elkaar kunnen communiceren.

Hieronder zie je een screenshot van het systeem. Merk op dat alles zo simpel mogelijk is gehouden, waarbij veel gebruik is gemaakt van grote iconen, korte, duidelijke teksten en duidelijke plaatjes. Rechts op de pagina zie je een verkeersbord met “Help” staan. Dit verkeersbord komt op elke pagina terug. Als je je muis laat rusten op het verkeersbord (een zogeheten “mouse-over”) dan wordt een helptekst gesproken. Deze helptekst is per pagina verschillend en vertelt je precies wat je op die pagina kan doen.

De volgende functionaliteit wordt geboden:

  • Tekstberichten schrijven naar andere Ikpraat.nl gebruikers;
  • Tekstberichten schrijven naar mensen buiten Ikpraat.nl (zoals familieleden);
  • Tekstberichten van andere Ikpraat.nl gebruikers lezen en hierop reageren;
  • Tekstberichten van mensen van buiten Ikpraat.nl lezen en hierop reageren;
  • Oude berichten lezen en hierop reageren;
  • Eerder verzonden berichten lezen;
  • Tekstchatten met andere Ikpraat.nl gebruikers;
  • Tekstchatten met mensen op MSN;
  • Videochatten met andere Ikpraat.nl gebruikers;
  • Videoboodschap maken en versturen aan andere Ikpraat.nl gebruikers;
  • Videoboodschap maken en versturen aan mensen buiten Ikpraat.nl;
  • Videoboodschappen bekijken en hierop reageren.

Ikpraat.nl is een gesloten systeem, wat betekent dat niet zomaar iedereen van buiten Ikpraat.nl berichten kan sturen naar gebruikers van Ikpraat.nl. De Ikpraat.nl gebruiker kan zelf aangeven wie dat wel mag. Ditzelfde geldt voor het kunnen chatten met Ikpraat.nl gebruikers via MSN. Dit is wel zo veilig, op deze manier kan de Ikpraat.nl gebruiker niet lastig gevallen worden door onbekende personen.

Voor meer informatie over Ikpraat.nl, kijk op www.ikpraat.nl of neem contact op met één van onze account managers.

Tags: , , , , , ,

Live Labs Pivot for the 2010 FIFA World Cup

Live Labs Pivot is a great tool to publish large amounts of data in a compelling way. To showcase this new Microsoft Technology Wortell has created an example of a Live Labs Pivot table for the 2010 FIFA World Cup. The video below shows how this pivot works. Do you want to play with it yourself? Download Live Labs Pivot here and then open the collection, but putting the following link in the address bar of Pivot: http://media.wortell.nl/pivot/wk/wk2010.cxml

And here are some screenshots:


When a specific flag is clicked details about the country are shown.

How we did it…

Basically a Pivot can be created programmatically or by using Excel. Excel can be used in situations where the data can be easily copied of filled in by hand. If there is data coming from multiple systems, backend or environments or if you are handling a large amount of data we recommend creating the XML schema programmatically.

First of all we selected the sources of the data. We used Wikipedia for the schedule of plays and the FIFA website for the descriptions of the individual teams. We then put all this data into a Pivot Collections Excel sheet. You can read the description of this Excel sheet on the Microsoft site where the plugin can also be downloaded. Once all the data was put into the Excel sheet we simply Published the collection from the Excel plugin and the Live Labs Pivot was finished.

Tags: , ,

Public Release Candidate of VS 2010 and .NET 4

Today Microsoft announced an extra Release Candidate of VS 2010 and .NET 4. This release will be available in February 2010 for public download and will have the “go live”label.

The downside is that the final release date will be moved back a few weeks.

Powershell and WMI the easy way! (1)

Veel mensen weten al hoeveel er mogelijk is met PowerShell. Ook weten veel mensen hoeveel er mogelijk is door gebruik te maken van WMI. Kun je je voorstellen wat er gebeurt als je deze technieken samenvoegd. Waar het in VBScript soms nog lastig is WMI te gebruiken is dit in PowerShell sterk vereenvoudigd. In deze eerste blog gaan we in op het opvragen van informatie via WMI en het filteren daarvan.

Open maar eens een PowerShellconsole en typ eens: gwmi. Dit is de alias voor Get-WMIObject. Met deze cmdlet is het eenvoudig om aan informatie te komen. Typ bijvoorbeeld maar eens:

Gwmi win32_process


Dit zal alle draaien processen op het scherm toveren. Helaas is dit niet echt overzichtelijk. Daar kunnen we wat aan doen doormiddel van “piping”, dit zal de output van dit commando door een ander commando halen. Zo kunnen we bijvoorbeeld een statement meegeven dat ons alleen de naam geeft van de processen, dit gaat als volgt:

Gwmi win32_process | select Name

Dit overzicht is al een stuk overzichtelijker. Eventueel kunnen we ook nog wat filtering toepassen door gebruik te maken van de Where cmdlet. Bij iedereen die bekend is met SQL zal dit wel een belletje laten rinkelen. Zo kunnen we bijvoorbeeld de naam laten zien van alle processen waarvan de Priority is gezet op 4 (Low) door het volgende commando te gebruiken.

Gwmi win32_process | Where { $_.Priority -eq 4} | Select name


Zoals je boven ziet wordt Where gebruikt met een zogenoemd “statement” welke zich tussen “CurlyBraces” bevind. De $_ staat gelijk aan het object dat het commando aan de andere kant van de pipe doorgeeft, we willen het attribuut Priority gebruiken van dit object. Daarna geven we aan dat dat attribuut gelijk moet zijn aan 4 (-eq).

Je kunt zelf wat varieren met verschillende WMI classes en attributen daarvan. Of je kunt ook gebruik maken van… de PowerShell Scriptomatic:

http://www.microsoft.com/downloads/details.aspx?FamilyID=d87daf50-e487-4b0b-995c-f36a2855016e&displaylang=en

Volgende keer zal ik ingaan op het maken van instellingen via WMI en PowerShell.

Tags: , ,

Open XML en Word Automation Services

Vanavond in Open XML en Word Automation Services gedoken. Word Automation Services is nieuw voor SharePoint / Office 2010. Deze nieuwe functionaliteit zal ervoor zorgen dat veel van de macro’s die nu met Office clients moeten worden uitgevoerd geheel vanaf een server kunnen worden afgehandeld.

Het probleem nu

Officieel ondersteunt Microsoft het draaien van client applicaties op servers niet. Daarnaast zijn de huidige opties voor het automatiseren van de Office Clients erg beperkt. Word ondersteund bijvoorbeeld maximaal 1 processor. Een ander voorbeeld is dat bij eventuele problemen een client applicatie, zoals Word of Excel een dialoogvenster zal tonen waarna de Macro stopt. Zeker indien grote hoeveelheden documenten verwerkt dienen te worden met behulp van Office Automation kunnen daarmee enorme problemen ontstaan. Office Automation is kortweg niet geschikt voor het verwerken van grote hoeveelheden data in bulk.

Toch kan zich soms een situatie voordoen waarin de productie van grote hoeveelheden documenten gewenst is. Een voorbeeld daarvan is een situatie waarin, en dit is zeker nu actueel, grote hoeveelheden hypotheek offertes dienen te worden samengesteld. Daarbij kan zich de situatie voordoen dat gegevens uit meerdere Word documenten en Excel spreadsheets samengevoegd te worden tot één geheel. Indien dit gedaan zou moeten worden met behulp van Office macro’s kan, zelfs al is alles geautomatiseerd, een situatie ontstaan waarbij de samenvoegactie tussen de 10 en 30 seconden per offerte kan kosten. Indien op deze manier honderden offertes dienen te worden samengesteld kan de verwerkingstijd in de uren al dan niet dagen lopen.

Open XML

Alle documenten vanaf Microsoft Office 2007 zijn gebaseerd op Open XML. De de x achter de bestandsformaten geeft dit aan. In feite is een Open XML bestand niets meer dan een ZIP bestand met meerdere bestanden erin.


Voorbeeld van een Word bestand waarbij de extensie omgezet is naar .zip

Een Word document kan zo bestaan uit een enorme hoeveelheid afzonderlijke XML bestanden, aangevuld met plaatjes in de vorm van .jpg of .png bestanden. Elk XML bestand bevat andere gegevens. In document.xml staat de daadwerkelijke tekst, styles.xml bevat een beschrijving van alle gebruikte stijlen en ga zo maar door.


Voorbeeld van Open XML Word 2010 bestand geopend in ZIP

Open XML SDK

Met de introductie van Office 2010 en SharePoint 2010 zal Microsoft de Open XML SDK (Software Developers Kit) 2.0 bevatten die het mogelijk maakt een breed scala aan operaties uit te voeren met Office bestanden. Met behulp van de Open XML SDK 2.0 kunnen programmeurs met slechts enkele regels code de inhoud van Open XML bestanden bewerken. Het gaat daarbij voornamelijk over het injecteren van gegevens in bestanden.

Een voorbeeld daarvan is het samenvoegen van bestanden. Indien inhoud van meerdere documenten samengevoegd dient te worden naar één uiteindelijk bestand is dit een bewerking waarvoor de Open XML SDK 2.0 uitermate geschikt is. Gebruik van de Open XML SDK kan in dit geval bewerken van documenten enorm versnellen. Waar met traditionele Word Macro’s het invoegen van gegevens in een specifiek bestand een enorme hoeveelheid tijd kan kosten en altijd op een client moet worden uitgevoerd, kan dat nu worden afgehandeld op een server en zal de complete bewerking in enkele milliseconden afgehandeld zijn.

De Open XML SDK 2.0 is momenteel beschikbaar in de vorm van een CTP (Customer Technology Preview). De finale versie is dus nog vrijgegeven en zal naar verwachting gelijktijdig vrijgegeven worden met de introductie van Office 2010. Hij kan gedownload worden via de link: http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en

Over de nu beschikbare Open XML SDK is door Microsoft een video gemaakt die hier bekeken kan worden:

YouTube Preview Image

De Open XML SDK kan veel voordelen bieden maar ken took een groot aantal nadelen. Zo biedt de Open XML SDK alleen een antwoord op het invoegen en lezen van data in bestanden. Opmaak en algemene Microsoft Office eigenschappen (zoals herberekenen van formules in Excel, wijzigen van de opmaak in een Word document, herberekenen van de inhoudsopgave etc.) kunnen niet uitgevoerd middels de Open XML SDK. Daarnaast kan ze alleen gebruik de Open XML SDK alleen gebruikt worden op Open XML bestanden (zoals docx, xlsx, pptx).

Om op deze laatste bewerkingen een antwoord te bieden is met de lancering van Office 2010 en SharePoint 2010 een aantal nieuwe services beschikbaar gesteld in de vorm van de Office Automation Services.

Word Automation Services

Word Automation Services zijn nieuw voor Office 2010 en SharePoint 2010. Met behulp van de Word Automation Services kunnen alle handelingen die normal op een client worden uitgevoerd op een server worden afgehandeld.

Een voorbeeld daarvan is het openen van een .doc bestand, herberekenen van de Inhoudsopgave, dit geheel converteren en opslaan als een Open XML bestand (.docx) en vervolgens opslaan als PDF bestand.

Word Automation Services kunnen door ontwikkelaars gebruikt worden. Het is beschikbaar in C# en VB.NET.

Excel Services

Excel Services zijn beschikbaar voor SharePoint sinds MOSS 2007. Met behulp van Excel Services kunnen grofweg dezelfde bewerkingen gedaan worden op Excel documenten als de bewerkingen die worden uitgevoerd met Word Automation Services. Specifieke handelingen voor Excel zijn echter bijvoorbeeld het hercalculeren van werkbladen.

Open XML SDK en Word Automation Services combineren

Het is mogelijk de Open XML SDK en Word Automation Services te combineren. Situaties waarin dit gemakkelijk zou kunnen zijn is in gevallen waarin grote hoeveelheden doc bestanden voorzien dienen te worden van aanvullende gegevens die uit meerdere bestanden Excel moeten komen waar de nodige berekeningen op moeten worden uitgevoerd. Het scenario zou er als volgt uitzien:

Word Automation Services

  1. Converteer een .doc bestand naar een .docx bestand

Excel Services

  1. Open de Excel bestanden en voer alle calculaties door

Open XML SDK

  1. Injecteer de gegevens van de verschillende bestanden in het Word Document

Word Automation Services

  1. Converteer het .docx bestand terug naar een .doc bestand

Tags: , , ,

Hele gave opdracht

Vandaag heeft Wortell de opdracht gekregen van Hogeschool Arnhem Nijmegen (HAN) om HAN Talent de ontwikkelen. HAN Talent is een applicatie bedoeld voor de faculteit Nederlands. Zij geven onder andere les aan buitenlandse studenten die Nederlands leren. Onderdeel van de studie is het uitvoeren van opdrachten als: koop een bruin brood bij de bakker. De bedoeling is dat de student vervolgens samen met medestudenten de opdracht uitvoert terwijl hij of zij wordt gefilmd. Het geschoten filmpje wordt vervolgens ge-upload naar een website. Het filmpje wordt hier omgezet naar een voor het web geschikt formaat en gekoppeld aan de betreffende opdracht. Medestudenten kunnen vervolgens commentaar leveren op het filmpje. Dit commentaar wordt opgeslagen bij het filmpje. Hierdoor kan de student het commentaar van zijn medestudenten terug lezen en hiervan leren. De docent kan een opdracht formeel beoordelen. De student krijgt 3 kansen om de opdracht goed uit te voeren (lees: maximaal 3 filmpjes uploaden per opdracht).

Een innovatief onderwijs concept dat vraagt om een innovatieve oplossing. Wortell heeft het functioneel ontwerp inmiddels klaar en voorgesteld om deze applicatie te ontwikkelen met behulp van Silverlight, gebruikmakend van Silverlight streaming om de video’s te tonen. Daarnaast wordt de rest van de site, denk aan beheer schermen voor het onderhoud van klassen, studenten en opdrachten ook volledig in Silverlight gerealiseerd. Zo wordt een zeer rijke applicatie gerealiseerd, die volledig in de browser beschikbaar is. Delen van de applicatie kunnen eenvoudig “out-of-the-browser” beschikbaar worden gesteld. Zo kan een student een aantal films lokaal naar zijn laptop trekken en ze vervolgens offline bekijken en commentaar leveren. Zodra hij weer online komt, wordt alles gesynchroniseerd. Silverlight is prachtig :) Daarnaast maken we, voor de nerds, gebruik van RIA services om het entiteiten model snel en effectief uit de database op te zetten. Voor de player hebben we ons laten inspireren door project Tuva van Microsoft Research.

Blijft de vraag over: waar en hoe host je een dergelijke applicatie? Het is zeer bandbreedte intensief; dat wil zeggen, tijdens piekbelasting. In de vakanties zal het nauwelijks worden gebruikt. Welk hosting platform schaalt met deze behoefte mee? Antwoord: Windows Azure. Voor wie het niet weet: Windows Azure is het cloud computing platform van Microsoft. Het biedt alle technische ondersteuning om HAN Talent de hosten en is enorm schaalbaar. Je betaalt gewoon per GB aan bandbreedte die wordt gebruikt. Zie voor meer informatie de site van Microsoft over Azure.

Al met al gaan we voor HAN Talent de aller nieuwste technologieën van Microsoft inzetten. Windows Azure zal (naar verwachting) deze maand beschikbaar komen. RAI services zijn hopelijk voor het eind van dit jaar uit CTP en Silverlight 3 is net een paar maanden oud. De developers die dit gaan doen gaan een zeer spannende, uitdagend maar vooral heel mooie tijd tegemoet.

Tags: ,

Group your Validators

When you’re building a WebPart that uses some of the ASP.NET validator controls, make sure you specify a validation group for all of them and for the Control firing the validation (i.e. the Submit button). Also, if you’re using a validation summary specify it’s validation group property too.

If you don’t do this, the validation might be fired by other controls rendered by SharePoint preventing you to navigate away from the page. I just ran into this since I created a new Page in a Publishing site. I added my WebPart to this Page and then I wanted to Publish the page. The “Submit for Approval” control in the “Page Editing Toolbar” fired the validation so I had to fill in all my required fields first in order to be able to enter the approval process.
So, I think it’s a best-practice to always use ValidationGroup inside of WebParts.