Dear visitor, thanks for stopping by! If you want, you can follow all updates on Snowball.be via RSS. You can also follow me on Twitter or Facebook. More interesting posts from other Microsoft Regional Directors can be found at The Region.
Gill Cleeren     Efficiency | Mix 11 | Silverlight     January 25, 2011    

Today, I got some great news: some of my sessions that I proposed for Mix 11 in Las Vegas made the first cut! That means that you can now all vote for them via the OpenCall page on the Mix 11 site!

So, want me out of here? This is your chance to send me to Vegas, baby!! Voting can be done here: http://live.visitmix.com/OpenCall . All votes are really appreciated, thanks in advance!

300x250_Mix11_011011_US_b 

These are my sessions that made the first selection:

  • Data access from Windows Phone 7
    Gill Cleeren
    Windows Phone 7 apps need access to data, that's a sure thing. In this session, we'll look at what of our knowledge from Silverlight we can leverage into the Windows Phone platform. We'll look at what we need to keep track of on the service side and what actions we need to do on the phone platform itself.
    Level 300
    Technology: Silverlight, Windows Phone 7, Services
  • The session where Hello World is forbidden: Advanced Silverlight
    Gill Cleeren
    Byebye 'Hello World'. We've all had the time to play with Silverlight by now so it's time to switch gears. In this advanced Silverlight session, Gill Cleeren will show you advanced topics in Silverlight, such as unit testing, profiling, MEF, security and authentication, advanced printing scenarios, sockets etc... You'll learn stuff that you were afraid to ask about before!
    Level 400/Silverlight experience required.
    Technologies: Silverlight 4
  • Advanced WCF RIA Services
    Gill Cleeren
    Since Silverlight 4, WCF RIA Services has been part of the platform. We all had some time to experiment with RIA Services a bit, didn't we? So now it's time for the serious work. In this session, we won't be creating your basic "Hello RIA Services" application! Instead, we'll take a deeper look at RIA services by answering questions such as:How should we architect our applications around them?What patterns and best practices can be applied? How can RIA Services be used in an MVVM scenario?How can I do validation with RIA services?And much more!
    Level 300
    Technologies: Silverlight 4, WCF RIA Services
  • Building custom controls in Silverlight 4
    Gill Cleeren
    While Silverlight has a rich set of controls on board, sometimes you still need a control that does not exist. In Silverlight, there are more options than you ever considered possible to do this. Varying from templating a control to building a control from scratch, we'll cover it all. We'll also look at building a container from scratch!Level 300
    Technologies: Silverlight 4

Love one (or more) of these sessions? Please vote! Thanks!

  Posted on: Tuesday, January 25, 2011 10:06:53 PM (Romance Standard Time, UTC+01:00)   |   Comments [0]
         
Gill Cleeren     .NET 4 | ASP.net | ASP.net AJAX | ASP.NET MVC | Efficiency     January 7, 2011    

On January 24th, the first Belgian Web Camp takes place. Some updates have been done to the agenda, including another speaker being added.

WebCamps_signature_v2

This is the final agenda:

8:30 - 9:00 Welcome and registration

9:00 - 11:00 Opening Keynote – What’s new in the Microsoft Web Platform (Scott Hanselman, Principle Program Manager, Microsoft)
Just recently, Microsoft have released a bunch of new products that web developers can use to build websites and web applications.  Scott, Drew and Jonathan will take you on a whirlwind tour of what’s new in the Microsoft Web Platform, including ASP.NET MVC 3, NuGet and more.

11:00 - 11:30 Coffee Break

11:30 - 12:30 HTML5: How about today? (Katrien De Graeve, Developer Evangelist, Microsoft)
What is HTML5? With more and more browsers supporting HTML5, ECMAScript 5 and other web standards, developers now have a strong web platform they can use to create a new class of web application that is more powerful and interactive than ever before.  What's in HTML5 that lets us take our sites to the next level?
Expect demos and code!

12:30 - 13:30 Lunch

13:30 - 14:45 Come in as jQuery zero, go out as jQuery hero (Gill Cleeren)
jQuery is the web developers’ new favorite. This lightweight JavaScript library has developers writing JavaScript code again, and loving it! What previously needed 20 lines of code can now be done in just 3 lines. Who wouldn’t be enthusiastic? Microsoft showed its love for the library by fully integrating it in Visual Studio. I dare to ask: should you stay behind? In this session, we’ll take a look at jQuery and we’ll teach you what you need to know to get you on your way. More specifically, we’ll look at selectors, attributes, working with WCF, jQuery UI, and much more. You could easily walk out of this session wearing a sticker: “I love jQuery”!

14:45 - 15:15 Coffee Break

15:15 - 16:30 OData: Open Data for the Open Web (Jonathan Carter, Senior Technical Evangelist, Microsoft)
There is no shortage of valuable data being generated by applications, reports, tools, Web sites, etc. Unfortunately, this leaves many of us wishing we could programmatically access the data and logic behind an app, report, or Web site. To break down data silos and increase the shared value of data and its associated business logic through the Web, Microsoft has recently announced the Open Data Protocol which enables exposing any data source as a Web-friendly data feed. Join this session to understand what the Open Data Protocol (OData) is and how it adds end-user and developer value to many of Microsoft's leading products and services (such as SharePoint Server 2010, Microsoft Codename "Dallas", Windows Azure, SQL Server Reporting Services, SQL Server PowerPivot for Excel, Visual Studio, .NET, Silverlight, AJAX, etc.), as well as being accessible from a range of platforms such as Java and PHP. "

16:30 - 17:30 Closing drink

Registration can be completed here (there are a few seats left!!)
Location:
Business Faculty
St. Lendriksborre 6 / Font Saint Landry 6
Brussel - Neder over Heembeek 1120
Belgium

You can also watch the live stream but you need to register from here. And if you want to view the event from within your company, you can get a free breakfast (Register here)

  Posted on: Friday, January 07, 2011 9:31:20 AM (Romance Standard Time, UTC+01:00)   |   Comments [0]
         
Gill Cleeren     Efficiency | Silverlight | sl4     October 25, 2010    

Light up your Silverlight skills with the all-new Global Silverlight Firestarter!

SLFirestarter_300X250

What is the Silverlight Firestarter?

-          An Event: A one day, global, live streamed and on demand event keynoted by Scott Guthrie

-          Training: New self-paced labs and walk through videos

-          Interactive: Got questions? Get your answers! Watch live and ask the Silverlight product team questions during the event.

-          Why Silverlight? Silverlight is Microsoft’s strategic development platform for building interactive applications across desktop, phone, and the browser.

Something for Everyone

-          Just starting out with Silverlight? Watch our On-Ramp sessions and work on hands on labs to get you started.

-          Already Building business applications? Watch the event live and learn how to create compelling business applications with Silverlight.

-          Got questions? Engage with the Silverlight product team live or in person with our interactive chat.

When
Register
How Much?

December 2, 2010 8am to 5pm PT
Register Online, Now!
Nothing! This is a free event

After the live event keep fueling the fire!

Dive deeper with additional hands on labs and videos that build on the live session content, accelerating you ahead of the crowd.

-          Watch the entire event on demand!

-          Plus, new self-paced labs and walk through videos

-          On Ramp Labs (100 level)

  • Hands on labs specifically focused on helping new developers get up to speed quickly on Silverlight
  • Do you know WinForms? HTML? ASP.NET? Want to learn Silverlight? We have a lab for you!

-          Building Better Business Apps (200-300 level)

  • Hands on labs focused on taking advantage of Silverlight to build real world business applications
  • Apply Data Strategies, Patterns, Out of Browser, RIA Services, and much more using Silverlight

-          Turnabout is fair play! Watch a video of our experts doing the labs themselves.

F I R E S T A R T E R     L I V E     A G E N D A

8:00 am
Silverlight Firestarter Keynote
Scott Guthrie

9:00 am
Masterful Data Strategies with Silverlight and WP7
Jesse Liberty

10:00 am
15 minute break

10:15 am
Roll Out Your Business Apps Today with RIA Services
Pete Brown

11:15 am
MVVM: Why and How? Tips and Patterns using MVVM and Service Patterns
John Papa

12:15 pm
Lunch break

1:00 pm
Silverlight Today and Tomorrow (Special Guest Panel)
Panel

1:30 pm
Building Real World Silverlight Apps
Tim Heuer

2:30 pm
15 minute break

2:45 pm
Tune Your Application: Profiling and Performance Tips
Mike Cook & Jossef Goldberg

3:45 pm
Killer Performance Tips for Silverlight Windows Phone 7
Jaime Rodriguez

After Party!

Spread the Word!

-          Blog and tweet to spread the word about the Firestarter!

-          Ask people to add the Twitter hash tag #slfs10 to their tweets

-          Use the banners and blog bling (attached)

Questions

Got questions? Ask slfs@microsoft.com

  Posted on: Tuesday, October 26, 2010 12:04:35 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     Efficiency | Silverlight | sl4 | Speaking     October 25, 2010    

This Wednesday, on October 27th, I’ll be doing another webinar for SilverlightShow.net. Like always, these are free to attend. The topic for this webinar is “10 Tips in Silverlight”. If you attend, you can win a copy of my book, Silverlight 4 data and services cookbook (which keeps getting great reviews by the way :) ).

The tips that you’ll see are the following:

  1. Behaviors
  2. PathListBox
  3. Binding tricks
  4. INavigationContentLoader
  5. Debugging services
  6. Securing service communication
  7. Leveraging ASP.NET membership
  8. Uploading and downloading files
  9. Downloading functionality on-demand
  10. Bag of tricks

Registration is free but required, you can register here.

  Posted on: Monday, October 25, 2010 11:47:24 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     .net 3.5 | .NET 4 | Efficiency | Silverlight | sl4     October 11, 2010    

After some time, I’m glad to announce that the official, world-renowned Silverlight Tour is coming to Belgium, the Netherlands, the UK and more countries, organized by Ordina Belgium. The second thing I’m glad about is that I’ll be the instructor for this training!

SilverlightTour

The most important link for all this: http://bit.ly/SilverlightTour, where you can find all information, registration and prices. Currently, we have an early bird offering ending in a few weeks for the first batch of sessions.

What is Silverlight Tour?

The Silverlight Tour Workshop is a three-day course on Silverlight 4, given all around the world throughout the USA, Asia and South-America. Ordina will organize the training in several European countries starting Q4 2010.

The training divides the content into three distinct areas: Design, Development and the Server-Side. Students should be able to develop Silverlight 4 applications once attending the workshop. The Workshop is structured with a mix of didactic lessons, demonstrations and hands-on labs.

Each student will leave the workshop having created several small Silverlight applications. This variety of learning techniques will ensure that all students become proficient in the technology quickly and in an exciting way.

Key values of Silverlight Tour

  • Learning Silverlight from an expert in the technology
  • Hands-on labs with Visual Studio and Blend make sure you get to apply your acquired knowledge
  • Architect Silverlight applications
  • Learn about LOB features such as data access and data binding

Why Silverlight?

Silverlight is Microsoft's approach to building RIA (Rich Internet Applications). The platform has since its introduction, taken the world by storm. Now at its fourth iteration, Silverlight is ready for building Line-Of-Business applications, building on the strong foundation of .NET.

Now is the time to learn Silverlight! Not only is Microsoft investing heavily in the platform, but Silverlight is also the base for Windows Phone 7, Microsoft's new mobile platform. And with WPF as the desktop variant, you can apply your knowledge on the web, on the desktop and on mobile devices.

The Silverlight Tour can help you achieve the knowledge you need to start building Silverlight applications today!

Our offering

The Silverlight Tour comes in 2 flavors, depending on your Silverlight knowledge.

If you don't have any experience with Silverlight yet, the Silverlight 4 Tour workshop is ideal for you. In this 3 day course, we are starting from scratch, teaching you the foundation for your Silverlight endeavours. After this training, you'll feel comfortable with the technology and can start building your own applications.

If you already have some experience with the platform, or you just followed the Silverlight 4 Tour, we advise you the Advanced Silverlight 4 workshop. In this 2 day training, we'll tackle the more advanced concepts such as MVVM, advanced data access and IOC.

We offer the combined course (Silverlight 4 Tour Workshop + Advanced Silverlight 4 workshop) at a reduced price.

  Posted on: Monday, October 11, 2010 3:10:14 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     Efficiency | Events | Silverlight | sl4 | Speaking     October 11, 2010    

Yesterday, I arrived back home after touring Sweden for a week. I gave presentations in Malmö, Stockholm, Örebro and Götherborg. Each session was attended by a great number of developers, all members of Swenug. The sessions were sponsored by the people at Telerik: at each session, I got to give away some cool prices from Telerik, including in each city a Telerik Ultimate Collection!

Malmo pictures

IMG_0405 IMG_0406

Stockholm pictures

IMG_0407 IMG_0408 IMG_0409 IMG_0410

Örebro pictures

IMG_0422 IMG_0423 IMG_0424 IMG_0425 IMG_0426 IMG_0427

Göthenburg pictures

IMG_0438 IMG_0440 IMG_0441 IMG_0442 IMG_0443 IMG_0444 IMG_0445 IMG_0446

In the meantime, here are the downloads for the sessions, including all demos and slide decks.

I hope to be back in Sweden very soon! If you have any questions or remarks, please let me know!

  Posted on: Monday, October 11, 2010 2:58:33 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     .NET 4 | Efficiency | ppt | Silverlight | sl4 | Speaking     September 29, 2010    

Yesterday, I gave a presentation at ReMix 2010 in Belgium, the third edition of this annual Microsoft event. My talk, Building an end-to-end Silverlight 4 application – Writing your Christmas Cards with Silverlight, was focused around the new and existing features in Silverlight 4, helping developers building Silverlight Line-Of-Business applications. These included data access, data binding, hardware access, drag and drop, right-clicking, Out-Of-Browser and Trusted applications.

The slide deck can be downloaded here and the entire demo can be found here.

  Posted on: Wednesday, September 29, 2010 10:20:40 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     .NET 4 | .NET Show | Efficiency | Speaking | Windows Azure     September 26, 2010    

image

Dear readers, I’m excited to announce the launch of .NET Show, the Belgian podcast for .NET developers. I’ve been working on this project for some time now and today, we are launching the site AND the first episode!

What is .NET Show?

Together with Katrien De Graeve, I’ll be recording podcasts on .NET development (in the broad sense of the word, so everything related to .NET) from now on. Our goal is bringing you in contact with all corners of the Microsoft development stack, from Silverlight to Azure, from COM interop to ALM... In our podcasts, we are focusing (initially at least) on local guests and we will be doing most shows in Dutch. This way, we can differentiate ourselves from the numerous podcasts already available. The topics, while on .NET of course, can be something that the guests has been working on (a professional project, a hobby project), a technology you have been investigating, something you think that can be interesting for others to hear about etc.

