Posts by Year



How to become a remote worker

Yes, it’s 2018, us IT folks have probably been working remote for quite a while (full-time or occasionally), but there are other industries where these things take time. Not to mention that in countries like Belgium, remote work also has to be arranged for in employment contracts or ancillary documents. But anyway, ... Read more »

How HTTP Chunked Encoding was killing a request

Recently, someone asked me to look at their ASP.NET MVC application and help figure out why a certain request was taking 16 seconds to complete. It’s always fun to look at those things, so I could not pass on this nerd snipe. Read more »

Retiring as a Microsoft MVP

I have decided to retire from the Microsoft MVP program. In the first week of April, an e-mail from Microsoft landed in my mailbox. I was given the choice to either remain an active MVP (but without access to NDA content) until my next renewal period, or retire from the program. Read more »


Running Kotlin in Azure Functions

A while back, the Azure folks announced support for Java on Azure Functions. My immediate thought was: “Do they mean Java or JVM? And if they mean JVM, will it work with Kotlin?” In this blog post, we’ll find out! Read more »

On speaker life…

Last week, I did a tweet while at the Paris Charles de Gaulle airport, working on blog posts (part of my job) and drinking bad coffee. Read more »

Building a scheduled task in ASP.NET Core/Standard 2.0

In this post, we’ll look at writing a simple system for scheduling tasks in ASP.NET Core 2.0. That’s quite a big claim, so I want to add a disclaimer: this system is mainly meant to populate data in our application’s cache in the background, although it can probably be used for other things as well. It builds on the... Read more »

Using dotPeek to figure out why IIS crashed

Here’s a story on how I once used dotPeek to provide debugger symbols and (decompiled) source code for a crashed application for which we had nothing but the application assemblies available. Namespaces have been altered to protect the innocent. Read more »

Application Insights telemetry processors

Two weeks ago I had a wonderful experience speaking at a small conference in Finland. The talk was titled What is going on - Application diagnostics on Azure (slides) and focused on the importance of semantic logging and how Azure Application Insights (AppInsights) can help make sense of that data and correlate it w... Read more »

Exploring .NET managed heap with ClrMD

Since my posts on making code allocate less memory and memory allocation for strings were quite well received, I decided to add another post to the series: Exploring .NET managed heap with ClrMD. In this post, we’ll explore what is inside .NET’s managed heap (you know, the thing where we alocate our objects), how it... Read more »


Exploring memory allocation and strings

A while back, I wrote about making code allocate less memory (go read it now if you haven’t). In that post, we saw how the Garbage Collector works and how it decides to keep objects around in memory or reclaim them. There’s one specific type we never touched on in that post: strings. Why would we? They look like val... Read more »

Making .NET code less allocatey - Allocations and the Garbage Collector

The .NET Garbage Collector (GC) is quite cool. In combination with the runtime’s virtual memory, it helps providing our applications with virtually unlimited memory, by reclaiming memory that is no longer in use and making it available to our code again. By doing so, it also takes away the burden of having to alloca... Read more »

Hotel California

At the start of 2015, I checked out from JetBrains to join Microsoft. Today, after almost two years in the NuGet team, it’s time for change. Microsoft and NuGet have been a fun ride, and I got to complete my personal mission… I remember Paul Stack trolling me (“Hey Maarten, is NuGet down?”) on more than one occasion... Read more »

NuGet and NPM news from the community

You may know (or not, shame on you!) Xavier Decoster and myself are operating MyGet, a hosted service providing teams with hosting and management of NuGet, npm, Bower, VSIX and debugger symbols. Recently, we started looking into how we could do better on the content marketing front, an important piece of getting peo... Read more »

Building NuGet (.NET Core) using Atlassian Bitbucket Pipelines

A while back, I signed up for the beta of Bitbucket Pipelines, a new continuous integration service from Atlassian, built into Bitbucket. The build system promises easy configuration using YAML files to describe the build steps. It runs builds in a Docker image, so that means we can also use it for building and pac... Read more »


Disabling session affinity in Azure App Service Web Apps (Websites)

In one of our production systems, we’re using Azure Websites to host a back-end web API. It runs on several machines and benefits from the automatic load balancing we get on Azure Websites. When going through request logs, however, we discovered that of these several machines a few were getting a lot of traffic, som... Read more »

Working with a private npm registry in Azure Web Apps

Using Azure Web Apps, we can deploy and host Node applications quite easily. But what to do with packages the site depends on? Do we have to upload them manually to Azure Web Apps? Include them in our Git repository? None of that: we just have to make sure our app’s package,json is checked in so that Azure Web Apps ... Read more »

Not enough space on the disk - Azure Cloud Services

I have been using Microsoft Azure Cloud Services since PDC 2008 when it was first announced. Ever since, I’ve been a huge fan of “cloud services”, the cattle VMs in the cloud that are stateless. In all those years, I have never seen this error, until yesterday: There is not enough space on the System.IO.__... Read more »

Replaying IIS request logs using Apache JMeter

How would you validate a new API is compatible with an old API? While upgrading frameworks in a web application we’re building, that was exactly the question we were asking ourselves. Sure, we could write synthetic tests on each endpoint, but is that representative? Users typically find insane better ways to test an... Read more »

Writing and distributing Roslyn analyzers with MyGet

Pretty sweet: MyGet just announced Vsix support has been enabled for all MyGet customers! I wanted to work on a fun example for this new feature and came up with this: how can we use MyGet to build and distribute a Roslyn analyzer and code fix? Let’s see. Developing a Roslyn analyzer and code fix Roslyn analyzers an... Read more »


December 9th, 2012., was my first day at JetBrains, after being in consultancy for a good 7 years. Hadi Hariri, my new boss, showed the world how new employees are treated. If you know Hadi, that was obviously just for laughs. Not one day have I considered him as a boss, yet as a friend who worked with me on great t... Read more »


Building future .NET projects is quite pleasant

You may remember my ranty post from a couple of months back. If not, read about how building .NET projects is a world of pain and here’s how we should solve it. With Project K ASP.NET vNext ASP.NET 5 around the corner, I thought I had to look into it again and see if things will actually get better… So here goes! Se... Read more »

There is no good mobile operating system

I’m back on Windows Phone. If you follow me on Twitter, you may have read in the past weeks that I switched from being a Windows Phone user to being an Android user. Having been on the platform since before Windows Phone 7 was RTM, I found the operating system was getting slower and slower and less stable on my Noki... Read more »

Could not load file or assembly… NuGet Assembly Redirects

When working in larger projects, you will sometimes encounter errors similar to this one: “Could not load file or assembly 'Newtonsoft.Json, Version=, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.” Or how about this one? “System.IO.Fil... Read more »

Automatically strong name signing NuGet packages

Some developers prefer to strong name sign their assemblies. Signing them also means that the dependencies that are consumed must be signed. Not all third-party dependencies are signed, though, for example when consuming packages from NuGet. Some are signed, some are unsigned, and the only way to know is when at com... Read more »

Developing for the Tessel with WebStorm

In a previous post, I mentioned that (finally) my Tessel arrived, “an internet-connected microcontroller programmable in JavaScript”. I like WebStorm a lot as an IDE, and since the Tessel runs on JavaScript code (via node), why not see if WebStorm can be more than just an editor for Tessel development… Developing Ja... Read more »

Getting Started with the Tessel

Somewhere last year (I honestly no longer remember when), I saw a few tweets that piqued my interest: a crowdfunding project for the Tessel, “an internet-connected microcontroller programmable in JavaScript”. Since everyone was doing Arduino and Netduino and JavaScript is not the worst language ever, I thought: let’... Read more »

Microsoft Azure cloud plugin for TeamCity (dabbling in Java code)

NOTE: While the content is this blog post will still work, JetBrains now has a plugin that is the recommended way of working with TeamCity and build agents on Azure. Please check this blog post to learn more about it. If you follow me on Twitter, you may have seen me in several stages of anger at Java. After two we... Read more »

Optimizing calls to Azure storage using Fiddler

Last week, Xavier and I were really happy for achieving a milestone. After having spent quite some evenings on bringing Visual Studio Online integration to MyGet, we were happy to be mentioned in the TechEd keynote and even pop up in quite some sessions. We also learned ASP.NET vNext was coming and it would leverage... Read more »

Speeding up ASP.NET vNext package restore

TL;DR: If you have multiple NuGet feeds configured on your machine, it may be worth to do some tweaking in the NuGet.config file shipping with your project. Last week, the ASP.NET team released a preview of “ASP.NET vNext”, a first step in the good direction for solving the pain building .NET projects is, but more t... Read more »

NuGet Configuration File inheritance is awesome

One way to remove friction from using NuGet in multiple projects is by making use of NuGet Configuration File inheritance, probably the awesomest unknown feature in there. By default, all NuGet clients (the command-line tool, the Visual Studio extension and the Package Manager Console) all make use of the default Nu... Read more »

Windows Azure Storage magic with Shared Access Signatures

When building cloud applications on Windows Azure, it’s always a good thing to delegate as much work to specialized services as possible. File downloads would be one good example: these can be streamed directly from Windows Azure blob storage to your client, without having to pass a web application hosted on Windows... Read more »

Source Control considered harmful

TL;DR: Using source control is a really bad idea. Or is it? Skip to Conclusion for the meat of this post.One of the first things I do with a new project in Visual Studio is not add it to source control. There are many reasons, but it all boils down to this: Source Control introduces more problems than it solves.Befo... Read more »

Pro NuGet second edition is out

Pfew! Around February 2013, Xavier and I started planning work on an update of our book. Eight months later, we’re proud to present you with Pro NuGet (second edition). It’s been a tough couple of months writing this: Xavier has become a father for the second time (congratulations!), we’ve had two ... Read more »


A new year’s present: introducing Glimpse plugins for Windows Azure

Have you tried Glimpse before? It shows you server-side information like execution times, server configuration, request data and such in your browser. At the February MVP Summit this year, Anthony, Nik and I had a chat about what would be useful information to be displayed in Glimpse when working on Windows Azure. S... Read more »

Visual Studio Online for Windows Azure Web Sites

Today’s official Visual Studio 2013 launch provides some interesting novelties, especially for Windows Azure Web Sites. There is now the choice of choosing which pipeline to run in (classic or integrated), we can define separate applications in subfolders of our web site, debug a web site right from ... Read more »

Developing Windows Azure Mobile Services server-side

Word of warning: This is a partial cross-post from the JetBrains WebStorm blog. The post you are currently reading adds some more information around Windows Azure Mobile Services and builds on a full example and is a bit more in-depth. With Microsoft’s Windows Azure Mobile Services, we can build a back-end for iOS, ... Read more »

Using the Windows Azure Content Delivery Network (CDN)

With the Windows Azure Content Delivery Network (CDN) released as a preview, I thought it was a good time to write up some details about how to work with it. The CDN can be used for offloading content to a globally distributed network of servers, ensuring faster throughput to your end users. Note: this is a modified... Read more »

An autoscaling build farm using TeamCity and Windows Azure

NOTE: While the content is this blog post will still work, JetBrains now has a plugin that is the recommended way of working with TeamCity and build agents on Azure. Please check this blog post to learn more about it. Cloud computing is often referred to as a cost saver due to its billing models. If we can move wor... Read more »

Just released: MvcSiteMapProvider 4.0

After a beta version about a month ago, we are proud to release MvcSiteMapProvider 4.0 stable! (get it from NuGet, it’s fresh!) It took 6 months to complete this major version but I think our GitHub contributors have done a great job. Thank you all and especially Shad for taking the lead on this release! MvcSiteMapP... Read more »

Windows Azure Traffic Manager Explained

With yesterday’s announcement on Windows Azure Traffic Manager surfacing in the management portal (as a preview), I thought it was a good moment to recap this more than 2 year old service. Windows Azure Traffic Manager allows you to control the distribution of network traffic to your Cloud Services and VMs hos... Read more »

Autoscaling Windows Azure Cloud Services (and web sites)

At the Build conference, Microsoft today announced that Windows Azure Cloud Services now support autoscaling. And they do! From the Windows Azure Management Portal, we can use the newly introduced SCALE tab to configure autoscaling. That’s right: some configuration and we can select the range of instances we w... Read more »

And there it is - MvcSiteMapProvider v4 (beta)

It has been a while since a new major update has been done to the MvcSiteMapProvider project, but today is the day! MvcSiteMapProvider is a tool that provides flexible menus, breadcrumb trails, and SEO features for the ASP.NET MVC framework, similar to the ASP.NET SiteMapProvider model. To be honest, I have not done... Read more »

Create a list of favorite ReSharper plugins

With the latest version of the ReSharper 8 EAP, JetBrains shipped an extension manager for plugins, annotations and settings. Where it previously was a hassle and a suboptimal experience to install plugins into ReSharper, it’s really easy to do now. And what is really nice is that this extension manager is bui... Read more »

Throttling ASP.NET Web API calls

Many API’s out there, such as GitHub’s API, have a concept called “rate limiting” or “throttling” in place. Rate limiting is used to prevent clients from issuing too many requests over a short amount of time to your API. For example, we can limit anonymous API clients to a maximum... Read more »

SymbolSource support for NuGet Package Source Discovery

A couple of weeks, I told you about NuGet Package Source Discovery. In short, it allows you to add some meta information to your website and use your website as a discovery document for NuGet feeds. And thanks to a contribution to the spec by Marcin from, Package Source Discovery (PSD) now supports ... Read more »

Running unit tests when deploying ASP.NET to Windows Azure Web Sites

One of the well-loved features of Windows Azure Web Sites is the fact that you can simply push our ASP.NET application’s source code to the platform using Git (or TFS or DropBox) and that sources are compiled and deployed on your Windows Azure Web Site. If you’ve checked the management portal earlier, yo... Read more »

NuGet Package Source Discovery

It’s already been 2 years since NuGet was introduced. This.NET package manager features the concept of feeds, or “package sources”, on which packages containing .NET libraries and tools can be hosted. In fact, support for feeds inspired us to build While not all people are aware of t... Read more »

Remote profiling Windows Azure Cloud Services with dotTrace

Here’s another cross-post from our JetBrains .NET blog. It’s focused around dotTrace but there are a lot of tips and tricks around Windows Azure Cloud Services in it as well, especially around working with the load balancer. Enjoy the read! With dotTrace Performance, we can profile applications runn... Read more »

Custom media types for ASP.NET Web API versioning

There is a raging discussion on the interwebs on whether to version API’s by using their URL or by using a custom media type. Some argue that doing it in the URL breaks REST (since a different URL is a different resource while versions don’t necessarily mean a new resource is available). While I still fe... Read more »

Taking over the @msdnbelux Twitter account

Just a quick post to let you know I’ll be taking over the @msdnbelux Twitter account for the next two weeks. This is the official Twitter account for MSDN BeLux. It’s not hacked, I did not steal the password: they gave it to me! The best thing about this takeover is that there are no constraints: I can ... Read more »

Working with Windows Azure SQL Database in PhpStorm

Disclaimer: My job at JetBrains holds a lot of “exploration of tools”. From time to time I discover things I personally find really cool and blog about those on the JetBrains blogs. If it relates to Windows Azure, I  typically cross-post on my personal blog. PhpStorm provides us the possibility to connect to Wi... Read more »

