Met de komst van Silverlight 2 is het ontwikkelen Rich Internet Applicaties (RIA’s) een stuk eenvoudiger geworden. Naast de bekende animatie- en video-mogelijkheden biedt Silverlight 2 ook een aantal rijke controls die het gemakkelijker maken om SharePoint content op een dynamische manier te presenteren.
Adobe timmert al jaren aan de weg met interactieve content op het web. De inmiddels ingeburgerde Flash-plugin is op bijna elke computer te vinden. Dat ook Adobe gelooft in Rich Internet Applicaties blijkt uit het in februari gelanceerde Flex 3. Daar waar Flash meer bedoeld is voor grafische doeleinden, is Flex meer bedoeld voor het ontwikkelen van RIA’s.
Ook Google timmert hard aan de Rich Internet weg met applicaties als GMail en Google Docs. Daar waar Adobe en Microsoft hun pijlen richten op een plugin voor de browser, ligt de focus bij Google op de open source-technologie Ajax. De technologie is voornamelijk gebaseerd op XML en Javascript, en juist om die reden heeft Google zijn nieuwe browser Chrome geoptimaliseerd voor Javascript.
Het feit dat controls belangrijk zijn voor de adoptie van Silverlight bij ontwikkelaars is ook bij Microsoft geland
Silverlight
De eerste versie van Microsoft Silverlight is volledig gebaseerd op Javascript en is mede door het beperkte aantal controls geschikter voor het maken van leuke animaties dan voor het bouwen van RIA’s. De nieuwe versie, Silverlight 2, is afgelopen oktober uitgebracht en bevat een rijkere controlset dan Silverlight 1. Daarnaast biedt het goede mogelijkheden om te communiceren met verschillende databronnen. Zo ondersteunt het o.a. het gebruik van web services en rss-feeds.
Het feit dat controls belangrijk zijn voor de adoptie van Silverlight bij ontwikkelaars is ook bij Microsoft geland. Mede om die reden zal Microsoft tijdens de PDC (eind oktober) een nieuw team aankondigen – of op het moment dat u dit leest, aangekondigd hebben - dat zich enkel bezig gaat houden met het ontwikkelen van controls voor Silverlight 2 en WPF. De verwachting is dat uiteindelijk 100 controls beschikbaar komen voor Silverlight 2.
Eenvoudige presentatie van content
De Silverlight 2-plugin is onderdeel van de browser waardoor de applicaties ook in de browser 'leven'. Voor het presenteren van data afkomstig van SharePoint zal het moeten communiceren met een service. SharePoint beschikt over een aantal services waarmee de content van het systeem opgehaald en bewerkt kan worden. Dat nog niet alles koek en ei is, blijkt uit de SharePoint-webservices die een datatype retourneren dat de Silverlight 2-runtime niet kent. Dit betekent dat de ontwikkelaar grofweg twee keuzes heeft: of hij ontwikkelt een eigen service-implementatie of hij ontleedt het XML-resultaat van de Sharepoint-webservice. Zodra de data ontvangen is, kan deze gepresenteerd worden aan de gebruiker. Hiervoor kan dus gebruik gemaakt worden van de controls die Silverlight 2 biedt. Juist het gebruik van de controls geven Microsoft en Adobe met hun plugins een voorsprong omdat Google op basis van Javascript en HTML werkt en hierdoor dit moeilijk kan invullen.
Word previewer
Voor documenten die opgeslagen zijn in SharePoint op basis van het nieuwe Office OpenXML-formaat (OOXML, tevens het Office 2007-formaat) biedt Silverlight 2 nieuwe mogelijkheden. Zoals de naam van de technologie doet vermoeden is OOXML volledig gebaseerd op XML. Hierdoor is het goed mogelijk een service te ontwikkelen die b.v. behalve de titel en de auteur van het document ook de eerste drie pagina's van het betreffende document ophaalt. De Silverlight-applicatie kan vervolgens de metadata van het document tonen, met daarbij een preview van de eerste paar bladzijden van het document. Het bedrijf Intergen uit Nieuw Zeeland lanceerde tijdens het MIX 2008-event in Las Vegas zelfs een volledige OOXML-reader voor Microsoft Word-documenten. De oplossing is gebouwd in Silverlight 2 en geeft gebruikers de mogelijkheid om documenten te lezen vanuit de browser, zonder dat hiervoor Microsoft Word is vereist.
RSS feed
De makkelijkste manier om SharePoint content te tonen in een Silverlight-applicatie is door gebruik te maken van een RSS-feed. Op basis van de _layouts/listfeed.aspx pagina en de list guid als querystring parameter kan voor elke lijst de RSS-feed worden aangroepen en de data worden opgehaald. De Silverlight-applicatie kan de listfeed aanroepen door gebruik te maken van het HttpWebRequest-object die een url verwacht, in dit geval de url van de SharePoint RSS-feed. Doordat communicatie in Silverlight altijd asynchroon plaatsvindt, moeten we een callback functie meegeven die wordt uitgevoerd zodra er antwoord is. De SyndicationFeed kan op basis van een XmlReader het resultaat van de RSS-feed inlezen.
public void GetRSSFeed()
{
// Roep de RSS feed aan
string rssUrl = "http://localhost/News/_layouts/" +
"listfeed.aspx?List=
%7B965400DD%2D34DF%2D49EA%2DA929%2D28FA4740AB66%7D";
HttpWebRequest request =
(HttpWebRequest)HttpWebRequest.Create(
new Uri(_RSSUrl));
request.BeginGetResponse(new AsyncCallback(
RSSFeedResponseCallback), request);
}
public void RSSFeedResponseCallback(
IAsyncResult asyncCallback)
{
HttpWebRequest request =
(HttpWebRequest)asyncCallback.AsyncState;
HttpWebResponse response =
(HttpWebResponse)request.EndGetResponse(
asyncCallback);
XmlReader reader =
XmlReader.Create(response.GetResponseStream());
SyndicationFeed feed = SyndicationFeed.Load(reader);
Dispatcher.BeginInvoke(delegate
{
// Zet de text property van het textblock (xaml)
MyTextBlock.Text =
feed.Items.ToList()[0].Title.Text;
myStoryboard.Begin();
}
);
}
Listing 1: RSS-reader in Silverlight
Complex ecm-systeem: de gebruiker merkt niets
SharePoint is veelzijdig, maar daarbij ook complex. Voor gebruikers die er dagelijks mee werken zal dit geen probleem zijn. Zij zullen zich de eigenschappen en manier van werken eigen maken. Voor medewerkers die incidenteel gebruik maken van het systeem kan dit wel een drempel vormen.
Een manier om de complexiteit van delen van het systeem weg te nemen is door hier een eigen user interface voor te maken. Deze schermt de complexiteit van het ecm-systeem af. Met behulp van Silverlight is het vrij eenvoudig functionaliteit als drag and drop, fotobewerking en het uploaden van meerdere documenten te realiseren. Het voordeel hiervan is dat de gebruiker geen kennis hoeft te hebben van de complexiteit die SharePoint of het user interface met zich meebrengt en dat er hele specifieke toepassingen gemaakt kunnen worden voor bepaalde doelgroepen.
Het voordeel is dat er hele specifieke toepassingen gemaakt kunnen worden voor bepaalde doelgroepen
Mobiele gebruikers kunnen een dergelijke doelgroep vormen. SharePoint biedt op dit moment beperkte ondersteuning voor mobiele apparaten. De verwachting is dat vanaf 2009 ook Silverlight 2 voor Windows Mobile en enkele Nokia-telefoons beschikbaar komt. Hierdoor wordt het mogelijk om specifieke functionaliteit van SharePoint te ontsluiten met een rijke gebruikersinterface voor de mobiele gebruikers.
Hoge kwaliteit streaming video
De veelal ongestructureerde verzameling gegevens die we opslaan in SharePoint kan divers zijn. Een nieuwe trend is om naast teksten, documenten en foto's ook video- en audiobestanden vast te leggen. Video- en audiobestanden kunnen, afhankelijk van de kwaliteit en lengte, qua omvang oplopen tot enkele honderden Mb’s. Dit maakt deze bestanden minder geschikt voor het opslaan in SharePoint. Daarnaast biedt het beperkte mogelijkheden om deze video- of audiobestanden op basis van streaming aan te bieden.
Met behulp van Silverlight kan hoge kwaliteit video en audio online getoond worden. Hiervoor wordt de video of audio op basis van Silverlight streaming aangeboden. Voor het streamen van video kan er gebruik gemaakt worden van een aparte streaming server of van de gratis dienst Microsft Silverlight Streaming Service. De dienst biedt net als YouTube de mogelijkheid om je videobestand te uploaden naar de streaming server.
Het plaatsen van het videobestand op een streaming server maakt de video nog niet bekend in SharePoint. Om dit te bereiken zal de metadata, zoals het onderwerp, titel, auteur en overige gegevens, over de video opgenomen moeten worden in SharePoint. Op basis van deze metadata kunnen specifieke kenmerken van een ecm-systeem, zoals zoeken, rechtenbeheer en workflow, worden gebruikt.
Het opensource project “Podcasting Kit for SharePoint” (PKS) maakt gebruik van deze concepten, en biedt een oplossing voor hoge kwaliteit video toepassingen in SharePoint. De oplossing bestaat uit een sitedefinitie met daarin een aantal document libraries voor het opslaan van de metadata van de video’s. Voor het uploaden van de video’s maakt het gebruik van een Silverlight control.

Fig. 1: Silverlight upload-control van de PKS
De control voorziet in de mogelijkheid om meerdere video’s parallel te uploaden en houdt daarbij de netwerkverbinding in de gaten. Na het uploaden wordt door een Windows service een preview gemaakt van de video en zorgt de service ervoor dat de geuploade video geschikt wordt gemaakt voor Silverlight streaming.
Conclusie
De mogelijkheden van Rich Internet Applications zijn talrijk en ze vormen de nieuwe tendens waarbij websites veranderen van platte HTML naar rijke user interfaces. Met de komst van Silverlight lijkt Microsoft wel een antwoord te hebben gevonden op Adobe, dat al langere tijd aanwezig is op het gebied van interactieve content voor het web. Mijns inziens zal Google met de open source-technologie Ajax vooral in het visuele aspect moeten inboeten ten opzichte van de plugins die Adobe en Microsoft bieden.