U2U Blog

for developers and other creative minds

Silverlight Data Binding Sample upgraded to Silverlight 2 Final Release

Recently I wrote an article for an online SharePoint magazine. It’s about hosting a Silverlight 2 application in a a SharePoint web part. You can also read the article on the U2U web site. I upgraded the sample to Silverlight 2 final release. You can download the upgraded code and the list templates here.

It is a tutorial in which I explain how you can host a Silverlight 2 application from within a SharePoint Web Part. The Web Part will pass the URL of the SharePoint site together with the name of the list for which the Silverlight application will show the data. The retrieval of the data will be done by the Silverlight application using the HttpWebRequest technique for calling the SharePoint web services. As the SharePoint web services return a chunk of XML the XML will be handled by using LINQ for XML. The data will be bound to the Silverlight controls.

There are a few changes to take into account when working with Silverlight 2 final release.

The only thing to change in the SharePoint web part is in the CreateChildControl method: you have to set the MinimumVersion property of the Silverlight control to 2.0.30923.0.

protected override void CreateChildControls()
{
    base.CreateChildControls();

    // instantiation of the silverlight control
    silverlightControl =
      new System.Web.UI.SilverlightControls.Silverlight();
    silverlightControl.ID = "SLAdventureWorks";
    silverlightControl.MinimumVersion = "2.0.30923.0";
    silverlightControl.Width = new Unit(750);
    silverlightControl.Height = new Unit(600);
    silverlightControl.Source =
       this.Page.ClientScript.GetWebResourceUrl(this.GetType(),
        "SL.AdventureWorksProducts.Resources.SL.XAML.AdventureWorksProducts.xap");

    // parameters passed are the URL of the SharePoint site and
    //the name of the list containing the AdventureWorks Products
    silverlightControl.InitParameters = "siteurl=" +
       SPContext.Current.Web.Url +
       ",listname=AdventureWorks Products";

    this.Controls.Add(silverlightControl);
}

 

The major change lies in the silverlight application, specifically in the functioning of the HttpWebRequest object.

1. The HttpWebRequest object works completely asynchronous and on different threads as the main thread. This means that the Silverlight application continues processing while the request to the Web Service is executed. Before you start a request to a Web Service, in this case a SharePoint web service, you have to grab the context of the UI thread.

syncContext = SynchronizationContext.Current;

The syncContext variable is a class-level variable:

SynchronizationContext syncContext;

 

2. Create the HttpWebRequest object passing it the URL of the SharePoint web service and specify a callback method on which the HttpWebRequest can come back after processing the request. The request will come back on a background thread.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
        new Uri(siteUrl + "/_vti_bin/Lists.asmx", UriKind.Absolute));
request.Method = "POST";
request.BeginGetRequestStream(new AsyncCallback(RequestCallback),
        request);

 

3. The RequestCallback method contains the code for the soap envelope. The body is retrieved from the request stream by calling the EndGetRequestStream method of the HttpWebRequest and completed with the soap envelope. Then a callback method is defined for the response to come back on. Also the response will come back on a different background thread. The request stream must be closed before the BeginGetResponse method of the HttpWebRequest object is called.

