WPF

Windows Presentation Foundation

MVVM Light V4.1.27.0 in Nuget

I just pushed a new version of MVVM Light to Nuget. The new version is 4.1.27.0. The difference towards the previous version (4.1.26.1) and this one is that I am not depending on the CommonServiceLocator Nuget package instead of providing my own.

Read the rest of this entry »

2012 in review

It seems it was only yesterday that I was writing about starting my 4th year at IdentityMine, and here we are now, more than a year later. The year 2012 has been particularly interesting for all of us in the tech space, and particularly for us who are observing the Microsoft brand. Now, those of you who know me also know that I am an undying optimist (something that is sometimes mistaken for fanboism), so I will make a big effort in adding a dose of realism into this billet. Nonetheless I think we ......

MVVM Light V4.1.26 change log

I just published the change log for MVVM Light V4.1.26, which is available on Nuget only at this time. The full version is available here, while the “libraries only” version is available here. I am working on an installer which will also add a few more changes to the templates and one bug fix in the code snippets. Stay tuned for that installer as soon as I figure a few things out. Important note: V4.1.26 is only available on Nuget (here and here) at the current time. An installer will be published ......

MVVM Light V4.1 with support for Windows Phone 8

Today is a very exciting day: After the official release of Windows 8 (and Microsoft Surface!) on Friday, and the official release of Windows Phone 8 on Monday, the Build conference is starting! This is the conference in which we will learn all about the developer experience for Windows 8 and Windows Phone 8. As a partner of Microsoft, I had the privilege of trying out some of the new things early, and this gave me the opportunity to port MVVM Light to Windows Phone 8 (it was already running for ......

#mvvmlight V4 update for Win8 RTM

With Windows 8 RTM out of the doors (at least for some of us), it was also time to create an update to MVVM Light. I selected the V4 RTM to do this (V4.0.23).This RTM version was released a few weeks ago with no much bells and whistles because I was just too busy to write much about it. Now after some vacation, I will resume blogging on all my favorite topics including of course MVVM Light. Read the rest of this entry » ......

#mvvmlight V4 for Windows 8 RP is available

I took a moment out of a very busy weekend to publish an update to MVVM Light for Windows 8 Release Preview. Read the rest of this entry » ......

Celebration! 120’000 downloads for #mvvmlight, 2 copies of Expression Studio to win

That is a symbolic milestone: Last week, MVVM Light reached the bar of 120’000 downloads on http://mvvmlight.codeplex.com, the site that has been hosting source and installers since the beginning of the project (100'000 downloads) and on Nuget, the popular package manager for .NET (20'000 downloads). More information about Nuget and MVVM Light. Read the rest of this entry » ......

#mvvmlight V4RC available on #nuget

I just published the MVVM Light V4 RC packages to Nuget. Note that this is still technically a preview, so the main package is still V3. The V4 packages are available here:

Read the rest of this entry »

Declaring an ICommand in Windows 8 Consumer Preview

[Update 24/4/2012]

Well I'll be… after I posted this, a few people wrote to me and told me they are unable to repro the issue. I then tested again and indeed, it works. No idea why I couldn't get it to work in the first place.

More details here. Sorry about the confusion people!

Bug fix: WPF4 project template for #MVVMLight V3

Ironically, my last release of MVVM Light V3 was about fixing bugs in templates and making them better. In the process however, seems that I introduced a regression bug in the WPF4 project templates. Yep shit happens.

Read the rest of this entry »

New MVVM Light templates with bug fixes

The current version of MVVM Light had a couple of issues in the project templates. The most annoying one was causing a problem when creating new projects: The GUIDs used to uniquely identify the project were in fact not re-generated properly every time, and we ended up with the same GUID in every new project. The symptoms are the following: If you side-load an MVVM Light application, and then side-load another one, you will see that the first one is overwritten. Note however that this is only an ......

MVVM Light installers and Nuget (including Silverlight 5) #mvvmlight

I just pushed two big updates to MVVM Light setup components.

Read the rest of this entry »

Quick tip: Select the correct INotifyPropertyChanged in Windows 8 / WinRT

Microsoft loves MVVM and INotifyPropertyChanged so much that they included this very useful interface twice in the new WinRT framework. Unfortunately, only one of these is working correctly (and the other one is likely a bug, remnant from the past ) Read the rest of this entry » ......

My thoughts about Build, Windows 8, WinRT, XAML and Silverlight

Last week, Microsoft held their long awaited Build Windows (or simply "Build") conference in Anaheim CA. About 5000 people packed the convention center to discover the latest version of the Windows operation system: Windows 8.

Read the rest of this entry »

MVVM Light V4 beta1

This morning, I published MVVM Light V4 beta1 in the form of an MSI. The installation instructions are detailed on the MVVM Light installation page. Please make sure to uninstall previous versions before you install V4 beta1. There are quite a few changes in this version, and I plan to blog about various features in the coming days. As usual, stay tuned! Read the rest of this entry » ......

MVVM light V3 installer for non-English systems

After I released the MVVM Light installer, I got a note saying that parts of the installation failed on non-English systems (in that case a German installation of Expression Blend and Visual Studio). Specifically, what failed was the code snippets on Visual Studio, and the project and item templates in Expression Blend. Read the rest of this entry » ......

Automated installer for MVVM Light V3!

For a very (too) long time, the installation procedure for MVVM Light sucked. It involved downloading and unzipping files in various locations. Unfortunately, creating an automated installer is not completely trivial because of the variety of files that are getting installed: Binaries, Code Snippets, Project and Item Templates, all require different locations, and all that for VS2008, VS2010, Blend 4 and Silverlight 3, Silverlight 4, WPF3.5 SP1, WPF4, WP7.0 and now WP7.1 “Mango”. Read the rest of ......

Proposing a new RelayCommand snippet for MVVM Light V4

In MVVM Light V4, I am proposing a new RelayCommand snippet, making it easier to declare and initialize a RelayCommand. I came up with a syntax that allows having the RelayCommand and its initialization in one convenient location.

Read the rest of this entry »

Is your application powered by #mvvmlight?

A couple of days ago I had the wonderful surprise to find a mention (and a link!) to MVVM Light on USAToday.com. The article talks about the new USA Today app available for Windows Phone 7. MVVM Light is mentioned as well as JSON.NET just after the high quality of the development tools is mentioned: “That same high bar for tools extends into the community as well. MVVM Light and JSON.Net were extremely useful moving past mundane tasks and instead getting to the business of building our app.” – Tim ......

MVVM Light V3 on NuGet (now with WP7 support)

There was already a version of MVVM Light on Nuget before. However the old version did not support Windows Phone 7. This is now corrected. Also the new version now adds a ViewModelLocator to your project and includes it in App.xaml. What is NuGet? NuGet is a mechanism allowing to add packages (assemblies, source code…) to an existing project. All versions of MVVM Light are supported (WPF3.5, WPF4, Silverlight 3, Silverlight 4, Windows Phone 7). In order to install NuGet and learn more about this ......

MVVM Light V4 preview 3 (BL16, MIX11 edition!!) #mvvmlight

At MIX11, I am releasing a new preview of MVVM Light version 4. This new preview contains one small change and one large change.

Read the rest of this entry »

Deep Dive MVVM samples #mix11 #deepdivemvvm

Here is the sample code I demoed in my MIX11 session “Deep Dive MVVM”. Please download the Zip file, and then unblock it in Windows Explorer by right-clicking it, and then selecting Properties. If you see an “Unblock” button, please click it. You can then extract the content of the Zip file on your hard drive. Read the rest of this entry » ......

My MVVM talk’s material is online (#uktechdays)

Quick announcement: I just had the extreme pleasure to talk at the UK TechDays online conference (organized over LiveMeeting) and had about 100 persons in the session, thanks to all for allowing me to talk to you about MVVM! I just pushed the whole sample code as well as the slides to a SkyDrive folder, so feel free to download and experiment. Read the rest of this entry » ......

Building MVVM Light from Codeplex

I just published an article describing how to get the source code from Codeplex, build it, unit test it, get all the DLLs and install them to replace a previously installed version. It’s not very complicated, but it is good to have this information in one location.

Read the rest of this entry »

MVVM Light V4 preview 2 (BL0015) #mvvmlight

Over the past few weeks, I have worked hard on a few new features for MVVM Light V4. Here is a second early preview (consider this pre-alpha if you wish). The features are unit-tested, but I am now looking for feedback and there might be bugs!

Read the rest of this entry »

DEEP DIVE MVVM at #MIX11

The public (you!) has spoken, and “Deep Dive MVVM” was selected (along with 11 other open call talks) out of 217 proposals. There were 17’000 votes! These are pretty amazing numbers, and believe me when I tell you that I still didn’t completely realize what just happened!

Read the rest of this entry »

Back from TechEd Europe 2010 (Berlin) #tee10

I spent this week in Berlin in company of about 5000+ other geeks at Microsoft’s TechEd Europe. I had experienced the conference for a very short time last year as I spent just 2 days helping on the Silverlight booth at the Technical Learning Center. This year however I was invited to give two talks and participate in a panel of experts. Read the rest of this entry » ......

Adding a ViewModelLocator and Merged Dictionaries to App.xaml

I guess this is one of these places where using Blend is an advantage… since I do these operations mostly with the help of the tool, the XAML is generated and I don’t need to think about it too much.

Read the rest of this entry »

Handling DataGrid.SelectedItems in an MVVM-friendly manner

An interesting question from one of the MVVM Light users today: Is there an MVVM-friendly way to get a DataGrid’s SelectedItems into the ViewModel? The issue there is as old as the DataGrid (that’s not very old but still): SelectedItem (singular) is a DependencyProperty and can be databound to a property in the ViewModel. SelectedItems (plural) is not a DependencyProperty. Thankfully the answer is very simple: Use EventToCommand to call a Command in the ViewModel, and pass the SelectedItems collection ......

Crowdsourcing MVVM Light Toolkit support

Considering the number of emails that are sent to me asking for support for MVVM Light toolkit, I find myself unable to answer all of them in sufficient time to make me feel good. In consequence, I started to send the following message in response to support queries, either per email or on the MVVM Light Codeplex discussion page. Read the rest of this entry » ......

Small change in MVVM Light Toolkit templates for Blend 4 RC

Ah, the joy of new releases… You will find that the MVVM Light Toolkit works fine with Visual Studio 2010 RTM and Blend 4 RC except for a few adjustments:

Read the rest of this entry »

MVVM Light Toolkit V3 SP1 for Windows Phone 7

He he I start to sound like Microsoft… Anyway… I just released a service pack (SP1) for MVVM Light Toolkit V3. Why? Well mostly because I worked a bit more with the Windows Phone 7 tools that were released at MIX0, and I noticed a few things that could be better in the Windows Phone 7 template. Also, I only found out at MIX that you can actually install custom project templates for Visual Studio Express. For some reason I thought it was not possible. Read the rest of this entry » ......

Sample code and slides for my TechDays10 (Belgium) talks

The source code for my MVVM talk titled “Understanding the MVVM Pattern” given at TechDays 2010 in Antwerpen, Belgium, is available online. It is actually the same code than the MIX10 one, but I added the Windows Phone 7 MVVM Light application (available in the folder titled “Mix10.MvvmDemo2-End”. Read the rest of this entry » ......

Sample code for my #mix10 talk online

I just saw that the video for my MIX10 session is online already! Impressive work, MIX10 team. I also published the sample code on my web server, so here are the links:

Read the rest of this entry »

What’s new in MVVM Light V3

V3 of the MVVM Light Toolkit was released during MIX10, after quite a long alpha stage. This post lists the new features in MVVM Light V3.

Compatibility

MVVM Light Toolkit V3 can be installed for the following tools and framework versions:

Read the rest of this entry »

MVVM Light V3 released at #MIX10

During my session “Understanding the MVVM pattern” at MIX10 in Vegas, I showed some components of the MVVM Light toolkit V3, which gave me the occasion to announce the release of version 3. This version has been in alpha stage for a while, and has been tested by many users. it is very stable, and ready for a release. So here we go! Read the rest of this entry » ......

My program at #MIX10

Getting ready to fly to Vegas and MIX10 is really an exciting time! It is also a very busy time, because we are working on a few projects that will be shown on stage, I have my presentation to prepare, and of course as always the book… though these days it has been a bit on the back burner to be honest ;) I arrive in Vegas on Sunday evening around 10PM, so I won’t be able to make it to the traditional IdentityMine dinner this year. I am sure it will be fun nonetheless! Read the rest of this entry ......

Schedule for my session at MIX10

Microsoft has published the schedule for the MIX10 sessions. I have a sweet spot, and I dearly hope that it stays this way (Last year I had a great spot, but it was changed last minute and then I had a much better one, “competing” against Vertigo and their Playboy app… yeah try to explain to a bunch of geeks that MVVM is better than Playboy… good luck with that ;) Anyway, this year my sweet spot is on the very first day of the conference (there are workshops on Sunday, but this qualifies as pre-conference), ......

Quick tip: Commenting out properties in XAML

Often when you write XAML, you wish you could ignore a property temporarily. In code, it is easy to do: Just comment out the line where the property is set, and you are good to compile.

Read the rest of this entry »

The MVVM landscape at MIX10

Update: Shawn Wildermuth has changed his session and will be talking about Silverlight Security instead. The MIX conference this year had an open call for sessions, and 12 sessions were voted by the public out of 169. Surprisingly (or maybe not that surprisingly in fact), 3 sessions out of the 12 have the MVVM pattern in their title. This shows a lot of interest for this pattern which is helping the developer to create decoupled, testable, blendable applications in Silverlight and in WPF. Read the ......

Avoiding issues when typing text in Bindings

The Binding class has a few properties that can be set to a text, including spaces. The properties StringFormat, TargetNullValue and FallbackValue are such properties. These properties exist in WPF and newly also in Silverlight 4.

Read the rest of this entry »

Talking in Las Vegas: MIX2010 and MVVM

This morning, very early (or very late depending how you see it), I learned that one of the sessions I submitted to the MIX 2010 open call for speakers had been picked by the public. Out of 169 sessions, only 12 were picked, so you imagine my feelings right now. Honestly, I am sure that this will be a good session, but it could have gone either way, and I had prepared myself mentally for the alternative possibility too. Read the rest of this entry » ......

Quick tip: Finding Silverlight 4 documentation fast

The Silverlight 4 documentation is available online from Microsoft. However, it is not the fastest way to find documentation. Instead, you should know that the Silverlight 4 documentation is available online, it is just a little bit hidden. Read the rest of this entry » ......

MIX 2010: Voting for sessions has begun (I got two)

This year Microsoft decided to have an open call for sessions for the MIX 2010 in Las Vegas. This conference, in case you don’t know it yet, is a great 3 days about modern client technologies, such as ASP.NET, Windows Presentation Foundation and of course Silverlight. This year, MIX is taking place from the 15th to the 17th of March 2010 in the Mandalay Bay hotel in Vegas. Today, the voting began! I didn’t count them, but there seems to be more than 100 sessions lined up, and the competition is fierce: ......

Silverlight 4: Drag&drop with EventToCommand

One of the MVVM Light Toolkit’s user requested that I add the possibility to pass the EventArgs of an event to the ICommand that it is bound to through the EventToCommand trigger. At first I was a bit reluctant because it seems like a transgression of the rule that says you should avoid to have too much knowledge about the UI layer in the ViewModel. For example, if you have a RelayCommand in the ViewModel that expects a MouseEventArgs, it kinds of binds you to a certain kind of UI element, which ......

MVVM Light V3/alpha3 for Blend 3 and Blend Preview 4

The project and item templates allowing you to create pre-wired MVVM Light applications are now also available for Expression Blend 3 and Expression Blend Preview for .NET 4 and Silverlight 4. The installation process is manual, but not difficult at all (unzipping a few files to predefined paths). I did document the installation process here. Read the rest of this entry » ......

One year at IdentityMine

Today it is exactly one year that I started work at IdentityMine, after 13 years at Siemens (well, Staefa Control System then Landis&Staefa then Siemens through a series of acquisitions, ah the joys of corporate world…). Here is a link to the article where I related my decision to leave Siemens and to join IdentityMine. Read the rest of this entry » ......

MVVM Light Toolkit V3 Alpha 3 for WPF4/SL4

Update: The templates are also available for Expression Blend 3 and Expression Blend Preview for .NET 4 and Silverlight 4. I just published the latest alpha version of the MVVM Light Toolkit. I will post more about the new features in this alpha version, but the most exciting is probably that with this release, the MVVM Light Toolkit works in Windows Presentation Foundation 4 and in Silverlight 4 (in Visual Studio 2010). Read the rest of this entry » ......

Talking at #notatpdc about Blend 3 and SketchFlow

NotAtPDC is an awesome initiative from within the .NET community that allows people who cannot for any reason attend one of the major conferences (such as PDC, MIX etc…) to share knowledge, have fun, interact and generally have all kind of good times without leaving their home or office. This year, I cannot make it to the Professional Developer Conference because of multiple reasons (too much work, too many travels ;)) but I will talk to the NotAtPDC conference 2009! Read the rest of this entry » ......

Bug correction in Messenger and new feature in EventToCommand (MVVM Light Toolkit V3 alpha)

Update (11/14/2009): The sample application is available as a zip file, and I also published the Silverlight version to be executed directly in your browser. The advantage of pushing very early software to the advanced users is that bugs are detected before too many people suffer from them, and features requests can be placed and implemented without pain. This is exactly what happened with the MVVM Light Toolkit V3 alpha 2. Read the rest of this entry » ......

MVVM Light Toolkit Logo by P. Schutz

I met Philippe Schutz at the TechDays in Geneva early this year, and have been following him on Facebook since then. He does amazing work with logos and icons, and it is only natural that I have thought of him when I decided to get a new logo and icons for the MVVM Light Toolkit. A brand identity is quite important to me even in private projects. This is why I created the site GalaSoft (www.galasoft.ch) years ago, and started using this “brand” consistently as well as the cat logo (more about that ......

MVVM Light Toolkit V3 Alpha 2: EventToCommand behavior

Update (11/14/2009): I updated EventToCommand with a new feature: You can now pass the EventArgs of the fired event to the invoked command. See this post for more explanations. Here is another early release of the MVVM Light Toolkit V3 (Alpha 2). I decided to release gradually and early as soon as a new part of this new version is ready, to allow advanced users to install, test and give feedback about the new features. If you haven’t seen it yet, the features available in V3 Alpha 1 are described ......

Quick tip: Snooping WPF application with elevated permissions

Here is a quick tip: If you want to use Snoop on a WPF application running with elevated permissions, you need to run Snoop with elevated permissions too, or else your application will not appear in the application’s list displayed by Snoop. Thankfully, it is really easy to run Snoop in elevated mode in Windows 7: Read the rest of this entry » ......

MVVM Light Toolkit V3 Alpha 1

This is a super early release of the next version of the MVVM Light Toolkit. Please enjoy with care, be aware that this version is not fully tested and not feature complete by a long shot.

Read the rest of this entry »

Microsoft #shape conference

The Shape conference is a new web technologies oriented conference organized by Microsoft Switzerland. It is held in Zurich Oerlikon, and has two tracks, one design-oriented and one development-oriented. Read the rest of this entry » ......

Clean shutdown in Silverlight and WPF applications

Update: There was a small error in the Silverlight version of the application. The code used to navigate to a different webpage was wrong (in ApplicationExtensions.cs). I wrote this article in the Austrian mountains and did not have the web to check the code, sorry about that ;) I updated the source code. If you downloaded the source code before the 19th of October, 8AM GMT, you want to load the correct version. Apologies!! Read the rest of this entry » ......

MVVM Light Toolkit on Codeplex

Responding to a few requests from MVVM Light Toolkit users, I opened a project on Codeplex and published the installer as well as the source code there.

http://mvvmlight.codeplex.com/

Read the rest of this entry »

MVVM Light Toolkit Messenger V2

Update: MVVM Light Toolkit V2 has been released. Please use the new installer to upgrade your installation. Ever since I released V1.1 of the MVVM Light Toolkit, I have received wonderful and constructive feedback from users. Most of it is flowing into V2, which is almost ready (I am still fighting a little with MSI installers and project/item templates for one feature I am particularly happy about, which is making project templates and item templates available in Expression Blend. That’s right, ......

Using RelayCommands in Silverlight 3 and WPF

Like most of us have found out the hard way, Silverlight 3 and Windows Presentation Foundation 3.5 are two quite similar beasts, but not totally the same. Silverlight is often presented as a subset of WPF (in fact, some features are available in Silverlight but not yet in WPF; generally speaking, though, it is true that Silverlight has less features than its big sister WPF) (yeah WPF is a girl, don’t tell me you didn’t know ;)) Read the rest of this entry » ......

New articles about the MVVM Light Toolkit V1.1.1

To help you get started with the MVVM Light Toolkit V1.1.1, I published two new articles:

Read the rest of this entry »

MVVM Light Toolkit V1.1.1: What’s new?

The new version of the MVVM Light Toolkit was just posted. So what is new? Well, to be honest not much.

Read the rest of this entry »

Installing the MVVM Light Toolkit

I just published a new version of the MVVM Light Toolkit.

Read the rest of this entry »

Detecting design time mode in WPF and Silverlight

We already talked often about providing design time data to your designers in Windows Presentation Foundation and in Silverlight, thus enabling them to work visually in design editors such as Expression Blend or the Visual Studio designer (codenamed Cider).

Read the rest of this entry »

56 vector arrows in XAML

I found this collection of vector arrows through Robby Ingebretsen. The designer Sander Baumann created 56 different arrows in vector format (Adobe Illustrator). Read the rest of this entry » ......

Polymorphic Podcast: MVVM, Blend, Integrator in WPF and Silverlight

Some time ago, Craig Shoemaker asked me if I wanted to talk about design time data in MVVM on his Polymorphic podcast, and of course I said yes. Following in the steps on my buddies Josh Smith and Tim Heuer was a bit scary, but hey, this is what we do, right, following the steps of giants and trying not to look too silly while we do it :) Read the rest of this entry » ......