Global Windows Azure Bootcamp - april 27th

On April 27th, 2013, you’ll have the ability to join a Windows Azure Bootcamp on a location close to you. We’ve started this with the idea of maybe having 10 or 15 locations world wide. We were wrong. Here’s what happened: In short: we now have over 50 locations available where a bootcamp will be ... Read more »

Running unit tests when deploying to Windows Azure Web Sites

When deploying an application to Windows Azure Web Sites, a number of deployment steps are executed. For .NET projects, msbuild is triggered. For node.js applications, a list of dependencies is restored. For PHP applications, files are copied from source control to the actual web root which is served publicly. Would... Read more »

Hosting a YouTrack instance on Windows Azure

Note: this is a cross-post from the JetBrains YouTrack blog. Since it is centered around Windows Azure, I thought it is appropriate to post a copy on my own blog as well. YouTrack, JetBrains’ agile issue tracker, can be installed on different platforms. There is a stand-alone version which can be downloaded ... Read more »

Working with Windows Azure from within PhpStorm

Working with Windows Azure and my new toy (PhpStorm), I wanted to have support for doing specific actions like creating a new web site or a new database in the IDE. Since I’m not a Java guy, writing a plugin was not an option. Fortunately, PhpStorm (or WebStorm for that matter) provide support for issuing comm... Read more »


Windows Azure Websites and PhpStorm

In my new role as Technical Evangelist at JetBrains, I’ve been experimenting with one of our products a lot: PhpStorm. I was kind of curious how this tool would integrate with Windows Azure Web Sites. Now before you quit reading this post because of that acronym: if you are a Node-head you can also use WebStor... Read more »

Storing user uploads in Windows Azure blob storage

On one of the mailing lists I follow, an interesting question came up: “We want to write a VSTO plugin for Outlook which copies attachments to blob storage. What’s the best way to do this? What about security?”. Shortly thereafter, an answer came around: “That can be done directly from the cl... Read more »

How I push GoogleAnalyticsTracker to NuGet

If you check my blog post Tracking API usage with Google Analytics, you’ll see that a small open-source component evolved from MyGet. This component, GoogleAnalyticsTracker, lives on GitHub and NuGet and has since evolved into something that supports Windows Phone and Windows RT as well. But let’s not focus on the o... Read more »

A phone call from the cloud: Windows Azure, SignalR & Twilio

Note: this blog post used to be an article for the Windows Azure Roadtrip website. Since that one no longer exists, I decided to post the articles on my blog as well. Find the source code for this post here: 05 (1.32 mb). It has been written earlier this year, some versions of packages... Read more »

Sending e-mail from Windows Azure

Note: this blog post used to be an article for the Windows Azure Roadtrip website. Since that one no longer exists, I decided to post the articles on my blog as well. Find the source code for this post here: 04 (922.27 kb).</p> When a user subscribes, you send him a thank-you e-... Read more »

(Almost) time for something new…

September 1st, 2005. Fresh from school, I got the opportunity to start at RealDolmen (Dolmen, back then). Not just a “welcome, here’s your customer, cya!”-start, but a start where my fresh colleagues and I got a 4 months deep dive from people in the industry. Entirely different from what school taught me, focused “o... Read more »

From API key to user with ASP.NET Web API

ASP.NET Web API is a great tool to build an API with. Or as my buddy Kristof Rennen (and the French) always say: “it makes you ‘api”. One of the things I like a lot is the fact that you can do very powerful things that you know and love from the ASP.NET MVC stack, like, for example, using filter at... Read more »

What PartitionKey and RowKey are for in Windows Azure Table Storage

For the past few months, I’ve been coaching a “Microsoft Student Partner” (who has a great blog on Kinect for Windows by the way!) on Windows Azure. One of the questions he recently had was around PartitionKey and RowKey in Windows Azure Table Storage. What are these for? Do I have to specify them ... Read more »

MyGet Build Services - Join the private beta!

Good news! Over the past 4 weeks we’ve been sending out tweets about our secret project MyGet project “wonka”. Today is the day Wonka shows his great stuff to the world… In short: MyGet Build Services enable you to add packages to your feed by just giving us your GitHub repo. We build it, we... Read more »

Get your Windows 8 up to speed fast

With the release of Windows 8 on MSDN yesterday, I have a gut feeling that today, around the globe, people are installing this fresh operating system on their machine. I’ve done so too and I wanted to share with your two tools: one that helped me get up to speed fast, one that will help me up to speed even fas... Read more »

Hands-on Windows Azure Services for Windows

A couple of weeks ago, Microsoft announced their Windows Azure Services for Windows Server. If you’ve ever heard about the Windows Azure Appliance (which is vaporware imho :-)), you’ll be interested to see that the Windows Azure Services for Windows Server are in fact bringing the Windows Azure Services ... Read more »

Tweaking Windows Azure Web Sites