private void RequestCallback(IAsyncResult asyncResult)
{
   try
   {
      string envelope = @"<?xml version=""1.0"" encoding=""utf-8""?>
        <soap12:Envelope xmlns:xsi=""
http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">
        <soap12:Body>
        <GetListItems xmlns=""
http://schemas.microsoft.com/sharepoint/soap/"">
              <listName>{0}</listName>
              <query><Query xmlns="""">{1}<OrderBy><FieldRef Name=""Title"" /></OrderBy></Query></query>
              <viewFields><ViewFields xmlns="""">
                    <FieldRef Name=""ID"" />
                    <FieldRef Name=""Title"" />
                    <FieldRef Name=""ProductName"" />
                    <FieldRef Name=""ListPrice"" />
                    <FieldRef Name=""Thumbnail"" />
                    <FieldRef Name=""Color"" />
                    <FieldRef Name=""Weight"" />
                    <FieldRef Name=""Size"" />
                    <FieldRef Name=""Description"" />
                 </ViewFields>
              </viewFields>
             <queryOptions><QueryOptions xmlns=""""><IncludeMandatoryColumns>False</IncludeMandatoryColumns></QueryOptions></queryOptions>
        </GetListItems>
        </soap12:Body>
      </soap12:Envelope>";

     string query = string.Empty;
     if (!string.IsNullOrEmpty(searchstring) && searchstring != "Topic...")
     {
        query = "<Where><Contains><FieldRef Name=\"Title\" />" +
           ";<Value Type=\"Text\">{0}</Value></Contains></Where>";
        query = string.Format(query, searchstring);
     }
     envelope = string.Format(envelope, listName, query);
     HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
     request.ContentType = "application/soap+xml; charset=utf-8";
     request.Headers["ClientType"] = "Silverlight";

     Stream requestStream = request.EndGetRequestStream(asyncResult);
     StreamWriter body = new StreamWriter(requestStream);
     body.Write(envelope);
     body.Close();

     request.BeginGetResponse(new AsyncCallback(ResponseCallback), request);
  }
  catch (WebException ex)
  {
     responsestring = ex.Message;
  }

        }

 

3. When the response comes back on a background thread, the response is retrieved. If an error occurred along the way, it is captured in a class-level string variable. The UI thread is invoked by calling the Post method on the context variable, passing the address of the ExtractResponse method to it.

private void ResponseCallback(IAsyncResult asyncResult)
{
     HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
     WebResponse response = null;

     try
     {
         response = request.EndGetResponse(asyncResult);
     }
     catch (WebException we)
     {
         responsestring = we.Status.ToString();
     }
     catch (System.Security.SecurityException se)
     {
         responsestring = se.Message;
         if (responsestring == "")
            responsestring = se.InnerException.Message;
     }
     syncContext.Post(ExtractResponse, response);             
}

 

4. The ExtractResponse method executes the GetResponseStream method on the response and retrieves the resulting xml from the stream.

private void ExtractResponse(object state)
{
    HttpWebResponse response = state as HttpWebResponse;

    if (response != null && response.StatusCode == HttpStatusCode.OK)
    {
       using (StreamReader reader = new StreamReader(response.GetResponseStream()))
       {
           responsestring = reader.ReadToEnd();
           ProcessResponse();
       }
    }
    else
       ProcessMessage();
}

 

5. The rest of the code remains the same. The ProcessResponse method parses the resulting XML with LINQ to XML into objects and the object collection is bound to the ListBox.

The update of the list price in the product detail box works in a similar way, except that it executes the UpdateListItems method of the Lists.asmx web service.

If you are configuring the web.config of your SharePoint web applications the “lazy” way please verify the HttpHandlers section. It should look like the following:

  <httpHandlers>
      <remove verb="GET,HEAD,POST" path="*" />
      <add verb="GET,HEAD,POST" path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
      <add verb="OPTIONS,PROPFIND,PUT,LOCK,UNLOCK,MOVE,COPY,GETLIB,PROPPATCH,MKCOL,DELETE,(GETSOURCE),(HEADSOURCE),(POSTSOURCE)" path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
      <add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
      <remove verb="*" path="*.asmx" />
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
  </httpHandlers>

 

Otherwise SharePoint web services and the Silverlight HttpWebRequest object will NOT work.

Displaying a Silverlight Application in a SharePoint Application Page

In previous posts I explained how you can host a Silverlight application from within a SharePoint web part and how you have to configure SharePoint before you are able to do so:

- hosting a Silverlight application from within a web part.

If you want to host a Silverlight application from within a SharePoint application page, you have to perform a few additional steps.

In your web.config you have to add an extra tag for the silverlight control in the <system.web><pages><controls> section. This section must at least contain the following:

<controls>
    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add tagPrefix="asp" namespace="System.Web.UI.SilverlightControls" assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</controls>

The following code snippet is a very basic application page that hosts a Silverlight control. The page does not contain any code behind. You page has to reference the Microsoft.SharePoint.dll and the System.Web.Silverlight.dll. Import the according namespaces. Within the Main content control first place a script manager because this is required by the Silverlight control. Then add the Silverlight control using the <asp:Silverlight> tag. The Silverlight control renders the Hello Silverlight application from the Silverlight BluePrint for SharePoint.

Pay attention to the Source property. If you deploy your Silverlight application in the same sub directory as your as your application page (12\TEMPLATE\LAYOUTS\…) you can set the Source property as in the sample code below. But if your Silverlight application is deployed in the ClientBin directory within your SharePoint web application or within a SharePoint document library, your Source property will look a bit different.

<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Assembly Name="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>

<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master"
         Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase"  %>

<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="System.Web.UI.SilverlightControls" %>

<asp:Content ID="Main" contentplaceholderid="PlaceHolderMain"
             runat="server">
    <asp:ScriptManager runat="server" ID="ScriptManager1" />
    <asp:Silverlight ID="HelloSL" runat="server"
    MinimumVersion="2.0.31005.0"
    Source="SL.XAML.HelloSilverlight20.xap"
    Width="400" Height="300" />
</asp:Content>

<asp:Content ID="PageTitle" contentplaceholderid="PlaceHolderPageTitle"
             runat="server">
    Hello Silverlight
</asp:Content>

<asp:Content ID="PageTitleInTitleArea" runat="server"
             contentplaceholderid="PlaceHolderPageTitleInTitleArea" >
    The Hello Silverlight Application Page
</asp:Content>

 

This is the sample application page:

image

You can download the source code here.

Silverlight 2 Final Release is out!

Silverlight 2 RTM is out and ready to download. If you want to integrate Silverlight 2 with SharePoint you have to install the following:

  • SP1 for WSS if you have a WSS installation
  • SP1 for MOSS if you have a MOSS installation
  • SP1 for Visual Studio 2008
  • If you are a SharePoint developer you can also install the Visual Studio 2008 extensions for WSS 3.0 (VseWSS 1.2)
  • The Silverlight 2 run-time
  • The Silverlight 2 SDK
  • The Visual Studio 2008 Tools for Silverlight 2

My colleague Jan Tielens wrote a great post on how to upgrade the web.config of your SharePoint site(s) the “lazy way”. It is a great way to quickly upgrade the web.config files of your SharePoint sites without any chances on typos. I tested it out: it still works with Silverlight 2 RTM.

The only thing that need to be added manually to each web.config is the reference to the Silverlight assembly in the <system.web><compilation><assemblies> section:

<add assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

Two other things need to be done to get Silverlight working with SharePoint:

  • drop the System.Web.Silveright.dll into the Global Assembly Cache. After the installation of the Silverlight SDK, this assembly can be found in the C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Libraries\Server directory.
  • If you already worked with the betas of Silverlight 2, you had to define a MIME type on each IIS SharePoint Web Application (or on the root if IIS). You have to change this MIME type to application/x-silverlight-app.

If you are using the System.Web.UI.SilverlightControls.Silverlight control in your SharePoint web parts and application pages, you have to set the MinimumVersion property to “2.0.30923.0

I will soon post my updated data binding sample.

Creating a SharePoint Web Part that hosts a data binding Silverlight 2 application

Recently I wrote an article for an online SharePoint magazine. It’s about hosting a Silverlight 2 beta 2 application in a a SharePoint web part. You can also read the article on the U2U web site.

It is a tutorial in which I explain how you can host a Silverlight 2 beta 2 application from within a SharePoint Web Part. The Web Part will pass the URL of the SharePoint site together with the name of the list for which the Silverlight application will show the data. The retrieval of the data will be done by the Silverlight application using the HttpWebRequest technique for calling the SharePoint web services. As the SharePoint web services return a chunk of XML the XML will be handled by using LINQ for XML. The data will be bound to the Silverlight controls.

By clicking one of the products you can view its details and update the list price. The modified price is stored in the SharePoint list using the HttpWebRequest technique that calls the UpdateListItems method of the Lists.asmx.

Adventureworks listbox

You can download the source code and the sample list templates here.

As we will soon start upgrading the Silverlight Blueprint for SharePoint to Silverlight RTM, this sample will also be upgraded in the coming weeks.

Sahlgrenska 3 September 2008

Patrick Tisseghem, the beloved husband of Linda Godau and the loving father of their daughters Anahi and Laura, was born in Halle, Belgium on 17 October 1968 and passed away in Goteborg, Sweden on 3 September 2008.

The funeral and memorial services for Patrick will be held Friday 19 September at 10:00 am in his hometown, at “De Architect, Brusselsestraat 28, 1750 Sint-Martens-Lennik”, near Brussels. After the ceremony we will pay our last respects to Patrick and we will escort him to his final resting place at the cemetery of Sint-Martens-Lennik.

Funeral letter in pdf

May 11, 1985: There was a party of Patrick's soccer team. He looked at me and he kissed me. We both felled that it was for life. As everybody knows, he was a man of little words but I understood every move he made. He adored our two girls, Anahi and Laura. He had energy for three and was always happy. He respected everybody and everybody respected him.

I have absolutely no words for what happened on Wednesday the 3 of September 08. It feels like life is over but I have to go on for the girls. To say it with Patrick's words: 'Nature can be extremely cruel'.

I get a lot of support from family, friends and colleges, thank you.

Patrick will be in my heart for ever, he always said: 'we are soul mates'. He was a great husband and a great father and so we will remember him.

_________________

11 Mei 1985: De voetbalploeg van Patrick gaf een fuif om hun kampioenstittel te vieren. Hij had mij al een tijdje in het oog en plots kuste hij mij. We voelden allebij dat dit voor het leven was. Iedereen weet dat Patrick een man van weinig woorden was maar ik begreep elke beweging die hij maakte. Hij was gek op onze twee dochters Anahi en Laura. Hij had energie voor drie en was altijd opgewekt. Hij respecteerde iedereen en iedereen respecteerde hem.

Ik vind absoluut geen woorden voor wat er woensdag 3 september08 gebeurd is. Het lijkt alsof het leven stil staat maar ik moet verder gaan voor onze meisjes. Om het Patrick zijn woorden te zeggen: 'De natuur kan extreem gruwelijk zijn'.

Ik krijg heel veel steun van familie, vrienden en collega's, dank u.

Patrick zal voor altijd in mijn hart zitten, hij zei steeds: 'wij zijn zielsverwanten'. Patrick was een fantastische man een te gekke papa en zo willen we hem gedenken.

Linda, Anahi en Laura.

 

We crashten allemaal toen we op 3 september het nieuws hoorden en ik kan nog steeds niet geloven dat ik m'n broer nooit meer zal zien…Ik hou me sterk aan de toffe tienerjaren die we samen hadden.

Zoals toen hij 14 was en regelmatig kribbig was op mij (we weten allemaal dat hij eigenlijk nooit echt kwaad werd) dat ik altijd zijn LP's kopiëerde op cassetjes. "Kunt ge zelf uw platen niet kopen" J Ik glipte vaak in zijn kamer toen hij er niet was om dan zijn stereo keiluid te zetten. Dankzij hem ontdekte ik al die jaren 80 groepen en The Smiths was onze favoriete band.
Of toen ma en pa in 1982 ons de eerste home computer, de ZX Spectrum, cadeau deden. Hij was meteen weg van de bits en de bytes. Terwijl ik Jet Set Willy speelde verkoos hij om meteen te programmeren; eerst in BASIC en dan in machinetaal.
Toen hij samen met Stephane steeds top scorer was in de jeugdploeg van FC Dworp. Daar was ik dan best wel trots op. Het plezier dat we hadden met Eric Bougard als trainer.Toen hij trainer werd van mij en mijn cosse Filip (voetbal tiener rebellen) als Scholieren en ons kampioen maakte terwijl we als laatste gestart waren in de competitie. Hij deinsde er tijdens de training niet voor terug om ons van het terrein te sturen, jawel dat deed hij. Hoe fier mijn ouders waren toen hij het tot UEFA Junior schopte bij Racing Jet Waver waardoor pa verplicht was om zijn rij angst te overwinnen en 4 keer per week of zo naar Waver te rijden in onze nagelnieuwe 2CV (Lloyd Cole stal dit idee van ons ;) )
Ma die altijd ongerust was omdat hij zo roekeloos en gedreven in duel ging op matchen. De tegenstanders waren altijd content als ze te horen kregen dat de Patte niet mee deed. Het was dan ook niet te verwonderen dat hij veel kwetsuren had. De tijd toen we na het eten snel naar de garage crosten om te shotten of ping pong te spelen. Waarbij af en toe meubilair en een wasmachine sneuvelde.
Toen ik naar het middelbaar moest in Sint-Victor Alsemberg als de broer van ('k heb nooit de hoge verwachtingen van zijn leraars ingevuld J )
Het plezier dat we hadden op de new wave/80's/indie fuiven in Vlezenbeek en om mij altijd mee uit te nodigen. De concerten in de Vaartkapoen, de Vooruit en de AB, samen met de Wannes en de Wouter, waarbij we de aankomende 90's indie en grunge groepkes zagen. Zijn gammele Peugeot mobilet waarmee hij door regen en wind van Dworp naar Huizingen reed om Linda te zien. De rode Mitsubishi Colt daarna.Mijn eerste rijlessen met hem waarbij we zo hard aan het lachen waren dat ik bijna tegen een verlichtingspaal reed. Zijn eerste appartementje in Buizingen waar hij eindelijk zijn kat kon hebben die hij van ma nooit kreeg….en er later met Linda hun eerste dochter rond liep. Zijne pot Andalouse en sterke koffie….

Maar meest van al, hij genoot er van om mensen gelukkig te maken en ik weet dat hij van deze drukke manier van leven heeft genoten.

Uw broerken.

_________________

We all crashed here on September 3th, and I still can't believe I will not see my brother anymore...I hold myself strong on the great teenage years I had with him.....

When he was 14 and was "annoyed" on me (well, you all know he really couldn't be angry) always copying his LP's on tape..."can't you buy LP's yourself" :) Sneaking in his room and pumping up his stereo when he was away...Thanks to him I discovered the early 80"s best groups and The Smiths was one of our favorites;
When in 1982 mom & dad gave us our first home computer, the ZX Spectrum. He was immediately hooked on the bits & bytes. While I played Jet Set Willy, he preferred to code in BASIC & later on machine code.
When he was top scorer together with Stephane at FC Dworp every year. That made me proud. The fun time with Eric Bougard as his coach. When he made me and my cousin Filip (soccer teenage riots) champion as coach of the 'Scholieren' of FC Dworp, starting from last place.... not afraid sending us home during training if we hadn't enough discipline, yep he did... When he made it as UEFA Junior in Racing Jet Waver obliging dad to overcome his driving phobia and driving 4 times a week or so to Waver in our brand new 2CV. (Lloyd Cole nicked this from us ;) ) Mom always worried about him being so reckless...driven. The other soccer team was always relieved when they heard the "Patte" didn't play with. No surprise that he had many injuries. The time we played ping pong & soccer almost every day in our garage at home. Wreckening furniture and the washing machine.
When I entered high school in Sint-Victor Alsemberg as the brother of (meeting not all expectations of his former teachers :) )
The fun we had at the new wave/80"s/indie parties in Vlezenbeek and for always inviting me with. The concerts in the "Vaartkapoen", "de Vooruit" and the AB together with de Wannes en Wouter where we discovered the upcoming 90's indie & grunge bands. His old Peugeot scooter when he was 17 driving through the rain from Dworp to Huizingen to meet Linda. The red Mitsubishi Colt soon afterwards. My first drivers lesson with him where we laughed so hard I almost hit an electric pole. His first little apartment in Buizingen where he finally got his cat he never got from mom... and later on his first daughter with Linda. His "pot" Andalouse & strong coffee...

But most of all, he enjoyed keeping people happy and I know that he enjoyed this busy way of life.

Your little brother

 

   If you would like to share your thoughts or memories about Patrick,
   Feel free to leave a comment here or send a private message to his family or his colleagues

       to Patrick's family: familyofPatrick@u2u.be
       to Patrick's colleagues: u2uteam@u2u.be
       to Patrick's business partner and friend: wim@u2u.be

 

Sahlgrenska 3 September 2008

Patrick Tisseghem, the beloved husband of Linda Godau and the loving father of their daughters Anahi and Laura, was born in Halle, Belgium on 17 October 1968 and passed away in Goteborg, Sweden on 3 September 2008.

Patrick we miss you

May 11, 1985: There was a party of Patrick's soccer team. He looked at me and he kissed me. We both felled that it was for life. As everybody knows, he was a man of little words but I understood every move he made. He adored our two girls, Anahi and Laura. He had energy for three and was always happy. He respected everybody and everybody respected him.

I have absolutely no words for what happened on Wednesday the 3 of September 08. It feels like life is over but I have to go on for the girls. To say it with Patrick's words: 'Nature can be extremely cruel'.

I get a lot of support from family, friends and colleges, thank you.

Patrick will be in my heart for ever, he always said: 'we are soul mates'. He was a great husband and a great father and so we will remember him.

_________________

11 Mei 1985: De voetbalploeg van Patrick gaf een fuif om hun kampioenstittel te vieren. Hij had mij al een tijdje in het oog en plots kuste hij mij. We voelden allebij dat dit voor het leven was. Iedereen weet dat Patrick een man van weinig woorden was maar ik begreep elke beweging die hij maakte. Hij was gek op onze twee dochters Anahi en Laura. Hij had energie voor drie en was altijd opgewekt. Hij respecteerde iedereen en iedereen respecteerde hem.

Ik vind absoluut geen woorden voor wat er woensdag 3 september08 gebeurd is. Het lijkt alsof het leven stil staat maar ik moet verder gaan voor onze meisjes. Om het Patrick zijn woorden te zeggen: 'De natuur kan extreem gruwelijk zijn'.

Ik krijg heel veel steun van familie, vrienden en collega's, dank u.

Patrick zal voor altijd in mijn hart zitten, hij zei steeds: 'wij zijn zielsverwanten'. Patrick was een fantastische man een te gekke papa en zo willen we hem gedenken.

Linda, Anahi en Laura.

 

We crashten allemaal toen we op 3 september het nieuws hoorden en ik kan nog steeds niet geloven dat ik m'n broer nooit meer zal zien…Ik hou me sterk aan de toffe tienerjaren die we samen hadden.

Zoals toen hij 14 was en regelmatig kribbig was op mij (we weten allemaal dat hij eigenlijk nooit echt kwaad werd) dat ik altijd zijn LP's kopiëerde op cassetjes. "Kunt ge zelf uw platen niet kopen" J Ik glipte vaak in zijn kamer toen hij er niet was om dan zijn stereo keiluid te zetten. Dankzij hem ontdekte ik al die jaren 80 groepen en The Smiths was onze favoriete band.
Of toen ma en pa in 1982 ons de eerste home computer, de ZX Spectrum, cadeau deden. Hij was meteen weg van de bits en de bytes. Terwijl ik Jet Set Willy speelde verkoos hij om meteen te programmeren; eerst in BASIC en dan in machinetaal.
Toen hij samen met Stephane steeds top scorer was in de jeugdploeg van FC Dworp. Daar was ik dan best wel trots op. Het plezier dat we hadden met Eric Bougard als trainer.Toen hij trainer werd van mij en mijn cosse Filip (voetbal tiener rebellen) als Scholieren en ons kampioen maakte terwijl we als laatste gestart waren in de competitie. Hij deinsde er tijdens de training niet voor terug om ons van het terrein te sturen, jawel dat deed hij. Hoe fier mijn ouders waren toen hij het tot UEFA Junior schopte bij Racing Jet Waver waardoor pa verplicht was om zijn rij angst te overwinnen en 4 keer per week of zo naar Waver te rijden in onze nagelnieuwe 2CV (Lloyd Cole stal dit idee van ons ;) )
Ma die altijd ongerust was omdat hij zo roekeloos en gedreven in duel ging op matchen. De tegenstanders waren altijd content als ze te horen kregen dat de Patte niet mee deed. Het was dan ook niet te verwonderen dat hij veel kwetsuren had. De tijd toen we na het eten snel naar de garage crosten om te shotten of ping pong te spelen. Waarbij af en toe meubilair en een wasmachine sneuvelde.
Toen ik naar het middelbaar moest in Sint-Victor Alsemberg als de broer van ('k heb nooit de hoge verwachtingen van zijn leraars ingevuld J )
Het plezier dat we hadden op de new wave/80's/indie fuiven in Vlezenbeek en om mij altijd mee uit te nodigen. De concerten in de Vaartkapoen, de Vooruit en de AB, samen met de Wannes en de Wouter, waarbij we de aankomende 90's indie en grunge groepkes zagen. Zijn gammele Peugeot mobilet waarmee hij door regen en wind van Dworp naar Huizingen reed om Linda te zien. De rode Mitsubishi Colt daarna.Mijn eerste rijlessen met hem waarbij we zo hard aan het lachen waren dat ik bijna tegen een verlichtingspaal reed. Zijn eerste appartementje in Buizingen waar hij eindelijk zijn kat kon hebben die hij van ma nooit kreeg….en er later met Linda hun eerste dochter rond liep. Zijne pot Andalouse en sterke koffie….

Maar meest van al, hij genoot er van om mensen gelukkig te maken en ik weet dat hij van deze drukke manier van leven heeft genoten.

Uw broerken.

_________________

We all crashed here on September 3th, and I still can't believe I will not see my brother anymore...I hold myself strong on the great teenage years I had with him.....

When he was 14 and was "annoyed" on me (well, you all know he really couldn't be angry) always copying his LP's on tape..."can't you buy LP's yourself" :) Sneaking in his room and pumping up his stereo when he was away...Thanks to him I discovered the early 80"s best groups and The Smiths was one of our favorites;
When in 1982 mom & dad gave us our first home computer, the ZX Spectrum. He was immediately hooked on the bits & bytes. While I played Jet Set Willy, he preferred to code in BASIC & later on machine code.
When he was top scorer together with Stephane at FC Dworp every year. That made me proud. The fun time with Eric Bougard as his coach. When he made me and my cousin Filip (soccer teenage riots) champion as coach of the 'Scholieren' of FC Dworp, starting from last place.... not afraid sending us home during training if we hadn't enough discipline, yep he did... When he made it as UEFA Junior in Racing Jet Waver obliging dad to overcome his driving phobia and driving 4 times a week or so to Waver in our brand new 2CV. (Lloyd Cole nicked this from us ;) ) Mom always worried about him being so reckless...driven. The other soccer team was always relieved when they heard the "Patte" didn't play with. No surprise that he had many injuries. The time we played ping pong & soccer almost every day in our garage at home. Wreckening furniture and the washing machine.
When I entered high school in Sint-Victor Alsemberg as the brother of (meeting not all expectations of his former teachers :) )
The fun we had at the new wave/80"s/indie parties in Vlezenbeek and for always inviting me with. The concerts in the "Vaartkapoen", "de Vooruit" and the AB together with de Wannes en Wouter where we discovered the upcoming 90's indie & grunge bands. His old Peugeot scooter when he was 17 driving through the rain from Dworp to Huizingen to meet Linda. The red Mitsubishi Colt soon afterwards. My first drivers lesson with him where we laughed so hard I almost hit an electric pole. His first little apartment in Buizingen where he finally got his cat he never got from mom... and later on his first daughter with Linda. His "pot" Andalouse & strong coffee...

But most of all, he enjoyed keeping people happy and I know that he enjoyed this busy way of life.

Your little brother

 

   If you would like to share your thoughts or memories about Patrick,
   Feel free to leave a comment here or send a private message to his family or his colleagues

       to Patrick's family: familyofPatrick@u2u.be
       to Patrick's colleagues: u2uteam@u2u.be
       to Patrick's business partner and friend: wim@u2u.be