Expression Blend Samples InvokeDataCommand bug

My good friend and super hero programmer Pete Blois posted an impressive collection of samples using and extending Expression Blend behaviors and triggers on Codeplex some time ago. There are a few real treasures in there, and some of them that I would like to integrate in my MVVM Light toolkit, thus avoiding to reinvent the wheel. I am still checking the license (the Samples use the MS-PL license) but I think it should work just fine. Read the rest of this entry » ......

Member of the INETA Europe Speaker Bureau

I am very proud and happy to announce that I am now a member of the European INETA speakers bureau.

Read the rest of this entry »

Silverlight 3, Blend 3 and the MVVM Light Toolkit

The big news today is of course the launch of Silverlight 3. Microsoft organized a big event in San Francisco (I was invited, but could not make it to SF in time, unfortunately :() and there was a big celebration. Together with Silverlight 3 RTM, we were given Expression Blend 3 Release Candidate (including SketchFlow). Read the rest of this entry » ......

Installing the MVVM Light Toolkit V1.1.0.0 (obsolete)

Update: This post is obsolete, and has been replaced by a newer article. Please refer to the Get Started page for details!!

Read the rest of this entry »

MVVM light toolkit (Silverlight edition) posted

To make development of WPF and Silverlight applications according to the Model-View-ViewModel pattern easier, I have put together a small toolkit which should speed up the creation of such applications by automating certain tasks.

Read the rest of this entry »

MVVM light toolkit for WPF and Silverlight

To make development of WPF and Silverlight applications according to the Model-View-ViewModel pattern easier, I have put together a small toolkit which should speed up the creation of such applications by automating certain tasks.

Read the rest of this entry »

Working on a MVVM “light” toolkit

As some of you now, I have been spending most of my free time (which is not much these days once I am done with the amazing projects I am working on at IdentityMine, and the time spent with the family) working on a very simple, very light MVVM toolkit.

This toolkit will encompass

Read the rest of this entry »

The #techdays presentations screencasts are online (French and German)

And now the German version of the session is online too. Read the rest of this entry » ......

The #techdays presentations screencasts are online (French only)

Update: The German version of the presentation is online too.

I was just notified that the screencast for the session I gave at TechDays in Geneva a few weeks ago is now online.

Read the rest of this entry »

Posting the source code for #techdays (Switzerland) talks

Update: I updated the installation instructions to make it clearer that you need the WPF toolkit and SQL Server express before you can run the application. TechDays Switzerland is always a very nice venue, and this year in Geneva and in Bern were no exceptions. For me it was a special occasion, because I gave the same talk in French in Geneva, and in German in Bern, and I had never done this before. I think it went well. Altogether approximately 450 people saw this talk. I think I will possibly reuse ......

Using a Behavior to magnify your WPF applications

At MIX 2009, the Expression Blend team cam up with a new concept called Behaviors. In fact, the only thing new is the way that the Behaviors are packed. WPF developers have been doing what we called "Attached Behaviors" for quite some time already: see this thread (dated July 2008) to read a discussion around this topic at the WPF Disciples group. Read the rest of this entry » ......

Two days FREE training: WPF LOB

Get some of that: Microsoft's Jaime Rodriguez and Karl Shifflett are on tour and will come to a number of locations to give a two days training packed with WPF training for building Line of Business (LOB) applications.

Read the rest of this entry »

A Tribute to the WPF Disciples

A very long time ago, I was contacted by Marlon Grech who asked me to join a new Google group he had just created called the WPF Disciples. I was quite new in WPF back then and didn't know many members of the community yet, and I must admit that it slipped my mind and I didn't register (when you blog, and your blog gets a certain visibility, you get all kind of requests. I do my best to satisfy most of them, but sometimes I am just too busy and I cannot follow up). Read the rest of this entry » ......

Posting the source code for my #mix09 and #techdays (Belgium) talk

Note: I just updated the title for this article, sorry to all of you who were waiting for the TechDays Belgium source code and didn't realize it was here :) I just posted the source code of the demo applications I used in my MIX09 talk "Working across the client continuum". The source code is structured as follows: Read the rest of this entry » ......

My #MIX09 session is available in video

MIX09 is over, people are slowly going back home. I will be flying home tomorrow, quite a long trip since I will reach Zurich only on Sunday morning.

Read the rest of this entry »

IdentityMine releases Gesture Engine for advanced multitouch development

Multitouch is going to be the next big thing. Natural User Interfaces (NUI) are going to change the way we use client applications soon. You think it's not true? See the iPhone hype. This is not a very good phone, feature wise. It is lacking very basic features. But being able to control your phone using multiple fingers was a real killer feature. Read the rest of this entry » ......

Reminder: My talk at #MIX09

Tomorrow Thursday 19th of March 2009 Location: Delfino 4105 Working across the .NET continuum Come see how to build a continuum of client applications including HTML, AJAX, ASP.NET, Microsoft Silverlight, and Windows Presentation Foundation (WPF) that all consume the same Windows Communication Foundation (WCF) service. Learn how to reuse as much code as possible, how to optimize the development process, and how to address key logistical issues like external servers and cross domain communication. ......

TechDays Belgium is over

I just held two talks in Antwerp, Belgium, for TechDays and it was really nice. First the Belgian team did a fantastic work welcoming the speakers, and as far as I could say, the attendees were also taken care of in an exemplary way. We had just a small incident (there was a power breakdown about 15 minutes before my show and the whole center went black), but noone panicked and it was taken care of with a lot of care. Read the rest of this entry » ......

Back from MVP summit and heading to Tech Days Belgium

I am just back from the MVP summit in Seattle / Redmond and I had a great time there. It was fantastic catching up with old friends and making new ones. Seeing what is coming up in future releases of Silverlight and WPF (to name just those two) was electrifying. Of course I cannot talk about it because otherwise Justin Angel and the NDA police will track me down and kick my ass. If you never met Justin before, trust me, you don't want that to happen. :) Read the rest of this entry » ......

Talking at MIX09: Las Vegas and the continuum

One of my dreams is going to come true: Since the very first time I attended MIX in 2006, I have wanted to talk there. MIX has a very special meaning for me. It is in the Venetian conference rooms that I heard about Windows Presentation Foundation and what would later become Silverlight. It is there that me and my two colleagues Andreas and James decided that we wanted WPF for the project we had just started at Siemens. A decision that was definitely the right one, from a technical point of view ......

MIX10K contest: The choice is made

As I blogged before, I was one of five judges chosen to decide which of the 105 (!) entries in the MIX10K contest were the best... it was a hard, terrible choice, but now the results are public! As a reminder: The contest is organized by Microsoft at the occasion of the MIX conference that will take place in March in Las Vegas. The goal was to create a Silverlight or WPF application with only 10 kilobytes of code (about 10'000 characters of text, including spaces, carriage return, etc...) Read the ......

Simulating IsSynchronizedWithCurrentItem in Silverlight (part 2)

This is part 2 of a two posts series about the property IsSynchronizedWithCurrentItem. In the previous post, we saw what it does in Windows Presentation Foundation. In this post, we will see that this property is missing in Silverlight, and propose a way to simulate it. Read the rest of this entry » ......

Simulating IsSynchronizedWithCurrentItem in Silverlight (part 1)

This is part 1 of a two posts series about the property IsSynchronizedWithCurrentItem. In this post, we will see what it does in Windows Presentation Foundation. In the next post, we will see that this property is missing in Silverlight, and propose a way to simulate it. Read the rest of this entry » ......

One more talk: Geneva TechDays, 1st and 2nd of April 2009

Just got confirmation that I will also be talking in Geneva, Switzerland, at the TechDays 2009 (1st or 2nd of April 2009). The talk will be the same as in the TechDays in Bern, but this time it will be given in French. I never really gave a technical talk in French, so it should be interesting (I hope the material will be more interesting than me struggling with technical words in French, though, just kidding). Read the rest of this entry » ......

Speaking at Microsoft TechDays - Belgium and Switzerland

Update: Added a talk in Geneva, Switzerland, 1st or 2nd of April 2009 I am happy to announce that I will be speaking at Microsoft TechDays in Antwerp (Belgium, 11th and 12th of March) and in Bern (Switzerland, 9th of March). Hope to see some of you there, and if you are around, please come and meet me!! Read the rest of this entry » ......

My MIX 10K entry

A few days ago I decided to enter the MIX 10K competition.

Read the rest of this entry »

Microsoft Expression Studio available at 50%

Just heard through Chris Koenig that Microsoft Expression Studio is available for a limited time at 50% of the original price.

Read the rest of this entry »

It's podcast season: Herding code

Apparently it's podcast season... When in Los Angeles, Jon Galloway and I managed to sit down an hour and talk about Silverlight, WPF, Blend, my past work at Siemens and my future work at IdentityMine, and of course about my book Silverlight 2 Unleashed. I was kind of sad that Kevin Dente and Scott Koon didn't manage to join us, but the conference was so packed with events that we found time only on the very last day (Thursday) and the two had to go back home already. Still, it was nice to meet the ......

#PDC08 talk: WPF pixel shaders and WPF graphics future

David Teitlebaum. Why move to a new effect system? Old effect system: BitmapEffects. Talks about what was done with BitmapEffects to render to the screen. Doesn't play well with remoting, because too slow to render on target machine, go back to display machine, etc... Shows the old syntax for BitmapEffect. Software rendered, very slow, especially blur operations (such a glow, drop shadow, etc...) Actions: In SP1, they are marked as obsolete. Implemented HW acceleration for BlurBitmapEffect and DropShadowBitmapEffect ......

#PDC08 talk: .NET 4.0 Declarative programming using XAML

3 XAML vocabularies: UI, Workflow, XPS.

Used in mutliple runtimes: .NET 3,0, 3.5, Silverlight 1 and 2.

Many tools too (Visual Studio, Expression Blend).

Read the rest of this entry »

#PDC08 keynote (day 2, part 3)

Note: The Wireless network at the keynote failed miserably, so this will be posted with a delay.

Scott Guthrie about tools and app development

 New APIs for multitouch and other Windows 7 API.

Note: Lots of attention put in Win32 development with C++.

Read the rest of this entry »

#PDC08 Talk: Microsoft Silverlight, WPF and the Microsoft .NET Framework: Sharing Skills and Code

High level goals: building rich apps with same people, same skills, same workflow and common code.

Shows how to decide when to use Silverlight and when WPF.

Read the rest of this entry »

#PDC08 pre conference: WPF Code and Concepts by Charles Petzold

According to Charles Petzold, WPF is the main platform for Windows programming nowadays. The only reason why one might still want to program WinForms is if you want the app to run on a maximum of machines. Petzold says he was resistant to XAML when he came to it first. But now, over the years, he is very comfortable with it and uses it a lot. You should give a chance to XAML. Interestingly, he took in his talk the exact opposite approach from his book: Starting with XAML only, and then only moving ......

Redesigning my website with the help of Expression Blend

I decided to completely redesign my website www.galasoft.ch (yes, it's about time, I know). For this process, I decided to inspire myself (loosely) from my good friend Robby Ingebretsen's site, which is both simple and beautiful. In order to get a better idea of what I want to reach, I decided to work like most web designers and to create a mockup first. Instead of creating a static picture, however, I used Expression Blend, a tool I am fairly proficient in, to create a WPF application demonstrating ......

Converting and customizing XAML to PNG with server-side WPF

One Tweet by Oliver Sturm (http://twitter.com/olivers) the other day got me to thinking. He was asking about the possibility to host graphics for a web site in XAML format, and the best way to render it. Currently, there are 3 possible ways that I know of to render XAML in a web browser Loading the XAML file directly in an IFRAME will trigger Windows Presentation Foundation on the client (if available). The IFRAME can be positioned in the page so the it "blends" with the HTML page. That's only for ......

Joining IdentityMine (and leaving Siemens)

These last months have been amongst the most intensive I have ever been in my life. Since my last blog post, I have been extremely busy finishing writing my Silverlight book and starting the editing work. It is well underway, and we will publish later this year. It is a very exciting time for me to see that book shaping up after almost a year of work on it. Yes I will be happy to see the finished, paper-printed work!! Another reason why this time of the year has been especially exciting for me is ......

A short break

I am going to take a short break of blogging for a couple of months. The reason is simple: I have been working on a book about Silverlight 2 since September last year, and we are in a phase now where I need to concentrate on that exclusively, and put other activities aside. I might post the occasional article from time to time, but until mid-Summer, it's going to be write write write. Stay posted for news about the book coming up, and don't delete me from your feeds, it's really only temporary :) ......

My talk at the "Internet Briefing RIA conference" in Zurich

I just posted today's talk at the RIA conference in the World Trade Center, Zurich. Unfortunately it was not recorded, but the slides and the demos' source code is available on my site. The talk went really good, even though the crowd was rather tough :) Trying to "sell" Windows Presentation Foundation, a desktop Windows-only technology, to an audience of web developers, many of them using Java and open source technologies (and even one Adobe employee) sparkled some very interesting discussions. ......

WPF talk this Thursday: "Ultra Rich Interactive Applications"

I have been in very much stress lately and hardly had time to post, but I don't forget you, dear readers... Anyway, this Thursday, I will be talking in a RIA conference organized by the Internet Briefing group here in Zurich, in the World Trade Center. My talk is titled "Ultra Rich Interactive Applications with WPF" and subtitled "When Silverlight is not enough...". I think it's going to be an interesting talk (but obviously I am partial) about the major differences between WPF and Silverlight, and ......

WPF: ListView/GridView minimum and maximum width for a column

A WPF ListView is a possible replacement for a datagrid, when it doesn't have to support advanced features like grouping or filtering of rows. If you use a ListView in your WPF application, and set the "View" property of this ListView to be a GridView. A ListView/GridView even supports features like reordering and resizing columns. Unfortunately, it is not possible to define a minimum or maximum width for the columns. Fortunately, it is not really to do this in the code behind. Let's see how. First ......

I am now a Microsoft Certified Professional

What a crazy week that is. I am currently in Seattle for the Microsoft Most Valuable Professional summit, which ended yesterday. I took an additional day in Seattle to meet a few friends and Siemens colleagues, and this morning got an email notifying me that I passed the MCTS exam about WPF that I took back then in December. Because the exam was in beta stage when I took it, Microsoft needed a veeeeeeeery long time to evaluate the replies and check if I met the requirement. Apparently, they also ......

De WPF Integratio (About WPF Integration)

Introduction I've been posting a lot about Silverlight lately, but hey, here is a WPF post, and about WPF integration, no less. Note: To fully understand this article, you should have a basic understanding of WPF, styles and templates, triggers, etc... In my current project at work, I act as WPF Integrator. I am that dude who sits between the designers and the developers, and tries to avoid that they fight too much. Or something. Sometimes it works, sometimes it doesn't, you know how it is with kids. ......

TechDays 2008: Slides and Code of my presentation available online

The slides and demo source code of my presentation at TechDays last week are available online. You will find: Slides (Powerpoint 2007) Source code (Visual Studio 2008 C#) Download page I hope that these documents will help you in your "quest for WPF". Let me know if you have questions or comments through the blog ......

TechDays 08: Talked about WPF and now back home

The Swiss edition of the TechDays 2008 is over. It was a great success,many people came, and as far as I can say, people had a good time. I didn't attend any sessions though, because I hung out in the main area instead and met a number of people (some of them I knew from MIX or other occasions), and talked talked talked. Yesterday evening, there was a party, I didn't stay too late though because I wanted to be well rested for my talk this morning. My talk titled "Siemens goes WPF, Lessons learned" ......

TechDays 08: My talk next Thursday in Basel, Switzerland

Next week, on Wednesday the 19th and Thursday the 20th of March, the TechDays Switzerland will take place in the St. Jakobshalle in Basel. Apprently, it's sold out and they expect around 2300 people in 5 parallel tracks. Now that's kind of making me nervous, because I will be presenting a session on Thursday the 20th at 9AM!. It's not the first time I'll be talking at a conference, but it's certainly the first time that so many people will attend, so... kind of nervous here : The talk is called "Siemens ......

MIX08: Keynote with Steve Ballmer and Guy Kawasaki (5)

Questions from the audience

  • What about Adobe? Ballmer "Yeah, what about Adobe?"
    • Adobe is a competitor for Silverlight with Flash and Flex
    • Will remain an important company in the business for a long time
    • We will look into supporting them well as an ISV

MIX08: Keynote with Steve Ballmer and Guy Kawasaki (4)

  • Ballmer to Kawasaki "Get rid of that MacAir, we'll get you a real machine"
  • Ballmer is a a very good mood today, and Kawasaki is a great interviewer!
  • Kawasaki "It's a really different Microsoft today, not arrogant anymore, answer email faster than other companies, really helpful"
    • Personal note: It's so true!

MIX08: Keynote with Steve Ballmer and Guy Kawasaki (3)

  • Ballmer: "I love what we do" referring to Silverlight 2 .
  • Ballmer has "3 kind of days.
  • Ballmer expects "more than 60 emails tomorrow" after mentioning his email address a couple of times.
  • Hilarious bit where Ballmer takes a MacAir in the hands and acts as if it's sooo damn heavy :)

MIX08: Keynote with Steve Ballmer and Guy Kawasaki (2)

  • Ballmer to Kawasaki "Yes I can say Google".
  • Ballmer "We are the underdog in the search business".
  • Kawasaki "So for you is Apple just that little chihuahua that you kick away?"
  • Ballmer "Underdog in the music business too, apple is doing a really good job there".

MIX08: Keynote with Steve Ballmer and Guy Kawasaki (1)

#MIX08: Wrap-up post

MIX08 is over, and I am home with what one could call the "post-MIX" mood. It's a mix (pun intended, haha) of various feelings Obviously I am extatic to be with my family again, even more so because I was away for almost two weeks, which I usually try to avoid. It's just so good to be with them again. I wish I could take them with me every time I am abroad. Excitement about all the new things we saw. Thinking all the time of what I'll be able to improve in my various projects using these new techniques ......

MIX08 Keynote (9)

Scott Guthrie about Silverlight Silverlight controls developedby MSFT are shipped as Open Source! Devigner role officially mentioned in ScottGu's slides! Yes I do exist! Show off new SL 2 applications AOL Builds new AOL email client using Silverlight. Using IsolatedStorage much faster and more advanced than using the browser cache. Scott Guthrie Enable user experience that doesn't exist today. Deep zoom. Based on research project. Navigates through very large images by downloading only portions of ......

#Mix08 Session: What's New in Windows Presentation Foundation 3.5

Check WindowsClient.net for updates Some parts of the demos are not available yet in the current build - wait for the next beta Compatibility with Silverlight is important Same tools, designers, code, markup... This summer, .NET framework 3.5 service release Improved setup Fuill install available Also client-focused ~30MB install Parts of WCF Parts of LINQ WPF Deployment of application will be simplified MSI, ClickOnce, XBAP MSDN Reader demoed, looks really good. Source code is available Add-In framework ......

#Mix08 Session: Nerd + Art: Ten Code Snippets to Empower Your Inner Artist

Robbie Ingebretsen: "This is a creative experiment" "We didn't always look into best practices" Talks about the Integrator role. Nathan Dunlap: "Designers should probably use Visual Studio more" "It's a great tool to dive into the code,check the SDK..." Snippets are distributed as a Snippet installer VSI file. Silverlight code snippets WPF code snippets By the way, check Dr WPF's snippets too! To access the Nerd snippets in the code, simply type "nerd". Displays the list of all snippets. Custom Control ......

MIX08 Keynote (8)

Scott Guthrie: Silverlight 2 features: Cross browser cross platform version of .NET Multi language support WPF UI framework (as a subset). Use controls, layout management. Databinding support Skinning, styling Animation support Networking (REST, SOAP, etc...) Built in support for Sockets Integrated data support, including LINQ Local cache store High performance Small download, fast install(4.3 MB download all inclusive) Linux implementation of SL2 available. Includes Calendar control, Datagrid control... ......

#Mix08 session: Overview of Expression Encoder 2

Expression Encoder 2 is now a standalone product, not part of Expression Media like before. Download it from the Microsoft Expression 2 website. Live encoding, events, etc... Smart recompression, for example if you just edit some of the video, only the cut will be recompressed. Animations in XAML can be burnt inside the video. Closed captions. Improved Silverlight players, including a video gallery player. More options for interlaced content. .NET object model. Demo New codecs Aspect ratio is easier ......

#Mix08 evenings are pretty cool

So last night was the last evening for many (but not for me since I am flying only tomorrow, ha ha), and there was a number of dinners and parties going on. I was lucky to be invited to a great dinner at Zeffirino's thrown by IdentityMine. These dinners are always wonderful occasions to meet and talk to the big players in the field of WPF and Silverlight, designers and developers mixed. Yesterday was not an exception to that rule, with Scott Guthrie, Miguel Icaza (of Moonlight and Mono), Grant Hinkson ......

#MIX08 Session: Touch Me: Where Are Interfaces Going?

Cynergy.Labs, cool concept of "no touch gesture", with a "pinch" gesture to manipulate objects Challenges with Touch-based interfaces It's ambiguous. You're never sure where the next "touch" is going to be. Dominant hand plays a role in tactile interfaces "Now we can detect the shadow of the finger and know where it will land" Voice is going to be the next big move in user interface "Having a developer and a designer in a room is like having a humidifier and a de-humidifier in the same room" :) ......

MIX08: Keynote with Steve Ballmer and Guy Kawasaki (7)

  • Ballmer really knows his facts. First time I see him speak, I find him impressive. Better than last year's keynote with Ozzie, and I would even say better than 2006's keynote with Gates and O'Reilly

MIX08: Keynote with Steve Ballmer and Guy Kawasaki (6)

Ballmer: "Silverlight for iPhone is interesting, we want to have Silverlight everywhere" Ballmer "But I am not sure that Apple will welcome a royaltie-free, open platform running on their phone" Ballmer "All the relevant applications we have on the web will move to Silverlight" Woman from the floor "I love it that there are no bathrooms line here" Q&A from the floor is really going well. Ballmer did the monkey for web developers :) ......

#MIX08 Session: Creating Rich, Dynamic User Interfaces with Silverlight 2

Karen Corby NB: Code will be posted on Karen's blog User control, motivations Re-use Modularization Encapsulation Same concept as in WPF No more need for "InitializeFromXaml()", good news. The "XAML hook" is done for us by the framework KeyDown Event can now be handled on any component level, not just the application level like before Databinding in Silverlight, how much sweeter can it get. Can't wait to play with it... Wondering how well the MVVM pattern can be used in Silverlight. Oh yeah, flow ......

MIX08 session: Real World Design: Working with Silverlight and WPF in the Design Studio

Q: Who owns the XAML? A: Noone does, it's a tool between the designers and developers. Personal note: In my opinion, there are multiple types of XAML: Functional XAML, owned by the developer. Look&Feel XAML, owned by the designer. Also, we have a UI custodian role, a mediator between product owners and development teams. He owns the UI. Blend is used more and more as (or instead of) interaction wireframes, because oif the ease of use and how much more interactive it is. Lots of interesting questions ......

Silverlight: No more synchronous web request...

Apparently, one big thing was removed from Silverlight between Alpha and the current Beta 1: It's not possible to make synchronous web requests anymore. I must be honest: I have always been recommending against synchronous requests from a web browser to a web server. But it was nice to have the possibility to do it. I can think of a couple of scenarios where it makes sense. What I don't quite understand is why they removed it. The reason given yesterday (that it blocks the UI thread) is not really ......

MIX: Building the schedule

I am in Princeton NJ for the weekend, after spending a few days with our graphics designers, working on our WPF application. It was very nice again, and I love the new design we have. I miss my family, but determined to make the best of this trip and to take life positively as usual. I plan to drive down to Philadelphia tomorrow for a short visit (I have been in Philly once before, in 2001). I finally managed to build my schedule for MIX. I was very strict this year and selected only maximum two ......

KaXaml V1.0 released

I hardly believe that anyone reading this blog doesn't know Robby Ingebretsen's work, but just in case, he has great news: KaXaml 1.0 is released!! More information about this great tool here. Also included: XSD-based Intellisense support (like in VS2005) and basic Silverlight XAML support ......

Silverlight: Downloading the Beta 1 bits

Silverlight 2 Beta 1 runtime Download Microsoft Silverlight Tools Beta 1 for Visual Studio 2008 (contains the SDK) Download Microsoft Expression Studio 2 Beta (contains Blend 2, Design 2, Web 2, Media 2 and Encoder 2) Download Microsoft Expression Blend 2.5 March 2008 Preview (can be installed side by side with Blend 2) Download Microsoft® Silverlight™ 2 Software Development Kit Beta 1 Documentation Download Source Code and Unit Tests for Silverlight 2 Beta 1 Controls Download ......

MIX08: Day 1 is over (well, except for the party at Tao)

So, day 1 is over. I met so many people and had so many great talks that I am, again, really happy to be there. Quite tired too, though, so I need a shower and then it's out for dinner. Tonight also features a party at Tao, a club into the Venetian. Another great occasion to network, I just hope the music won't be too loud (am I getting old or what) because when I am tired and its loud, it's harder to understand the English language :) but I am sure I will be fine. More to come tomorrow, for MIX08 ......

MIX08: Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2

NB: All the demos from the talk are on Mike Harsh's blog. Create a Custom Panel Add new class Inherit from Panel Public default constructor (for XAML) Override Measure and Arrange Use in XAML AnimatingPanelBase (by Robbie Ingebretsen) demoed by Mike Harsh right now, nice! Showing customization of controls using Styles and Skins. IsolatedStorage, nothing is new, same as in Alpha version of SL. INavigationState interface allows Back and Forward button to work with the Silverlight app easily. DeepZoom, ......

MIX08 Keynote (11)

WeatherBug

  • New Silverlight application running on Nokia
  • Cool app, "very easy to develop using Silverlight"

Scott Guthrie

  • Wrapping up and summarizing.

Time to have lunch!!

MIX08 Keynote (10)

Cirque du Soleil Use WPF application to track cast information Cirque du Soleil recruiting ScottGu for their shows. Good idea. "Come see the Man Who Never Sleeps". Scott Guthrie Performance for WPF videos and image handling MUCH better. Pretty cool Write custom effects in WPF and they are pushed to the hardward for acceleration. (for example ripples, shadows, etc...) Effects applied to controls during runtime, physics engine calculation, all pushed to hardware for better performance. All these included ......

MIX08 Keynote (7)

Scott Guthrie: Strategic alliance with Move Network using SL2. Windows Media Services 2008: scalable solution, runs on top of WIndows server 2008, is free. Progressive download: IIS7 media pack shipped last week with Bit Rate Throttling and Web playlist, also free. Business opportunities with advertising in Silverlight John Harris, Senior PM on Expression: SL 2 advertisement demo New ad templates for Silverlight with built-in banners, including animations for appearance, etc... Move to Blend to position ......

MIX08: Keynote (6)

Dean Hachamovitch (IE General Manager) IE8: Select an address, choose "Live map" from a context menu and get a Live Map view of the place. Web slices: User can subscribe to parts of a web page. Hover on a part of the site, icon shows up, select a "web slice" and subscribe.Displays a new bookmark, live view of the web page "extract". Beta 1 of IE8 available for developers after the keynote Scott Guthrie Quick peep of live Silverlight sites. 1.5 million installations of Silverlight per day, should ......

MIX08: Keynote (5)

Dean Hachamovitch (IE General Manager) CSS2.1. Demo in Firefox, Safari, looks the same. Opens in IE7 and it doesn't look the same.IE8 supposed to be the answer to that. First time showing IE8 to the public Focus on CSS and understanding standards the same way than developers are. Legacy web. Legacy pages developed for IE look bad in Firefox and in Safari. IE8 has a "Emulate IE7" button for legacy pages. In the future, IE8 should behave just like Firefox and Safari, at the risk of breaking legacy ......

MIX08: Keynote (4)

Ray Ozzie keynote: "Many amazing technologies available today, but I would like you to bet on us" Oh really? Scott Guthrie keynote: Just launched .NET 3,5, VS2008, IIS7, Windows Server 2008 Scott talks about the new features in ASP.NET 3.5, mentions LINQ IIS7 makes deployment and administration much better Dean Hachamovitch (IE General Manager) Introduces IE8 Cool T-shirt #Mix08 ......

MIX08: Keynote (3)

Ray Ozzie keynote: "Connected entertainment vision" Office offering: Desktop, Mobile and Web, all connected in a seamless experience. Office Live: Linking, sharing and tagging of documents for the social mesh. Connected business. CRM like MSFT Dynamics used by half a millions small firms worldwide. "Utility computing within the enterprise". Power of choice (again). XNA, .NET WPF, Silverlight, ASP.NET Expression Studio for designers Visual Studio for developers .NET in the middle of it all #Mix08 ......

MIX08: Keynote (2)

Ray Ozzie "can't talk much about the Yahoo deal". Ray talks about the community and its importance for the technology. Advertising is really important forMSFT strategy. "Ensure a vibrant advertising ecosystem on the web". "3 core principles that we are using" "Web as a hub, for our social experience and social mash", linking, sharing, tagging on the web will become familiar to all of us. "Number and variety of devices on the rise". Web as a hub to simplify our life in managing the devices. "Power ......

MIX08: Keynote

So here we are, the breakfast was had, and now we're getting ready to listen to MIX08's keynote. I will do my best to post new information as we receive it. To make sure that you don't miss anything, check this page: http://hashtags.org/tag/mix08/ That's an interesting project: It scans through all the twitter feeds carrying the tag "#mix08" and aggregates them. Many tweeters here are using this setting, so it's a good way to keep track of what's happening in real time. I just regret that there is ......

MIX08: Random pieces of news (3)

Interesting concept for localizing Silverlight applications using a "resource" JavaScript file. Presented by Brad Abrams. Amazing set of new controls for Silverlight 2, including a datagrid. Where's the WPF-based one, Microsoft? Multiline textbox in Silverlight 2.0 (but you're not supposed to talk about it :) ASP.NET MVC framework for URL mapping. I think that ScottGu blogged about that before, something I definitely want to look into (when I'll have time, ah ah ah) Tim Sneath on WPF and Silverlight: ......

MIX08: Random pieces of news (2)

  • Next version of Expression Blend is going to be V2.5
  • Expecting another important announcement about Microsoft Expression tomorrow.
  • XNA (game development platform) may allow web programming soon?
  • Many Silverlight-related announcement coming up tomorrow. I expect to see a lot of Silverlight mobile at the key note.

MIX08: Random pieces of news

Expression Studio V2 is coming this April. It will include V2 of Expression Design!!! (Yes, finally) Expression Design V2 allows selecting a "slice" of your design and export it to XAML directly. Seems that the export process improved a lot. Not sure about roundtrip export-import though. V2 of Expression Studio contains Blend, Design, Web, Encoder, Media. Expression Web 2 supports PHP with Intellisense, Syntax coloring, Local preview with Cassini (development web server). Insert Flash, ActiveX, Window ......

MIX: It's starting

For those of you who read this blog from Nebula IV and are not aware of it yet, MIX is starting this week. Today is the pre-conference event, Together@MIX.This morning is packed with sessions, and this afternoon we will take part to some "fun" events. For my part, I am going to take part to a horse ride in the desert, that will be fun for sure. During the conference, I will report as much as I can on various channels: For blog reports, stay tuned to http://blog.galasoft.ch (that's exactly the same ......

MVP, take two / Silvelight greeting card

Just got the good news: I am a MVP for one more year :-) My first MVP award last year was for ASP.NET, but due to my new tasks in the field of WPF and Silverlight, I've been awarded one for Client Application Development this year. I think it makes sense, since my activities are really focused on the client (not just the UI, but mainly), and this is also what I have been blogging and speaking about last year. 2008 is going to be great. I already have 2 conferences as a speaker planned, one end of ......

Blend: New version with complete Style properties

Blend December CTP was released a short time ago. Included in this new version is one change that I'd been requesting from Microsoft, and I am really happy they made it: You can now select every properties of a given element when you edit them in a style. In the previous version, some properties were hidden, for some reason, and you could only set them using the XAML editor. At least Width and Height were not visible in the properties pane, and maybe more. In the December CTP, this small defect is ......

Back in Switzerland after a WPF design week

This time it's for good: I am back in Switzerland and I am not flying again before next year. Which is in 2 weeks. :-) The week has been amazing. While the team continued developing UI in Switzerland, I went to coach the graphics designers in Princeton. In a week, we didn't "only" create XAML assets, but we also discussed the overall design and we are starting to have a very good idea of how the application is going tolook like eventually. It's so great to be able to reproduce the static screens ......

WPF: MCTS Beta exam

One neat thing when you're a MVP (for 3 more weeks!) is that you get a lot of invitations to all kind of events. So when I got an invite to take the MCTS exam (beta) for WPF 3.5, I though I should try it, even though it's my Most Busy December Ever. It's not easy preparing for a Beta exam, because there are no courses, no books, no test exams available, so you're pretty much left to yourself. Thankfully, I found a list of subjects online, and after marking those of them which I was really not feeling ......

Silverlight 2.0, Visual Studio 2008, new Alpha tools for Silverlight... hot winter!

The community is buzzing with the news about Silverlight 1.1 being re-versioned to 2.0; I really think it makes sense, given what will be added to the platform until next year. Like others, I wish that the marketing message regarding Silverlight and the "big sister" WPF gets a little clearer, and that WPF really gets more of the attention it deserves. It's a great technology, but it still has a few rough edges. Let's hope that the huge progresses made to the version 2 of Silverlight will contribute ......

Expression Blend: Template loops (no problems in Cider, though)

In one of my side-projects, I wanted to create a kind of lightweight treeview, as simple as possible: An item can contain a list of items; each item is simple represented by a string. In OO design, it's rather easy: You crate a DataItem class, which contains a Description and a collection of DataItems (children). Wanting to take advantage of ControlTemplates and DataTemplates, I thought I would create the following structure in WPF: - Window - Grid - Control - Template "MyControlTemplate" (ControlTemplate) ......

Silverlight enabled GalaSoft

GalaSoft is my webpage, where I post information about all my private projects. It's not a firm, it's a project that I use to coordinate my efforts in all the technologies I am interested in. As such, it was pretty natural to add Silverlight content to it. Silverlight is an area where I will be investing a LOT more time from now on, for reasons I will mention in further posts. After posting a screencast about WPF in Silverlight format, the next step is to add a Silverlight logo on some of my pages. ......

Surface Laurent

Surface Laurent

So, that's me. In a Surface. Isn't that cool? :-)