A while ago, I was at a customer who wanted to run his own WebDAV server (using on Windows Azure Web Sites. After some testing, it seemed that this PHP-based WebDAV server was missing some configuration at the webserver level. Some HTTP keywords required for the WebDAV protocol were not mapped to t... Read more »

Community guidelines to stay out of the busy trap

For the past few days, an interesting blog post on the NY Times has been popping up in my Twitter timeline. In your as well, probably, since almost everyone I know has retweeted it a couple of times. Which blog post? The one about the so-called “busy trap”. The idea is simple: we’re all caught in t... Read more »

Fourth year as an MVP, second year for Windows Azure

Woohoo! I just received the great mail I expect yearly on the first of July: Dear Maarten Balliauw, Congratulations! We are pleased to present you with the 2012 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise ... Read more »

Domain based routing with ASP.NET Web API

Imagine you are building an API which is “multi-tenant”: the domain name defines the tenant or customer name and should be passed as a route value to your API. An example would be Customer 2 can use the same API, using Read more »

Setting up a webfarm using Windows Azure Virtual Machines

With the release of Microsoft’s Windows Azure Virtual Machines, a bunch of new scenarios became available on their cloud platform. If you plan to host multiple web applications, you can either go with Windows Azure Web Sites or go with a webfarm you create using the new IaaS capabilities. The first is okay for any t... Read more »

GitHub for Windows Azure Websites

With the new release of Windows Azure and Windows Azure Websites, a lot of new scenarios with Windows Azure just became possible. One I like a lot, especially since Appharbor and Heroku have similar offers too, is the possibility to push source code (ASP.NET or PHP) to Windows Azure instead of binaries using Windows... Read more »

AZUG Windows Azure Saturday overview

As one of the board members of the Windows Azure User Group in Belgium, I wanted to write a post on an event we organized last weekend. We do more events (one each month), however this one was way out of our comfort zone. Typically, we have an evening event in which a speaker delivers one session to around 40 attend... Read more »

Ready for a Windows Azure roadtrip?

A while ago, Michelangelo van Dam (a hardcore PHP guy), François Hertay (a hardcore Java guru) and myself (a .NET guy) were asked if we wanted to write about some of our experiences with the Windows Azure platform. Starting next week, you’ll find about 3 blog posts per week and/or videos on Windows Azu... Read more »

Social meet up on Twitter for MEET Windows Azure on June 7th

Here’s a perhaps rather redundant event for you but it should be kind of fun: MEET Windows Azure on Twitter (+ Beer). The idea is to list people who have a twitter account and intend to follow the MEET Windows Azure event via live streaming on June 7th (1pm PDT). Here is where you register to watch MEET Windows A... Read more »

The world is changing: the future of IT

I’ve had my say on cloud and the new world of IT already in an earlier post, Predictions for the future. Today, I’m seeing signs the world is in fact starting to change. Sites like Instagram started small and grew big in no time. Were the founders IT wonders? No. And you don’t have to be. Not so long ago, it would h... Read more »

Using the Windows Azure Content Delivery Network

As you know, Windows Azure is a very rich platform. Next to compute and storage, it offers a series of building blocks that simplify your life as a cloud developer. One of these building blocks is the content delivery network (CDN), which can be used for offloading content to a globally distributed network of server... Read more »

Protecting Windows Azure Web and Worker roles from malware

Most IT administrators will install some sort of virus scanner on your precious servers. Since the cloud, from a technical perspective, is just a server, why not follow that security best practice on Windows Azure too? It has gone by almost unnoticed, but last week Microsoft released the Microsoft Endpoint Protectio... Read more »

Pro NuGet is finally there!

Short version: Install-Package ProNuget or It’s been a while since I wrote my first book. After I’ve been telling that writing a book is horrendous (try writing a chapter per week after your office hours…) and that I would never write on again, my partner-in-crime Xavier De... Read more »

I’m an ASP Insider

Cool! I’ve just learned that I’m invited to join the ASPInsiders. I’m really excited and honored to be part of this group of great ASP.NET experts. Very much looking forward to learning the secret handshake and being able to provide feedback that helps the ASP.NET team forward. If don’t know who the ASP Insiders are... Read more »

TechDays Finland - Architectural Patterns for the Cloud - NuGet

As promised, here are the slide decks for the two sessions delivered at TechDays Finland last week. Architectural Patterns for the Cloud The promise of all cloud vendors out there is they can run your applications without changes. While that claim is true, it’s better to optimize existing software or design sp... Read more »

Introducing MyGet package source proxy (beta)

My blog already has quite the number of blog posts around MyGet, our NuGet-as-a-Service solution which my colleague Xavier and I are running. There are a lot of reasons to host your own personal NuGet feed (such as protecting your intellectual property or only adding approved packages to the feed, but there’s ... Read more »

Slides for TechDays Belgium 2012: SignalR

It was the last session on the last day of TechDays 2012 so I was expecting almost nobody to show up. Still, a packed room came to have a look at how to make the web realtime using SignalR. Thanks for joining and for being very cooperative during the demos! As promised, here are the slides. You can also find the dem... Read more »

Slides for UGIALT.NET - SignalR

Except for having a bad, bad experience using EasyJet on the way towards Milan, UGIALT.NET was a blast! Here's the slide deck and sample code for my session on SignalR. Abstract: "SignalR. Code, not toothpaste. (or: Using SignalR for realtime client/server communication) Today’s users are interested in a rich ... Read more »

Tracking API usage with Google Analytics

So you have an API. Congratulations! You should have one. But how do you track who uses it, what client software they use and so on? You may be logging API calls yourself. You may be relying on services like who make you pay (for a great service, though!). Being cheap, we thought about another approach fo... Read more »

Don’t brag about your Visual Studio achievements! (yet?)

The Channel 9 folks seem to have released the first beta of their Visual Studio Achievements project. The idea of Visual Studio Achievements is pretty awesome: Bring Some Game To Your Code! A software engineer’s glory so often goes unnoticed. Attention seems to come either when there are bugs or when the fin... Read more »

How do you synchronize a million to-do lists?

Not this question, but a similar one, has been asked by one of our customers. An interesting question, isn’t it? Wait. It gets more interesting. I’ll sketch a fake scenario that’s similar to our customer’s question. Imagine you are building mobile applications to manage a simple to-do list. This software is availabl... Read more »


Predictions for the future

It’s almost the end of 2011. Typically a time where bloggers start to write about their past year and what they’ll do in the next. A time where the Forrester, Gartner and McKinsey-alikes make predictions about next year. I know, normally I blog about technology in its technological sense, but today I fee... Read more »

Using SignalR to broadcast a slide deck

Last week, I’ve discussed Techniques for real-time client-server communication on the web (SignalR to the rescue). We’ve seen that when building web applications, you often face the fact that HTTP, the foundation of the web, is a request/response protocol. A client issues a request, a server handles this... Read more »

Repaving your PC: the easier way

It"’s been a while since I had to repave my laptop. I have a Windows Home Server (WHS) at home which images my PC almost daily and allows restoring it to a given point in time in less than 30 minutes. Which is awesome! And which is how I usually “restore” my PC into a stable state.  Over the p... Read more »

Publishing symbol packages for a MyGet feed

Ever since NuGet 1.2, there is a great way for NuGet package authors to let their users debug into the package’s binaries. With almost no additional effort, package authors can publish their symbols and sources, and package consumers can debug into them from Visual Studio, simply by pushing a symbols package i... Read more »

Running Memcached on Windows Azure for PHP

After three conferences in two weeks with a lot of “airport time”, which typically converts into “let’s code!” time, I think I may have tackled a commonly requested Windows Azure feature for PHP developers. Some sort of distributed caching is always a great thing to have when building s... Read more »

Setting up a NuGet repository in seconds: MyGet public feeds

A few months ago, my colleague Xavier Decoster and I introduced MyGet as a tool where you can create your own, private NuGet feeds. A couple of weeks later we introduced some options to delegate feed privileges to other MyGet users allowing you to make another MyGet user “co-admin” or “contributor... Read more »

NuGet push… to Windows Azure

When looking at how people like to deploy their applications to a cloud environment, a large faction seems to prefer being able to use their source control system as a source for their production deployment. While interesting, I see a lot of problems there: your source code may not run immediately and probably has t... Read more »

ASP.NET MVC dynamic view sections

Earlier today, a colleague of mine asked for advice on how he could create a “dynamic” view. To elaborate, he wanted to create a change settings page on which various sections would be rendered based on which plugins are loaded in the application. Intrigued by the question and having no clue on how to do... Read more »

Why MyGet uses Windows Azure

Recently one of the Tweeps following me started fooling around and hit one of my sweet spots: Windows Azure. Basically, he mocked me for using Windows Azure for MyGet, a website with enough users but not enough to justify the “scalability” aspect he thought Windows Azure was offering. Since Windows Azure... Read more »

Book review: Microsoft Windows Azure Development Cookbook

Over the past few months, I’ve been doing technical reviewing for a great Windows Azure book: the Windows Azure Development Cookbook published by Packt. During this review I had no idea who the author of the book was but after publishing it seems the author is no one less than my fellow Windows Azure MVP Neil ... Read more »

A client side Glimpse to your PHP application

A few months ago, the .NET world was surprised with a magnificent tool called “Glimpse”. Today I’m pleased to release a first draft of a PHP version for Glimpse! Now what is this Glimpse thing… Well: "what Firebug is for the client, Glimpse does for the server... in other words, a client sid... Read more »

Version 4 of the Windows Azure SDK for PHP released

Only a few months after the Windows Azure SDK for PHP 3.0.0, Microsoft and RealDolmen are proud to present you the next version of the most complete SDK for Windows Azure out there (yes, that is a rant against the .NET SDK!): Windows Azure SDK for PHP. We’ve been working very hard with an expanding global... Read more »

Copy packages from one NuGet feed to another

Yesterday, a funny discussion was going on at the NuGet Discussion Forum on CodePlex. Funny, you say? Well yes. Funny because it was about a feature we envisioned as being a must-have feature for the NuGet ecosystem: copying packages from the NuGet feed to another feed. And funny because we already have that featur... Read more »

Windows Azure Accelerator for Web Roles

One of the questions I often get around Windows Azure is: “Is Windows Azure interesting for me?”. It’s a tough one, because most of the time when someone asks that question they currently already have a server somewhere that hosts 100 websites. In the full-fledged Windows Azure model, that would mean 100 x 2 (we wan... Read more »

A hidden gem in the Windows Azure SDK for PHP: command line parsing

It’s always fun to dive into frameworks: often you’ll find little hidden gems that can be of great use in your own projects. A dive into the Windows Azure SDK for PHP learned me that there’s a nifty command line parsing tool in there which makes your life easier when writing command line scripts. Usually when creati... Read more »

A first look at Windows Azure AppFabric Applications

After the Windows Azure AppFabric team announced the availability of Windows Azure AppFabric Applications (preview), I signed up for early access immediately and got in. After installing the tools and creating a namespace through the portal, I decided to give it a try to see what it’s all about. Note that Neil Macke... Read more »

Officially a cloudhead now! (or: re-awarded MVP)

Woohoo! I just received the great mail I expect yearly on the first of July: Dear Maarten Balliauw, Congratulations! We are pleased to present you with the 2011 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world experti... Read more »

Delegate feed privileges to other users on MyGet

One of the first features we had envisioned for MyGet and which seemed increasingly popular was the ability to provide other users a means of managing packages on another user’s feed. As of today, we’re proud to announce the following new features: Delegating feed privileges to other users – This allows you to ma... Read more »

Enabling conditional Basic HTTP authentication on a WCF OData service

Yes, a long title, but also something I was not able to find too easily using Google. Here’s the situation: for MyGet, we are implementing basic authentication to the OData feed serving available NuGet packages. If you recall my post Using dynamic WCF service routes, you may have deducted that MyGet uses that techni... Read more »

Community Day 2011 - Fun with ASP.NET MVC, MEF and NuGet

To start the blog post: AWESOME! That’s what I have to say about the latest edition of Community Day 2011. I had the privilege of doing a session on ASP.NET MVC 3, MEF and NuGet, and as promised to the audience: here are the slides. For those who want to see the session, the recording can be found on Channel 9... Read more »

Advanced scenarios with Windows Azure Queues

For DeveloperFusion, I wrote an article on Windows Azure queues. Interested in working with queues and want to use some advanced techniques? Head over to the article: Last week, in Brian Prince’s article, Using the Queuing Service in Windows Azure, you saw how to create, add messages into, retrieve and consume t... Read more »

MyGet now supports pushing from the command line

One of the work items we had opened for MyGet was the ability to push packages to a private feed from the command line. Only a few hours after our initial launch, David Fowler provided us with example code on how to implement NuGet command line pushes on the server side. An evening of coding later, I quickly hacked ... Read more »

Slides for NDC2011 - Oslo

It was great speaking at NDC2011! As promised during the sessions I gave, here are the slide decks: Cost architecting for Windows Azure - NDC 2011.pptx (714.40 kb) Windows Azure - Under the hood - NDC 2011.pptx (2.37 mb) Going for noodles now. Cheers! This is an imported post. It was imported from my ol... Read more »

Creating your own private NuGet feed: MyGet

Ever since NuGet came out, I’ve been thinking about leveraging it in a corporate environment. I've seen two NuGet server implementations appear on the Internet: the official NuGet gallery server and Phil Haack’s NuGet.Server package. As these both are good, there’s one thing wrong with them: y... Read more »

Scaffolding and packaging a Windows Azure project in PHP

With the fresh release of the Windows Azure SDK for PHP v3.0, it’s time to have a look at the future. One of the features we’re playing with is creating a full-fledged replacement for the current Windows Azure Command-Line tools available. These tools sometimes are a life saver and sometimes a big PITA d... Read more »

Just released: MvcSiteMapProvider 3.1.0 RC

It looks like I’m really cr… ehm… releasing way too much over the past few days, but yes, here’s another one: I just posted MvcSiteMapProvider 3.1.0 RC both on CodePlex and NuGet. The easiest way to get the current bits is this one: As usual, here are the release notes: Created one NuGet package containing both ... Read more »

Windows Azure SDK for PHP v3.0 released

Microsoft and RealDolmen are very proud to announce the availability of the Windows Azure SDK for PHP v3.0 on CodePlex! (here's the official Microsoft post) This open source SDK gives PHP developers a speed dial library to fully take advantage of Windows Azure’s cool features. Version 3.0 of this SDK marks an ... Read more »

A Glimpse at Windows Identity Foundation claims

For a current project, I’m using Glimpse to inspect what’s going on behind the ASP.NET covers. I really hope that you have heard about the greatest ASP.NET module of 2011: Glimpse. If not, shame on you! Install-Package Glimpse immediately! And if you don’t know what I mean by that, NuGet it now! (the greatest .NET a... Read more »

Using dynamic WCF service routes

For a demo I am working on, I’m creating an OData feed. This OData feed is in essence a WCF service which is activated using System.ServiceModel.Activation.ServiceRoute. The idea of using that technique is simple: map an incoming URL route, e.g. “” to a WCF service. But there’s a catch in... Read more »

Wordpress auto sign-on with IIS7 and a plugin

For our RealDolmen blog platform, where we use Wordpress as the engine running multiple external and internal blogs (yes, that’s an internal SaaS we have there!), we wanted to have an easy solution for our employees to sign-on to the platform. We had a look at the Wordpress plugin repository and found the excellent ... Read more »

Windows Azure SDK for PHP v3.0.0 BETA released

Microsoft and RealDolmen are very proud to announce the availability of the Windows Azure SDK for PHP v3.0.0 BETA on CodePlex. This releases is something we’ve been working on in the past few weeks, implementing a lot of new features that enable you to fully leverage the Windows Azure platform from PHP. T... Read more »

Slides for my talk at MIX11: Fun with ASP.NET MVC 3, MEF and NuGet

As promised, here are the slides and demo code for my talk "Fun with ASP.NET MVC 3, MEF and NuGet" I presented at MIX in Las Vegas. Abstract: "So you have a team of developers… And a nice architecture to build on… How about making that architecture easy for everyone and getting developers up to speed q... Read more »

Official Belgium TechDays 2011 Windows Phone 7 app released

I’m proud to announce that we (RealDolmen) have released the official Belgium TechDays 2011 Windows Phone 7 app! The official Belgium TechDays 2011 gives you the ability to browse current & upcoming sessions, as well as provide LIVE feedback to the event organizers. Is the current session awesome? Let us know! I... Read more »

Lightweight PHP application deployment to Windows Azure

Those of you who are deploying PHP applications to Windows Azure, are probably using the Windows Azure tooling for Eclipse or the fantastic command-line tools available. I will give you a third option that allows for a 100% customized setup and is much more lightweight than the above options. Of course, if you want ... Read more »

Windows Azure and scaling: how? (PHP)

One of the key ideas behind cloud computing is the concept of scaling.Talking to customers and cloud enthusiasts, many people seem to be unaware about the fact that there is great opportunity in scaling, even for small applications. In this blog post series, I will talk about the following: Put your cloud on a diet... Read more »

Windows Azure and scaling: how? (.NET)

One of the key ideas behind cloud computing is the concept of scaling.Talking to customers and cloud enthusiasts, many people seem to be unaware about the fact that there is great opportunity in scaling, even for small applications. In this blog post series, I will talk about the following: Put your cloud on a diet... Read more »

Windows Azure CDN updates

The Windows Azure team has just put out the new Windows Azure SDK 1.4 for download. Next to that, I noticed some interesting new capabilities for the CDN (Content Delivery Network): Windows Azure CDN for Hosted Services Developers can use the Windows Azure Web and VM roles as “origin” for objects to be ... Read more »

Put your cloud on a diet (or: Windows Azure and scaling: why?)

One of the key ideas behind cloud computing is the concept of scaling.Talking to customers and cloud enthusiasts, many people seem to be unaware about the fact that there is great opportunity in scaling, even for small applications. In this blog post series, I will talk about the following: Put your cloud on a diet... Read more »

Authenticate Orchard users with AppFabric Access Control Service

From the initial release of Orchard, the new .NET CMS, I have been wondering how difficult (or easy) it would be to integrate external (“federated”) authentication like Windows Azure AppFabric Access Control Service with it. After a few attempts, I managed to wrap-up a module for Orchard which does that: Authenticat... Read more »

Thank you for getting me in Vegas!

I wish to thank everyone who has been voring for getting me in Vegas, speaking at MIX11. Without having expectations, I was really really surprised (and happy!) my session got selected. Thanks a bunch! Oh and thanks, RealDolmen, for supporting me in doing things like this! This is an imported post. It was imp... Read more »

MvcSiteMapProvider 3.0.0 released

Just a quick note to tell that MvcSiteMapProvider 3.0.0 has been released and is available on CodePlex and NuGet. This version is targeted at ASP.NET MVC 3. If you are still using ASP.NET MVC 2, no worries: version 2.3.1 contains the exact same functionality but is targeted at ASP.NET MVC 2. The changelog: Additi... Read more »

ASP.NET MVC and the Managed Extensibility Framewok on NuGet

If you search on my blog, there’s a bunch of posts where I talk about ASP.NET MVC and MEF. And what’s cool: these posts are the ones that are actually being read quite often. I’m not sure about which bloggers actually update their posts like if it was software, but I don’t. Old posts are outd... Read more »

Introducing the PHP on Azure Contest

It’s not every day that I get to be in the jury for a contest. It’s not every day that I deliver a training about PHP on Azure. Since this is about a contest where I’m doing both, I thought this is definitely worth telling you: The PHP on Azure Contest is a coding competition run by the PHP Benel... Read more »

Viva, Las Vegas!

I have asked it last year, and I’ll ask it again. One of my session proposals made it to the “short”list for MIX11. One thing left though: votes are the only currency to get my session proposal in Vegas. Here’s the session abstract: Fun with ASP.NET MVC 3 and MEF So you have a team of devel... Read more »

Writing an Orchard widget: LatestTwitter

Last week, Microsoft released Orchard, a new modular CMS system built on ASP.NET MVC and a lot of other, open source libraries available. I will not dive into the CMS itself, but after fiddling around with it I found a lot of things missing: there are only 40 modules and widgets available at the moment and the only ... Read more »

ASP.NET MVC and jQuery Mobile

With the release of Windows Phone 7 last year, I’m really interested in mobile applications. Why? Well, developing for Windows Phone 7 did not require me to learn new things. I can use my current skill set and build cool apps for that platform. But what about the other platforms? If you look at all platforms f... Read more »

Tools for the lazy: Templify and NuGet

In this blog post, I will cover two interesting tools that, when combined, can bring great value and speed at the beginning of any new software project that has to meet standards that are to be re-used for every project. The tools? Templify and NuGet. You know the drill. Starting off with a new project usually consi... Read more »

Byebye 2010, welcome 2011!

Happy New Year 2011! I wish you all the best in your career and personal life. And I know it’s a classic one: I wish you a good health! Some family members have had some serious issues on that part and really, health is the most imprtant thing you need. All the rest depends on that. If you’re healthy, y... Read more »


The quickest way to a VPN: Windows Azure Connect

First of all: Merry Christmas in advance! But to be honest, I already have my Christmas present… I’ll give you a little story first as it’s winter, dark outside and stories are better when it’s winter and you are reading this post n front of your fireplace. Last week, I received the beta inv... Read more »

Windows Azure Remote Desktop Access

The latest relase of the WIndows Azure platform, portal and tools (check here) includes support for one of the features announced at PDC last month: remote desktop access to your role instances. This feature is pretty easy to use and currently allows you to deploy a preconfigured VM with IIS where you can play with ... Read more »

Writing for the Windows Azure for PHP portal

I actually just noticed it has been a while since I did a blog post. I also know that writing about this is not really a good idea in the blogosphere. Unless… it’s for a good reason! The good reason for not being that active on my blog lately is the fact that I’m producing content for Microsoft’s Interoperability t... Read more »

MvcSiteMapProvider 2.2.0 released

I’m proud to announce that MvcSiteMapProvider 2.2.0 has just been uploaded to CodePlex. It should also be available through NuPack in the coming hours. This release has taken a while, but that’s because I’ve been making some important changes... MvcSiteMapProvider is, as the name implies, an ASP.N... Read more »

Scale-out to the cloud, scale back to your rack

That is a bad blog post title, really! If Steve and Ryan have this post in the Cloud Cover show news I bet they will make fun of the title. Anyway… Imagine you have an application running in your own datacenter. Everything works smoothly, except for some capacity spikes now and then. Someone has asked you for... Read more »

Windows Phone 7 First Impressions

Back in june of this year, I received a very surprising e-mail stating that I would receive a Windows Phone 7 developer device. The reason for this? No, not that I’m handsome. But the fact that I paid $99 for listing an application in the marketplace that they were hoping me to port to Windows Phone 7. The wai... Read more »

Using MvcSiteMapProvider throuh NuPack

Probably you have seen the buzz around NuPack, a package manager for .NET with thight integration in Visual Studio 2010. NuPack is a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating third party libraries into a .NET application dur... Read more »

Cost Architecting for Windows Azure

Just wanted to do a quick plug to an article I’ve written for TechNet Magazine: Windows Azure: Cost Architecting for Windows Azure. Designing applications and solutions for cloud computing and Windows Azure requires a completely different way of considering the operating costs. Cloud computing and platforms l... Read more »

PHP on Windows and on Azure slide deck

As promised during my session on PHP Summer Camp in Lisbon, Portugal, here's the slide deck. PHP on Windows and on Azure PHP on Windows and on Azure</embed>View more presentations from Maarten Balliauw. Thanks for joining! This is an imported post. It was imported from my old blog using an automated to... Read more »

Remix 2010 slides and sample code

As promised during my session on Remix 10 yesterday in Belgium, here's the slide deck and sample code. Building for the cloud: integrating an application on Windows Azure Abstract: “It’s time to take advantage of the cloud! In this session Maarten builds further on the application created during Gill Cleeren’s... Read more »

Windows Azure Diagnostics in PHP

When working with PHP on Windows Azure, chances are you may want to have a look at what’s going on: log files, crash dumps, performance counters, … All this is valuable information when investigating application issues or doing performance tuning. Windows Azure is slightly different in diagnostics from ... Read more »

Introducing Windows Azure Companion – Cloud for the masses?

At OSIDays in India, the Interoperability team at Microsoft has made an interesting series of announcements related to PHP and Windows Azure.  To summarize: Windows Azure Tools for Eclipse for PHP has been updated and is on par with Visual Studio tooling (which means you can deploy a PHP app to Windows Azure wi... Read more »

Announcing the Windows Azure Online Conference

Steve Plank from Microsoft UK has just announced the UK Windows Azure Online Conference on his blog. This will be a whole day, online Windows Azure conference consisting of three different tracks: Cirrus – the high level stuff, Altocumulus – the mid level stuff (cast studies) and Stratocumulus – the low level stuff ... Read more »

BlogEngine.NET comment spam filtering

It’s been a month or three since I was utterly fed up with comment spam on my blog. Sure, I did turn on comment moderation so you, as a visitor, would not notice this spam if I did not approve it as a valid comment. However, I found myself cleaning up comment spam from in between legitimate comments in the BlogEngin... Read more »

Book review: Refactoring with Visual Studio 2010

Yet again, Packt Publishing has sent me a book for review. For once, one without the typical orange/black cover but instead a classy white/black cover: Refactoring with Visual Studio 2010 by Peter Ritchie. Since my book shelf is quite heavy on the Packt side (really, almost have their complete collection I guess, th... Read more »

Hybrid Azure applications using OData

In the whole Windows Azure story, Microsoft has always been telling you could build hybrid applications: an on-premise application with a service on Azure or a database on SQL Azure. But how to do it in the opposite direction? Easy answer there: use the (careful, long product name coming!) Windows Azure platform App... Read more »

Simplified access control using Windows Azure AppFabric Labs

Earlier this week, Zane Adam announced the availability of the New AppFabric Access Control service in LABS. The highlights for this release (and I quote): Expanded Identity provider support - allowing developers to build applications and services that accept both enterprise identities (through integration with Act... Read more »

MvcSiteMapProvider 2.1.0 released!

The release for MvcSiteMapProvider 2.1.0 has just been posted on CodePlex. MvcSiteMapProvider is, as the name implies, an ASP.NET MVC SiteMapProvider implementation for the ASP.NET MVC framework. Targeted at ASP.NET MVC 2, it provides sitemap XML functionality and interoperability with the classic ASP.NET sitemap c... Read more »

ASP.NET MVC 3 and MEF sitting in a tree…

As I stated in a previous blog post: ASP.NET MVC 3 preview 1 has been released! I talked about some of the new features and promised to do a blog post in the dependency injection part. In this post, I'll show you how to use that together with MEF. Download my sample code: (256.21 kb) Dependency inj... Read more »

ASP.NET MVC 3 preview 1 is out! Quick review…

I just noticed a very interesting download: ASP.NET MVC 3 preview 1. Yes, you are reading this correctly, the first bits for v3.0 are there! Let’s have a quick look around and see what’s new... Razor Syntax View Engine ScottGu blogged about Razor before. ASP.NET MVC has always supported the concept of ... Read more »

Manage your SQL Azure database from your browser

Yesterday, I noticed on Twitter that the SQL Azure - Project “Houston” CTP 1 has been released online. For those who do not know Houston, this is a lightweight and easy to use database management tool for SQL Azure databases built in Silverlight. Translation: you can now easily manage your SQL Azure data... Read more »

Renewed MVP ASP.NET for 2010!

Just got the best e-mail a Microsoft community member can receive in his mailbox: Dear Maarten Balliauw, Congratulations! We are pleased to present you with the 2010 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise... Read more »

ASP.NET MVC - MvcSiteMapProvider 2.0 is out!

I’m very proud to announce the release of the ASP.NET MVC MvcSiteMapProvider 2.0! I’m also proud that the name of this product now exceeds the average length of Microsoft product names. In this blog post, I will give you a feel of what you can (and can not) do with this ASP.NET-specific SiteMapProvider. ... Read more »

Running on Windows Azure - ChronoRace - Autoscaling

At RealDolmen, we had the luck of doing the first (known) project on Windows Azure in Belgium. Together with Microsoft, we had the opportunity to make the ChronoRace website robust enough to withstand large sports events like the 20km through Brussels. ChronoRace is a Belgian company based in Malmédy, specialised i... Read more »

Extension methods for PHP

The concept of “extension” methods will be nothing new to this blog’s .NET-related audience. For the PHP-related audience, this is probably something new. Let’s start with the official definition for extension methods: Extension methods enable you to "add" methods to existing types without creating a new ... Read more »

Book review: PHP 5 E-commerce Development

Once again, Packt Publishing has asked me to do a book review on one of their latest books, "PHP 5 E-commerce Development” by Michael Peacock. The book promises the following: Build a flexible e-commerce framework using PHP, which can be extended and modified for the purposes of any e-commerce site Enabl... Read more »

Taking Care of a Cloud Environment (slides)

It looks like I’m only doing sessions lately :-) Here’s another slide deck for a presentation I did on the Architect Forum last week in Belgium. Abstract: “No, this session is not about greener IT. Learn about using the RoleEnvironment and diagnostics provided by Windows Azure. Communication between roles, logging a... Read more »

Linuxwochen Austria

As part of my global domination plans, I this week visited Vienna, Austria for a session at Linuxwochen around PHP on Windows. PHP on Windows Abstract: “Ever wanted to get started with PHP development on Windows? This session covers the basics of running PHP on the Windows platform and will help getting your d... Read more »

Slides of our VISUG session

As promised, here are the slides of the VISUG session me and Kris van der Mast did yesterday. Being a pimp without Silverlight! Abstract: “Don't tell us you're jealous of those Silverlight fanboys! We'll show you that applications with bling can be developed using ASP.NET MVC and jQuery. We're talking MVC, template ... Read more »

TechDays 2010 Portugal slides and demo code

First of all: thank you for attending the sessions Kevin Dockx and I gave at TechDays 2010 Portugal! A wonder we made it there with all the ash clouds and volcanic interference based in Iceland. Just Another Wordpress Weblog, But More Cloudy Abstract: “While working together with Microsoft on the Windows Azure SDK f... Read more »

Using Windows Azure Drive in PHP (or Ruby)

At the JumpIn Camp in Zürich this week, we are trying to get some of the more popular PHP applications running on Windows Azure. As you may know, Windows Azure has different storage options like blobs, tables, queues and drives. There’s the Windows Azure SDK for PHP for most of this, except for drives. Wh... Read more »

Running PHP on Windows Azure

Yesterday I did some talks on PHP and Windows Azure at JumpIn Camp in Zürich together with Josh Holmes. Here are the slide decks and samples we used. Scaling Big while Sleeping Well Josh talked on what Windows Azure is, what components are available and how you can get started with PHP and Windows Azure. Scali... Read more »

Put your existing application in the cloud!

As promised during my talk, here's the slide deck for "Put your existing application in the cloud!". Abstract: "Leverage the highly scalable Windows Azure platform and deploy your existing ASP.NET application to a new home in the clouds. This demo filled session will guide you in how to make successful use of Window... Read more »

Using FTP to access Windows Azure Blob Storage

A while ago, I did a blog post on creating an external facing Azure Worker Role endpoint, listening for incoming TCP connections. After doing that post, I had the idea of building a Windows Azure FTP server that served as a bridge to blob storage. Lack of time, other things to do, you name it: I did not work on that... Read more »

MEF will not get easier, it’s cool as ICE

Over the past few weeks, several people asked me to show them how to use MEF (Managed Extensibility Framework), some of them seemed to have some difficulties with the concept of MEF. I tried explaining that it will not get easier than it is currently, hence the title of this blog post. MEF is based on 3 keywords: ex... Read more »


Here’s something I would like to share with you. A few months ago, our company (RealDolmen) started a new website, This site syndicates content from employee blogs, people with lots of experience in their range of topics. These guys have lots of knowledge to share, but sometimes their blog does... Read more »

Running PHP in the Cloud slides and sample code

Just got back from London where I did a fun talk on PHP and Windows Azure yesterday evening. It was the first time I did a presentation after three beers, but I think it went allright. As promised, here's the slide deck and sample code (ImageCloud.rar (5.00 mb)). Abstract: "This session covers the basics of Microso... Read more »

Sharpy - an ASP.NET MVC view engine based on Smarty

Are you also one of those ASP.NET MVC developers who prefer a different view engine than the default Webforms view engine available? You tried Spark, NHaml, …? If you are familiar with the PHP world as well, chances are you know Smarty, a great engine for creating views that can easily be read and understood ... Read more »

Jump in! camp - Call for participants

I just got the following invitation from Microsoft, and would like to encourage  you to participate as well if you are interested in bot PHP and the Microsoft worlds. Jump In! and be a part of it! Open source programming and Microsoft: two incompatible worlds? Microsoft is partnering with renowned actors of ... Read more »

Using Windows Azure Drive (aka X-Drive)

With today’s release of the Windows Azure Tools and SDK version 1.1, also the Windows Azure Drive feature has been released. Announced at last year’s PDC as X-Drive, which has nothing to do with a well-known German car manufacturer, this new feature enables a Windows Azure application to use existing NT... Read more »

Just Another Wordpress Weblog, But More Cloudy

Slides of my talk at the PHPBenelux conference last weekend are online. Bit of a pity my live demo went wrong due to my trial account going into read-only mode while doing the demo. Abstract: "While working together with Microsoft on the Windows Azure SDK for PHP, we found that we needed an popul... Read more »

Translating routes (ASP.NET MVC and Webforms)

For one of the first blog posts of the new year, I thought about doing something cool. And being someone working with ASP.NET MVC, I thought about a cool thing related to that: let’s do something with routes! Since System.Web.Routing is not limited to ASP.NET MVC, this post will also play nice with ASP.NET We... Read more »

PHPMEF 0.1.0 released!

A while ago, I did a conceptual blog post on PHP Managed Extensibility Framework – PHPMEF. Today, I’m proud to announce the first public release of PHPMEF! After PHPExcel, PHPLinq, PHPPowerPoint and the Windows Azure SDK for PHP, PHPMEF is the 5th open-source project I started on interoperability (or conceptual int... Read more »

Creating an external facing Azure Worker Role endpoint

When Windows Azure was first released, only Web Roles were able to have an externally facing endpoint. Since PDC 2009, Worker Roles can now also have an external facing endpoint, allowing for a custom application server to be hosted in a Worker Role. Another option would be to run your own WCF service and have it h... Read more »

Ordering fields in ASP.NET MVC 2 templated helpers

Ever worked with the templated helpers provided by ASP.NET MVC 2? Templated helpers provide a way to automatically build UI based on a data model that is marked with attributes defined in the System.ComponentModel.DataAnnotations namespace. For example, a property in the model can be decorated with the attribute [Di... Read more »

Vote to help me speak at the MIX 2010 conference!

Everybody knows the Microsoft MIX event, right? The one in Las Vegas? The one with all the fancy web-related stuff? Rings a bell? Ok, great. In the beginning of December 2009, Microsoft did an open call for speakers, which I answered with some session proposals. Who doesn’t want to go to Vegas, right? The open... Read more »

Byebye 2009, welcome 2010!

A year just ended, a new has begun. Congratulations! Happy newyear 2010! And welcome in the next decennium. It’s time for a 2009 wrap-up post. And perhaps, even the time for some things I want to do in 2010. First things first: the top 5 blog posts of 2009. Top 5 blog posts of 2009 1. More ASP.NET MVC Best ... Read more »


Hoping they will learn… Usability!

How about ending the year 2009 with a blog post on something annoying I see on the Internet, as well as some others? I’m talking about automatic localization… Please, go ahead and read some tweets by @KvdM and @patrickv. And then, there’s my own annoyance on Windows Mobile Marketplace. The base for al this frustrate... Read more »

Cloud computing and the Windows Azure Services Platform (KU Leuven)

It was a fun session yesterday at KU Leuven university! I did a session on cloud computing and Windows Azure there for the IEEE Student Branch Leuven. Abstract: "This session covers the basics of the Windows Azure Services Platform and drills into some architectural challenges. Learn what components the Windows Azur... Read more »

Microsoft Web Development Summit 2009

Being in the US for 2 times in a month (PDC09 and Web Development Summit) is fun, tiring and rewarding. The WDS09 was an invite-only event organized by Microsoft, focusing on interaction between Microsoft and the PHP community. I must say: the event has been helpful and interesting for both parties! The Heathman... Read more »

PHP Managed Extensibility Framework – PHPMEF

While flying sitting in the airplane to the Microsoft Web Developer Summit in Seattle, I was watching some PDC09 sessions on my laptop. During the MEF session, an idea popped up: there is no MEF for PHP! 3500 kilometers after that moment, PHP got its own MEF… What is MEF about? MEF is a .NET library, targeti... Read more »

Supporting multiple submit buttons on an ASP.NET MVC view

A while ago, I was asked for advice on how to support multiple submit buttons in an ASP.NET MVC application, preferably without using any JavaScript. The idea was that a form could contain more than one submit button issuing a form post to a different controller action. The above situation can be solved in many way... Read more »

Book review: Zend Framework 1.8 Web Application Development

My book shelf is starting to look a lot like the warehouse of Packt Publishing: I’ve received yet another book from them. Different from all previous reviews I did: this one is a PHP book, titled “Zend Framework 1.8 Web Application Development” by Keith Pope. A chapter overview: Chapter 1: Creati... Read more »

MSDN - Converting an existing ASP.NET application to Windows Azure

Back from PDC 2009 with a lot of information on Windows Azure, I did an MSDN Live Meeting on ASP.NET and Windows Azure today. Here's the slide deck and demo code. Abstract: "Put your stuff in the cloud! Windows Azure allows you to take advantage of cloud computing infranstructure for hosting, computing, and storage ... Read more »

Microsoft PDC09 day 2 keynote highlights

Day 2 keynote at Microsoft PDC 2009 was quite exciting. To sum things up: Silverlight 4 went beta, IE9 features were previewed, and we got an external hard disk, nicely fitted in a tablet-pc format case. How thoughtful! Here’s some of the novelties: Silverlight 4 Beta This was a good starter… It’... Read more »

Microsoft PDC09 keynote highlights

Finally found some time to write a short blog post on the announcements this morning at PDC 2009. Ray Ozzie started the keynote this morning, focusing on Microsoft’s “three-screen” vision for the future. There will be three screens connected to the cloud: TV, (handheld) devices and of course good old PC. This vision... Read more »

Localize ASP.NET MVC 2 DataAnnotations validation messages

Living in a country where there are there are three languages being used, almost every application you work on requires some form of localization. In an earlier blog post, I already mentioned ASP.NET MVC 2’s DataAnnotations support for doing model validation. Ever since, I was wondering if it would be possible... Read more »

Windows Azure Tools for Eclipse for PHP developers

Pfew! Finally I can spread the word on this! While working on the Windows Azure SDK for PHP, I had the opportunity to test-drive the development builds of the WIndows Azure Tools for Eclipse. Today, the project has been released officially at Windows Azure Tools for Eclipse provides a series ... Read more »

Upcoming sessions on Azure, PHP and ASP.NET

It’s going to be a filled end of 2009… There’s Microsoft PDC which I will be attending and will probably cause me some sleepless nights (both due to jetlag and due to all the new stuff that will be released). Next to that, I’ll also be doing some sessions in the next few weeks. Here’s ... Read more »

Recording of my session at Remix 2009 - ASP.NET MVC

On September 29, I did a session on ASP.NET MVC at Remix 2009 Belgium. All session recordings are now online, check the Remix09 site. Slides and code for my talk can be found in a previous blog post. The video material can be found below. Enjoy! And feel free to leave some comments! ... Read more »

Let me Bing that for you

Have you ever been bugged with stupid questions? Do you get tired of people asking stuff that is only one search engine query away? Chances are you answered both of these questions with “yes!”. Together with Phil Haack and Juliën Hanssens, I created, a website that generates ... Read more »

Leveraging ASP.NET MVC 2 futures “ViewState”

Let’s start this blog post with a confession: yes, I abused a feature in the ASP.NET MVC 2 futures assembly to fire up discussion. In my previous blog post, I called something “ViewState in MVC” while it is not really ViewState. To be honest, I did this on purpose, wanting to see people discuss thi... Read more »

Exploring the ASP.NET MVC 2 futures assemby

The latest preview of ASP.NET MVC 2, preview 2, has been released on CodePlex last week. All features of the preview 1 version are still in, as well as some nice novelties like client-side validation, single project areas, the model metadata model, … You can read more about these here, here and here. Sure, t... Read more »

Remix 2009 session - Slides and code

As promised during the session at Remix 2009, here’s my example code and slide deck. Abstract: "Building a Twitter clone in 60 minutes, featuring what's new in ASP.NET MVC 2 preview 1 and focusing on some of the core ASP.NET MVC features like security and routing." ASP.NET MVC Wisdom</embed> Exampl... Read more »

Simple API for Cloud Application Services

Zend, in co-operation with IBM, Microsoft, Rackspace, GoGrid and other cloud leaders, today have released their Simple API for Cloud Application Services project. The Simple Cloud API project empowers developers to use one interface to interact with the cloud services offered by different vendors. These vendors are ... Read more »

Joined The Lounge network

Last week, I received my invitation to the Lounge network, an exclusive advertising network for “trusted and respected publishers focused on Microsoft technologies”. First of all, it’s cool to see that at least someone considers me as trusted and respected. Next, it’s probably a better adver... Read more »

ASP.NET MVC MvcSiteMapProvider 1.0 released

Back in March, I blogged about an experimental MvcSiteMap provider I was building. Today, I am proud to announce that it is stable enough to call it version 1.0! Download MvcSiteMapProvider 1.0 over at CodePlex. Ever since the source code release I did back in March, a lot of new features have been added, such as H... Read more »

SQL Azure Manager

A few days ago, the SQL Server Team announced the availability of three major CTP’s and several new upcoming projects in the SQL related family tree: SQL Server 2008 R2, SQL Server StreamInsight and SQL Azure. Now that last one is interesting: Microsoft will offer a 1GB or 10GB database server “in the c... Read more »

Book review: Beginning ASP.NET MVC 1.0

It sure looks like August 2009 is the month in which I found multiple books on my doormat for review. Last week I did ASP.NET 3.5 CMS Development, this time I’ll be reviewing a competitor to my own book on ASP.NET MVC, ASP.NET MVC 1.0 Quickly: Simone Chiaretta and Keyvan Nayyeri’s “Beginning ASP.N... Read more »

ASP.NET MVC Chained Controller Factory

My last post on the REST for ASP.NET MVC SDK received an interesting comment… Basically, the spirit of the comment was: “There are tons of controller factories out there, but you can only use one at a time!”. This is true. One can have an IControllerFactory for MEF, for Castle Windsor, a custom on... Read more »


Earlier this week, Phil Haack did a post on the newly released REST for ASP.NET MVC SDK. I had the feeling though that this post did not really get the attention it deserved. I do not have the idea my blog gets more visitors than Phil’s, but I’ll try to give the SDK some more attention by blogging an ex... Read more »

Book review: ASP.NET 3.5 CMS Development

From time to time, the people at Packt Publishing send me a free book, fresh of the presses, and ask nicely if I want to read it and write a review on my blog. Last week, I received their fresh ASP.NET 3.5 CMS Development book, written by Curt Christianson and Jeff Cochran, both Microsoft MVP (ASP.NET and IIS). Acc... Read more »

Signed Access Signatures and PHP SDK for Windows Azure

The latest Windows Azure storage release featured a new concept: “Shared Access Signatures”. The idea of those is that you can create signatures for specific resources in blob storage and that you can provide more granular access than the default “all-or-nothing” approach that is taken by Az... Read more »

Accessing ServiceConfiguration in FastCGI (PHP) web role

While working on a sample PHP application hosted on Windows Azure, I found that it is nearly impossible to retrieve information from the Windows Azure ServiceConfiguration.cscfg file. Also, it is impossible to write log messages to the Windows Azure Web Role. Well, both are not 100% impossible: you can imagine dirty... Read more »

ASP.NET MVC 2 Preview 1 released!

Today, Phil Haack did a blog post on the release of ASP.NET MVC 2 Preview 1! Get it while it’s fresh :-) An updated roadmap is also available on CodePlex. Guess now is about time to start revising my ASP.NET MVC 1.0 Quickly book… New features in ASP.NET MVC Preview 1 Templated helpers Templated helper... Read more »

ReMIX Belgium session on ASP.NET MVC

Just learned I’ll be doing a session on ASP.NET MVC at ReMIX Belgium. ReMix brings the best of MIX09 in Las Vegas to Belgium: it bring us international speakers presenting on the best of MIX09, as well as local cases, with a story focus on User Experience (UX). The session will be around building a Twitter cl... Read more »

Query the cloud with PHP (PHPLinq and Windows Azure)

I’m pleased to announce PHPLinq currently supports basic querying of Windows Azure Table Storage. PHPLinq is a class library for PHP, based on the idea of Microsoft’s LINQ technology. LINQ is short for language integrated query, a component in the .NET framework which enables you to perform queries on a... Read more »

Authenticating users with RPXNow (in ASP.NET MVC)

Don’t you get sick of having to register at website X, at website Y, at website Z, …? It is really not fun to maintain all these accounts, change passwords, … Luckily, there are some large websites offering delegated sign-in (for example Google Accounts, Live ID, Twitter OAuth, …). You ca... Read more »

PHP SDK for Windows Azure - Milestone 2 release

I’m proud to announce our second milestone for the PHP SDK for Windows Azure project that Microsoft and RealDolmen started back in May. Next to our regular releases on CodePlex, we’ll also be shipping a Zend Framework version of the PHP SDK for Windows Azure. Announcements on this will be made later. Th... Read more »


Yesterday evening, I received the following e-mail: Dear Maarten Balliauw, Congratulations! We are pleased to present you with the 2009 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate you... Read more »

How we built - Part 7: Deploying to the cloud

“Knight Maarten The Brave Coffeedrinker had managed all there is to building an application to interact with the great god of social networking, Twitter. A barn in the cloud, worker roles, web roles, a gate keeper, … The moment of truth came near: would the application survive if it was thrown at the az... Read more »

How we built - Part 6: The back-end

“Now that the digital villagers could enter their messages in the application, another need arose: knight Maarten The Brave Coffeedrinker would have to recruit a lot of slaves to tell all these messages to the great god of social networking, Twitter. Being a peaceful person, our knight thought of some digital ... Read more »

How we built - Part 5: the front-end

“After having found a god-like guardian for his application, Knight Maarten The Brave Coffeedrinker found out that his application still had no functional front-end. It’s OK to have a guardian and a barn in the cloud, but if there’s nothing to guard, this is a bit useless. Having asked the carpente... Read more »

How we built - Part 4: Authentication and membership

“Knight Maarten The Brave Coffeedrinker just returned from his quest to a barn in the clouds, when he discovered that he forgot to lock the door to his workplace. He immediately asked the digital village’s create a lock and provide him a key. Our knight returned to his workplace and concluded th... Read more »

How we built - Part 3: Store data in the cloud

“After setting up his workplace, knight Maarten The Brave Coffeedrinker thought of something else: if a farmer wants to keep a lot of hay, he needs a barn, right? Since the cloudy application would also need to keep things that can be used by the digital villagers, our knight needs a barn in the clouds. Looki... Read more »

How we built - Part 2: Creating an Azure project

“Knight Maarten The Brave Coffeedrinker was about to start working on his TwitterMatic application, named after the great god of social networking, Twitter. Before he could start working, he first needed the right tools. He downloaded the Windows Azure SDK, a set of tools recommended by the smith (or was it t... Read more »

How we built - Part 1: Introduction

“Once upon a time, Microsoft started a Windows Azure developing contest named new CloudApp();. While it first was only available for US candidates, the contest was opened for international submissions too. Knight Maarten The Brave Coffeedrinker and his fellow knightsmen at RealDolmen decided to submit a small... Read more »

Announcing: Azure User Group Belgium

After the summer, I'll be joining Kurt Claeys and Yves Goeleven and for the start of the Azure User Group Belgium (or AZUG.BE).  AZUG.BE is a Belgian user group with focus on development and architecture of the Microsoft Azure Services Platform. Azure is a cloud hosted development platform for internet oriented... Read more »

Application-wide action filters in ASP.NET MVC

Ever had a team of developers using your ASP.NET MVC framework? Chances are you have implemented some action filters (i.e. for logging) which should be applied on all controllers in the application. Two ways to do this: kindly ask your developers to add a [Logging] attribute to the controllers they write, or kindly ... Read more »

Revised: ASP.NET MVC and the Managed Extensibility Framework (MEF)

A while ago, I did a blog post on combining ASP.NET MVC and MEF (Managed Extensibility Framework), making it possible to “plug” controllers and views into your application as a module. I received a lot of positive feedback as well as a hard question from Dan Swatik who was experiencing a Server Error wit... Read more »

ASP.NET MVC TDD using Visual Studio 2010

Phil Haack announced yesterday that the tooling support for ASP.NET MVC is available for Visual Studio 2010. Troy Goode already blogged about the designer snippets (which are really really cool, just like other parts of the roadmap for ASP.NET MVC 2.0). I’ll give the new TDD workflow introduced in VS2010 a tak... Read more »

PHP and Silverlight - DevDays session

I just returned from The Hague where Kevin and I delivered a session on PHP and Silverlight. As promised, we are putting our slides and demos online. Download the demo code from here: PHP and Silverlight - (1.00 mb) Abstract: "So you have an existing PHP application and would like to spice it up with a ... Read more »

ConnectedShow Podcast - PHP SDK for Windows Azure

The fifth episode of the ConnectedShow podcast is up. This podcast is all about cloud computing, Windows Azure, … Recently, they have asked me if I wanted to be in one of their podcasts on the PHP SDK for Windows Azure. In this episode Dmitry welcomes a new co-host, Peter Laudati. Next, we speak to Maarten Balli... Read more »

ASP.NET MVC Domain Routing

Looking for an ASP.NET MVC 6 version? Check this post. Ever since the release of ASP.NET MVC and its routing engine (System.Web.Routing), Microsoft has been trying to convince us that you have full control over your URL and routing. This is true to a certain extent: as long as it’s related to your application path,... Read more »

Document Interoperability Workshop, London, May 18 2009

After a pleasant flight with VLM airlines (Antwerp – London City), traveling under half of the city of London, I arrived at the Microsoft offices in Victoria for their third (?) DII workshop, of which I attended a previous one in Brussels last year. If you are wondering: “What are you doing there???&rdq... Read more »

Mocking - VISUG session (screencast)

A new screencast has just been uploaded to the MSDN Belgium Chopsticks page. Don't forget to rate the video! Mocking - VISUG session (screencast) Abstract: "This session provides an introduction to unit testing using mock objects. It builds a small application using TDD (test driven development). To enable easier un... Read more »

Announcing PHP SDK for Windows Azure

As part of Microsoft’s commitment to Interoperability, a new open source project has just been released on CodePlex: PHP SDK for Windows Azure, bridging PHP developers to Windows Azure. PHPAzure is an open source project to provide software development kit for Windows Azure and Windows Azure Storage – B... Read more »

Mocking - VISUG session

Thursday evening, I did a session on Mocking for the VISUG (Visual Studio User Group Belgium). As promised, here is the slide deck I’ve used. The session will be available online soon, in the meantime you'll have to go with the slide deck. Mocking - Visug session </embed> Demo code can also be down... Read more »

More ASP.NET MVC Best Practices

In this post, I’ll share some of the best practices and guidelines which I have come across while developing ASP.NET MVC web applications. I will not cover all best practices that are available, instead add some specific things that have not been mentioned in any blog post out there. Existing best practices ca... Read more »

Book review: Learning Ext JS

For a project at one of our customers, we’re building a rich web application using the Coolite web controls in ASP.NET MVC. Coolite is a great product, wrapping all Ext JS widgets in an ASP.NET control. Upon ordering a license for both, we received two free copies of Packt’s “Learning Ext JS&rdquo... Read more »

PHPPowerPoint 0.1.0 (CTP1) released!

People following me on Twitter could have already guessed, but here’s something I probably should not have done for my agenda: next to the well known PHPExcel class library, I’ve now also started something similar for PowerPoint: PHPPowerPoint. Just like with PHPExcel, PHPPowerPoint can be used to gener... Read more »

MSDN session on ASP.NET MVC

As promised to all people attending my online session on ASP.NET MVC this afternoon, here is the slide deck I’ve used. MSDN - ASP.NET MVC</embed> I must say, doing a presentation using Live Meeting and a Microsoft Roundtable device seemed a bit strange at first. However, the setup that is used to do th... Read more »

ASP.NET MVC and the Managed Extensibility Framework (MEF)

Microsoft’s Managed Extensibility Framework (MEF) is a .NET library (released on CodePlex) that enables greater re-use of application components. You can do this by dynamically composing your application based on a set of classes and methods that can be combined at runtime. Think of it like building an appliat... Read more »

Using the ASP.NET MVC Futures AsyncController

Last week, I blogged about all stuff that is included in the ASP.NET MVC Futures assembly, which is an assembly available on CodePlex and contains possible future features (tonguetwister!) for the ASP.NET MVC framework. One of the comments asked for more information on the AsyncController that is introduced in the ... Read more »

Speaking at DevDays 2009, The Hague (and more)

Some Great news (at least: I think this is great :-)): Kevin Dockx and I will be giving a session on PHP and Silverlight at the Netherlands DevDays09. This event, aimed totally at developers, will take place on May 28 and 29th in The Hague (Den Haag). It’s the first time the DevDays are hosting sessions relate... Read more »

Back to the future! Exploring ASP.NET MVC Futures

For those of you who did not know yet: next to the ASP.NET MVC 1.0 version and its source code, there’s also an interesting assembly available if you can not wait for next versions of the ASP.NET MVC framework: the MVC Futures assembly. In this blog post, I’ll provide you with a quick overview of what i... Read more »

New CodePlex project: MvcSiteMap – ASP.NET MVC sitemap provider

If you have been using the ASP.NET MVC framework, you possibly have been searching for something like the classic ASP.NET sitemap. After you've played with it, you even found it useful! But not really flexible and easy to map to routes and controllers. To tackle that, last year, somewhere in August, I released a pro... Read more »

Sample chapter from ASP.NET MVC 1.0 Quickly

Here’s a shameless, commercial blogpost… With yesterday’s 1.0 release of the ASP.NET MVC framework, I’m sure the following sample chapter from my book ASP.NET MVC 1.0 Quickly will be of use for people starting ASP.NET MVC development: Your first ASP.NET MVC application. When downloading ... Read more »

ASP.NET MVC 1.0 has been released!

To keep up with a good tradition (see here and here), I have some great news on ASP.NET MVC: we are at version 1.0! This means production ready, supported, stable, …! Grab the download at I’m expecting an epic blog post by the Gu, but here’s some stuff you may want to have a loo... Read more »

Accessing Windows Azure Blob Storage from PHP

Pfew! A week of Microsoft TechDays here in Belgium with lots of talks on new Microsoft stuff, Azure included. You may know I already experimented with Windows Azure and ASP.NET MVC. Earlier this week, I thought of doing the same with Windows Azure and PHP... What the ...? At Microsoft PDC 2008, the Azure Services Pl... Read more »

CRUD with ASP.NET MVC (screencast)

A new screencast has just been uploaded to the MSDN Belgium Chopsticks page. Don't forget to rate the video! CRUD with ASP.NET MVC (screencast) Abstract: "In this video, the new tooling for Visual Studio included in ASP.NET MVC release candidate is demonstrated to create a create, read, update and delet... Read more »

Creating an ASP.NET MVC application with Google Gears

Offline web applications… This term really sounds like 2 different things: offline, no network, and web application, online. Maarten, you speak in riddles man! Let me explain the term… You probably have been working with Gmail or Google Docs. One of the features with those web applications is that ... Read more »

Announcing my book: ASP.NET MVC 1.0 Quickly

It’s been quite a job, but there it is: Packt just announced my very first book on their site. It is titled “ASP.NET MVC 1.0 Quickly”, covering all aspects ASP.NET MVC offers in a to-the-point manner with hands-on examples. The book walks through the main concepts of the MVC framework to help exi... Read more »

Replacement during my vacation: Wilson

This morning, I arrived at work after a great week of skiing in Pitztal, Austria. Unfortunately, I found my chair occupied by a new colleague looking a bit like Wilson. Good to see he enjoyed working early, like I do. But still, that was my seat and PC he was using… Thank you, dear colleagues, to see myself ... Read more »

Book review: Software Testing with Visual Studio Team System 2008

Another book review, this time for Packt’s “Software Testing with Visual Studio Team System 2008”. The book introduces you to the main types of testing available in Visual Studio Team System 2008 for both desktop and web applications, and then walks you through deploying, running, and interpretin... Read more »

Saving a PHPExcel spreadsheet to Google Documents

As you may know, PHPExcel is built using an extensible model, supporting different input and output formats. The PHPExcel core class library features a spreadsheet engine, which is supported by IReader and IWriter instances used for reading and writing a spreadsheet to/from a file. Currently, PHPExcel supports writ... Read more »

New VISUG website online

Last week, the new VISUG website has been released. VISUG stands for Visual Studio User Group Belgium and is one of the largest .NET related user groups in Belgium, providing technical sessions on different .NET related topics. This new site not only features a new layout, but also some new features. One of the ... Read more »

Form validation with ASP.NET MVC release candidate

Last week, the ASP.NET MVC framework release candidate was released (check ScottGu’s post). Apart from some great new tooling support, form validation has never been easier. Here’s a quick introduction. Imagine we have a LINQ to SQL data model, containing an Employee from the Northwind database. As ... Read more »

PHPLinq 0.4.0 released on CodePlex!

I’m pleased to announce that PHPLinq 0.4.0 has been released on CodePlex. PHPLinq is currently one year old, and I decided to add a huge step in functionality for the 0.4.0 release. This blog post will focus on the current status of PHPLinq and what it is capable of doing for you in a PHP project.   What... Read more »

TechDays 2009 agenda has been posted!

Just a quick note: the Belgian TechDays 2009 agenda has been published. You can find it on the TechDays website. Also, Katrien has posted some more details on the agenda on her blog. Hope to see you at the TechDays in Antwerp! This is an imported post. It was imported from my old blog using an automated... Read more »

Updated CarTrackr to ASP.NET MVC RC

As you may have noticed, ASP.NET MVC 1.0 Release Candidate has been released over the night. You can read all about it in ScottGu’s blog post, covering all new tools that have been released with the RC. Since I’ve been trying to maintain a small reference application for ASP.NET MVC known as CarTrac... Read more »

ECMA-376 implementation notes are out

Last month, Microsoft released the implementation notes for their ODF implementation in Office 2007. These implementation notes are actually the documentation on how Office 2007 treats ODF documents in various cases. Today, Microsoft released the ECMA-376 implementation notes, or in short: they've now document... Read more »

Book review: ASP.NET 3.5 Social Networking

Last week, I found another book from Packt in my letterbox. This time, the title is ASP.NET 3.5 Social Networking, written by Andrew Siemer. On the back cover, I read that this book shows you how to create a scalable, maintainable social network that can support hundreds of thousands of users, multimedia featur... Read more »

Checking username availability with jQuery (screencast)

A new screencast has just been uploaded to the MSDN Belgium Chopsticks page. Don't forget to rate the video! Checking username availability with jQuery Abstract: "This screencast explains how to use jQuery and the ASP.NET MVC framework to quickly add a username availability checker to a user registratio... Read more »

Verifying code and testing with Pex

Earlier this week, Katrien posted an update on the list of Belgian TechDays 2009 speakers. This post featured a summary on all sessions, of which one was titled “Pex – Automated White Box Testing for .NET”. Here’s the abstract: “Pex is an automated white box testing tool for .NE... Read more »

Seven things you didn’t know about me

Seems 2009 is starting off with yet another round of tagging people. Back in 2007, I already had to write five things about myself. Since we are now two years further, I guess each year asks for another extra item to be added. Thank you Michelangelo for making me write another post. Here goes, seven things you ... Read more »


Top blog posts in 2008

Since everyone (that is Simone Chiaretta and Phil Haack) seems to be blogging about 2008 and their top posts, here’s my list. Top 5 blog posts in 2008 1. Reuse Excel business logic with PHPExcel – This post explains how to use PHPExcel in a business scenario where a spreadsheet contains calculation l... Read more »

Book review: ASP.NET 3.5 Application Architecture and Design

The people at Packt asked it again: “Do you want to review this book?” Sure I do! The book I’m reviewing this time is ASP.NET 3.5 Application Architecture and Design, written by Vivek Thakur. Application Architecture is always an interesting topic to read on. Different people have different op... Read more »

CarTrackr on Windows Azure - Part 5 - Deploying in the cloud

This post is part 5 (and the final part) of my series on Windows Azure, in which I'll try to convert my ASP.NET MVC application into a cloud application. The current post is all about deploying CarTrackr in the cloud after all modifications done in previous posts. Other parts: Part 1 - Introduction, cont... Read more »

CarTrackr on Windows Azure - Part 4 - Membership and authentication

This post is part 4 of my series on Windows Azure, in which I'll try to convert my ASP.NET MVC application into a cloud application. The current post is all about implementing authentication in CarTrackr. Other parts: Part 1 - Introduction, containg links to all other parts Part 2 - Cloud-enabling... Read more »

CarTrackr on Windows Azure - Part 3 - Data storage

This post is part 3 of my series on Windows Azure, in which I'll try to convert my ASP.NET MVC application into a cloud application. The current post is all about implementing cloud storage in CarTrackr. Other parts: Part 1 - Introduction, containg links to all other parts Part 2 - Cloud-enabling CarTra... Read more »

Microsoft launches Implementation Notes (for ODF)

Just a quick post: at the Document Operability workshop in Brussels on December 2, Microsoft already announced they were going to do something with implementation notes. Here’s a scoop from my blog post on that: “Here's another scoop: there will be a website containing implementer notes on Offic... Read more »

CarTrackr on Windows Azure - Part 2 - Cloud-enabling CarTrackr

This post is part 2 of my series on Windows Azure, in which I'll try to convert my ASP.NET MVC application into a cloud application. The current post is all about enabling the CarTrackr Visual Studio Solution file for Windows Azure. Other parts: Part 1 - Introduction, containg links to all other parts P... Read more »

New Entity Framework / LINQ blog!

Just a quick recommendation note: One of my colleagues, Julien Hanssens, has started blogging on his experiences with the Entity Framework and LINQ. Here are some links to get you started: Entity Framework - ArgumentException on Connection "A common error while initialising an EntityModel from a WCF Servi... Read more »

ASP.NET MVC XForms released on CodePlex

Just noticed there's a new project on CodePlex related to the ASP.NET MVC framework: MVC XForms. MVC XForms is a simple UI framework for ASP.NET MVC based on the W3C XForms specification. It provides a set of form controls that allow updating of complex model objects. Picked these project goals from Jon Curt... Read more »

OpenXML DII workshop Brussels - Quick summary

A few days ago, I wrote I was doing a presentation on the DII workshop in Brussels together with Julien Chable. Apart from heavy traffic from Antwerp to Brussels (80km, almost 3 hours... *sigh*), I think the DII workshop was quite succesful! Lots of news around OpenXML and Office, lots of interesting ideas from oth... Read more »

PHPExcel featured in phparchitect / November 2008

Nice to see that there's a lot of activity going on related to PHPExcel! This weekend, I receievd my electronic copy of php|architect / November 2008 featuring an article on generating PDF and Excel files using PHP. Guess which library is being used in the second part of the article... While reading the arti... Read more »

Presenting at the OpenXML DII workshop Brussels

First things first: WTF is DII??? It's the "Document Interoperability Initiative" that Microsoft launched. The workshop will be a day filled with presentations from a variety of people, including members of the Office product groups at Microsoft and developers and consultants from several other compan... Read more »

Using the ASP.NET MVC ModelBinder (screencast)

A new screencast has just been uploaded to the MSDN Belgium Chopsticks page. Don't forget to rate the video! Using ASP.NET MVC ModelBinder Abstract: "This screencast demonstrates how code can be made more maintainable and testable by delegating binding to client data to the ASP.NET MVC model binder arch... Read more »

OpenXML support in Zend Framework 1.7 Lucene indexer

It has indeed been a long time since I blogged about OpenXML. However, this does not mean I'm completely doing nothing with it! PHPExcel still keeps eating a lot of evening hours as well as some other OpenXML-related projects. The folks at Zend contacted me if I would be interested in implementing OpenXML in... Read more »

Integrating NUnit test results in Team Build 2008

When using Team Foundation Server 2008 and Team Build, chances are you are developing unit tests in Microsoft’s test framework which is integrated with Visual Studio 2008. This integration offers valuable data hen a build has been finished on the build server: test run results are published in the Team Founda... Read more »

CarTrackr - Sample ASP.NET MVC application

Some people may have already noticed the link in my VISUG session blog post, but for those who didn't... I've released my sample application CarTrackr on CodePlex. CarTrackr is a sample application for the ASP.NET MVC framework using the repository pattern and dependency injection using the Unity applic... Read more »

Introduction to ASP.NET MVC for VISUG - Presentation materials

Yesterday evening, I did a presentation on the ASP.NET MVC framework for VISUG (Visual Studio User Group Belgium). I really hope everyone got a good feel on what the ASP.NET MVC framework is all about and what it takes to build an ASP.NET MVC application. Thank you Pieter Gheysens for inviting me for this talk! An... Read more »

Using the ASP.NET MVC ModelBinder attribute - Second part

Just after the ASP.NET MVC preview 5 was released, I made a quick attempt to using the ModelBinder attribute. In short, a ModelBinder allows you to use complex objects as action method parameters, instead of just basic types like strings and integers. While my aproach was correct, it did not really cover the whole ... Read more »

Forms interaction with ASP.NET MVC (screencast)

Abstract: "This screencast is a short demonstration on how you can handle form interactions using the ASP.NET MVC framework." Download sample code: (593.58 kb) This is an imported post. It was imported from my old blog using an au... Read more »

Using the ASP.NET MVC ModelBinder attribute

ASP.NET MVC action methods can be developed using regular method parameters. In earlier versions of the ASP.NET MVC framework, these parameters were all simple types like integers, strings, booleans, … When required, a method parameter can be a complex type like a Contact with Name, Email and Message propert... Read more »

Form validation with ASP.NET MVC preview 5

In earlier ASP.NET MVC previews, form validation was something that should be implemented "by hand". Since the new ASP.NET MVC preview 5, form validation has become more handy. Let me show you how you can add validation in such a ridiculously easy manner. Here's an example controller: [code:c#] ... Read more »

Building an ASP.NET MVC sitemap provider with security trimming

Warning!A new version of the source code provided in this post is available here. Use this blog post as reference only.  Yes, it has been a while since my last post. A nice vacation to Austria, some work to catch up, ... All excuses, I know, but I'll make it up to you with a huge blog post! If you have ... Read more »

MSDN Chopsticks on ASP.NET MVC (screencasts)

A while ago, KatrienDG asked me to do some screencasts on the ASP.NET MVC framework for the MSDN Chopsticks page. I've been working on 2 screencasts: an introductory talk to the ASP.NET MVC framework and a Test Driven Development story. Feel free to leave some comments! ... Read more »

ASP.NET MVC - Upcoming preview 4 release

ScottGu just posted that there's an upcoming preview 4 release of the ASP.NET MVC framework. What I immediately noticed, is that there are actually some community concepts being integrated in the framework, yay! And what's even cooler: 2 of these new features are things that I've already contributed to ... Read more »

Article on ASP.NET MVC in .NET magazine #21

Yesterday, I received the new Dutch edition of .NET magazine containing my article on the ASP.NET MVC framework. Since the article was written quite a while ago, soucre code is no longer up-to-date. Readers who are interested (or anyone else interested in ASP.NET MVC) can download up-to-date code examples on the A... Read more »

Creating an ASP.NET MVC OutputCache ActionFilterAttribute

In every web application, there are situations where you want to cache the HTML output of a specific page for a certain amount of time, because underlying data and processing isn't really subject to changes a lot. This cached response is stored in the web server's memory and offers very fast responses because no add... Read more »

The devil is in the details (Visual Studio Team System test policy)

Have you ever been in a difficult situation where a software product is overall very good, but a small detail is going wrong? At least I've been, for the past week... Team System allows check-in policies to be enforced prior to checking in your code. One of these policies is the unit testing policy, which al... Read more »

Code based ASP.NET MVC GridView

Earlier this week a colleague of mine asked me if there was such thing as a  DataGrid or GridView or something like that in the ASP.NET MVC framework. My first answer was: "Nope!". I advised him to look for a nice foreach implementation or using ExtJS, Dojo or similar. Which made me think... Why not create a si... Read more »

Detailed code metrics with NDepend

A while ago, I blogged about code performance analysis in Visual Studio 2008. Using profiling and hot path tracking, I measured code performance and was able to react to that. Last week, Patrick Smacchia contacted me asking if I wanted to test his project NDepend. He promised me NDepend would provide more insight i... Read more »

ASP.NET MVC framework preview 3 released!

Don't know how I do it, but I think this blog post is yet again the first one out there mentioning a new release of the ASP.NET framework (preview 3)  The official installation package can be downloaded from the Microsoft site. Source code is also available from CodePlex. Update instructions fro... Read more »

Creating a custom ViewEngine for the ASP.NET MVC framework

Have you ever seen a presentation of ScottGu about the ASP.NET MVC framework? There is one particular slide that keeps coming back, stating that every step in the ASP.NET MVC life cycle is pluggable. Let's find out if replacing one of these components is actually easy by creating a custom ViewEngine and corresp... Read more »

ASP.NET MVC custom ActionResult (ImageResult)

The ASP.NET MVC framework introduces the concept of returning an ActionResult in Controllers since the "preview preview" release on CodePlex. The purpose of this concept is to return a generic ActionResult object for each Controller method, allowing different child classes returning different results. ... Read more »

Finally! My own custom template!

Right after my blog move to, I decided to create a custom template for my blog to make it more unique in the blogosphere. Less than a year later (11 months, to be precise) I found the time to fire up my HTML and image editor to create a new look for my blog. Now who said developers are lazy?  ... Read more »

New Team Foundation Server projects on CodePlex!

Busy times... Lots of work, some holidays here in Belgium, ... But there's always time to browse CodePlex! It is actually a good thing to do that from time to time. In the past few days, I spotted two great new projects on Team Foundation Server. Thumbs up for their authors! TeamReview "Use this Visual S... Read more »

ASP.Net MVC Membership Starter Kit alternative authentication

Last week, I blogged about the ASP.Net MVC Membership Starter Kit and some of its features. Since then, Troy Goode and I are developing at warp-speed to provide a complete (Forms)Authentication starter kit for the MVC framework. Scott Guthrie also noticed our efforts, which forced us to do an official release earli... Read more »

To all BlogEngine.NET users… Go patch!

This morning, I read about a serious security issue in BlogEngine.NET. The security issue is in the JavaScript HTTP handler, which lets all files pass trough... In short: if you open\users,xml, anyone can see your usernames/passwords! None of the other HttpHandlers are aff... Read more »

ASP.Net MVC Membership Starter Kit

Yesterday, I read a cool blog post from Troy Goode about his new CodePlex project MvcMembership. I also noticed his call for help, so I decided to dedicate some of my evening hours to his project. Almost every (ASP.NET) website is using some form of authentication, in most cases based on ASP.NET membership. Wit... Read more »

Reuse Excel business logic with PHPExcel

In many companies, business logic resides in Excel. This business logic is sometimes created by business analysts and sometimes by business users who want to automate parts of their everyday job using Excel. This same Excel-based business logic is often copied into an application (i.e. a website) and is maintained o... Read more »

ASP.NET MVC Framework out on CodePlex

This morning, I was browsing the new projects page on CodePlex and noticed something nice! The ASP.NET MVC team already rumoured around making the ASP.NET MVC framework source code available on CodePlex, but here it is: the ASP.NET MVC project on CodePlex. The CodePlex project does not allow people to make their... Read more »

ASP.NET MVC - Testing issues Q and A

When playing around with the ASP.NET MVC framework and automated tests using Rhino Mocks, you will probably find yourself close to throwing your computer trough the nearest window. Here are some common issues and answers: Q: How to mock Request.Form? A: When testing a controller action which expects Request.For... Read more »

March 18 ASP.NET MVC links

Too busy this week to write large blog posts myself... Luckily other people do write interesting things on ASP.NET MVC! ASP.NET MVC Route tester Test your routes by simply browsing to a specific URL and checking the output of this tool. The ASP.NET MVC request lifecycle Description of the ASP.NET MVC request... Read more »

Heroes happen here - Microsoft TechDays 2008 in Belgium

Just to inform you: together with a numer of colleagues from Dolmen, I'll be attending the Microsoft TechDays 2008 in Ghent, Belgium on 12 and 13 March 2008. Want to spot me, Joris, Jeroen, Danny, ... and meet in person? Search for one of the guys in a Dolmen shirt! Update 17/03/2008: Jeroen posted an ov... Read more »

OpenXML + Silverlight 2.0 = cool!

Mix '08 announced some nice things, among them the release of Silverlight 2.0 (beta), ASP.NET MVC framework (CTP 2). This morning, I saw one very cool thing in my RSS reader: TextGlow. TextGlow is James Newton-King's newest exciting project which basically combines Silverlight 2.0 and OpenXML into a fanc... Read more »

PHPLinq version 0.2.0 released!

Last friday, I released PHPLinq version 0.2.0. LINQ, or Language Integrated Query, is a component inside the .NET framework which enables you to perform queries on a variety of data sources like arrays, XML, SQL server, ... These queries are defined using a syntax which is very similar to SQL. This latest PHP versio... Read more »

Data Driven Testing in Visual Studio 2008 - Part 2

This is the second post in my series on Data Driven Testing in Visual Studio 2008. The first post focusses on Data Driven Testing in regular Unit Tests. This part will focus on the same in web testing. Data Driven Testing in Visual Studio 2008 - Part 1 - Unit testing Data Driven Testing in Visual Studio 2008 ... Read more »

Data Driven Testing in Visual Studio 2008 - Part 1

Last week, I blogged about code performance analysis in visual studio 2008. since that topic provoked lots of comments (thank you Bart for associating "hotpaths" with "hotpants"), thought about doing another post on code quality in .NET. This post will be the first of two on Data Driven Testi... Read more »

Code performance analysis in Visual Studio 2008

Visual Studio developer, did you know you have a great performance analysis (profiling) tool at your fingertips? In Visual Studio 2008 this profiling tool has been placed in a separate menu item to increase visibility and usage. Allow me to show what this tool can do for you in this walktrough. An application wit... Read more »

Indexing Word 2007 (docx) files with Zend_Search_Lucene

You may have noticed Microsoft released their Search Server 2008 a few weeks ago. Search Server delivers search capabilities to your organization quickly and easily. The PHP world currently does not have a full-featured solution like Search Server, but there's a building block which could be used to create something... Read more »

Books I recently read…

A while ago, I was contacted by the people of Packt Publishing asking me to review two of their latest books, ASP.NET Data Presentation Controls Essentials (by Joydip Kanjilal) and LINQ Quickly (by N. Satheesh Kumar). Since both books stated something about LINQ on the back-cover, and me wanting to read more on tha... Read more »

ASP.NET Session State Partitioning using State Server Load Balancing

It seems like amount of posts on ASP.NET's Session State keeps growing. Here's the list: ASP.NET Session State Partitioning ASP.NET load balancing and ASP.NET state server (aspnet_state) Yesterday's post on Session State Partitioning used a round-robin method for partitioning session state over different state ser... Read more »

ASP.NET Session State Partitioning

After my previous blog post on ASP.NET Session State, someone asked me if I knew anything about ASP.NET Session State Partitioning. Since this is a little known feature of ASP.NET, here's a little background and a short how-to. When scaling out an ASP.NET application's session state to a dedicated session server (SQ... Read more »

LINQ for PHP (Language Integrated Query for PHP)

Perhaps you have already heard of C# 3.5's "LINQ" component. LINQ, or Language Integrated Query, is a component inside the .NET framework which enables you to perform queries on a variety of data sources like arrays, XML, SQL server, ... These queries are defined using a syntax which is very similar to SQL. There is... Read more »


ASP.NET MVC framework - Security

Some posts ago, I started playing with the ASP.NET MVC framework. In an example I'm creating, I'm trying to add Forms-based security. "Classic" ASP.NET offers a nice and easy way to set security on different pages in a web application, trough Web.config. In the example I'm building, I wante... Read more »

ASP.NET DataPager not paging after first PostBack?

A few posts ago, I mentioned that I am currently giving a classroom training on ASP.NET. People attending are currently working on a project I gave them, and today one of them came up to me with a strange problem... Here's the situation: in VS 2008, a web page was created containing 2 controls: a DataList an... Read more »

Thank you, ISP!

Living in Belgium sometimes feels like living in the desert. Over the past few years, my ISP has always offered the same: a cable modem subscription with 10Mbit downstream speed, and 256Kbit upstream speed. Great! Except for that data transfer limit of 12 GB per month and the ridiculous price of 42 E... Read more »

ASP.NET MVC Framework - Basic sample application

You might have noticed that I'm quite enhousiast about the new ASP.NET MVC framework. What are you talking about? Basically, this new ASP.NET MVC framework is an alternative to standard ASP.NET webforms, with some advantages: No more postbacks or viewstate, no more page lifecycle trouble: all co... Read more »

ASP.NET 3.5 Extensions CTP preview released

Just over the weekend, Microsoft has released the ASP.NET 3.5 Extensions CTP. This download includes several additions to ASP.NET 3.5: ASP.NET AJAX Improvements contains some new AJAX features like browser history support (back-forward), improvements to the JavaScript library, ... The new ASP.NET MVC framework... Read more »

LINQ to filesystem

The past few hours, I've been experimenting with LINQ. As a sample application, I'm trying to create a small photo album website, which shows me all images in a specific folder on my webserver. What does LINQ have to do with that? Everyone has used a loop over all files in a folder, and I decided to try ... Read more »

ASP.NET MVC framework preview to be released next week

Half the world has been focussing on the release of the new Visual Studio 2008 and .NET 3.5 last week. That is good, as .NET 3.5 offers lots of nice new features and improvements. In the blogosphere, I haven't read much about an extension I've been waiting for anxiously: the new ASP.NET MVC framework. Luc... Read more »

ASP.NET load balancing and ASP.NET state server (aspnet_state)

At one of our clients, we used to have only one server for ASP.NET applications (including web services). Since this machine is actually business-critical and load is constantly growing, the need for a second machine is higher than ever. This morning I was asked to set up a simple demo of a load-balanced ASP.NET... Read more »

PHP and OpenXML - New API project

It's been a while since I posted something related to PHP and OpenXML, but I fixed that glitch in this blog post. Browsing CodePlex, I found a new PHP OpenXML project named OpenXML API. From what I can see, this project is just in the "Hello world" stage of creating Word documents in PHP, but not s... Read more »

Advanced ASP.NET caching events

Currently, I'm giving an ASP.NET classroom training at our company, which actually is quite good for me: I needed to refresh all ASP.NET concepts, as those all fade away slowly when you don't use them for a while... Now, one of those refreshed concepts is ASP.NET's caching. ASP.NET offers a flexible ... Read more »

OpenXML in Healthcare in PHP

Here's a cool present just before the weekend... 2 days ago, Wouter posted on his blog about an article he co-operated on for MSDN: OpenXML in Healthcare. Being both a Microsoft and PHP fan (yes, you can curse me, I don't care), I thought of porting (part of) the sample code from his article into PHP. Except for the... Read more »

Generic arrays in PHP

Assuming everyone knows what generics are, let's get down to business right away. PHP does not support generics or something similar, though it could be very useful in PHP development.  Luckily, using some standard OO-practises, a semi-generic array can easily be created, even in multiple ways! Here's the ... Read more »

Inheritance is evil!

Read this on Bernie's blog: "All of the pain caused by inheritance can be traced back to the fact that inheritance forces 'is-a' rather than 'has-a' relationships. If class R2Unit extends Droid, then a R2Unit is-a Droid. If class Jedi contains an instance variable of type Lightsabre, ... Read more »

Enabling HTTP proxy for .NET webservice client

Have you ever written code that makes external (Soap) webservice calls? Tried that same code on your company network? Most of the time, this does not work very well due to a proxy server sitting in between, requiring authentication etc. You can start tweaking your Web.config file to set this proxy the right way,... Read more »

Remove unnecessary HTTP modules from the ASP.NET pipeline

Trying to speed up some things in a demo ASP.NET application for a customer, I found a really simple and effective way to remove some HTTP modules from the ASP.NET pipeline. When you are not using WindowsAuthentication or PassportAuthentication or ..., you can easily disable those modules. This decreases ASP.NET bo... Read more »

Creating Office2007 documents in C#

I've been too busy implementing <A class="" href="" target=_blank mce_href="">SpreadsheetML</A> in PHP, that I completely forgot to write something on OpenXML and C# on my blog. Luckily, Joris did now: <A class="" href=" Read more »

PackageExplorer, not only great for OpenXML…

The last few days, I've been working with <A class="" href="" target=_blank mce_href="">Wouter</A> to discuss some new features and ideas for his <A class="" href="" target=_blank mce_href="h... Read more »

Microsoft Tafiti just released

I'm sure you have already heared of SilverLight before, right? If not: it's Microsoft's answer to Adobe Flash, providing the same features + XAML-like markup + easier databinding + ... Now you're up to date: the Redmond people have just released a new site, Microsoft Tafiti, which is basically Live Search combined w... Read more »

TFS Team Build and ASP.NET websites

Here's one I'd really like to share with everyone trying to build ASP.NET websites using TFS Build. First of all, a little story about the project setup... A VS2005 solution was created a few weeks ago. This solution included some projects, namely ASP.NET website, Domain Layer class library, Business Layer class lib... Read more »

Open XML Developer workshop content

Over the last few months, Doug, Wouter, Brian and lots of other people delivered a series of OpenXML workshops around the globe. Those who were there, and those who weren't, can now download all content of these workshops from There are some interesting slideshows available for those of you who... Read more »

PHP zip:// and parse_url…

After having a few months of problems using PHP and fopen('zip://something.xlsx#xl/worksheets/sheet1.xml', 'r'), I finally found the reason of that exact line of code giving errors on some PC's... Assuming this uses a call to parse_url under the hood, I tried parsing this, resulting in the follo... Read more »

My job?

Seems that, according to <A href="" target=_blank mce_href="">this Wikipedia entry</A>, I work at <A href="" target=_blank mce_href="">Microsoft</A>: <I... Read more »

NHibernate 1.2.0 - Unexpected row count: 0; expected: 1

Great... I've been working with NHibernate and MySQL for a while now, without having any strange problems. For a project I'm working on, I'm using SqlClient instead of MySQL now, and strangeness occurs. When I try to Flush() a NHibernate session, here's what is thrown: Unexpected row count: 0; exp... Read more »

Enable sitemap security trimming in ASP.NET 2.0

Want to enable security trimming for your ASP.NET sitemap? Here's how... First of all, you need a new section in your web.config system.web element: [code:xml] <system.web>   <!-- ... other system.web configuration stuff ... -->   <siteMap defaultProvider="XmlSiteMapProvider&... Read more »

VSTS Project methodology

A quick linkdump of some VSTS project methodology templates: RUP - - http://www.scrumforteamsystem.comMacroscope -  This is an imported post. It was importe... Read more »

Team Foundation Server - Subversion bridge

Here's the thing: for my private development work (a.k.a. PHPExcel 8-)), I've been using Subversion as my source-control server (and client). As the PHPExcel is hosted on CodePlex, one would suspect I would be using the Team Foundation hosted service which is provided for free. Not really... Here... Read more »

PHPExcel 1.3.5 released

Just a quick note on the new PHPExcel 1.3.5 release. There are some cool new features included! One of the new features is rich text: one can now write coloured and styled text in a cell. Here's an example of how the feature demo result file looks: This is of course not all. Jakub had a couple of sleepless nights, ... Read more »

ASP.NET URL rewrites using .htaccess-like syntax

Having a PHP background, I've been using .htaccess mod_rewrite in Apache for ages. ASP.NET allows rewriting too, but using a different syntax than mod_rewrite. Using the attached library, you can now use mod_rewrite syntax to perform rewrites on your ASP.NET application. Here's how... First of all, you ne... Read more »

Enlisting an ADO.NET command in an NHibernate transaction

For everyone who has read my article on NHibernate, here's a story for you... When building an application, everyone comes to a point where one needs to batch-update records in a database table, based on one or more criteria. Let's say, for example, there's a table "User" containing an activ... Read more »

Commandline FTP folder download

A quick annoyed post... I just spent two hours searching the Internet for a means on how to recursively download a complete FTP folder, command-line, and in a simple way. Oh yeah, and preferably freeware. The solutions I found were not what I expected: a $50 software product providing a GUI (I said command-l... Read more »

My blog has just moved…

<IMG style="MARGIN: 5px" height=104 src="/images/WindowsLiveWriter/Mybloghasjustmoved_D038/image%7B0%7D_thumb%5B3%5D.png" width=98 align=right border=0 mce_src="/images/WindowsLiveWriter/Mybloghasjustmoved_D038/image%7B0%7D_thumb%5B3%5D.png"> Just finished painting, unpacked some boxes, and here we are: a new ... Read more »


The information on this website represents my personal opinion. My opinion may differ with other people's opinion and my employer's opinion. This website is by no means related to other people nor my employer. Copyright and contents Texts, lay-out, images, script and other items on this site are protected by copyri... Read more »

OpenXML news overview

A lot of news around OpenXML these days, so I decided to bundle some things into one big blog post. 1. Microsoft released a Microsoft SDK for Open XML Formats In .NET 3.0, there's the System.IO.Packaging API, which allows programmatic access to OpenXML packages (amongst them Office2007 files).Since this API is quit... Read more »

A small TFS linkdump…

Some new TFS links I found: Team Development with Visual Studio Team Foundation Server Guide Work Item Creator This is an imported post. It was imported from my old blog using an automated tool and may contain formatting errors and/or broken ... Read more »

New PHPExcel release: 1.3.0

The new version of PHPExcel has just been released, bringing 1.3.0 to the public. New features include formula calculation, inserting and removing columns/rows, auto-sizing columns, freezing panes, ... One of the new features in PHPExcel is formula calculation. Just like Excel or any other spreadsheet application... Read more »

Excel Formula Parsing using PHP?

One of the new (planned) features of PHPExcel is to implement parsing and calculating Excel formulas. One thing every developer should do is not to try to reinvent the wheel. Therefore, a Google search learned me someone wrote a Excel expression parser in JavaScript, which parses an expression into a tree. Parsing ... Read more »

MCTS for .NET framework 2.0 Web applications

Just like my colleague Kristof did last friday, I passed the Microsoft.NET Framework 2.0 - Web-based Client Development (Exam 070-528) exam yesterday, resulting in a new certification title: I’m now offically a Microsoft Certified Technology Specialist for .NET framework 2.0 Web applications. This is an importe... Read more »

SendMailControl for ASP.NET

Have you ever used the ASP.NET PasswordRecovery control, or the CreateUserWizard? Probably, you used the mail capabilities of these controls too, and set up a MailDefinition to send an e-mail when the control did his job. Personally, I missed this functionality when wanting to send mails to users. Luckily, ASP.N... Read more »

Excel, OpenXML and PHP

Yay! My new article on Excel, OpenXML and PHP has just been released in php|architect! A copy-paste action from "A few months ago, Microsoft released Office 2007, a version of their office suite that generates open source documents. Here, Maarten Balliauw gives an overvi... Read more »

ASP.NET 2.0 Event Validation

Event Validation is a new feature in ASP.NET 2.0 which provides an additional level of checks on postback actions. It verifies whether a postback from a control on client-side is really from that control and not from a malicious person trying to break your application. Even if you forget to add security checks o... Read more »

Team Foundation Server tools linkdump

Currently, I'm playing around with TFS (Team Foundation Server), and here's just a quick linkdump of some TFS tools, mainly on CodePlex. Read more »

Workaround for PHP file_exists on ZIP file contents

Recently, I was writing some PHP code, to check if a specific file existed in a ZIP file. PHP has this special feature called "stream wrappers", which basically is a system which enables PHP to do I/O operations on streams. A stream can be a file, a socket, a SSH connection, ... Each of these streams has its own wra... Read more »

Scalable Apps with Asynchronous Programming in ASP.NET

A while ago, I posted about the DevDays, and some interesting sessions I took. One of these sessions was "Scalable Apps with Asynchronous Programming in ASP.NET", by Jeff Prosise. Searching the Internet, I found that Jeff also published an article on this subject on MSDN, which can be found on the following URL: htt... Read more »

Developer & IT Pro days - Ghent - Day 2

Just got back from the second and last day at the DevDays. It's all more exhausting than I thought it would be. First of all: driving from Antwerp to Ghent and arrive there in time means to get up early. Second, a lot of information and understanding needs to be processed and absorbed. Today, I've attended a sessio... Read more »

Developer & IT Pro Days - Ghent - Day 1

Day one of the Belgium Developer & IT Pro days is finished. I've been attending some inspiring sessions. First of all, Jelle Druyts showed us a quick overview of the Guidance Automation Toolkit. Interesting, and usable in many situations as standard Visual Studio templates do not always fulfill all your needs. ... Read more »

Apache and IIS on same host, port 80, Windows XP

Yesterday, I decided to install an Apache web server on my development machine, next to IIS. Unfortunately, both use port 80, and I did not want to set one of the 2 servers to another port. Luckily, I remembered that IIS can be configured to only listen on one IP, and Apache on another. Easy: 2 IP addresses for my P... Read more »

New screen, Samsung is great!

Yesterday, I bought myself a Samsung SyncMaster 940BW wide screen TFT. My old screen, a IIyama 17 inch monster weighing CRT, needed a replacement. Not because of it's age, but because I really started hating this huge block on my desk. The SyncMaster is a great screen. Not the newest, not the most feature-loaded, ... Read more »

PHPExcel 1.0.0 final

I'm quite proud to announce the 1.0.0 version of PHPExcel, a set of classes that allows you to wirte Excel2007 files from PHP. Since my last post on this, a lot of things happened, feature-wise and project-wise. Feature-wise, conditional formatting was added, and a first attempt to a Excel2007 file reader has been... Read more »

Five things you didn’t know about me…

I was tagged by Joris and Kristof, so I guess it's about time I give away some secrets about myself. Did you know that... ... I wrote my first letter of programming code in Visual Basic 4, which I bought on 4 gray floppy disks when I was 12. ... I "split" my desert cakes and breakfast cakes: cream and cake... Read more »

PHP Excel classes on CodePlex

Just for the record: my PHP Excel classes have been released on CodePlex under a GPL license, and will be further released over there. The full URL: This is an imported post. It was imported from my old blog using an automated tool and may contain formatting errors and/or broken ima... Read more »

Back from winter vacation!

No posts last week: I was on a ski vacation to Pitztal, Austria. Found a cheap (and good!) hotel over there, Pension Haid, which offered me breakfast and dinner for 36 EUR per night. I've been skiing on Rifflsee and the Pitztaler Gletscher, which offers great slopes (and also good weather conditions last week)... Read more »

MyGeneration template for Zend_Db_Table

In my article on NHibernate, I mentioned MyGeneration, a tool which creates database classes / ORM classes from your database tables. Since MyGeneration uses templates to generate classes, and PHP is underrepresented, I decided to create a PHP Zend_Db_Table template, which creates the necessary Zend_Db_Table overlo... Read more »

PHP for Microsoft AJAX Library

Something really interesting has just been released on CodePlex: PHP for Microsoft AJAX Library. The code you have to use in your scripts is clean and easy, providing a full-featured PHP backend to the Microsoft AJAX Library. The Microsoft AJAX Library is a pure-JavaScript library that's used by ASP.NET AJAX but is... Read more »

PHP code performance tweaks

Thanks to Sam Cooper's testing, some scalability issues came up in my SpreadSheet classes. Seems PHP has some odd internal quirks, which cause performance loss that can be severe on large amounts of data. These strange things are probably caused by PHP because it uses multiple C functions in order to perform someth... Read more »

Excel2007 in PHP - Project status

After a month of development, I think it's time for a status update on my PHP Excel2007 classes. 16 december 2007, I started working on these classes as a test to check how hard it could be to create Excel2007 files using PHP5. The story about Excel2007 and PHP, got picked up by a few websites, and it seems my set ... Read more »

DataBindable Business Objects in .NET

Checkout Emmanuel Nuyttens' article on DataBindable Business Objects. It's an interesting article, focussing on the other side of data binding that I wrote an article on myself for .NET magazine. "There has been, and still is a lot of discussion going aroundof what kind of technique a developer in general should use... Read more »


Article in .NET magazine

The new .NET magazine Belgium/Netherlands has been distributed to all subscribers. For the latest edition, #15, I've written an article on the basic principles and usage of NHibernate, an ORM-mapper for the .NET platform. It's written in Dutch, so I must disappoint my English blog readers... A PDF version and exam... Read more »

Office 2007 SpreadsheetML classes in PHP

In my evening hours, I've been working on a set of PHP classes to create Offixe 2007 SpreasheetML documents (.xlsx files). I finished my first goals (some basic XLSX writing), and I want to share this set of classes to the community. Features Currently, the following features are supported: Create a Spreadsh... Read more »

Zend Framework custom route

Today, I was once again testing the Zed Framework. One of the things I was trying to do, is creating URL's in different languages. What I did was creating a controller 'user', with the action 'edit' (i.e. Now, I want this to be available in Dutch too (i.e. Read more »

Bart Online

One of my former classmates, Bart Dekeersmaeker, has just created his own blog. He will be posting news from Chennai, India, where he currently resides for work. He is outsourced to KBC, and they asked him to go to India. Good luck on your mission, Bart! This is an imported post. It was imported from my old bl... Read more »

Microsoft and Zend collaborate on PHP for Windows

A nice press release today at Microsoft: Microsoft and Zend Technologies Announce Technical Collaboration to Improve Interoperability of PHP on the Windows Server Platform. Both companies admit that PHP is often developed on Windows systems, but the final server environment is mostly *nix. With this collaboration, M... Read more »

Munin PHP based mod_security

Today, I discovered a nice PHP thing: Munin. This is a PHP version of Apache mod_security, allowing it to be run on IIS too. Munin performs rule based checks on HTTP headers, get and post data, ... The standard rule set disallows some things like path traversal and possible fopen() attacks. In addition to these ru... Read more »

PHP WSDL generator

Everyone who has ever created a webservice in PHP, using the PHP5 native functions, NuSOAP, PEAR, ..., certainly has cursed a lot while creating WSDL files for those services. Today, I found a nice helper class, Webservice Helper, which does a lot of tricks for you. Webservice helper creates the WSDL file for ... Read more »

Use Zend Framework on IIS

A while ago, I was experimenting with the Zend Framework. At first, I tried running a small sample on top of IIS, but unfortunately, that did not work... On Apache, it worked like a charm. Very nice, but what do you do when your site runs on an IIS machine? I started experimenting. First of all, I found out that Z... Read more »

CruiseControl.NET configurator

For those looking for a CruiseControl.NET configuration tool: I just stumbled on this one at CodePlex This is an imported post. It was imported from my old blog using an automated tool and may contain formatting errors and/or broken images. Read more »

PHP on IIS7 (RC1), but unsafe!

Earlier this week, BillS has posted some information on how to run PHP on the upcoming IIS 7. To be honest, it's quite similar to installing it onto IIS 6 but with a few steps less. But I have a warning to add... PHP is added as an ISAPI extension, which binds to the multi-threaded IIS worker process. Unfortunatel... Read more »

Back from vacation!

I’m back from vacation! I went to Salou, Spain. Not to party or to find a new girlfriend every evening (I have one for almost 4 years now), but just for the sun and some vacation feeling after a year of work. <p>The photo on the left was taken on the beach between Salou and Cambrils. Back to work now, be it a... Read more »

Microsoft AJAX Library and ASP.NET AJAX Extensions

Scott Guthrie, one of the Microsoft "Atlas" guys, announced the "Atlas" 1.0 Naming and Roadmap stating that: Atlas will be renamed: the client-side JavaScript library will be called "Microsoft AJAX Library", the server-side ASP.NET extensions will be called ASP.NET 2.0 AJAX Extensions. Also, the controls and comp... Read more »

Seems like Google updated satellite maps

Sometimes, I take a look at Google maps to check if Belgium is finally mapped and photographed with more detail. When I checked today, I found out some regions near Antwerp and Brussels now are much more detailed. On my house picture, before really blurry, I can see the snapshots were taken during the summer: ... Read more »

Buying books…

Seems like Proxis is offering a 10% discount when you order 2 computer books before the end of september! And I saw 2 nice PHP books… “Php5 Objects, Patterns, Practice” and “Php 5 Power Programming”. Anyone knows if I should give them a try? If you have other great titles on topics like PHP, C# and ASP.NET, please c... Read more »

Simple SAX parser for PHP

Yesterday, I was working on PRAjax. The UpdatePanel did not work completely as I wanted it to work: in the background, the whole page was still fetched and updated. A cleaner way would be to just fetch updated content and not the whole page. In my search for a PHP HTML parsing class, I found a lot of libraries, but... Read more »

Internet Explorer 7 RC1 available

When I opened my RSS reader this morning, I saw good news: Internet Explorer 7 RC1 has just been released! You can download it here or install it as stand-alone version (unofficial!). Many people will like the new UI features, like tabbed browsing, tab preview, easier interface, less toolbars, ... The features I l... Read more »

Google Analytics open for everyone!

Almost a year ago, Google acquired Urchin, a company specialised in providing web site statistics. They renamed Urchin's project to Google Analytics and started a beta for some. Today, it seems Google has opened Analytics for everyone. Get it while it's hot, they really provide in-depth statistics about what's happ... Read more »

JavaScript URI parameter encoding

When creating a HTTP request in JavaScript, I always used encode() and decode() to pass data between client and server. I also used this approach in PRAjax, my open-source Ajax helper library for PHP. A developer working with PRAjax on his site reported to me last week that Swedish characters like å, ä, ö, ...... Read more »

Goggles, a flight sim on Google Maps

You have probably already seen over a hundred uses for Google Maps. Today, I received a link of a new use: Goggles. Goggles allows you to fly a plane over a city, to climb and descent, to shoot at the scenery (I tried this over Amsterdam but didn't hear anything on the news. It's safe!). You even can crash. A... Read more »


I regularly drink a glass of beer (I prefer the Belgian Trappists) or a glass of wine. While surfing, I stumbled upon a handy link for all Belgian people who love to drink wine too: Kurkdroog Kurkdroog is a website that acts as a hitlist of wines. You can select a price class, a supermarket, a country and a wine ty... Read more »

Age of Pirates

A few weeks ago, I discovered a nice online multi-player game: Age of Pirates. AoP is in a certain way similar to one of my favourite games Age of Empires, available as an offline game. In AoP, you have an island on which you have to gather resources in order to improve your economy and military activity. When you... Read more »


Today, I noticed that Phalanger has released a new beta a few days ago (well OK, half a month ago [*-)]). Phalanger is an open-source project, aiming to provide tools to integrate PHP development in Visual Studio on one side, and aiming to provide a CLR compiler for PHP on the other side. In short, this means that ... Read more »

Have you alreday tried PRAjax?

Some people who know me, have already experimented with my home-brew PHP Ajax framework, PRAjax. PRAjax is short for PHP Reflected Ajax, and provides the glue between server-side PHP and client-side Javascript. You should really try it out in your project! My blog uses PRAjax too. Try navigating to the homepage and... Read more »

A new computer…

2 weeks ago, my previous computer died. A black screen with a white blinking cursor was the only thing it still did. Curious about that, I opened the case and saw... leaking capacitors. According to Google searches about that, something went wrong with industrial espionage a few years ago. Nice, I had spied capacito... Read more »

My first blog post!

Starting today, I will try to regularly post some information about myself, my job, my life, my opinions. Some of my colleagues at work, mainly Joris, told me I should start a blog too. He has his blog hosted at Blogspot, but I really wanted to host it myself. After trying some PHP software (Wordpress, NucleusCMS),... Read more »