The first first episode can be downloaded already. In this first episode, we are talking with Maarten Balliauw on Windows Azure and the Microsoft cloud strategy in general.
In episode 2, which we’ll put online in the coming week, I’m talking with Pieter Gheysens on ALM (Application Lifecycle Management) in Visual Studio 2010. And in episode 3, I’m sitting down with my co-author Kevin Dockx and we will be discussing WCF RIA Services in real-life projects.

If you are interested in doing a podcast, let me know! Send me a mail at dotnetshow@snowball.be and I’ll contact you. If you have any remarks or questions, send them to that address as well!

So, with that, I hope you’ll enjoy our podcasts! Head over to www.dotnetshow.be where you can find the first episode. If you want (and I know you will) to subscribe via iTunes or another podcast downloader, use this link: podcastIconTo add .NET Show to iTunes, go to Advanced – Subscribe to Podcast:
image

In the window that appears, enter the following URL: http://www.dotnetshow.be/syndication.axd:

SNAGHTML304f17f

.NET Show will now appear in your subscribed podcasts!

image

  Posted on: Sunday, September 26, 2010 11:50:36 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     .net | .NET 4 | Efficiency | Silverlight | sl4 | VS2010     September 4, 2010    

In April, I was in the UK for speaking at the VBUG conference and I was impressed by a demo given by Josh Twist. He built using MEF and WPF a “marketplace” application. The goal of the application was mainly showing the dynamic capabilities of adding new functionality to an application through MEF (or in full, the Managed Extensibility Framework for Silverlight 4).

For a presentation I’m giving shortly, I rebuilt something similar but in Silverlight: the MEF Marketplace in Silverlight. The setup is the following: a user gets an overview of apps he purchased in the market place and can run these on demand. The market place app will download the applications available to the user after the application has started, so this app mainly is a hosting shell for the other ‘purchased” applications to run in. Of course, the sample is a demo and can be extended quite a lot. For example, in the current implementation, I hard-coded the list of purchased apps and there’s no option to buy new ones. Also, it could be extended so that when new apps are purchased, a duplex service notifies the client of this and MEF downloads the new app in the background.

But, instead of talking of what could be added, let’s take a look at what I currently built already! Here’s a screenshot of the application showing the "purchased” applications.

SNAGHTMLaf6bd

And here’s one of the apps (the Flickr Image search) running inside the "market place shell”.

SNAGHTMLb8796

Time for some code. Let’s begin with the market place itself.

I defined a contract interface for all applications that can be loaded in the market place, IMarketPlaceApplication.

public interface IMarketPlaceApplication
{
    string ApplicationName { get; }
    FrameworkElement MarketPlaceIcon { get; }
    FrameworkElement MainView { get; }
}
This interface defines that all my apps will (of course) have a name, a default view which will load as the landing screen when the app is loaded (MainView.xaml) and an icon to show in the list (MarketPlaceIcon.xaml). As these 2 latest ones are XAML files, you can put in whatever you like.

A very easy application that will be possible to load from MEF is the HelloWorldApplication. The project structure of this app is as follows:

image

As you can see, there’s a class called HelloWorldApplication, which implements the IMarketPlaceApplication and 2 xaml files. The HelloWorldApplication code is shown below:

[Export(typeof(IMarketPlaceApplication))]
public class HelloWorldApplication: IMarketPlaceApplication
{
 
    #region IMarketPlaceApplication Members
 
    public string ApplicationName
    {
        get { return "Hello MEF world"; }
    }
 
    [Import(typeof(Icon))]
    public FrameworkElement MarketPlaceIcon
    {
        get;
        set;
    }
 
    [Import(typeof(HelloWorldView))]
    public FrameworkElement MainView
    {
        get;
        set;
    }
 
    #endregion
}

This is our first encounter with MEF. The first line uses the Export attribute. This class is saying that it is available for someone to use, when someone requests an instance of IMarketPlaceApplication. A bit further, we are using the Import attribute on both the MarketPlaceIcon and the MainView. Here we are saying: MEF, search us a class that’s exporting itself as type Icon and HelloWorldView respectively.

These 2 latter instances will be inserted by MEF upon executing the application, that is, if MEF finds the corresponding export. These exports can be found in the 2 XAML files (in the code-behind). The HelloWorldView.xaml.cs code is shown next. Note the Export attribute: we’re telling to MEF that this type can be used where an Import is requested of the HelloWorldView type.

[Export]
public partial class HelloWorldView : UserControl
{
    
    public HelloWorldView()
    {
        InitializeComponent();
    }
}

The Icon.xaml.cs is pretty similar code-behind-wise (I think I invented that term here): here alse we are adding an Export attribute.

[Export]
public partial class Icon : UserControl
{
    public Icon()
    {
        InitializeComponent();
    }
}

The HelloWorldApplication is at this point a stand-alone application (it compiles to its own XAP file), but we’ll now build the Market Place shell that will host this app. The code download at the end of the article contains several sample applications (a Flickr app and a Facebook app).

Similar to a real market place application, our implementation will get a list of apps you purchased previously. Only these are available to you and will be shown. To get this list, I wrote a basic Silverlight-enabled WCF service that fetches this list of available applications. This service is hosted in this case in the hosting website. The code below shows this service, which in this case returns a hard-coded list of apps (note that I have some more apps already added here).

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = 
    AspNetCompatibilityRequirementsMode.Allowed)]
public class MarketPlaceService
{
    [OperationContract]
    public List<MefApplication> GetAvailableApplicationsForUser()
    {
        return new List<MefApplication>()
        {
            new MefApplication(){ApplicationName="Flickr Image Search", 
                XapFileName="FlickImageSearch.xap"}, 
            new MefApplication(){ApplicationName="Hello World", 
                XapFileName="HelloWorldApplication.xap"},
            new MefApplication(){ApplicationName="MEFacebook", 
                XapFileName="FacebookApplication.xap"}
        };
    }
 
    // Add more operations here and mark them with [OperationContract]
}
 
[DataContract]
public class MefApplication
{
    [DataMember]
    public string ApplicationName { get; set; }
 
    [DataMember]
    public string XapFileName { get; set; }
}

The service uses the MefApplication class as a helper class: it contains the name of the application and more importantly, the name of the XAP file (this could easily be replaced with a Uri to the XAP file).

In the MefMarketPlace, the Silverlight Market Place application, we can create a web reference to this service. In the App.xaml.cs, I add a call to a new method, DownloadMyApplicationList():

private void Application_Startup(object sender, StartupEventArgs e)
{
    DownloadMyApplicationsList();
    this.RootVisual = new MainPage();
}

This new method makes the service call to get a list of available XAPs that I can use (apps that I purchased).

void DownloadMyApplicationsList()
{
    AggregateCatalog = new AggregateCatalog();
 
    container = new CompositionContainer(this.AggregateCatalog);
    CompositionHost.Initialize(container);
 
    MarketPlaceService.MarketPlaceServiceClient client = 
        new MarketPlaceService.MarketPlaceServiceClient();
    client.GetAvailableApplicationsForUserCompleted += 
        new EventHandler<MarketPlaceService.GetAvailableApplicationsForUserCompletedEventArgs>
            (client_GetAvailableApplicationsForUserCompleted);
    client.GetAvailableApplicationsForUserAsync();
}
 
void client_GetAvailableApplicationsForUserCompleted(object sender, 
    MarketPlaceService.GetAvailableApplicationsForUserCompletedEventArgs e)
{
    if (e.Error == null)
    {
        AvailableApplicationsForUser = e.Result;
        InitializeCatalog();
    }
}

In the callback method of the service, I call InitializeCatalog(). MEF has the concept of Catalogs: a Catalog can be used to tell MEF where it has to look for Parts. Several types of catalogs exist in MEF for Silverlight: the TypeCatalog, the AssemblyCatalog, the DeploymentCatalog and the AggregateCatalog. A TypeCatalog basically allows us to register a specific type with MEF: if I want MEF to know about a certain Export, I can register it in a TypeCatalog. An AssemblyCatalog tells MEF to look for parts in a specific assembly. The DeploymentCatalog allows us to specify a XAP file and MEF will look in the assemblies therein for parts. It also allows us to asynchronously download a XAP file. An AggregateCatalog can contain any number of other catalogs and more catalogs can be added at any time.

By default, if we don’t specify a Catalog for our application, MEF looks at the current XAP file and for each assembly it finds, it creates an AssemblyCatalog. It then combines these with an AggregateCatalog. That means that we can omit creating a catalog in our application: in this case, MEF will create a default one for us, with something similar to this code:

void InitializeCatalog()
{
    AggregateCatalog catalog = new AggregateCatalog();
 
    foreach (var deployedPart in Deployment.Current.Parts)
    {
        StreamResourceInfo resourceInfo = 
            Application.GetResourceStream(new Uri(deployedPart.Source, UriKind.Relative));
 
        Assembly assembly = deployedPart.Load(resourceInfo.Stream);
        catalog.Catalogs.Add(new AssemblyCatalog(assembly));
    }
 
    CompositionHost.Initialize(catalog);
}

Back to our application. If we look at the available catalogs in MEF, we can see that the DeploymentCatalog is a good candidate for what we need: we can use it to download a XAP file (the application that we want to load). After that, we can add each DeploymentCatalog to an AggregateCatalog. MEF will then make these available in our application and we can run the downloaded applications.

In code, this gives the following:

private CompositionContainer container;
void InitializeCatalog()
{
 
    foreach (var item in AvailableApplicationsForUser)
    {
        DeploymentCatalog deploymentCatalog = 
            new DeploymentCatalog(item.XapFileName);
        this.AggregateCatalog.Catalogs.Add(deploymentCatalog);
 
        deploymentCatalog.DownloadCompleted += (s, e) =>
        {
            //extend to give meaningful error handling
            if (e.Error != null)
                MessageBox.Show(e.Error.Message);
        };
 
        deploymentCatalog.DownloadAsync();
    }
 
    container.ComposeParts(this);
}

You can see that I use a CompositionContainer here. The container is well, like the word says it, a container where MEF puts all the parts, shakes it up and creates/composes parts.

We now have the code that runs when we start the application: it gets a list of all the applications we can use over the service and then it downloads the XAP files of these apps asynchronously. Each XAP file is downloaded using a DeploymentCatalog and these are added to an AggregateCatalog. This now makes our downloaded applications available to run.

Let’s now take a look at the UI where we’ll run the apps from. The following screenshot shows the UI:

image

The “Load my apps'” button on the top right will execute a command on the viewmodel that will load all available applications in the ListBox on the left.

image

When clicking on the “Load app” button, the selected application (here the Flickr app) is loaded:

image

Clicking the “Home” button unloads the app and returns us to the list screen.

The complete XAML listing can be found in the code download. The most important part is shown below. Note that there’s a ContentPresenter used here and it’s bound to the MainView property of the SelectedApplication. The latter is a property exposed on the viewmodel (see further). If no view/app is selected, this ContentPresenter won’t be visible and we’ll see the default UI again.

<Grid x:Name="LayoutRoot" Background="Black">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="60"></RowDefinition>
    </Grid.RowDefinitions>
    <Grid>
        ...
    </Grid>
 
    <ContentPresenter Content="{Binding SelectedApplication.MainView}">
    </ContentPresenter>
    <Button Grid.Row="1" Content="Home" Margin="10" Background="#FFABE3FF" 
            Command="{Binding HomeCommand}" BorderBrush="#FF00AAFF" 
            Style="{StaticResource ButtonStyle1}" 
            Width="130" Height="40" HorizontalAlignment="Center" 
            VerticalAlignment="Center"></Button>
</Grid>

Time to look at the viewmodel now. Probably the most important part here is the ObservableCollection<IMarketPlaceApplication>:

[ImportMany(AllowRecomposition=true)]
public ObservableCollection<IMarketPlaceApplication> Applications
{
    get
    {
        return _applications;
    }
}

The ListBox in the UI is bound to this collection and since it’s an ObservableCollection, the UI will reflect changes to this collection. That’s important here, since the list of available apps won’t be known after the shell contacted the service. Note that the collection property is attributed with the ImportMany attribute. This is a sign for MEF that more than one part that is exposing itself with the same Export attribute (same type) is allowed. By default, this isn’t allowed since MEF wouldn’t know which one to use. Here, we want the ImportMany since we know that more than one app will be available and they all need to be exported as an IMarketPlaceApplication. Another important thing to note here is the AllowRecomposition option we used here. AllowRecomposition tells MEF that if during the run of the app more Exports become available for this Import, it’s OK to add them, in other words, to rebuild the composition.

The ContentPresenter in the UI bound to SelectedApplication.MainView. The SelectedApplication property is shown next.

private IMarketPlaceApplication _selectedApplication;
 
public IMarketPlaceApplication SelectedApplication 
{
    get
    {
        return _selectedApplication;
    }
    set
    {
        _selectedApplication = value;
        NotifyPropertyChanged("SelectedApplication");
    }
}

NotifyPropertyChanged is a simple method that raises the PropertyChanged event of the INotifyPropertyChanged interface.

private void NotifyPropertyChanged(string p)
{
    if (PropertyChanged != null)
    {
        PropertyChanged(this, new PropertyChangedEventArgs(p));
    }
}

The “Load apps” button in the UI is bound to the LoadAppsCommand. I use the MVVM Light RelayCommand here. In the execute code of the ICommand, I ask MEF to satisfy the Imports of the current class (the viewmodel). This basically tells MEF to look at the catalogs and bring all the Export(typeof(IMarketPlaceApplication)) into the ImportMany.

public RelayCommand LoadAppsCommand
{
    get
    {
        if (_loadAppsCommand == null)
        {
            _loadAppsCommand = new RelayCommand(
                    () =>
                    {
                        CompositionInitializer.SatisfyImports(this);
                        loaded = true;
                    },
                    () =>
                    {
                        if (loaded)
                            return false;
                        return true;
                    }
                );
        }
        return _loadAppsCommand;
    }
}

The LoadSelectedApplicationCommand and the HomeCommand respectively set the SelectedApplication property to the selected application in the list or null.

public RelayCommand<IMarketPlaceApplication> LoadSelectedAppCommand
{
    get
    {
        if (_loadSelectedAppCommand == null)
        {
            _loadSelectedAppCommand = new RelayCommand<IMarketPlaceApplication>(
                    (a) => 
                    { 
                        SelectedApplication = a; 
                    }
                );
        }
        return _loadSelectedAppCommand;
    }
}
 
 
public RelayCommand HomeCommand
{
    get
    {
        if (_homeCommand == null)
        {
            _homeCommand = new RelayCommand(
                    () =>
                    {
                        SelectedApplication = null;
                    }
                );
        }
        return _homeCommand;
    }
}

With that, we have successfully implemented the MEF Marketplace. As said in the very beginning, this can be extended quite a lot. Add a duplex service and a buying system that pushes a message to the client and trigger the client to download the linked XAP file is a nice way to start. The complete file can be downloaded below.

Enjoy!

Code download: MefMarketPlace.zip (868.99 KB)

  Posted on: Saturday, September 04, 2010 11:25:11 PM (Romance Daylight Time, UTC+02:00)   |   Comments [2]
         