Designer - Developer, a new collaboration with WPF (Screencast)

I posted a 50 minutes screencast on my website, with a demo involving Expression Design, Expression Blend and Visual Studio 2008 to demonstrate the workflow between the designer, the developer and the WPF integrator in a WPF project. In this demo, I build the foundation for a PDA application from scratch, using VisualBrushes, ControlTemplates, Animations, Gradients, etc... I also use a 2-DLLs architecture, one of them containing all the resources needed to create a new "skin" for the application, ......

WPF, Silverlight: Things I like in Visual Studio 2008 XAML editor (September CTP)

The excellent Nathan Dunlap posted on the 18th of September about Blend September CTP, and the new features he likes. It's very much in line with what I have been thinking too since I tried this latest edition, so I am not going to repeat it, just go ahead and read his post. (By the way, it's good to see Nathan blogging more lately, very happy about that :-) On my end, I want to mention a few things I really like in the XAML editor in Visual Studio 2008 September CTP: When you type a control (for ......

Cleaning up XAML code and improving parsing time (with Blend and Studio)

XAML being XML-based, it needs to be parsed and processed when the code is loaded in the application. WPF allows multiple scenarios, for example pre-compiling the XAML to BAML (binary application markup language), which is usually embedded into an assembly. This speeds up loading time, of course. Another option is to leave the unprocessed, uncompiled XAML file on the server (or in the "bin" folder of the application), and to load that file on demand when it is needed. This step involves the conversion ......

Blend: Canvas mode vs Grid mode

I stand corrected, the "locks" are still there. Following yesterday's post, I got a comment indicating me the cause of the confusion: Somehow, when I installed the September CTP of Blend 2, my settings were changed (probably by my own doing, in fact), and I unchecked the "Use grid layout mode" checkbox in the "Artboard / Layout" section of the options. This causes the grids to be displayed as a kind of canvas, on which the controls can be positioned in an absolute manner, instead of "fixing" them ......

WPF/Silverlight: Installed Blend V2 September CTP

Update: I stand corrected, the "locks" are still here. See here! Thanks Christian! My August CTP version of Expression Blend expired just as I was in Italy sitting with developers and doing some integration work, but thankfully when it expired, it gave me an additional 30 days, so I could continue to work. Once back in Switzerland, I downloaded the whole September CTP package and installed everything. It went smoothly, and I can now enjoy Blend 2 September CTP with quite a few cool new features. ......

WPF: Simulating data in design mode in Microsoft Expression Blend

[UPDATE: The link to the VS2008 project was broken. Sorry for that] I just published an article I have been working on for a few days, based on a technique developed over the last few months. I got to say, I am really proud of the result. In one past post and another, I talked about my quest to display test data in Expression Blend. The goal behind this is to enable the graphics designers to work on the controls' look and feel directly in Blend, and if possible directly in the element's context. ......

WPF: Blend 2 rocks (3D, XML comments)

XML comments and Blend It's great to see how Expression Blend V2 improved over V1. One small thing I noted which makes life easier is the preservation of XML comments entered before a XAML element. This allows documenting an element in a ResourceDictionary, and then moving the element in another ResourceDictionary without losing the comments. That's possible in the Resources tab of Blend, on the right. Note however that only the XML comment located immediately before the resource will be moved around. ......

WPF: Charles Petzold "3D programming for Windows"

Following Charles Petzold's appel on his blog, I sent him an email, and I had the very nice pleasure to get a dedicated copy of his last book "3D programming for Windows". The title might be a little misleading, so don't get confused, it's really a WPF 3D book. Since I am always eager to learn something new, and very interesting in discovering this new aspect of WPF, I decided to take a very close look at the book, and also try the examples. It's quite challenging, because I didn't do vector algebra ......

WPF: There's a new doc in town

If you hang out on the WPF forums, you probably noticed some very, VERY advanced replies recently made by a certain Dr WPF. Well, the doc doesn't only answers on the forum, he also has a blog. Additionally to being one of the best .NET (and thus WPF) programmers around, he also has an amazing sense of humor... just take a look at the Seldomly Asked Questions (With Answers) on his site, it's better for your health than any prescription! Keep posting, Doc! Signed: Your old Pal Jim :-) ......

WPF talk last Tuesday

The WPF talk about the new collaboration between Designers and Developers took place as planned last Tuesday in front of the .NET User Group of Switzerland. Approximately 25 peoiple showed up, which made me very happy, for a first presentation! The talk went OK, though I was a bit nervous and I think that it showed a little. Thankfully I was feeling quite comfortable with the subject, which helped me when after 40 minutes of demo my computer suddenly shut down! It's so silly I almost don't dare to ......

WPF talk tomorrow: Windows Presentation Foundation, Between Designers and Developers

Reminder: I will be talking in front of the .NET Managed User Group of Switzerland about the collaboration between graphics designers and developers with WPF. All the talk's details can be found here. With the release of the Windows Presentation Foundation UI framework in November 2006, a new collaboration is made possible between graphics designers and software developers. Designers are now creating source code (XAML) instead of Photoshop mockups. On the other hand, developers must learn to delegate ......

Back from Seattle

I was in Seattle (actually in Tacoma) for one week workshop with a firm specialized in WPF, IdentityMine. I spent three days with Jonathan Russ, who is without any doubt one of the most talented developer I ever met, and at the same time a very good man, always ready to take time to discuss ideas or to explain concepts. It was a great week, and my only regret was I couldn't meet Nathan Dunlap and Robby Ingebretsen because they were both out of house. That said, I met other members of the team. After ......