Gill Cleeren     Book | Efficiency | Silverlight | sl4     September 3, 2010    

I was looking at Amazon today and noticed that there were now already 12 reviews on our (Kevin and myself) book, giving the book a whopping 5 star rating, which is of course great!

9843_Mockupcover

Here are some of the excerpts:

Ideal for those who prefer a tutorial-oriented writing style, August 30, 2010 5.0 out of 5 stars
HOW THIS COOKBOOK WORKED FOR ME: In contrast, this book ("Microsoft Silverlight 4 Data and Services Cookbook" from PACKT) certainly proved valuable to me by appealing to my learning style, and delivering what was advertised on the cover. I was able to learn a reasonable amount of SL4 specifically for handling business data, using "Microsoft Silverlight 4 Data and Services Cookbook". The format and approach is ideal for those among us who prefer to "cut to the chase" instead of wading through lengthy tirades. The examples build on one another which served to reinforce key concepts through out the book-- money well spent from my perspective.

Great Book for Silverlight App Development, June 22, 2010 5.0 out of 5 stars
*Getting ready
*How to do it...
*How it works...
*There's more...
*See also
The ample pictures of both the Visual Studio 2010 GUI and running Silverlight applications augment the many code samples. The section that I have appreciated the most has been the chapter on "Talking to WCF RIA Services" as I am working on developing a better understanding of it.
Now that the summer is here, it's a great time to pick up a book or two to read when you're away from your computer. If you are building or want to build applications with Silverlight, I highly recommend this book and suggest that you get a copy for your summer reading.

Best book for Developers., July 18, 2010 5.0 out of 5 stars
Best book for beginner / intermediate developers who have prior knowledge about basics of Silverlight.

Best Silverlight 4 Book To Date, June 19, 2010 5.0 out of 5 stars
I have read through every well-known Silverlight 4 book on the market. I have even read part of Microsoft Step by Step Silverlight 4 (released yesterday 2010-06-18 on Safari and via ebook) - In my humble opinion, this is the best Silverlight 4 book on the market to date. Most of what I have read from the other Silverlight books is covered in Ian Griffith's Silverlight 4 labs up on the Microsoft Silverlight 4 page. If you want a fast track to learn Silverlight 4 and are already familiar with C# .NET, I would recommend picking up a top rated Silverlight 3 book (I personally like books from the Apress series - "Pro Silverlight 3" and the Silverlight 3 Business Intelligence one (forget the exact title) - then the labs on the official Silverlight 4 website and this book.

life savor, August 25, 2010 5.0 out of 5 stars
I had to write a web-application to demo the WCF Data Service I was writing on a very short time budget. This book was a life savor; it had all the answers I needed for consuming the service and displaying in the datagrid. For server side programming, both Effective REST Services and Essential WCF are great.

The best silverlight book i've seen..., 24 Aug 20105.0 out of 5 stars
This is an excellent book, packed with step by step exercises so you learn by doing rather than just having reading a book as thick as a house brick. Personally I would buy this book to learn Silverlight from scratch, while its true you wont learn a great deal about the controls but you WILL learn the most important aspects which are accessing and displaying data.
I've been a software developer for 6 years after University and bought so many IT books, so far, this has been the best and most readable. I enjoyed reading and practicing the examples in it unlike so many 20 inch thick programming beasts that you dread opening because they just send you to sleep!
Dont hesitate, just buy it.
My only gripe about this book is that when I brought it I thought it was a tad expensive at £35... But, worth it though.

Concise and relevant, 11 Aug 2010 5.0 out of 5 stars
This book covers the essentials of Silverlight and WPF with practical examples that you are going to follow when building your real world applications. It explains WPF binding and DataTemplates well, and what interfaces your business layer objects need to implement to notify when changes occur.
The recipies on WCF communication (sockets, WCF, net.tcp) are great and give examples of when you would best use them, and cover the config file changes needed too.
A refreshingly slim book too - lets face it, who wants a 1000+ page book covering everything and the kitchen sink. You want a straight to the point book that covers the essentials you would use at work and touches all the major areas. Highly recommended.

 

If you want to read more reviews or order my Silverlight 4 Data and services cookbook, head to Amazon.com or Amazon.co.uk or alternatively you can order via the Packt website as well!

  Posted on: Friday, September 03, 2010 10:09:44 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     Efficiency | Events | Silverlight | Slide decks | Speaking     August 27, 2010    

Yesterday, I gave a talk for DotNed.nl, the Dutch usergroup at the Ordina offices in Nieuwegein. 55 people attended the sold-out talk, I hope you enjoyed it. Any feedback is of course welcome via mail.

The talk, Building an end-to-end Silverlight application consisted out of 10 topics that we often encounter when building LOB applications:

  • 1.SketchFlow
  • 2.WCF RIA Services
  • 3.Data binding & DataGrid
  • 4.MVVM
  • 5.MEF
  • 6.Commanding & behaviors
  • 7.Messaging, navigation & dialogs
  • 8.Custom controls & third party controls
  • 9.OOB
  • 10.Printing

The ZIP file below contains the PPTX and the demos (also of the 2 topics we didn’t cover).

Remember that in 2 weeks, on September 14th, I’ll be again in the Netherlands for 2 sessions for SiXin, the Silverlight usergroup. Registration for this event is free and can be done here.

PPTX & demos

  Posted on: Friday, August 27, 2010 9:54:17 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     Efficiency     August 19, 2010    

hNext week Thursday (August 26th 2010), I’ll be presenting at DotNed.nl. The presentation is titled Building an end-to-end Silverlight 4 application. As the title says, we’ll be looking at some of the common questions (and of course answers) you’ll have when you are faced with the challenge of building a Line-of-Business application from scratch.

Bring your demo hat today, as we’ll be building an end-to-end, real life Silverlight application during this session! Looking at Silverlight today, we easily see that the platform is getting larger and larger, with more frameworks such as MEF being developed on the side. Advanced features such as COM interop and printing make the Silverlight story complete. In this session, we’ll take a look at how we can use all members of the Silverlight family to build an end-to-end application, based on MVVM principles.

 

Registration is free but mandatory and can be done on the DotNed.nl site. And since it’s taking place in the Ordina.NL offices, I won’t be feeling all that strange ;-) (FYI, I work at Ordina.BE!)

  Posted on: Thursday, August 19, 2010 10:06:53 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     .NET 4 | Efficiency | Personal | Silverlight | Speaking | TechEd     July 13, 2010    

Microsoft just announced that all of us can help deciding which sessions will be delivered at Tech-Ed 2010 Berlin. That's a great way of making sure that the contents is what the public wants!

I've ran through the list and 4 of my proposals made the shortlist (which is good news :)).

  • Treasures for the C# developer in Visual Studio 2010
  • AJAX Tips and tricks: things you never knew that could be done in ASP.NET Ajax
  • Silverlight data access and services not for the faint of heart
  • The good, the bad and… well, that’s it: Comparing good and bad practices in Silverlight application development

If you would like me to deliver one of these sessions on the upcoming Tech-Ed, please vote for them at http://europe.msteched.com/sessionpreference . Of course, there are many really other interesting sessions there as well: I'm sure this will be a great conference!

Thanks for voting!

  Posted on: Tuesday, July 13, 2010 11:37:55 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     .NET 4 | Book | Efficiency | Silverlight | sl4     May 22, 2010    

With my book I wrote together with Kevin Dockx, Microsoft Silverlight 4 Data and Services Cookbook available for a couple of weeks now, I decided to do a small search on reviews. I’ll be honest, I took all I could find right now.

9843_Mockupcover

Here’s the ones I found:

Richard Costall:

“Microsoft Silverlight 4 Data and Services Cookbook is a great publication, and worthy of a place any Silverlight developers bookshelf. The formula of ‘recipes’ works well, with well explained, yet simple examples covering almost everything you’d ask when starting out building business applications in Silverlight. It highlights Silverlight 2 and Silverlight 3 functionality differences, yet is right up to date on Silverlight 4.”

Complete review at: http://www.nxtgenug.net/Article.aspx?ArticleID=368

Vikram Pendse writes:

“My Review Comments : * * * * * (5 Stars)..Simple Amazing book !..Go and Grab your Copy Today !!! :)

Impressed with this Book?..want to have a look at? Ok ! What you see is what you get ! kidding..You can download a sample chapter right away !”

Complete review at http://pendsevikram.blogspot.com/2010/05/microsoft-silverlight-4-data-and.html

Damir Tomicic writes:

“Das Buch ist sehr praktisch geschrieben. Der Leser merkt sofort, dass Gill und Kevin die Ansätze selbst ausprobiert und für die Leser optimiert haben. Die gewählte Sprache ist einfach, die Beispiele auch für Anfänger geeignet. Ein guter Einstieg in das Thema.”

Complete review at: http://tomicic.de/2010/05/05/MicrosoftSilverlight4DataAndServicesCookbookGillcleeren.aspx

Review on Amazon.com

“Good Introduction to the Datagrid, Dataform, and different Services (4/5)”


Complete review at http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/product-reviews/1847199844/ref=dp_db_cm_cr_acr_txt?ie=UTF8&showViewpoints=1

Interested in my book as well? It is available from Packt Publishing, Amazon.com, Amazon UK and many other retailers as well! I hope you enjoy it!

  Posted on: Saturday, May 22, 2010 10:06:33 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     Community Day | Efficiency | Events     May 11, 2010    

Community Day 2010 is coming! Registration is now open.

No less than fourteen Microsoft user groups combine their efforts to organize this unique knowledge-sharing and networking event. With so many new Microsoft product and technology releases, the content of this Community Day will be focusing on Visual Studio 2010, SharePoint 2010, Silverlight 4, Office 2010, SQL Server 2008 R2, OCSR2, and many more!
So don’t miss out on the Community Day and join us on Thursday June 24th in Utopolis, Mechelen. We will bring together more than 300 IT Pro’s and developers.
The Community Day 2010 is brought to you by Azug, Besug, Biwug, IT-Talks Pro-Exchange, SCUG, SQLUG, VBIB, Visug, WinSec, XNA-BUG, CLUG, MyTIC and DotNetHub.

Register now for free at www.communityday.be !

  Posted on: Tuesday, May 11, 2010 11:35:01 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     Efficiency | Silverlight | sl4     April 26, 2010    

Earlier today, I got confirmation that my first book I wrote (together with Kevin Dockx) has been published and can now be ordered, both in e-book and hard copy. This is the new cover. The book also marks the launch of the new brand of Packt, namely Packt Enterprise.

9843_Mockupcover

The e-book version is available from the publisher’s website: https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book . On this site, you can also get a discount on the printed version.

You can also buy the book from Amazon of course (which at this moment still lists it as pre-order though). If you shop at Amazon.com, you can get your copy here: http://www.amazon.com/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844. If you rather order at Amazon UK, you can order here: http://www.amazon.co.uk/Microsoft-Silverlight-Data-Services-Cookbook/dp/1847199844/ref=sr_1_1?ie=UTF8&s=books&qid=1272289229&sr=8-1.

If you want to get a more in-depth look at what the book has to offer, take a look here: https://www.packtpub.com/microsoft-silverlight-4-data-and-services-cookbook/book#in_detail .

What the book is about:

Silverlight 3 made a big step into Line-Of-Business applications and Silverlight 4 builds further on this. This book is not a general Silverlight 4 overview book; it is uniquely aimed at developers who want to build data-driven applications using Silverlight. It focuses on showing . NET developers how to interact with and handle multiple sources of data in Silverlight business applications and how to solve particular data problems, following a practical hands-on approach, using real-world recipes in a practical cookbook format. The book is aimed at Silverlight 4, however most of the covered features work both in Silverlight 3 and 4.

By following the practical recipes in this book, you will learn the concepts needed to create data-rich business applications—from the basic creation of a Silverlight application, to displaying data using data binding and upgrading your existing applications to use Silverlight.

Who this book is written for:

If you are a .NET developer who wants to build professional data-driven applications with Silverlight, then this book is for you. Basic Silverlight experience and familiarity with accessing data using ADO.NET in regular .NET applications is required.

What you will learn from this book:

  • Display and validate data efficiently in Silverlight business applications using data binding
  • Use the full power of the important data controls in Silverlight such as the DataGrid and the DataForm
  • Discover how your Silverlight business applications can quickly access data residing in a database or even Windows Azure by calling web services using XML, RSS, JSON and more
  • Exchange information between Silverlight clients and WCF or ASMX services in your Silverlight business applications
  • Add functionality to your Silverlight business applications by harnessing REST and WCF Data Services
  • Communicate with well-known REST APIs such as Flickr and Twitter from Silverlight
  • Simplify your data-driven business application development with WCF RIA Services

You can also read some sample recipes on the Packt site here: https://www.packtpub.com/article/inserting-updating-deleting-sorting-grouping-displaying-data-grid-silverlight .

I do hope you’ll like the book. If you have any questions on the book, don’t hesitate to mail me at silverlight@snowball.be .

  Posted on: Monday, April 26, 2010 4:32:01 PM (Romance Daylight Time, UTC+02:00)   |   Comments [3]
         
Gill Cleeren     .NET 4 | Efficiency | VS2010     April 11, 2010    

Very often, you need to navigate to a class while coding. Perhaps a class you wrote yourself, perhaps you just want to see the members of a type of the .NET framework.

Visual Studio 2010 has THE ultimate feature for this, namely the Navigate To function. What you do, is hit CTRL + , (yes, indeed the comma) and it will open the Navigate To window, as shown below.

image

This window follows the same rules as the new IntelliSense: if I’m searching for a property “OverPaid”, I can search by typing Over… or just use OP.

image

If you have some text already selected in the code editor, the window will perform its search from there.

image

  Posted on: Monday, April 12, 2010 12:04:55 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
         
Gill Cleeren     Efficiency | Silverlight     March 15, 2010    

I just noticed now that Silverlight 4 officially hit RC, that the book I wrote (together with Kevin Dockx) is now featured on Silverlight.net: http://www.silverlight.net/learn/books/ . Really cool to be on that site!!

  Posted on: Tuesday, March 16, 2010 12:08:12 AM (Romance Standard Time, UTC+01:00)   |   Comments [0]
         
Gill Cleeren     Efficiency | PDC | Silverlight | sl4     November 18, 2009    

Remember my post on printing in Silverlight 3, using the WriteableBitmap. This class allowed to export UI elements to an image and print from there. While it was working, it wasn’t a great way of doing things.

Silverlight 4 brings real printing to the table. All printing is done using the PrintDocument class. In it’s PrintPage event, we can specify what content needs to be printed. This can be the entire screen, a control that’s part of the visual tree or even a control that’s generated on the fly. Finally, we use the Print() method to perform the actual printing of the document.

Let’s take a look at some really easy code to do all this.

The UI code is kept simple intentionally:

    <Grid x:Name="LayoutRoot" Background="White">
        <TextBlock Height="25" HorizontalAlignment="Left" Margin="62,92,0,0" Name="textBlock1" Text="I want to print!" VerticalAlignment="Top" Width="194" FontWeight="Bold" FontSize="15" />
        <Button Content="Print" Height="55" HorizontalAlignment="Left" Margin="62,213,0,0" Name="PrintButton" VerticalAlignment="Top" Width="216" Click="PrintButton_Click" />
    </Grid>