WPF: Expression Blend 2 and external resources (VS2008 version)

Following a past entry about Blend and external resources, some of you told me that they tried it without success in Orcas. Here is an updated checklist for Orcas, which should solve the problem, I hope. To make things clear: I use the latest version of Expression Blend (at the time of this writing, it's the August CTP of Blend 2). With earlier versions of Blend, it probably won't work as well, if at all. Additionally, it is imperative to use the syntax I describe to "merge" the resource dictionary ......

WPF: Workshop in Tacoma, WA, with IdentityMine

I am thrilled to be here in Tacoma again, second time this year (and overall) after we were given a WPF training by IdentityMine very innovative and specialized firm. These few days with them are going to be devoted to reviewing some of our design choices, discussing ways to make our designers' work easier (making the application "blendable"), etc... So, now it's 3AM and though I went to bed at 9PM last night (flying in from Zurich through London), I can't sleep, so I am taking a short break from ......

WPF talk: Windows Presentation Foundation, Between Designers and Developers

It's now official: I will be talking about the new collaboration between designers and developers with WPF in front of the .NET Managed User Group of Switzerland. Here is the abstract: With the release of the Windows Presentation Foundation UI framework in November 2006, a new collaboration is made possible between graphics designers and software developers. Designers are now creating source code (XAML) instead of Photoshop mockups. On the other hand, developers must learn to delegate part of their ......

WPF: Expression Blend 2 and external resources

Update: see the checklist for Visual Studio 2008 "Orcas" here. Also available: Visual Studio 2005 and Visual Studio 2008 projects to download. One thing where Expression Blend V2 improved a lot over V1 . This situation is often useful when you want to "skin" an application. In such a case, you can define your UI in a main assembly (for example the EXE), but define all the UI ressources (Templates, Brushes, Styles, etc...) in a ResourceDictionary located in another DLL. WPF allows "importing" resources ......

WPF: Getting, sorting and filtering information in pure XAML (well almost)

One question on the WPF forum caught my attention. It was a nice challenge, so I decided to give it a try. It turned out not bad, so I thought I would post it on my website for future reference. The question is: How to display all the cultures in a ListBox, and filter to display only these starting with "en-". Good news is: you can do a lot of that in XAML only. Bad news is: If you want to filter, you need code-behind. I posted a comprehensive example on my website's articles section. It shows how ......

Designer-Developer week / Talking with Microsoft's Simon Guest

Designer-Developer week I was pretty busy this week, spending most of it in Milano, where we have one of our development teams. We met some of our designers to work on and refine the designer-developer workflow that we will use during our WPF UI development. It was a very interesting week, because we had to learn to speak the same language (we already know each other, so the learning curve was not too big, but still). I called that the designer-ish / developer-ish translation. It's very interesting ......

Porting to VS2008 / New WPF book / Pictures of Sicily

Porting to VS2008 I am working on a few ASP.NET projects I do privately, and had a small issue, which I couldn't debug in VS2005. I decided it was time to give a serious try to VS2008, so I converted most of my private ASP.NET projects to VS2008, and everything wen smoothly. I didn't take any risk, and I chose to continue using .NET 2.0 for these projects, so that only the IDE changes, but not the framework. After a very fast and painless conversion, finding the error was a breeze (I was having problems ......

Silverlight: Ah the pleasure of breaking changes...

First thing I noticed after installing Silverlight 1.0 RC1 is that the video on my PhotoAlbum didn't work anymore. There is an update for Expression Media Encoder which produces new JavaScript files for the video player, and which breaks the customizations I made. Unfortunately, it's not something that I can fix in 2 minutes, so I'll probably have to work on that a little more next week. In the mean time, I placed the video player on a separate page, without the fancy XAML animations I made. I also ......

Back home after two weeks in Sicily / VS2008 Beta 2 and Silverlight 1.0 RC1

Back home I am back home after 2 weeks spent in a road trip around Sicily, Italy. We had a great time, and I will document the trip gradually in the next few days on my PhotoAlbum. It was really nice to let go for a moment, and I barely did anything work related (except reading 4 chapters of Adam Nathan's WPF book and catching up with blogs during the last hotel stay of the trip). I found no wireless connection during the trip (except once in Taormina and then in Palermo) but I didn't look for them ......

Silverlight: Video on my PhotoAlbum website / Going in holidays

Silverlight video on my PhotoAlbum website You can now watch videos on my PhotoAlbum using Silverlight!! Currently, two pages have video: Pune, India and Calcutta Rescue's projects in Kolkata. To start the video, locate the thumbnails marked with a "movie" label, and click them. Modified player.xaml I spent a few hours this week tweaking and learning to know the Silverlight video player created when you encode a video using the Expression Media Encoder application. I modified the player.xaml and ......

Silverlight Streaming: No need to be careful anymore :-)

In my last post, I mentioned a problem occuring with Silverlight Streaming if the application's name starts with a number. Apparently, Microsoft is listening, because the problem has been corrected. I just uploaded a new video, and noticed that they now add a "Wrapper" prefix in front of the JavaScript variable. With that prefix, the JavaScript naming rules are always respected, and thus your application can be named whatever you want ......

Silverlight Streaming: Careful with that application's name!

I lost some time today with that error, so be careful what you name your Silverlight Streaming application! Silverlight Streaming is a service offered by Microsoft, 4 GB of storage for your Silverlight applications, which will usually be used for streamed videos. When you create a Silverlight Streaming application, you may name it anything, and apparently the name is not validated. In my case, I thought I'd be clever, and I named my first application 2007070201MumbaiPuneTraffic, with the string "2007070201" ......

End of WPF training in Pune / Visit to Kolkata, India

Ending the WPF training in Pune The WPF training in Pune, India went great. We finished on time, I spent the last afternoon showing various resources and demonstrating how to create a basic Silverlight application, as well as make Silverlight videos. This is not strictly speaking in the scope of the training, but with the WPF background acquired during these 3 days, moving on to Silverlight is really easy, and really motivating too. After Pune, and after a very nice dinner with Nikhil, the indian ......

WPF training (Indian edition) underway

Today is the 3rd day of the WPF training I am giving to my indian colleagues in Pune, India. This is the 3rd edition of the training, after Milano and Zug. The training is going well, even if I had a few more "demo effects" than usual, maybe due to a general tiredness (I need holidays, and thankfully they're coming soon, yay). But my trainees were kind enough to give me a little time to correct the code, and all goes well in the end. If the monsoon allows, I will fly tomorrow to Kolkata, where I ......

WPF training (Swiss edition) completed

Life is pretty good in the moment. I just finished giving the WPF fundamentals training to my Swiss colleagues. We also had the pleasure to host two US colleagues from Chicago who came specially for the training. I hope it was worth it, but I can safely say that everyone had fun and learned a lot in 3 days. That's a very short time to getting to know WPF, and noone became a WPF expert between Monday morning and Wednesday evening, but everyone improved their knowledge and, most importantly, I put ......

Various WPF resources online

Community WPF Community : http://wpf.netfx3.com/ Silverlight Community : http://silverlight.net/ http://wpfwiki.com/ Microsoft employees: http://weblogs.asp.net/scot... (Scott Guthrie) http://blogs.msdn.com/karst... (Karsten Januszewski) http://blogs.msdn.com/tims/ (Tim Sneath) http://rrelyea.spaces.live.... (Rob Relyea) http://www.beacosta.com/ (Bea Costa) http://work.j832.com/ (Kevin Moore) http://scorbs.com/ (Karen Corby) http://nerddawg.blogspot.com/ (Ashish Shetty) http://blogs.msdn.com/danle... ......

WPF: Finished the Expression Design / Expression Blend hands-on lab

Update: Removed the IFRAME, because of annoying "download" effect in Firefox. Added a link to the XAML page instead. Excellent lab!! I finished today the lab I started yesterday about Expression Design, Expression Blend and their collaboration. Actually, it's still not really a collaboration, to be honest. You export XAML from Design, and you add the exported file to the project in Blend. If you choose to modify the icons in Design, however, you must reimport and then make sure that the changes appear ......

WPF: Expression Design hands on lab

I just finished the first half of the "Creating WPF buttons with Expression Blend and Expression Design" hands-on laboratory created by Karsten Januszewski. It's a really cool lab, especially for a WPF integrator with a developer education. I was always interested in design, but I am really not a designer, so it's quite nice to learn a few tricks and techniques. The lab introduces a technique consisting of using a picture on a layer, and then redrawing the object on a layer on top of that, using ......

Silverlight: More tutorials, and really good ones!

Celso Gomes, excellent designer working for the WPF team (Blend, Design and Silverlight) put together a Silverlight only website with great short tutorials. I just took the "Animations" ones, and I like the concept. Short lessons, easy to remember. Side note: This is the first Silverlight-only website I saw (after a looooong raw of Flash-only websites). While I find Silverlight much more appealing than Flash for the developers, the huge strength of SIlverlight over Flash is the ability to interact ......

Scott Guthrie talks about the future or ASP.NET and Orcas

The ReMix event was nice, well, not really comparable to Las Vegas, of course, but it was nice to see the demos again. For me, in fact, the real opportunity was rather to connect with other people interested in these technologies, and in this aspect it was really nice. I've been wanting to meet Ronnie Saurenmann (the guy behind the Zurich Airport XBAP and the "Outlook-like" WPF hands-on lab) for quite some time, I hope for the beginning of a nice collaboration. Of course the icing on the cake was ......

Road to Silverlight: My First Silverlight Application

I just published my very first Silverlight application to my website. OK, I just had like 1 hour to build it, so it's not very impressive, but still, I am happy that it works!!

OK, let's see if I can put an IFRAME in here to show the app (obviously, you'll need to install Silverlight to see it):

ReMix 07 in Zurich with Scott Guthrie

Today, the ReMix 07 event is taking place in the World Trade Center in Zurich, Switzerland. Lots of great speaker, includign Scott Guthrie, Wayne Smith, Beau Ambur and more. Wayne Smith just showed his video encoding and XAML editing demo, pretty much the same demo as in Vegas, but very well received here anyway! You got to love his accent :) but more important, the content is great. One new thing presented today compared to the Las Vegas edition is a new plug-in for LiveWriter which allows embedding ......

ReMix Zurich tomorrow

ReMix 07 Zurich I will be attending ReMix in Zurich tomorrow. This event will be specially interesting this year due to the presence of Scott Guthrie for the keynote and 2 presentations. I'll hear even more of Scott in the evening, at the DotMugs (.NET Managed User Group of Switzerland) where he will be speaking about ASP.NET and Orcas. I am very happy to hear Scott again, this will be the thrid time (after MIX06 and MIX07), and I sure hope I will have many more occasions ......

Road to Silverlight: Aaron Stebner is a great person!!

After I posted about the problems I was encountering with the Silverlight installation, Microsoft's Aaron Stebner contacted me and offered his help. Aaron is a .NET setup specialist. After enabling verbose logging and his inspecting my setup log files, the answer was to uninstall .NET 2.0 and then reinstall 3.5. Unfortunately, my .NET 2.0 installation was apparently corrupted, because the framework didn't appear in the "Add/Remove program" dialog. Thankfully, removing corrupted .NET installations ......

WPF: Synchronizing animations (part 2: Asynchronous by nature)

I published the second installment of this serie about synchronizing animations in WPF. This article walks the reader in creating a small application with multiple animations, and demonstrates that they are, indeed, asynchronous by nature. In the first article of the serie, we saw built-in ways to synchronize animations, using BeginTime, Duration, events... In the next article we will use a more elaborate way and I will guide the reader through the modifications needed to synchronize all the animations ......

Road to Silverlight: A few bumps...

You got to love this delicious alpha feeling, when you try to install something and it fails with an non-understandable error message... Yum!! In my case, installing Orcas fails. I managed to find out that the package responsible for the failure is the .NET 3.5 redistributable. While the error code is just a generic "error 1603", looking in the Windows Event Viewer shows that "Product: Microsoft .NET Framework 3.5 (Pre-Release Version) -- You must first install Microsoft .NET Framework 2.0SP1 before ......

On the road to Silverlight: Download...

Now that my site has been cleaned up, I want to add Silverlight content to it soon. I blogged about my plans here, and first of all I need to download all the development environment. That also includes Orcas (Visual Studio 2007) which is currently still in Beta. I didn't install it before because Microsoft told us that it was a bad idea to install it on a non-virtual machine, and that uninstalling it was very difficult. Since the last Beta 1 version, however, things are better and I have been told ......

WPF: Synchronizing animations (part 1: Using built-in features)

One of the most exciting features of WPF is the animation system, which provides the UI developer with the possibility to create exciting effects easily. A previous article explains various ways to define and trigger animations using XAML or code-behind. However, the animations in WPF are asynchronous by nature, which means that when multiple animations are triggered independently, they will run without coordination, which may give the application an unfinished look. In a serie of articles, I will ......

Expression Blend labs / Losing the "-lb"

Expression Blend lab I downloaded Karsten Januszewski's Expression Blend labs, and I am going through them slowly. I finished the first one tonight. While it's relatively basic, it's still great to be able to consolidate what I otherwise learned through try-and-fail, and through reading parts of the user documentation. Additionally, it's a good support to learn useful shortcuts for some commands. I am looking forward to going through the remaining two labs, and I will highly recommend them to the ......

WPF: Training other developers (Italy)

I am back from Milano, Italy, where I spent the last 3 days teaching WPF to some of our developers. It was a very new experience for me. In the past, I have organized and held demos and presentations already, but it's the first time that I am training other people for more than just one or 2 hours. I was quite nervous before starting the training, my main concern being to be able to say everything I wanted to say about the technology in the imparted time. The original material for the training was ......

WPF: Data Binding in Expression Blend

Intro Continuing my quest to make my applications as "blendable" as possible, and after noticing that Expression Blend doesn't execute a Window's or a User Control's constructor when the element is displayed, I thought I'd try to place my test data in the XAML itself, using an XmlDataProvider. Unfortunately, it still doesn't work as well as I had hoped. Purpose In order to allow designers to work in Expression Blend as much as possible, it is often necessary to create a test application. For example, ......

WPF: Debugging your UI in Expression Blend

What? Here's a cool trick, which I thought of after reading this comment and this post. The good thing to remember is that Expression Blend is a (maybe the first) Microsoft application entirely written in WPF. I always thought it was pretty cool. Well, even cooler than I thought: When load a project in Blend, the code you wrote is actually executed! Of course there are some caveats (see below), but what it allows is to place a breakpoint in your code (for example in a User Control's constructor), ......