This looks like the following:

image

In the click event of the button, we write some printing code.

 

        private void PrintButton_Click(object sender, RoutedEventArgs e)
        {
            PrintDocument document = new PrintDocument();
            document.PrintPage += (s, args) =>
                {
                    args.PageVisual = LayoutRoot;
                };

            document.Print();
        }

This will now show a print preferences dialog, in which we can select a printer. The result in this case is the entire UI being printed, because LayoutRoot was specified.

We can also hook into the beginning and ending of the printing process using the StartPrint and EndPrint event. These can be used to execute some code at the start or ending of the printing process.

  Posted on: Thursday, November 19, 2009 12:38:20 AM (Romance Standard Time, UTC+01:00)   |   Comments [3]
         
Gill Cleeren     Efficiency | Silverlight | sl4     November 18, 2009    

Today at the PDC09, Microsoft announced Silverlight 4, the 4th version of the RIA platform.

You can get the bits here:

  • Visual Studio 2010 Beta 2 or Visual Web Developer Express 2010 Beta 2 (pick one)
  • Silverlight Tools for Visual Studio 2010
  • Expression Blend for .NET 4 Preview – for authoring Silverlight 4 and WPF 4 applications
  • WCF RIA Services (formerly .NET RIA Services) (NOTE: This is actually included in the SL Tools for Silverlight 4)
  • Silverlight 4 SDK CHM (offline documentation) – optionally online here as well
  • Updated Silverlight Toolkit for Silverlight 4
  • Developer runtimes: Windows and Mac platforms
  • Silverlight 4 SDK only – not needed if you install the tools above
  • Silverlight Media Framework – a new, Open Source media player framework for you to use.
  • (This list was shamelessly copied from Tim Heuer’s blog post on Silverlight 4)

      Posted on: Wednesday, November 18, 2009 7:30:30 PM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | TechEd     November 15, 2009    

    After a week of way too many bratwurst (which I didn’t eat for the record), I’m home again, from a TechEd in which quite a lot happened. Here’s my view on things.

    Berlin, aber ja (yes, that’s about as far as my German goes)

    For the first time, TechEd Europe took place in Berlin. When some time ago, I saw the date that Microsoft planned to do its biggest conference on the European continent, I was a bit worried. The conference was to start on the day of the celebrations of the fall of the Berlin wall, now exactly 20 years ago. Because I planned on going by car to the event, I feared quite some traffic problems. However, this turned out to be a great choice. Not only did we attend the technical event, we were able to attend a once-in-a-lifetime evening, witnessing the fall of the 1000 domino blocks, representing the Berlin wall. Despite the rain, it was nice to see this.

    4106997798_f226f96e44[1]

    The city itself is huge and public transport is great. You can get anywhere within minutes. It has a safe feeling as well, we were walking around quite late and it all seemed quite OK.

    Technical content

    For the first time (as far as I know that is), Microsoft decided to make TechEd a one-week event. Previous editions were split: one week was for devs, the second week for IT Pros (or vice-versa depending on the year). While this new formula has its advantages (like in: you can now take a peek over the hedge if you know what I mean), it also has its disadvantages in my opinion. In some time slots, I personally felt there were not enough dev-oriented sessions. At TechEd Barcelona 2007, I had to choose between a good session, another good session and often another good session. Being at the event as a pure developer, I missed that this year in some of the time slots sadly. The good news is that some of the sessions were really good though. My top sessions were Jeff Prosise’s Secrets in Silverlight and Stephen Forte’s Agile Estimation.

    I personally do hope for a split event again next year, although I doubt it. With a one-week event, the event is probably easier to organize and financially more interesting. In unsure times like these, this is probably a heavy-weighing factor on the decision making, which is understandable.

    Speaker Idol

    As announced, I took part in Speaker Idol this year. I won the first heat on Monday, which got me a Flip HD camera :) . On Thursday, I didn’t win in the finals, although I got a ticket for free for next year’s event! No pics yet, but I expect them to arrive soon.

    A bad Coke bottle

    Right after the Speaker Idol finals on Thursday, I got injured. Opening a bottle of Coke (only glass bottles at the event… why??), it broke in my hand. Result:  a deep cut in a finger on my right hand and had to go to first aid. The bottle was probably broken already and upon putting force on it to open it, it broke further. Luckily, the doctors decided it did not need stitching.

    Typing is still quite difficult with so much band-aid on my finger, I keep hitting too many keys at the same time.

    Ask The Experts

    I was also at the Silverlight booth for the Ask The Experts program. While working there, I spent some time with Tim Heuer, Shawn Wildermuth, Emil Stoychev and others. It was really nice to finally meet all of them!

    4106282951_26829de304[1]

    A tech talk or two?

    While at the event, I did 2 TechEd Online TechTalks. The first one, in which I was interviewed by my colleague Bart Wullems on building real world applications with Silverlight, is online already at http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4 . The second one on multi-touch in Silverlight apps will be online soon.

    Pictures?

    Of course! Here are all the photos I made while at the event: http://www.flickr.com/photos/gillcleeren/sets/72157622685362577/ 

    See you in 2010 again, Berlin!

      Posted on: Monday, November 16, 2009 12:56:16 AM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Microsoft | Visug     November 15, 2009    

    2009 has to be the year in which most “Microsoft VIPs” have been in Belgium! We already had Brad Abrams, Juval Löwy, Dino Esposito and many more. You thought that was it for this year? So was I…

    Until last week, Katrien De Graeve told me and Pieter (my Visug-colleague) she had some news for us… MSDN and Visug will join forces for a Scott Guthrie event. Yes, "ScottGu” aka “TheGu” is coming to Belgium on December 4th. Erase any other appointments, meetings, vacations you have planned on that day (afternoon only), as Scott will give presentations and probably a Q&A session as well.

    scott-guthrie

    Location and exact content will  be posted very soon-ish, we know it’s very near, but I expect to that we will have everything set up this week. The event will be free in any case, thanks to Microsoft.

    For now, start thinking of questions you may have, you will soon be able to start sending those in. As the event is only two weeks away, we hope many of you will be blogging, tweeting, Facebook’ing, “whatever”ing a lot!

    More news soon, right here!

      Posted on: Sunday, November 15, 2009 11:25:17 PM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Silverlight | TechEd     November 15, 2009    

    At TechEd Europe 2009, together with my colleague Bart Wullems, I did a TechEd Online TechTalk on Building Real World Silverlight applications. You can watch it here: http://www.msteched.com/online/view.aspx?tid=298625e9-142f-4b7f-8018-81615efd51c4 

    A second one on building multitouch applications, together with a fellow Regional Director Daron Yondem, will be online soon.

      Posted on: Sunday, November 15, 2009 10:09:05 PM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | TechEd     November 5, 2009    

    TechEd 2009 is just a few days away now, starting on Monday November 9th in the Mess Berlin. Coincidentally, the day the event starts, marks the celebrations of the fall of the Berlin wall, now exactly 20 years ago. I’m guessing Microsoft took the “Life without walls” seriously! Authorities expect no less than one million people on the Berlin streets on Monday night. We won’t be alone there, that’s for sure.

    TechEd_Europe_Blog_SM_BDG_MVPs TechEd_Europe_Blog_SM_BDG_RDs

    I’ll be attending the event and you can come and see me at the following locations/times:

    • Tuesday evening during the reception at the Silverlight booth
    • Wednesday from 14.45 till 17.30 at the Silverlight booth
    • Probably I’ll be at the booth on other times as well
    • On Tuesday I’ll be doing a TechEd TechTalk in the fishbowl around 15.00
    • I’ll be at the Speaker Idol booth as well, don’t know when yet
    • Together with other Regional Directors, I’ll be in the lounge

    Of course, I’ll be blogging as much as possible from the event, so watch this space for important updates!

      Posted on: Thursday, November 05, 2009 9:06:01 AM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Events     September 29, 2009    

    I’ll be doing an MSDN Live Meeting on October 1st on Prism/Composite Application Guidance, starting at 2PM GMT+1. Registration is free and you can still register here: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424477&EventCategory=2&culture=nl-BE&CountryCode=BE .

    Hope to see/LiveMeet you then!

      Posted on: Wednesday, September 30, 2009 12:49:55 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Events | Silverlight     September 29, 2009    

    Last week, Silverlight FireStarter was hosted, an in-person and also online event where top speakers like Scott Guthrie, Brad Abrams, Tim Heuer etc talked about all there is to know about Silverlight.

    Luckily, all the sessions can now be seen on-demand for free here: http://www.msdnevents.com/firestarter/

    A small extra: I just found through Tim Heuer a nice 2-part video on Visual Studio called the Visual Studio Documentary form Channel9:

    Welcome to the first installment of the Visual Studio Documentary.This is an hour long documentary that is split into two parts, roughly a half hour each. Welcome to part one, where we take you back to the days of MS-DOS and Alan Cooper who originally sold Visual Basic to Bill Gates back in 1988.  Next week we will feature Part Two but for those that would like to watch it sooner, here is Part Two. In addition, each week we will post a longer and more in-depth stand alone interview from the interviewees that were featured in the documentary.

    Links: http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/ and http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/

      Posted on: Wednesday, September 30, 2009 12:32:51 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Events | Silverlight     September 29, 2009    

    Today, the Belgian edition of Mix, ReMix09, took place in Belgium. With an almost sold out conference, the expectations were high, many people were expecting to learn new things on the tools and technologies that will influence how we work in the coming years. Silverlight, Expression Blend & Design, Surface… were covered in today’s sessions. Some corporate speakers, including Brad Abrams (who joined Visug yesterday for another sold out event) and Adam Kinney.

    The event

    After a long absence from Kinepolis in Brussels, the troops again gathered in the largest cinema complex in Belgium. Like said in the introduction, the event was almost completely sold out, which was noticeable in the keynote: almost all chairs were taken and at that very point, the highway around Brussels was still completely stuck.

    Because of the fact that it’s a cinema complex, the rooms themselves are the best to do presentations in and also to watch them in.

    All attendees could get a trial version of Blend, which I noticed were very much wanted.

    The speakers

    Most of the content today was brought by corporate speakers, giving attendees a deep insight in the technologies that were covered. These included Silverlight, Surface, Blend and ASP.NET MVC. What struck me somehow, is that there where more questions after sessions than normal: Belgian audience is not very communicative, however today, quite some questions were asked.

    The keynote was delivered by Katrien De Graeve and Luc Van De Velde. It was clear, to the point and had a nice flow of ideas in it. Good work, guys!

    The technologies

    Two things really amazed me today. First, when Luc asked during the keynote, how many people attended last year’s Mix Essentials, only an estimated 5-10% raised their hand. I can’t think of an explanation for this though…

    The other thing is the following: the people that attended the conference, had very little knowledge of the Silverlight and Blend tools. OK, you can think: that’s why they came to the conference, right?! True, but still, I would have expected that more people would have experimented with the Silverlight tools.

    The pictures

    I took my camera with me today (for once I actually didn’t forget to do so…) and here are some of the pictures. The full album can be found here: http://www.flickr.com/photos/gillcleeren/sets/72157622483133184/

    Ordina@ReMix

    A nice video testimonial for Ordina was shown in the keynote where I talk about WPF projects we have done in the past few months. The video will be added soon here!

      Posted on: Wednesday, September 30, 2009 12:23:18 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Visug     September 28, 2009    

    Brad Abrams, program manager at Microsoft, took time from his busy schedule he has to pay a visit to Visug. This session, hosted at Ordina in Mechelen, was attended by over a 100 people. This only shows that Belgian community keeps on growing and growing!

    Brad posted his slides here or here. Thanks to Microsoft, the session is also recorded, I’ll post here when the session is online.

    Here are some pictures:

    DSC08629 (Medium) DSC08635 (Medium) DSC08636 (Medium) DSC08639 (Medium)

      Posted on: Monday, September 28, 2009 11:42:45 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Personal     September 3, 2009    

    I’m a big fan of OneNote, ever since it was released. However, since I’m working on several PCs every day, I need my stuff synchronized between my machines all the time. OneNote lacks in this area, since it does not support any web sync out-of-the-box.

    This resulted in me checking out EverNote, a free tool, comparable to OneNote. While it looks good, I still loved OneNote more (possible because I’m used to it), but EverNote has one big advantage: it stores my notes online, and so I have my notes with me on every machine.

    Still willing to use OneNote, I tried a different approach, using the power of the cloud. I thought, why not store my notebooks in Live Mesh, the free synchronization tool from Microsoft that on top offers another 5GB of free storage “in the cloud”. So I tried it and it works great. Simply create a notebook in OneNote, store it in a Mesh folder (or upgrade it’s current folder to a Live Mesh folder), do this on all your PCs and you have the best of two worlds: the goodness of OneNote and the sync features of EverNote.

      Posted on: Thursday, September 03, 2009 11:59:07 PM (Romance Daylight Time, UTC+02:00)   |   Comments [2]
             
    Gill Cleeren     Efficiency | Windows 7     August 10, 2009    

    Yesterday was install day for me: had upgraded almost all my machines to Windows 7 RTM. The experience was simply amazing. Here are some of the things that amazed me the most.

    Setup experience
    Now fully supported is installing from a USB key. I used a cheap 8GB USB stick but it can be done with any type above 4GB. For the instructions on making an USB install, look here. There's also a small tool available that does it for you here. Small note on the latter: it takes in my opinion longer to create the install with this tool. It did fail once also, the install files it extracted were corrupt, causing my install to fail.

    Why would you install from a USB drive? It's faster (quite noticeable) and doesn't cost you a DVD.

    Acer Aspire One loves Windows 7 too
    About half a year ago, I bought an Acer Aspire One (160GB). Out-of-the-box, it had Windows XP installed, which ran fine... at least, I thought. The machine only had 1GB of RAM, so installing Windows Vista was out of the question. I used my USB install stick, plugged it in, the setup started... and less than 30 minutes later, Windows 7 was running on the small machine.
    And how! This machine never went faster. It's amazing what extra performance I get from the low specs this machine has. It's fast, simple as that.
    Conclusion: Windows 7 runs great on netbooks!

    Up next, the old laptop with the old printer...
    Everyone knows this kind of laptop. It's rather old (about 3-4 years), it still runs but it's slow. Of course, it has some old hardware attached to it. In my case, it was me (with my Windows 7 USB install stick again) against an Acer TravelMate 2420 (1GB of RAM) with a HP LaserJet 1018.

    The machine had Vista installed, but it was slow. This was typically a machine that caused people to say that Vista was slow: the hardware specs simply weren't enough. Exactly the fact that many people installed Vista on too old hardware was a major component in all negative comments on Vista.

    Now, Windows 7, let's try it, shall we? It took 32 minutes to install to desktop. Not bad! Then, I looked at how it worked, even with Office and anti-virus installed. This was my "Windows 7 WOW moment". The difference was amazing. (Note: the old install had nothing more than Office, FireFox and AV software, so no comment on "it was slow because of all what was on there").

    My mother who often works on this machine said the machine never worked so fast. But she asked if I could install her printer (the HP LaserJet 1018) on there. I was like "Uh-Oh"... HP and new drivers, I wonder if it will work. In Vista, the printer "sometimes" worked.

    So I plugged it in, Windows 7 tried installing it but failed :(. Seconds after, a message came that it found the driver. I was like "yeah, it's going to take me to www.hp.com or something". The message said: download the Vista driver and it'll be installed in compatibility mode for Windows XP SP2. So I clicked, I immediately arrived on the correct page, I downloaded the driver and Windows 7 took it from there. It got the printer working flawlessly! Another WOW moment.

    Conclusion
    After a day of getting acquainted with the RTM bits, I can't help but being super enthusiastic. It's a truly great operating system, that will quickly help forget the negativity around Windows Vista (though I'm still convinced that many of those comments were untrue as well, it was cool to be negative on Vista...). It's here now (if you're MSDN/TechNet/Beta tester...) or in October for the general public. This will put Microsoft OS back where they belong and is a bad dream for competing operating systems.

      Posted on: Monday, August 10, 2009 9:21:36 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Silverlight     July 14, 2009    

    I just showed you Sobees… If that is not enough Silverlight showcase for your taste, don’t fear, there’s more! On the Microsoft case study site, available via www.microsoft.com/casestudies, no less than 8 new showcases with Silverlight have been added. These include the following;\

    • Digital Minds Ltd; Financial Site Transforms Online Investing with Interactive Tools
    • Yahoo! JAPAN: Yahoo! JAPAN Finds Unique Solution for Multiplatform Online Video
    • TDK-Lambda: Electronics Manufacturer Reinvigorates BI Application with New Interface
    • netlinkblue: Rich Media Platform Delivers Powerful Results for Fans of New Cricket League
    • National Instruments: Cross-Platform Plug-In Powers Rich Internet Applications for Scientists and Engineers
    • NASA: NASA Provides Interactive, 3-D Views of the Next Mars Rover to the Public
    • ninemsn: Australian Web Site Gives Visitors a “Wow” Experience with Rich Media Platform
    • Signposter.com: Advertising Company Doubles Customer Base in Six Months with Mapping Solution
    • Kimberly-Clark: Kimberly-Clark Migrates Consumer Site to New Web Platform for High Value, Lower Cost
    • Continental Airlines: Continental Airlines Modernizes Call Center Application with Web-Based Technology

    However you put it, the adoption rate of Silverlight is increasing and it is increasing rapidly. The fact that so many large customers are choosing Silverlight for their mission-critical sites and applications confirms their trust in the technology as well.

    A few days back, someone was asking me about the install base of Silverlight and whether or not I see this as a problem. There are 2 things I can say to that:

    • The install base is increasing every day.
    • Large companies switching to Silverlight will increase the install base, which in turn will increase the number of companies choosing for Silverlight, which in turn… You get the picture.
      Posted on: Tuesday, July 14, 2009 3:50:14 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Silverlight     July 14, 2009    

    Now that Silverlight 3 is released, a bunch of great applications using the functionalities of the platform are starting to pop up. One of them is the new Twitter client from Sobees, available via www.sobees.com. Created entirely in Silverlight, this offline application allows you to view the tweets from the people you are following, as well as searches within Twitter. At this point, Facebook is not yet supported, but it coming soon.

    The user interface is pretty impressive, keeping in mind it’s only an alpha release at this moment. It’s scattered with nice touches, one of them being the characters-left countdown, shown when adding a new Tweet.

    Developers might be thinking; how was this created? As you may know, some time ago, Twitter closed their borders in terms of cross domain access. Their crossdomain.xml file is pretty strict (not to say completely locked down). The consequence of this move is that client-side platforms like Silverlight, can’t connect with the platform directly, because of cross domain restrictions, active in Silverlight. The solution for this problem is normally building an extra service on your own domain, let this service connect with the external service and let Silverlight connect with your own service. Services don’t mind the cross domain policies in place.

    Sobees did more or less the same, otherwise their client could not connect with Twitter. They are using Azure as their service platform: the Sobees client connects with Azure that in turn connects with Twitter. It is in the end a large mashup using Twitter, Azure and Silverlight 3.

    Next to the Sobees Silverlight application, they also have bDule, a desktop variant of the Twitter client, created entirely in WPF.

    All the goodness can be downloaded via www.sobees.com and www.sobees.com/bdule , of course all free of charge!

      Posted on: Tuesday, July 14, 2009 11:47:42 AM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Silverlight     July 10, 2009    

    This “Silverlight 3 Launch Video” on Channel 9 really made my evening, it’s hilarious!
    Why is Dan Fernandez crawling around on a concrete floor with a blonde wig while White Snake plays in the background?  That's a great question and I wish I had a logical answer but I don't so I will just give you the truth.  It has to do with Silverlight, Expression and couple's therapy.  I hope you enjoy and good luck.
    http://channel9.msdn.com/shows/History/Silverlight-3-and-Expression-3-Launch-Video-well-sort-of-/

      Posted on: Friday, July 10, 2009 11:17:24 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Microsoft | WPF     June 8, 2009    

    Yesterday, we had the Flemish and European elections took place here in Belgium (in case you aren't familiar with Belgian/Flemish government, take a look here. Note: it's quite complicated!).

    I'm not planning on turning my blog into a place for political statements, absolutely not. However, Microsoft technology took a prominent place in these elections. VTM, the Flemish commercial TV station, used Microsoft Surface technology to show the results.

    The presenter used several items that were recognized by the Surface's internal camera's to switch between the results of the parties (seen around her left hand in the below screenshot).

     

    When placing the tagged item on the surface, the results for the selected party are shown.

    Also, a lot of dragging was implemented in the application. By clicking on a header, she could show more details on the results.

    With this example, Surface has (as far as I know, I never watch TV...) made its debut on Belgian television. And it made quite an impression on people as well... My girlfriend came asking me if I knew what this "thing was they were using to drag stuff around" on TV :)

    Update: here's the MSN Soapbox video:

      Posted on: Monday, June 08, 2009 10:33:45 AM (Romance Daylight Time, UTC+02:00)   |   Comments [1]
             
    Gill Cleeren     DevDays09 | Efficiency | ppt | Slide decks     June 1, 2009    

    My “ASP.NET Ajax Tips and tricks” session was scheduled in the last timeslot at DevDays Netherlands. However, after following 2 or 3 exhausting days of sessions, a lot of people came to my talk still! Thanks for that!!

    I must say, I’ve never had so many people ask me for my demos, so I guess they must have been good :-). Feel free to send me a mail with any comments you may have regarding the contents or the talk itself. It’s always good to get feedback.

    These were the topics covered in the talk (I did have to skip the NoBot control because of time constraints):

    •Creating a custom extender in ASP.NET Ajax
    •Managing the history client and server side
    •Using ASP.NET authentication in Ajax
    •Adding controls dynamically using Ajax UpdatePanel
    •Localization in ASP.NET Ajax
    •No bots on my site!
    •Slide that data!
    •Animations in Ajax

    As promised, here is all the content I covered:
    Slides
    Demos

      Posted on: Monday, June 01, 2009 10:55:36 PM (Romance Daylight Time, UTC+02:00)   |   Comments [1]
             
    Gill Cleeren     Community | Efficiency | Community Day     May 10, 2009    

    logo2

    As announced earlier, Community Day 2009 is coming! Mark Thursday 25th June in your calendar, as it’s the day you can get a full day of free training and sessions, all courtesy of the Belgian User Groups.

    This third edition is a big step for us. For the first time, we are doing an entire day (whereas the 2 previous editions were half a day). We also moved to a new location, as the previous one became too small: we are now in Utopolis in Mechelen.

    Since yesterday evening, I finished the website, it’s now live at www.communityday.be . Registration is again free, including food and drinks, BUT seats are limited, so register in time if you want to be sure you can be there!

    Please blog/twitter/Facebook about the event. Below is some “blog bling” you can use for that!

    banner1

    banner2

    button

    I hope to see you all on June 25th!

      Posted on: Sunday, May 10, 2009 10:23:56 AM (Romance Daylight Time, UTC+02:00)   |   Comments [1]
             
    Gill Cleeren     Efficiency | Programming tools     April 23, 2009    

    A few weeks back, JetBrains released version 4.5 of ReSharper, probably the most popular and most widely-used plug-in for Visual Studio. All of the features included in the product, can be found here.

    I have to admit, while I liked the plug-in earlier already, I've been always a bit afraid of the performance implications it brings along. Since it does background compiling, it is putting more load on your machine, mostly in memory usage. This also resulted in longer loading times for projects. I remember when loading a DotNetNuke website, it took quite long to load the project.

    The main goal of the 4.5 release was performance and memory usage. In the newsletter that announced the release, you could read the following:
    " As announced, the new version features major improvements in performance and memory usage. After all, what is a productivity tool for if not for being agile, robust and responsive?"

    I was eagerly awaiting this version, mainly because of this improvements, so I installed it immediately. I'm currently doing a project where I work on a VPC (Virtual PC image), so that would be a good test.

    Since then, I'm really blown away by it. It has great performance now, you only notice a small delay when loading or creating a project. Once running, there's no noticeable difference anymore between running with or without ReSharper. The memory usage of the devenv.exe process is still higher than without Resharper, but again, it went down since previous releases.

    My development machine is also the one I use most of the time to do presentations and demo's. I do disable Resharper when giving presentations, since it may confuse attendees when seeing other IntelliSense. Also, like I said, creating an application is a tad slower still, so for demo purposes, that's not a good thing.

    Some people argued that running Visual Studio without Resharper was not what a professional developer should do. My only argument against that, up until now, was the performance hit you suffered. Since that is now also gone, I don't see a reason why you should not have it in your toolbox.

    More info on the product can be found at www.jetbrains.com.

    PS: I'm not sponsored by JetBrains to write this review, it's my personal opinion.

      Posted on: Thursday, April 23, 2009 10:54:42 AM (Romance Daylight Time, UTC+02:00)   |   Comments [2]
             
    Gill Cleeren     Efficiency | Silverlight     April 22, 2009    

    Silverlight adoption is growing everyday, both the install base and the number of large customers making the switch to Silverlight. This weekend, another one made the plunge into the Silverlight world: www.IPLT20.com , the official website of the Indian Premier League of cricket. Cricket may not be big here in Belgium where I live, but it is enjoyed by people in more than 120 countries around the world, including India, Pakistan, South Africa, Hong Kong, Singapore, Australia, New Zealand, United Kingdom and even the US. In India, it's even the most watched sport on television.

    Since they are using Silverlight, they can offer their many visitors a much richer experience, including interactive statistics and scoreboard display, ball-by-ball commentary, match highlights simultaneously available using picture-in-picture, and a rich, immersive photo gallery using deep zoom.

    The site offers access to more than 500 hours of live and on-demand video, has 50.2 million page views in six weeks and expects to to reach 400 million page views, 10 million unique users and 45 million visits during the upcoming season.

     

      Posted on: Wednesday, April 22, 2009 11:39:55 AM (Romance Daylight Time, UTC+02:00)   |   Comments [1]
             
    Gill Cleeren     Efficiency | SQL Server     April 19, 2009    

    I’m preparing some demo’s on ASP.NET caching. One of them includes SQL Server Cache Notifications (with SQL Server 2005).

    For this to work, the first thing you need to do is enabling the Service Broker on the database. This can be done using the SET ENABLE_BROKER command.

       1: ALTER DATABASE Northwind SET ENABLE_BROKER

    This command seemed to be taking way too much time (I left it running several minutes, but it still didn’t do anything). I then stopped the database service and retried. The command completed in just seconds.

    The reason appears to be the following: this command wants to create an exclusive lock on the database. However, if you still have open connections, it cannot create this lock and it thus waits and waits… and hangs.

    Stopping the service closes all connections and makes it possible to create the broker.

      Posted on: Sunday, April 19, 2009 12:06:11 PM (Romance Daylight Time, UTC+02:00)   |   Comments [2]
             
    Gill Cleeren     Community | Efficiency | Events | Microsoft     April 16, 2009    

    Dear readers, I’m proud to announce officially Community Day 2009, the third edition of a full day of community driven content on Microsoft technologies. The event will take place on Thursday June 25th 2009.

    For the first time, the event will be a full day of free sessions. Also new is the location: we have moved to Mechelen.

    In the coming weeks, you’ll be able to subscribe on the Community day website (which is at this point not yet updated, but I’m getting to it…).

    Spread the word! Community Day 2009 is coming!

      Posted on: Thursday, April 16, 2009 10:06:32 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Events     April 6, 2009    

    Microsoft today officially announced Tech Ed 2009 Europe. The event will take place from November 9 until November 13. The event will target both developers and IT Pros in the same week, so only 1 week for both events. Also, the event will not be in Barcelona anymore; this time, Berlin will be the city we’ll be visiting.

    Tech·Ed Europe 2009 will once again be focused into a single week for both communities. The change in format back to a combined event is based on feedback from both our developer and IT professional audiences who in this time of economic uncertainty prefer a single week activity. For 16 years, Tech·Ed Europe has provided our customers the best technical education event in the industry and we look forward to continuing to deliver the great content, education and connection opportunities.

    Tech•Ed 2009 Europe

    Nov 9-13, 2009

    Messe Convention Center

    Berlin, Germany

      Posted on: Tuesday, April 07, 2009 12:09:52 AM (Romance Daylight Time, UTC+02:00)   |   Comments [3]
             
    Gill Cleeren     Efficiency | Events     March 30, 2009    

    24 hours of free technical content, that’s exactly what Microsoft Virtual Techdays is. The event will start worldwide on April 1st and is free for all.

    You can still register at http://www.msfttechdays.com/public/home.aspx .

    I’ll be hosting 4 sessions, so drop by if you have a chance!

      Posted on: Monday, March 30, 2009 11:28:34 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Events | Silverlight | Mix 09     March 30, 2009    

    Now that Mix is over, it’s time to write a rather large post on the event that took place last week in Las Vegas for the 4th time. The 5th edition is already announced (Mix10 I guess), it will take place March 15-17, in Las Vegas at Mandalay Bay (up until now, Mix has always been at the Venetian).

    Was Mix09 a good edition, compared to previous ones? Absolutely! At Mix06, the first year the conference was held, the main focus was on ASP.NET Ajax, which allowed “at that time” writing richer and more compelling user experiences. Mix07 was of course marked by the announcement of Silverlight 1.0 beta and 1.1 alpha (which would later become Silverlight 2). A year later, at Mix08, Silverlight 2 officially reached beta status. And this year, Silverlight 3 arrived in beta. Silverlight 3 is looking at a release date later this year.

    However, not only Silverlight was the star of the show: the second day of the event was marked by the RTW of IE8, the all-new version of the popular browser. After a long road, the new browser is here and it contains a number of interesting new features, which I’ll cover later in this post.

    Mix09: the event. Now on DVD!
    If you didn’t have the time, money… to attend the event in real life, don’t fear. All sessions are recorded by Microsoft AND are available for free on the Mix09 website. If you want to get your modem hot from all the downloading, head over to http://videos.visitmix.com/MIX09 for all videos of the event. Note that you should plan to take some days off work to see them all, there’s more than 120 videos online. Check out Mike Swanson’s blog for a complete list of the sessions, a batch file to download all sessions and a batch renamer for all content (http://blogs.msdn.com/mswanson)

    Also, many speakers have uploaded their demos to their blogs, so be sure to check them out.

    Silverlight 2 + 1 = Silverlight 3

    Star of the show was of course Silverlight 3. The released version is a beta, not yet feature complete, meaning that some parts of the software that will be in the final version aren't there yet at this point. All the necessary tools and SDKs are available, you can find the link below. A very important note: if you are developing Silverlight 2 applications, you should not install this release on your production machine, because it makes your setup a Silverlight 3 config. Currently, Silverlight 3 apps are incompatible with Silverlight 2. A virtual machine might be the best option here. 

    Out-of-browser

    One of, if not the biggest feature of this new release is out-of-browser support. It allows you to place your application directly on the customer's machine, enabling an off-line experience that's the same as the online experience. All this becomes possible without any additional download of runtime or the need to write applications in a different way. Any Silverlight application that is out-of-browser enabled, can now be easily found on the user’s desktop or start menu, and launched with a single click. Also, it can test if the network is connected, update itself and also has access to Isolated Storage. The API for this is very easy, I'll be writing an article on this soon.

    Is this any different from Adobe Air, which enables an offline experience as well? Yes it is. Air needs a separate runtime which is about 20mb in size and provides access to the entire hard drive of their customer’s computer, which can be a significant barrier if the customer does not have complete trust.

    Also, the adoption rate for Air is well below the rate for Silverlight. So far, Silverlight has an install base of about 300 million, since its launch about 5 months ago. Microsoft estimates that about 400.000 developers and designers are currently using Silverlight already.

    Silverlight for Eclipse

    Up until now, the Silverlight tools were mainly aimed at Visual Studio developers. Microsoft now also has a Silverlight plugin for Eclipse, called Eclipse Tools For Silverlight (Eclipse4SL). This way, Mac developers can join in in developing Silverlight applications as well. The current version is a CTP.

    Expression Blend 3

    While not only targeting Silverlight, the release of Expression Blend 3 is great news for Silverlight developers and designers, offering full compatibility and support for Silverlight 3 effects, along with integration with Visual Studio 2010 and WPF. One of my favorite features is the Photoshop and Illustrator import, enabling smooth integration with workflows already in place. During the import process, designers have the freedom to view and import Photoshop files layer by layer. Layers can be easily regrouped and elements retain their original formats, layers, layer positions, editable text and vectors.

    Another great feature in Blend 3 is SketchFlow, a way for rapid application prototyping. Using SketchFlow, designers can rapidly map out and experiment with the UI flow of a concept with SketchFlow. Built-in ‘sketchy’ styles enable customers to concentrate on an overall concept of a solution rather than focusing too early on the detail.

    Important feature you may ask for enterprise? Absolutely! Business application experts can use SketchFlow to rapidly explore different UI flows and scenarios for their line of business applications without any technical knowledge of the underlying delivery platform. These ideas can be easily presented via the SketchFlow player which provides the ability to not only interact with prototypes, but also enabling the user to provide in-context feedback using the built annotation capability.

    To download all the tools for Silverlight development, go to http://silverlight.net/getstarted/silverlight3/default.aspx.

    Microsoft Web Platform

    Let's first take a look at what is really meant with this new term, the Microsoft Web Platform. The MWP is the software of choice when building Web solutions or applications for businesses, large or small. If you’re looking to create your company’s global Web presence, building applications for your small business or launching a new Web site, Microsoft has the solutions for you.

    The platform includes several components, including the Web Platform Installer and the Web Application Gallery.

    The Web Platform Installer Includes:

    • Internet Information Services (IIS) 5.1 on Windows XP SP3
    • IIS 6.0 on Windows Server 2003 SP2
    • IIS 7.0 on Windows Vista SP1 and Windows Server 2008
    • SQL Server 2008 Express
    • .NET Framework 3.5 SP1
    • Visual Web Developer 2008 Express Edition
    • IIS Extensions including:
      • IIS 7 Media Services 3.0
      • IIS7 Administration Pack
      • Database Manager for IIS7
      • WebDav 7.5
      • FTP 7.5
      • FastCGI for PHP support on IIS6
      • URL Rewriter
      • IIS 7 Application Routing
      • Web Deployment Tool for IIS
    • ASP.NET and features such as ASP.NET MVC
    • Silverlight Tools for Visual Studio
    • The Community Version of PHP v5.2.9

    The Windows Web Application Gallery is a collection of the most popular Open Source and community Web applications that run on Windows. It provides a simple streamlined way for users to explore, discover, and install ASP.NET, PHP, and other types of web applications and solutions on the Windows Platform.

    More information and all the downloads can be found at: Microsoft Web Platform 

    Azure Services Platform

    While the Azure platform was announced in November last year at PDC, a number of updates to the platform have been released. This shows that Microsoft is committed to delivering a comprehensive cloud platform.

    The following updates were done on Azure:

    • Windows Azure: An update to the Windows Azure service delivers advancements in interoperability,  flexiblity, geo-specification, and the ability take existing IP to the cloud. 
    • Applications written in 3rd party programming languages such as PHP can be deployed and run on the Windows Azure infrastructure with FastCGI support, providing an easy to use, scalable cloud runtime and storage environment while giving developers the power to choose their preferred programming language. For .NET developers, Full Trust is now available so all aspects of the .NET Framework can be utilized, including invoking native and legacy code components and giving existing code investments new life in the cloud.  Over the next few weeks Geolocation will be available, enabling customers to specify the datacenter location for applications and storage to optimize for lower network latency and comply with location-based regulatory and legal requirements. 
    • SQL Services: SQL Data Services (SDS) recently announced an accelerated roadmap to provide a cloud database as part of the Azure Services Platform. 
      • In this updated roadmap, SDS will deliver a fully relational database service in the market to provide customers with the ability to use existing investments in on-premises SQL Server T-SQL development and use a full relational data model in the cloud.  This approach enables greater developer agility and faster time to market by supporting the use of existing applications, tools and knowledge, and featuring distributed, cloud based functionality that will work with other online services or with existing on-premises solutions.  The public availability of these updated service features will be mid-2009 and commercially available later this year.
    • .NET Services: .NET Services makes further enhancements to embrace web standards, interoperability, and provide connectivity on-premises with the cloud, and disparate groups with each other across network boundaries.  These services allow customers to easily federate data and messages with its Service Bus and Access Control services.  By supporting REST, ATOM, JSON, SOAP and HTTP web standards, web developers using any programming language can use the service to connect, collaborate, and create federated applications.
    • Live Services: To accommodate increasing popularity and demand, Live Services was announced at PDC 2008 as an open Community Technology Preview, where any developer can start utilizing the web services and incorporate them into socially-aware applications connecting to 460 million Windows Live users.  We will announce Live Services updates in the future, but have nothing specific to announce at MIX ‘09.

    More info on Azure can be found at Azure Services Platform

    Windows Mobile 6.5

    An updated version of Windows Mobile was also shown at Mix. The most remarkable features are the new version of Internet Explorer Mobile, the addition of Widgets and Windows Marketplace for Mobile.

    Internet Explorer 8

    Finally, Internet Explorer 8 was also released. Internet Explorer 8 takes a big step forward in browser innovation for the way people use the web today. Internet Explorer 8 makes it easier to visit sites you’ve been to before with the new Smart Address Bar and enhanced Favorites Bar, works with your search provider to suggest likely searches based on what you type into the Enhanced Instant Search Box, groups tabs to match the way you browse the web and gives you Accelerators and Web Slices to keep you closer to the sites and services you use every day.

    IE8 is also safer than ever. Specifically, Internet Explorer 8 improves upon our protection against social engineering “phishing” attacks with the new SmartScreen Filter, which helps protect against malware sites and downloads. Internet Explorer 8’s new Cross-Site Scripting filter helps protect users against Cross-Site Scripting Type-1 reflection attacks, one of the most common attacks against Web sites. 

    It's also more reliable than ever. It includes a new Compatibility View mode to help ensure that users can access all the sites they use today without display or functionality issues. Additionally, the new architecture of Internet Explorer 8 helps ensure that a single tab crashing does not cause users to lose their whole browser session, and crash recovery restores the crashed site and content

    Internet Explorer 8 is available on Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Server 2008, Windows Vista (RTM), SP1 and SP2.

    To download IE8, go to www.microsoft.com/ie8.

      Posted on: Monday, March 30, 2009 11:25:40 PM (Romance Daylight Time, UTC+02:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Visug     March 22, 2009    

    Now that Techdays, Mix09 and many other interesting conferences are behind us, it’s time to kick up the pace and organize a great number of Visug sessions. I’ve almost finished uploading all sessions, except for 2: my own one on ASP.NET caching (I still need to create the abstract) and another one presented by an international speaker (again!). I’ll keep you posted on the latter.

    Here’s a list of all upcoming sessions so far announced:

    Back 2 Basics: LINQ
    Presented by: Kurt Claeys on: 15/4/2009
    Registration: http://visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx

    Back 2 Basics: ASP.NET caching
    Presented by: Gill Cleeren on: 29/4/2009
    Registration: http://visug.be/Eventdetails/tabid/95/EventId/3/Default.aspx

    Mocking
    Presented by: Maarten Balliauw on: Thursday, May 07, 2009
    Registration: http://visug.be/Eventdetails/tabid/95/EventId/4/Default.aspx

    Back 2 Basics: Integrating Membership, Role Management and Profiles into Web Applications
    Presented by: Pieter Gheysens on: 27/5/2009
    Registration: http://visug.be/Eventdetails/tabid/95/EventId/9/Default.aspx

    Domain Driven Design
    Presented by: Yves Goeleven on: 18/6/2009
    Registration: http://visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx

    IronRuby: The .NET developer should not fear the dynamic language
    Presented by: Ivan Porto Carrero on: 30/6/2009
    Registration: http://visug.be/Eventdetails/tabid/95/EventId/5/Default.aspx

    ORMs: Entity Framework vs NHibernate
    Presented by: Kurt Claeys & Davy Brion on: 10/9/2009
    Registration: http://visug.be/Eventdetails/tabid/95/EventId/8/Default.aspx

    If you are interested in doing a session for Visug, please contact us! Send us a mail via board@visug.be .

      Posted on: Monday, March 23, 2009 12:23:17 AM (Romance Standard Time, UTC+01:00)   |   Comments [1]
             
    Gill Cleeren     Efficiency | Silverlight | TechDays     March 21, 2009    

    Last week, Microsoft organized the Belgian edition of the Techdays, for the first time in Antwerp. After reading (Twitter, blogs…) and hearing quite a lot of feedback, the event was a success.

    For me personally, it was also an exciting week: for the first time in my career, I was doing a keynote. I presented the Silverlight part of this talk, together with 2 other Regional Directors from Belgium: Peter Himschoot took the WPF part and Grégory Renard handled the Surface. Also, Katrien De Graeve (Microsoft) showed Windows 7 and Azure, while Hans Verbeeck (also Microsoft) glued all bits and pieces into a nice session.

    In this article, you’ll get an overview of the demo we created for the keynote, called “Silverlight on the bike”.

    silverlightonthebike1

    The scenario

    Hans, when not behind his laptop, loves to ride his bike. While on his bike, he wears a small device from Garmin that monitors his heart rate and also retrieves the entire route that he followed via GPS. When combining these 2 bits of information, you can see where the heartbeat went higher (because of a slope for example).

    Garmin must like developers, because they expose this data as XML. Pure clean XML that any developer can read out. This data was the start for our scenario: plot out the route that Hans did on his bike on a map, show the heartbeat on a graph, throw in some pictures he took along the road and expose all this in a familiar looking interface in the browser.

    The demo also needed to run as a standalone application as well as on the surface. Because of the portability of the code between Silverlight and WPF (Surface applications are WPF as well), a large amount of code could simply be copied from one platform to another.

    And here’s how we created it…

    While the demo contains too much code to explain here, I’ll go over some of the most interesting parts that really make Silverlight shine.

    Step 1: Design is everything (sort of…)

    The first thing we did was going to a designer and explain him the needs of our application. A request from our side was of course that he needed to create the interface in Blend. So he came up with a design, completely in XAML, as shown below.

    silverlightonthebike2

    A cool thing when working with Silverlight is a nice workflow between designers working in Blend and developers working in Visual Studio. Since designers work with the same files as developers, there’s no need to cut and paste the work that the designer did: he can make changes while developers are creating their code and these changes will be incorporated without any hassle.

    Step 2: Get me that data

    Design is one thing, coding is another. Our application is built around data (remember the XML file from the Garmin device), so the first problem that needs solving is getting that data into the application. Silverlight 2 supports several ways to connect with data: WCF, webservices, reading remote files… For the sake of simplicity, we are going to use the latter: we’ll drop the XML file in the web application. Silverlight now needs to connect with the file using the WebClient, a class that’s also available in the full version of the .NET framework.

    Whenever Silverlight needs to go out fetching data, it will do so asynchronously. If it would perform this action synchronously, the browser would hang while data flows from server to client or vice-versa.

    Codesnippet 1 shows the code needed for the data access and the result is shown.

       1: WebClient client = new WebClient();
       2:             Uri address = new Uri("http://localhost:" + HtmlPage.Document.DocumentUri.Port + "/" + fileName, UriKind.Absolute);
       3:             client.OpenReadCompleted += client_OpenReadCompleted;
       4:             client.OpenReadAsync(address);

    CodeSnippet 1

    silverlightonthebike3

    Step 3: Let’s parse XML (still yuck?)

    Now that we are able to connect with the data, we need to do something with it, we only have it in a string at this point. We need to parse the XML and create objects that represent the data in memory. Parsing XML using the “traditional” way, using XmlDocument classes and the like, is not my favorite part of my development life. This API is quite difficult and often requires XPath knowledge to access the correct data.

    Since .NET 3.5 (in fact also in 3.0 as beta), LINQ and LINQ to XML were introduced and the great thing is that these are also included in Silverlight. Using the LINQ to XML API, we can very easily parse the XML and create objects representing the data. Codesnippet 2 shows the XML, codesnippet 3 shows the type that we’ll be creating. In Codesnippet 4, the code to parse the XML and to create a generic list of TrackPoint instances is shown.

       1: <Trackpoint>
       2:             <Time>2009-02-14T14:13:10Z</Time>
       3:             <Position>
       4:               <LatitudeDegrees>51.3509752</LatitudeDegrees>
       5:               <LongitudeDegrees>4.6816549</LongitudeDegrees>
       6:             </Position>
       7:             <AltitudeMeters>20.3249512</AltitudeMeters>
       8:             <DistanceMeters>0.0343911</DistanceMeters>
       9:             <HeartRateBpm >
      10:               <Value>111</Value>
      11:             </HeartRateBpm>
      12:             <SensorState>Absent</SensorState>
      13:           </Trackpoint>
      14:           <Trackpoint>
      15:             <Time>2009-02-14T14:13:11Z</Time>
      16:             <Position>
      17:               <LatitudeDegrees>51.3509765</LatitudeDegrees>
      18:               <LongitudeDegrees>4.6816523</LongitudeDegrees>
      19:             </Position>
      20:             <AltitudeMeters>20.3249512</AltitudeMeters>
      21:             <DistanceMeters>0.0000000</DistanceMeters>
      22:             <HeartRateBpm >
      23:               <Value>110</Value>
      24:             </HeartRateBpm>
      25:             <SensorState>Absent</SensorState>
      26:           </Trackpoint>
      27:           <Trackpoint>

    Codesnippet 2

       1: public class TrackPoint
       2:     {
       3:  
       4:         private DateTime _time;
       5:  
       6:         public DateTime Time
       7:         {
       8:             get { return _time; }
       9:             set { _time = value; }
      10:         }
      11:  
      12:         private Point _position;
      13:  
      14:         public Point Position
      15:         {
      16:             get { return _position; }
      17:             set { _position = value; }
      18:         }
      19:  
      20:  
      21:         public double X
      22:         {
      23:             get { return _position.X; }
      24:             set { _position.X = value; }
      25:         }
      26:  
      27:         public double Y
      28:         {
      29:             get { return _position.Y; }
      30:             set { _position.Y = value; }
      31:         }
      32:  
      33:         private int _cadence;
      34:  
      35:         public int Cadence
      36:         {
      37:             get { return _cadence; }
      38:             set { _cadence = value; }
      39:         }
      40:  
      41:         private double _distance;
      42:  
      43:         public double Distance
      44:         {
      45:             get { return _distance; }
      46:             set { _distance = value; }
      47:         }
      48:     } 

    Codesnippet 3

       1: public List<TrackPoint> Load(Stream filename)
       2:         {
       3:             XElement doc = XElement.Load(filename);
       4:             List<XElement> tps = doc.Descendants("Trackpoint").ToList<XElement>();
       5:  
       6:             TrackPoint tp = null;
       7:  
       8:             foreach (XElement point in tps)
       9:             {
      10:                 try
      11:                 {
      12:                     tp = new TrackPoint();
      13:                     tp.Position = new Point(double.Parse(point.Descendants("LatitudeDegrees").First().Value) / 10000000,
      14:                                                          double.Parse(point.Descendants("LongitudeDegrees").First().Value) / 10000000);
      15:                     tp.Distance = double.Parse(point.Descendants("DistanceMeters").First().Value) / 10000000;
      16:  
      17:                     if (tp.Distance > _totalDistance)
      18:                         _totalDistance = tp.Distance;
      19:  
      20:                     tp.Cadence = int.Parse(point.Descendants("HeartRateBpm").First().Value);
      21:  
      22:                     _trackPoints.Add(tp);
      23:                 }
      24:                 catch (Exception)
      25:                 {
      26:                         
      27:                    
      28:                 }
      29:             }
      30:             return _trackPoints;
      31:         }

    Codesnippet 4

    Step 4: Design: OK! Data: OK! UI: To Do!

    Now we have the data from the device ready on the client-side within our Silverlight application as a generic list. We can now go ahead and add the UI elements to the interface.

    Up first is a ribbon. We want to create a user interface that feels familiar to a user of the application. A great way to achieve this, is using a ribbon known from Office 2007. Currently, Silverlight does not contain a ribbon out-of-the-box yet, but there are some custom-built ones available. For the sake of simplicity, I created a usercontrol containing the ribbon instantiation. This keeps my Page.xaml code cleaner. Codesnippet 5 contains the code for the ribbon and codesnippet 6 contains the usercontrol that we’ll put on the page.

       1: <rbn:Ribbon.QuickLaunchButtons>
       2:                 <rbn:RibbonButton SmallImageSource="Images/Save.png" />
       3:                 <rbn:RibbonButton SmallImageSource="Images/Undo.png"  />
       4:                 <rbn:RibbonButton SmallImageSource="Images/Repeat.png" />
       5:             </rbn:Ribbon.QuickLaunchButtons>
       6:  
       7:             <!-- Tabs -->
       8:  
       9:             <!-- Home -->
      10:             <rbn:RibbonTab Title="Home">
      11:                 <rbn:RibbonTabGroup Title="Actions">
      12:                     <rbn:RibbonButton Text="New data" LargeImageSource="Images/addxml.png" />
      13:                     <rbn:RibbonButton Text="Change data" LargeImageSource="Images/addxml.png" ButtonClick="RibbonButton_ButtonClick" />
      14:                     <rbn:RibbonButton Text="Images" LargeImageSource="Images/addimages.png" />
      15:                 </rbn:RibbonTabGroup>
      16:                 
      17:                 <rbn:RibbonTabGroup Title="Reporting">
      18:                     <rbn:RibbonButton Text="New report" LargeImageSource="Images/addreport.png" />
      19:                     <rbn:RibbonButton Text="View reports" LargeImageSource="Images/addreport.png" />
      20:                 </rbn:RibbonTabGroup>
      21:             </rbn:RibbonTab>
      22:  
      23:             <!-- Help -->
      24:             <rbn:RibbonTab Title="Help">
      25:                 <rbn:RibbonTabGroup Title="Help">
      26:                     <rbn:RibbonButton Text="About" LargeImageSource="Images/about.png" />
      27:                     <rbn:RibbonButton Text="Help" LargeImageSource="Images/help2.png" />
      28:                 </rbn:RibbonTabGroup>
      29:  
      30:             </rbn:RibbonTab>
      31:  
      32:         </rbn:Ribbon>

    Codesnippet 5

       1: <!-- Ribbon -->
       2:             <usercontrols:RibbonControl Grid.Row="0" Grid.Column="0" 
       3:                           x:Name="mainRibbon" VerticalAlignment="Top"></usercontrols:RibbonControl>

    Codesnippet 6

    silverlightonthebike4

    Next, we’ll add a Telerik Coverflow control that will enable us to flip through the images. Telerik as well as Infragistics (and many other vendors) have been busy creating controls suites, giving you many more controls to work with. Codesnippet 7 shows the code for this control.

       1: <telerikNavigation:RadCoverFlow x:Name="coverFlow" CameraY="-80" ItemMaxHeight="100" 
       2:                                             SelectedIndex="5"  VerticalAlignment="Top" CenterOffsetY="15">
       3:                                     <Image Source="Pictures/1.jpg" />
       4:                                     <Image Source="Pictures/2.jpg" />
       5:                                     <Image Source="Pictures/3.jpg" />
       6:                                     <Image Source="Pictures/4.jpg" />
       7:                                     <Image Source="Pictures/5.jpg" />
       8:                                 </telerikNavigation:RadCoverFlow>

    silverlightonthebike5

    One of the main goals of the application is of course the display of the map that will also display the route that Hans did on his bike. A perfect candidate for this is Virtual Earth. On Codeplex, a project called DeepEarth, allows us to display Virtual Earth maps inside a Silverlight application. It also includes all the necessary stuff to show paths, icons etc and allows for easy zooming and panning. We’ll use this control to display the route.

    Of course, we need to convert our data for the map to use. This is very simple code shown in codesnippet 8. What we’re doing here is simply converting our generic list of Trackpoints to a list of points the DeepEarth control can work with. Codesnippet 9 shows the code for displaying the map.

       1: private void AddPolygon()
       2:         {
       3:             ConfigShapeLayer();
       4:             var points = new List<Point> { new Point(0, 0), new Point(20, 0), new Point(20, 20), new Point(0, 20) };
       5:             var polygon = new DeepEarth.Geometry.Polygon { Points = points };
       6:             shapeLayer.Add(polygon);
       7:         }

    Codesnippet 8

       1: <DeepEarth:Map x:Name="map" >
       2:                                     <DeepControls:NavControl>
       3:                                         <DeepControls:MapSourceControl SelectedSource="Hybrid">
       4:                                             <DeepVE:TileLayer MapMode="Aerial" />
       5:                                             <DeepVE:TileLayer MapMode="Hybrid"/>
       6:                                             <DeepVE:TileLayer MapMode="Road" />
       7:                                         </DeepControls:MapSourceControl>
       8:                                     </DeepControls:NavControl>
       9:                                     <DeepControls:CoordControl/>
      10:                                 </DeepEarth:Map>
    Codesnippet 9

    Finally, we need to display the heartbeat, also based on the data in the generic list. We can do this in several ways (for example using the controls from the Silverlight toolkit), but here, I choose to use a listbox. Displaying a heartbeat in a listbox might not sound that normal, as we are used to having the listbox show a list of text items. However, using Silverlight, we can completely restyle the listbox using the data template (Codesnippet 10). The data template allows for complete restyling of the items as well as the listbox’ display area. The item is replaced with an ellipse, absolutely positioned from the top and the display area is replaced with a drawing canvas. (To see the entire code, download the sample). The result is shown below.

    silverlightonthebike6

       1: <DataTemplate>
       2:                                         <Canvas Canvas.Left="10" Canvas.Top="10">
       3:                                             <Ellipse Fill="Blue"
       4:                                          Tag="{Binding}"
       5:                                          Width="10"
       6:                                          Height="10"
       7:                                          Stroke="Black"
       8:                                          StrokeThickness=".5"
       9:                                          MouseLeftButtonDown="Ellipse_MouseLeftButtonDown"
      10:                                          MouseEnter="Ellipse_MouseEnter"
      11:                                          MouseLeave="Ellipse_MouseLeave"
      12:                                          >
      13:                                             </Ellipse>
      14:                                         </Canvas>
      15:                                     </DataTemplate>

    Codesnippet 10

    The final application

    The following image shows the complete application running in the browser. You can download the entire source package by clicking here (Note that I left in all the source code for the other projects like DeepEarth. This way it’s easier for you to experiment with the demo).

    silverlightonthebike7

    (Due to the Virtual Earth webservice being down, the map is not displaying, as can be seen on the screenshot)

    Download the code here.

      Posted on: Saturday, March 21, 2009 1:07:06 AM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Programming tools | TechDays     March 12, 2009    

    While doing my sessions @Techdays Belgium, I used for the first time a little application called Snippet Manager to drag code snippets into my code. It's not something I created myself, it's created by Karen Corby (Microsoft).

    You can download it here.

      Posted on: Thursday, March 12, 2009 3:43:26 PM (Romance Standard Time, UTC+01:00)   |   Comments [4]
             
    Gill Cleeren     .net | Efficiency | Slide decks | TechDays     March 12, 2009    

    From March 10 - 12, TechDays 2009 Belgium took place, for the first time in Metropolis Antwerp.

    I've delivered quite some sessions, including part of the keynote. A lot of people asked me to share the slides as well as the demos, so here are all the items you need to complete your knowledge on both databinding in WPF as well as skinning controls in Silverlight.

    WPF Databinding Deep Dive
    Databinding always sounds a bit intimidating. It’s the concept of attaching objects to a user interface and letting the technology take care of what to display where. WPF has a lot of capabilities in store to make databinding really easy and to help you build data-driven applications a lot faster. In this session, we’ll tackle everything that databinding offers us, from the fundamentals concepts to the advanced topics. With a lot of demos woven into the session, you’ll walk away with the knowledge you need to more efficiently use WPF.
    Slide deck - Demos

    Under the hood in Silverlight's controls skinning framework
    While Silverlight offers us a lot of controls to build business applications, you might feel the urge to change them even more to suffice the needs of your application. A round button perhaps? Or a non-rectangular textbox? It’s all possible with the Silverlight skinning framework. In this session, you’ll see how to overhaul the look of your controls as well as create your own from scratch.
    Slide deck - Demos

    I hope you enjoyed the sessions, any feedback is welcome.

      Posted on: Thursday, March 12, 2009 3:24:10 PM (Romance Standard Time, UTC+01:00)   |   Comments [6]
             
    Gill Cleeren     Efficiency | TechDays     February 1, 2009    

    As you can read by now, I'll be hosting 2 sessions at TechDays 09!
    Here they are:

    Under the hood in Silverlight's controls skinning framework
    While Silverlight offers us a lot of controls to build business applications, you might feel the urge to change them even more to suffice the needs of your application. A round button perhaps? Or a non-rectangular textbox? It’s all possible with the Silverlight skinning framework. In this session, you’ll see how to overhaul the look of your controls as well as create your own from scratch.

    WPF Databinding Deep Dive
    Databinding always sounds a bit intimidating. It’s the concept of attaching objects to a user interface and letting the technology take care of what to display where.
    WPF has a lot of capabilities in store to make databinding really easy and to help you build data-driven applications a lot faster. In this session, we’ll tackle everything that databinding offers us, from the fundamentals concepts to the advanced topics. With a lot of demos woven into the session, you’ll walk away with the knowledge you need to more efficiently use WPF.

    I hope you'll be attending my sessions!

      Posted on: Sunday, February 01, 2009 12:43:03 PM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | TechDays     February 1, 2009    

    For the past weeks, I've been busy preparing my sessions for the upcoming Techdays here in Belgium. Techdays is the event every .net developer and IT Pro in Belgium should attend. You'll have the choice of over 60 sessions over a period of 3 days.

    You’ll get a deep-dive on existing and future technologies of Microsoft:

    • Discoveries: Windows 7, Windows Azure, Cloud Computing, C# 4.0
    • Architecture and development: Visual Studio, Silverlight, SharePoint, web applications, …
    • Infrastructure and enterprise applications: SQL Server, WCF, Windows Server, virtualization, System Center, security, …
    • Personal and collective efficiency: Data access, desktop management, Unified Communications, remote office operations, SharePoint,…

    But also:

    • Get your hands on a Microsoft Surface
    • Interact with the Microsoft partner network and the Microsoft linked applications and services
    • Discover our certification offerings
    • Share impressions with your peers and meet with internationally renowned professionals

    Registration is available at www.techdays.be so hurry up if you want to be part of the event!

    Note that for the first time, the event will take place in Metropolis, Antwerp!

      Posted on: Sunday, February 01, 2009 12:37:40 PM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | Visug     January 26, 2009    

    Finally! It took us some more time then originally planned, but it is finally here: the all-new Visug website. You can reach it via www.visug.be of course.

    While there are some new features as well (head over to the new included blog on the visug site), more will be added in the coming months. One of the new features that is now already in place, is an included RSS feed (http://www.visug.be/Blog/tabid/98/rssid/1/Default.aspx). We will use this feed to announce new events and site updates.

    I hope you like it, it cost me quite some hours in the past few weeks to get it right!

     

      Posted on: Monday, January 26, 2009 11:26:28 PM (Romance Standard Time, UTC+01:00)   |   Comments [2]
             
    Gill Cleeren     Efficiency | Silverlight     January 25, 2009    

    I just noticed that 2 more webcasts of me have been put online on MSDN Chopsticks.

     


      Posted on: Monday, January 26, 2009 12:19:39 AM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Efficiency | MVP | Personal     January 12, 2009    

    Today, I got the confirmation that I am now a member of the Ineta Speaker Bureau Europe. (http://europe.ineta.org/).
    The INETA Europe Speaker Bureau provides usergroup leaders top notch speakers for their key events. The speakers are provided at no cost to the usergroup.

    That means that if you run a usergroup, you can now request me at no cost to come speak at your events!

    A nice little touch is that together with myself, my collegue and friend Kurt Claeys was also added to the bureau! Congrats!

      Posted on: Monday, January 12, 2009 10:10:59 PM (Romance Standard Time, UTC+01:00)   |   Comments [1]
             
    Gill Cleeren     Efficiency | Microsoft     January 6, 2009    

    If I'm not mistaking, about a week ago, we stepped into yet another new year. 2009 already... For me personally, a year with some "important" changes, as I'll be 30 years old this year (in fact, in little over a week - January 16th - I won't be 2.9, I'll become 3.0).

    Not only for me it's a big year. Worldwide, we are feeling the impact that the financial crisis is bringing. More and more companies are firing employees or aren't investing as much anymore as they used to. In IT, my business of course (and probably yours as well since you're reading this blogpost), up until now, the impact isn't that big - yet. At least, where I'm living (Belgium - Europe). Companies will urge people to be as efficient as possible. Every bit helps in getting more done in less time and thus for less money. I'm anxious to see where we'll be in a year from now - hopefully the situation will be better by that time.

    Microsoft also faces a busy year. It's a release year, with big new releases of Visual Studio, C#, VB.NET, ASP.NET... coming up in the developer tools and languages. But also a new version of Windows, Windows 7 is on the horizon (with a first public beta coming out any minute now hopefully). And least we forget Office 14. Note the fact that Microsoft is skipping V13.0.

    Windows 7 will be the successor of the much troubled Vista. While the beta isn't really here yet, a version was leaked on torrent networks, which was for once perhaps a good thing. The first reports of this unsupported version were really positive: it proves, even already in this version, to be a stable product that is faster than Vista. While I personally never had much troubles with Vista, it has never been a public favorite. Microsoft is really planning on not making the same mistakes with 7 and it looks like a promising product. µ

    Office 14 didn't really get all that much attention yet. At PDC, Microsoft showed the first version of the web-based (Silverlight) versions of the products. While this will prove helpful for everyone working with Office, it's particularly interesting to see whether this will help people in under-developed countries in accessing more technology.

    For developers, 2009 will be one of the most exciting years. First, as mentioned, Visual Studio 2010 is coming up. This new version of the IDE will be the biggest overhaul the product has ever known. Making developers love Visual Studio again is the driving goal for 2010. Multi-monitor support, a WPF interface, a faster environment...All of these make it hard to wait for the new release to arrive.

    A new version of C#, version 4.0 as well as VB.NET, VB10, will see the daylight. I have been playing and writing on C# 4.0 already and it has some interesting developments, mainly around dynamic programming. The changes however aren't as big as the introduction of version 3. ASP.NET will also be upped a version number, also towards 4.0. If you followed the PDC, you might have seen that the amount of sessions on ASP.NET was really small. ASP.NET has matured, and the changes in this version are mainly focused on integration with other technologies, for example JQuery.

    Silverlight however, will keep on growing. While the adoption isn't where it should be yet (at 100% ;-)), it's getting there. Customers are getting to know it, more and more developers build interest into it. At Mix, some exciting new stuff should be announced related to Silverlight to keep us all busy! If you need investing in a learning a new technology, take a look at Silverlight for sure.

    WPF, another still recent technology, will keep on rising hopefully. The adoption of this platform is still too low, mainly because it's higher learning curve. Microsoft has done good things with it since it's release like improving its performance, but more is needed I reckon.

    Finally, another thing that will really take off this year is the whole Cloud-thing. Windows Azure, announced at PDC also, is the platform for hosting applications in the cloud.
    Azure will have many advantages. Take for example a small startup, who need investing in infrastructure - up until now that is. The requirements are often unknown up front and making wrong decisions can be costly. Azure is the solution here since it scales perfectly to match the needs of the startup.
    On the other side, there's still a change of mindset needed in this space. While you stay in control of your apps, you aren't really in control, you're handing over your applications to Microsoft (and not only apps, but also storage...). It will be interesting to see how fast people will be migrating to the new platform.

    I hope this piece gave you some insights in the upcoming stuff in the new year. Please comment if you don't agree with my opinions! 

      Posted on: Wednesday, January 07, 2009 12:45:39 AM (Romance Standard Time, UTC+01:00)   |   Comments [1]
             
    Gill Cleeren     Efficiency | VS2010     January 1, 2009    

    For an article I'm writing on C# 4.0, I really need the Visual Studio 2010 CTP (September release). However, as you may have experienced today, January 1st, the CTP is expiring: Visual Studio 2010's "trial period" has expired. The CTP is only available as a Virtual PC image, and a VPC image by default will take the date settings from the host OS.

    Now, I found there's a settings in the *.vmc (Virtual Machine configuration) file that disables the synchronization between the host and the guest OS. By activating this setting, the VPC's time will only advance when it's powered on. When extracting the VPC the first time, the time is set to October 10th 2008, giving you all the time you need to play with the VPC.

    Here's how to apply the setting. Open the *.vmc file and look for the <mouse> tag.
    <mouse>
         <allow type="boolean">true</allow>
    </mouse>
    <video>
         <user_selected>
         .....


    Between the </mouse> and <user_selected>, add the following tag:

    <components>
         <host_time_sync>
              <enabled type="boolean">false</enabled>
         </host_time_sync>
    </components>

    Now, boot the VPC and it will now stop syncing the two clocks.

      Posted on: Thursday, January 01, 2009 8:37:47 PM (Romance Standard Time, UTC+01:00)   |   Comments [4]
             
    Gill Cleeren     Efficiency | Visug     December 10, 2008    

    I'm happy to announce that we are having Regional Director Juval Löwy again for a Visug event. I just posted the event on the old Visug site (we are almost done with the new one, just hold on...).

    The event will take place on Thursday January 15th in Utopolis Mechelen. We have about 250 seats available and we expect them to sell out quickly!

    Abstract of the session:

    The .NET services bus is part of the new Microsoft Cloud Computing Windows Azure initiative, and arguably, it is the most accessible, ready to use, powerful, and needed piece.

    The service bus allows clients to connects to services across any machine, network, firewall, NAT, routers, load balancers, virtualization, IP and DNS as if they were part of the same local network, and doing all that without compromising on the programming model or security. The service bus also supports callbacks, event publishing, authentication and authorization and doing all that in a WCF-friendly manner.

    This session will present the service bus programming model, how to configure and administer service bus solutions, working with the dedicated relay bindings including the available communication modes, relying on authentication in the cloud for local services and the various authentication options, and how to provide for end-to-end security through the relay service.

    You will also see some advanced WCF programming techniques, original helper classes, productivity-enhancing utilities and tools, as well as discussion of design best practices and pitfalls.

    So, register fast, it is free like always!

      Posted on: Wednesday, December 10, 2008 10:49:57 PM (Romance Standard Time, UTC+01:00)   |   Comments [0]
             
    Gill Cleeren     Chopsticks | Silverlight | Webcasts | Efficiency     November 4, 2008    

    The first one on styling Silverlight controls:

    The second one on creating custom Silverlight controls:

    Part 3 is not yet ready...

    I hope you enjoy them!

      Posted on: Tuesday, November 04, 2008 12:20:36 PM (Romance Standard Time, UTC+01:00)   |   Comments [2]
             
    Gill Cleeren     Efficiency | Visug     October 20, 2008    

    I just finished adding a bunch of new events on the Visug website. Here's an overview!

    • What's new in Visual Studio Team System Code Name "Rosario"
      27th November 2008 by Pieter Gheysens (Compuware)
      Abstract:
      Microsoft Visual Studio Team System code name "Rosario" is the version of Team System that follows Visual Studio Team System 2008. It is an integrated Application Life-cycle Management (ALM) solution comprising tools, processes, and guidance. Team System "Rosario" can be seen as a major release and will bring lots of new features in the areas of Project Management, Architecture, Version Control, Build, ... Come and enjoy a sneak preview of what will be shipped in the next version of Visiual Studio Team System.
    • Resharper and Design Principles  
      16th December by Hadi Hariri
      Abstract:
      As systems grow in size it becomes hard to keep the simplicity.
      Testing becomes harder and understanding the code comes close to impossible. This session explains concepts that allow you make robust applications that are not only testable but maintainable. Concepts such as separation of concerns interface segregation, dependency injection and inversion of control are all covered with ample examples of IoC Containers as well as an introduction to mock objects and how to replace dependencies with them during tests.
    • Christmas Geek Dinner
      18th December 2008
      Abstract... Not a real abstract but anyway...:
      For the third time already, we are planning our annual Christmas Geek Dinner. An evening full of fun, networking, good food and the real christmas spirit among fellow Visug-people... What more could you ask Santa for?

      This year, we selected Wok & Tandoor (Antwerp). It's an "all-you-can-eat", Chinese/Indian restaurant, located near the "Vlaamse/Waalse kaai".

      Seats are limited! Each participant pays for own food!

    • WCF and entities
      22nd December 2008 by Kurt Claeys (Ordina)
      Abstract:
      Using the ADO.NET Entity Framework in a WCF SOA architecture. About the objectcontext, disconnected entities and entities as datatransferobjects in serviceoperations.

    As always, registration for the events is free (except the food at our Geek Dinner) but required. Hurry up if you want to attend, since our events tend to get sold out faster and faster!

    Go to www.visug.be to register!

      Posted on: Tuesday, October 21, 2008 12:12:04 AM (Romance Daylight Time, UTC+02:00)   |   Comments [2]
             
    2/4/2012   4:48:30 PM
     Welcome to Snowball.be
    Hello and welcome to snowball.be!

    My name is Gill Cleeren, I'm a Microsoft Regional Director and an MVP ASP.NET.
    On Snowball.be, you'll find all kind news and articles on .net, ASP.NET, WPF, Silverlight and Microsoft in general.
    More on me can be found on my about page.

    Should you have any questions, don't hesitate to contact me by Send mail to the author(s) .

     Partner sites
     Most popular tags
    .net (124) .net 3.0 (6) .net 3.5 (18) .NET 4 (18) .NET Show (1) ADO.net (4) ASP.net (53) ASP.net AJAX (4) ASP.NET MVC (3) Atlas (12) Azure (2) Blend (2) Book (5) Book review (4) C# (43) Case studies (1) Chopsticks (3) Community (10) Community Day (15) Consoles (1) Database (1) DevDays09 (4) DotNetNuke (4) Efficiency (57) Enterprise Library (5) Events (60) Expression (7) Games (3) Hardware (9) Internet (18) IT (1) jQuery (1) LightSwitch (3) Links (11) LINQ (4) Mac (2) Metro (1) Microsoft (75) Mix 07 (6) Mix 08 (4) Mix 09 (1) Mix 11 (1) Movies (4) MVP (5) MVP Summit 2008 (3) mvvm (1) Office 2007 (10) Other (8) PDC (22) PDC2008 (10) Personal (36) ppt (9) Programming (52) Programming tools (22) Regional Director (2) Silverlight (142) Silverlight Advent Calendar (24) sl4 (44) Slide decks (13) Snowball (13) Software (20) Microsoft (25) Speaking (14) SQL Server (10) TechDays (13) TechEd (14) telerik (6) Telerik (6) TFS (1) Twitter (1) Vista (73) Vista Tricks (9) Visual Studio.net (38) Visug (33) VS2010 (8) Wallpaper (2) WCF (2) Webcasts (9) Webinars (5) Windows (41) Windows 7 (5) Windows 8 (1) Windows Azure (2) Windows Mobile (3) Windows Phone 7 (2) WinFX (17) WinRT (1) WP7 (2) WPF (40) XAML (24)

     On this page
    Send me to Vegas to speak at Mix!
    Updates to Web Camp calendar
    Silverlight Firestarter on December 2nd
    Upcoming webinar: 10 tips in Silverlight
    Announcing: Silverlight Tour is coming to European countries now!
    Telerik Silverlight Sweden roadshow was a success!
    ReMix 2010 demo and slide deck
    Announcing .NET Show, the Belgian podcast for .NET developers
    Building an app marketplace with MEF (MEF/Silverlight 4 tutorial)
    More praise for my Silverlight 4 book
    Slides and demos for DotNed.nl Silverlight session
    Upcoming DotNed.nl session: Building an end-to-end Silverlight application with me!
    Vote for sessions at TechEd 2010 Berlin
    The jury has spoken: some reviews of my book
    Community Day 2010 registration open: register now!
    My book released: Silverlight 4 Data and Services Cookbook
    Visual Studio 2010 Tip: Navigate to functionality
    Our book now featured on Silverlight.net
    Exploring Silverlight 4: Printing in Silverlight 4
    Silverlight 4 is here!
    TechEd 2009: the report
    Breaking news: Scott Guthrie is visiting… again!
    My TechEd Online TechTalk is online
    TechEd Europe almost here… and here’s what I’ll be doing
    Don’t miss my online talk on Prism on October 1st!
    Some great video content: Silverlight FireStarter
    ReMix 09 Belgium: the report
    Brad Abrams visited us… and we liked it.
    OneNote “in the cloud”
    I love you, Windows 7
    8 new showcases for Silverlight added
    Sobees – A state of the art showcase for Silverlight 3
    Silverlight Launch video
    Surface (s)elected to show election results on Belgian TV
    DevDays Netherlands 2009: Ajax Tips and Tricks session downloads
    Community day 2009: officially here
    Resharper 4.5 review
    New win for Silverlight
    SET ENABLE_BROKER hangs
    Community Day 2009 is coming! Save the date!
    Tech-Ed 2009 Europe officially announced
    Reminder: Microsoft Virtual Techdays 2009
    Mix09: the "What you need to know" post
    Visug in overdrive
    The road to the keynote
    SnippetManager @Techdays
    Techdays 2009 Belgium slides and demos
    My sessions at TechDays 09
    Techdays sessions and agenda online
    We just launched the new Visug site!
    2 more webcasts online
    I'm in the Ineta Speaker Bureau!
    Microsoft and the year 2009
    Extending Visual Studio 2010 September CTP
    Juval Löwy is stopping by again!
    My 2 new Silverlight chopsticks are online!
    New Visug events announced
     This site
     Archives
    Navigation
     Sitemap
     Blogroll OPML
     Disclaimer

    All content is property of www.snowball.be. Nothing on this site can be copied or published elsewhere, unless otherwise stated.

    This site is made by Gill Cleeren.

    Questions? Opinions? Send mail to the author(s) E-mail