WPF: The integrator

A new role It's hard to believe, but it's true, it has been already one week since I came back from MIX. During this week, I have been so busy with the project that I didn't even have time to blog. In the project we are currently developing, one of my roles is to be WPF integrator. This is a new role that has been discussed already quite a lot in various occasions. The WPF integrator stands between the designers and the developers. His role is to coordinate the work between these two very different ......

MIX day 3 (cont)

Gee, I almost forgot one session I attended: Booyah! Designing and Developing Line-of-Business Applications That SIZZLE Once again a nice demo, concentrating on the specific problems and challenges you encounter when you develop 3D applications. Nathan designed beautiful glass tubes which are filled with data. I loved his mention that in WPF, he is actually working with materials and textures. When he says that, I get the impression that his working is actually sculpting 3D objects. I think that ......

MIX: Here I am

That was a LONG trip, but here I finally am. Check in went fine, the room is nice though less impressive than last year (well, last year I had, for some reason, received a huge suite). This year, I "just" got the "regular" suite in the Venezia tower. Seriously, the room is great. After check in and a long hot shower, since it was too late to register for the conference, I just went downstairs for a bite, and for a small walk in the casino. The energy here is amazing. I will register tomorrow morning, ......

My schedule at MIX

So...I spent more than one hour yesterday night to create a schedule for all the session that interest me this year at MIX. Yeah. I need to clone myself. Three times. If 4 of me go to MIX, I might get a chance to see all the sessions I want to see. At this point, I don't prioritize any further. Based on last year's experience, I'll decide spontanously what I want to see during each slot. Obviously, I'll make sure to attend the Identity Mine sessions, but there arfe so many others! Sessions at MIX07 ......

WPF book by Adam Nathan / XBAP error

WPF book: Windows Presentation Foundation unleashed This book has been praised a lot by WPF experts I talked to, so I decided to purchase it, and I just got my copy. So far I had been working mostly with the well known WPF book by Charles Petzold, and thought it would be good to have another reference. The first impression is excellent. The book is very colourful and seems quite easy to read. The approach seems quite different from Mr Petzold's book. Instead of concentrating on C# code first and ......

WPF: Example of ItemsControl bound to an ObservableCollection

One of the most exciting feature I learned about in the WPF course two weeks ago was that you can bind an ObservableCollection's content to just any type of Panel, by using an ItemsControl and the ItemsPanelTemplate property. In order to check if I had understood the technique properly, I made a small working example. It actually worked out pretty well, so well in fact that I decided to publish it, hoping that it can help someone out there. I am walking you through that example here. I published ......

WPF: I'm blending like crazy / MIX sold out / New laptop

I spent quite a lot of time with Expression Blend lately. I like that program more and more. It needs some getting use to it at first, but it's just great to be able to open the same project file and source files in Blend and in Visual Studio simultanously. You can design your UI in Blend, including bindings, etc..., you can even run it to check how it looks like "in real", and then you can switch to Studio to do the code behind, add data sources, etc. One thing I miss in Blend is Timeline-based ......

WPF: Debugging the XAML (continued) / Expression Blend training

Debugging the XamlParseException (continued) In a previous post, I mentioned how you can get more details about the XamlParseException thrown when something is wrong with the XAML (but you don't know what exactly). Well, a reader named Daniel Puzey made a comment to that, and I think it's worth posting that again: There's another trick to this. Often, by default, you'll get an error reported at Line 1 of the xaml, which is an obvious lie. You can catch the original exception, though: - Open the "Exceptions" ......

WPF course with IdentityMine: last day / Going home

Last day of training I simply cannot believe how fast the week went, and how interesting it was. Yesterday, we all gathered at IdentityMine HQ. We first had a cool (but fast) demo of Expression Blend by Nathan, who really knows what he is talking about and has a huge experience with the tool and WPF in general. The tool is really quite good, and should allow even developers to work faster, because of the help it provides. I really want to learn Expression Blend. I see myself quite close to the designers, ......

WPF course with IdentityMine: fourth day

Laeticia turned 3 First of all, yesterday was Laeticia (my younger daughter)'s 3rd birthday. I love you so much Laeticia (you too Alise). I miss you both a lot, can't wait to be back with you on Sunday. WPF training, cont. I cannot believe that today is the last day. This week has been so packed with things to think about, I will need some time to digest all the information received from every side: The training itself, the great people met, the way we can make the best of these new relationships ......

WPF course with IdentityMine: third day

Big day yesterday. First we had a training session in the morning, and talked about animations. I could see how I got a few things wrong. Animations in XAML are very straightforward to create and start, and it gets a bit more complex when you want to control them and especially stop them. In my ColorClock, I've been confronted to a few of these problems: How to release the animation's "grasp" on the dependency property it just animated? How to "chain" animations, making sure that they are correctly ......

WPF course with IdentityMine: second day

OK, I discovered something... *whispering* some of the guys at IdentityMine actually read my blog... so I can't criticize the training, hope you understand... No, seriously. I am having a great time here. The training is intensive. The labs help to understand what we learn (or recap), but even then it's really a lot to assimilate. I am happy to say that so far I understood pretty much everything we learned, but some of my colleagues are struggling a little. I am sure that when they'll start working ......

WPF course with IdentityMine: first day

We had a great time yesterday! First of all, the weather was wonderful. Way to deny Seattle's reputation (well, today is quite cloudy, though). We had a wonderful view on the sunshine on Mount Rainier, quite a sight! The hotel is great too. We started pretty much from scratch, which was good for those of my colleagues who have no prior experience with WPF. Actually, it was very good for me too, a good way to consolidate the knowledge I acquired on my own last year. We then had lunch at IdentityMine's ......

Updated PositionedNode (DHTML effect) / Arrived in Tacoma

End of January, I made an update to my PositionedNode DHTML effect, but too busy with WPF activities, I never managed to publish it. Having just sat 14 hours in a plane, I finally took the time to do it. There are 4 major changes: With V1.2, it's now possible to use any CSS unit to position the HTML element, for example em, points (pt), pixels (px). This functionality uses the JavaScript class gslb.CssLength. It's now possible to specify all the style attributes in external CSS files, using either ......

Travel to Seattle, WPF training!

I am very excited! Today is travel day. I am flying to Seattle, and will attend an IdentityMine WPF training next week! 5 days of WPF together with 9 other developers and designers from the project I am working on. In this project, I'll act as a WPF coach, and the training is a great opportunity to round up the WPF knowledge I gained since I attended MIX06 last year, to learn new things, and especially to study the new workflows between designers and developers. I saw Robert Ingebretsen's presentation ......

WPF ColorClock

I published the first public version of a clock programmed in WPF. GalaSoft's WPF ColorClock is inspired from the original ChromaChron clock, which was a huge trend in the 1970's and 1980's. The clock shows the time in an original manner, with one colored area per hour. A cache rotating with 30° every hour displays the time. Of course reading the time in that manner is not perfectly accurate like a digital watch, but it's very soothing and with a little experience it's surprisingly easy to differentiate ......

WPF trick: Debugging the XamlParseException

Update: See more information about XAML debugging here. Here's a trick: When you work a lot with XAML, you'll be confronted to the dreaded XamlParseException sooner or later. This exception is thrown whenever something goes wrong while the XAML code is parsed. However, this exception is not very helpful. Typically, you get a message box telling you that: An unhandled exception of type 'System.Windows.Markup.Xaml... occurred in PresentationFramework.dll Additional information: Cannot create ......

WPF scalability wishes / MIX07

I received today the confirmation to my registration for MIX07 in Las Vegas. I am very excited to go and attend this event again. Last year's MIX06 has been a defining event for me, followed by intensive work to introduce WPF into my firm. So far this activity was a success, and I am very excited to see the "real" development activities starting (as oppposed to prototyping, which we did most of last year). This year's MIX07's major technology is probably going to be WPF/E. While we don't plan to ......

I am not a XAML resource, I am a free man

I know it's silly, and I most certainly don't deserve the honor, but... it was kind of nice seeing my name in the same table as Rob Relyea, Mike Harsh, Ashish Shetty, Karen Corby, Robert Ingebretsen, Daniel Lehenbauer, Karsten Januszewski, etc... :-) XAML resources ......

WPF musings: UI framework and plug-ins

Introduction (Note: This article is not strictly speaking for WPF only, the technique described works for any type of .NET application. In next articles, we'll study WPF-specific techniques, for example loading XAML resource assemblies dynamically.) There are many scenarios where an application doesn't know at build time exactly which DLLs are going to be available at runtime. For example, you may want to provide a UI framework and then develop components at a later time running in that framework. ......

WPF: Inheriting from custom class instead of Window

In ASP.NET, we learned that it is often interesting to inherit from another class than from System.Web.UI.Page. This allows to define common methods, such as utilities, etc... which are used by a set of web pages throughout an application. In WPF, it's also possible to do the same, and to inherit from a custom class instead of System.Windows.Window, of System.Windows.Controls.Page, or of System.Windows.Controls.Use... for example. When you add a Window (or Page, or UserControl...) to a WPF project, ......

Problems caused by concurrent asynchronous calls to web services

What's COMET? When an Internet Application needs to be updated regularly, the only possible choice is to use polling. The HTTP protocol makes it impossible to have the server "push" data to the client. The faster the client needs to be updated, the faster the poll must be. Of course, there are limits, for example due to the network speed, the load, etc. A possible alternative is known under the name COMET. (Note: COMET is usually used as an alternative to AJAX, and AJAX implies the use of JavaScript ......

Updated my PCs to .NET 3.0 final

I was very busy in my professional project since I came back from Chicago, and didn't have any time to post to the blog. Rather than posting incomplete or bad quality entries, I preferred to put the blog on hold for a small moment. I took the time today to update my PCs to the final version of .NET 3.0, which was released in November. No big surprises, in fact the installation process is smoother than ever. To install, you need: .NET Framework 3.0 Runtime Components Windows SDK for Vista and the ......

Just back from Chicago

I was in Chicago from the 2nd to the 11th of November for business, and didn't have much time next to work to do anything on my private projects. I took however the opportunity of the flight to read a few chapters of Charles Petzold's "Applications = Code + Markup, A Guide to the Microsoft Windows Presentation Foundation". Really good book. It led me to make a funny experiment with rotating backgrounds. (Note: Works in IE only, with .NET 3.0 installed). Pretty amazing what you can do with just a ......

WPF: Animations in XAML and code-behind

WPF makes it very easy to define animations, by using timelines, storyboards and dependency properties. Animations can be defined and triggered in XAML, or they can be defined in XAML and triggered in C#, or they can even be fully defined and triggered in C#. I just published a tutorial explaining the basic concepts of animations in WPF, with examples and a demo (runs in IE, with WPF September CTP (RC1) installed). The article shows 3 different ways to animate an object. Of course, you can also download ......

WPF research and prototyping

Wow, one week without a post, means that something is cooking... and guess what, it's a new WPF prototype. I cannot publish anything yet, but the proof of concept works. It's been pretty much 24/7 for the last week (well, 18/7, I got to get some sleep from time to time ;-) The idea behind this prototype is to allow loading User Controls dynamically in a WPF application. By placing the application on a website, and by having the application (served as XBAP, or installed as standalone) communicate ......

WPF: SessionID management with CookieContainer

Following this post, I succeeded in adding cookie management to my latest WPF prototype. Cookie management in WPF and in WinForms applications is needed when you use a stateful web service, which uses HttpSessionState to store data about the current Session. When a web method is marked with the EnableSession parameter, the web service's Session property is set (otherwise it is null). However, the client must provide a way to store the cookie in which the SessionID (a unique string identifying the ......

WPF: Inconsistent SessionID when using web services

UPDATE: not a bug You got to love the internet. Minutes after I wrote about what I thought was a bug in WPF, Joseph Cooney pointed me to this page which explains how to save the cookie on the client to avoid losing the SessionID. Seems that I have been spoilt by my years of ASP.NET programming, where the browser stores the cookies automatically. I will update the example, and will post again about this soon! Problem This prototype demonstrates that, in WPF, the SessionID used when calling web services ......

Sandbox exceptions in XBAP: When are they really thrown?

Many features of WPF are not yet implemented for XBAP applications. For example, opening new windows is not possible when the WPF application runs in the browser host. Also, crossbow (integrating Windows Forms controls in WPF applications) fails when the WPF application runs as XBAP. When such sandbox-forbidden operations are executed, a security exception is thrown. Depending on the permission which is not granted, the type of the exception is different, but the mechanism is always the same. When ......

Crossbow: Integrating Windows Forms controls in XBAP applications fails

Crossbow is the technology (code name) allowing to integrate Windows Forms controls into a WPF application. Mainly, it consists of a control named WindowsFormsHost, which is part of the namespace System.Windows.Forms.Integr... and distributed in the assembly WindowsFormsIntegration.dll. This DLL can be found in Visual Studio 2005, and is also part of the WPF SDK, under Program Files\Reference Assemblies\Microsoft\Framew... (stand June CTP, I didn't check in August CTP if it's still the same). ......

Technical blogs and newsgroups I read

A colleague asked me what blogs I read, and I thought it would be interesting to blog about that ;-) My main activities in programming in the moment are .NET, especially ASP.NET, and WPF. ASP.NET also includes a lot of JavaScript programming, which was always one of my favourite subjects anyway. About JavaScript, I don't read blogs, but I can recommend the newsgroup comp.lang.javascript. I learned most of my JavaScript there over the years, and though the tone is sometimes passionate over what may ......

WPF prototype: ActiveX integration and interaction in XBAPs

I published a new WPF prototype today. This prototype demonstrates a possible way to integrate an ActiveX control in a XBAP application, and to communicate (in a rather primitive way) with it. It uses Microsoft's proposed solution, which is running the ActiveX control in a HTML page, which in turn is integrated in a WPF frame. The ActiveX can be controlled using JavaScript code running in the HTML page, and which is independant form the XBAP page. In this scenario, the XBAP page acts as a container ......

More WPF prototypes

Today was WPF prototype-cleaning day. I started reviewing the prototypes I developed lately using WPF in order to study the technology, and I cleaned up two of them. Cleaning up means reviewing the code, eliminating what is not necessary, commenting and adding a HTML page to each prototype, so that it's easier to understand what they do, and what points are still open. The two prototypes are running on my site, and can be executed from there. Additionally, the project files are also available for ......

Back home...

We're back home... We came back in Switzerland last week, and time flies, I can't believe it's already tuesday... Work should start again tomorrow (today is national day here, thus public holiday), and a lot of challenges are in front of us. We're studying the possibility to use WPF/E as our platform for the new web application we're starting to work on. Unfortunately, it's impossible to find any preview version of WPF/E, so we're forced to use assumptions and theories. On the private side, I started ......

WPF Demo: Transparent Windows and Update to June CTP

I updated my WPF demo so that it now runs with the June 2006 CTP of Windows Presentation Foundation. I also modified the main window according to Lauren Lavoie's transparent window example, and IMHO it looks damn cool ......

Updated my laptop to the June CTP of .NET 3.0

I took the time today to install the June CTP of .NET 3.0 (see the checklist hereunder). It went rather well, and I didn't have major problems, but it takes a long time... well, when you do it on the balcony with your kids playing in the pool, it's not that terrible, is it? ;-) Update: My WPF demo now works with the June CTP. Uninstall May CTP edition: Pre-released WinFX Runtime Components Uninstall Tool Download and run Uninstall tool Removed Debug tools for Windows Removed Atlas Removed FxCop Removed ......

Flexible Application Template for WPF

Once again, Daniel Lehenbauer saved my day. After my post yesterday about XBAP and EXE applications, I sent him an email asking for his opinion. He was very fast and I got the answer today. Daniel pointed me to this page, which describes pretty exactly what I wanted, and which comes to the same conclusions as I did: As long as the navigation model and the security permissions allow, switching back and forth is rather easy. Note the use of compilation switches and of runtime checks to see if the application ......

Windows Presentation Foundation: From a XBAP to an EXE

I spent most of the day studying the project properties of WPF applications, both Standalone and Browser applications, and comparing them. The goal is to find out what are the minimal changes you have to apply to a project in order to run an application in the browser, or outside of it. (For those who don't know, WPF applications can run using Internet Explorer as a host (XAML Browser Applications, XBAP), or standalone as a regular EXE. For XBAP, restricted permissions apply (sandbox), and of course ......

WPF Demo: Download problems solved

Following my change to a new ISP for the GalaSoft website, I completely forgot to copy the sample files of the WPF demo to the new ISP. So between yesterday evening and now, the download was not possible. The error is now corrected, and the following files are available again: Project files ......

WPF Demo: Zip files posted (to solve the ClickOnce issues)

It seems that ClickOnce deployment doesn't always work: First if you don't have IE, it won't work for you. Second, some network settings prevent the application to be installed correctly, for example in a firm's network. To correct that, I uploaded two Zip files for my WPF demo. If you have problems installing or running the demo, contact me and I'll do my best to help ......

Windows Presentation Foundation Demo

I wrote a WPF demo to test and present the technology to other people. Abstract: This WPF demo is used to test and demonstrate a few basic concepts and capabilities of the new Windows Presentation Foundation framework. It includes binding, UI elements, scaling, rotating, skewing, brushes, styles, 3D with images, textures and video, and manipulation of media elements. The demo is available here More screenshots ......