March 2007 Entries

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 ......

Updated FadedNode (DHTML) / Archived old JavaScript pages

This DHTML fading effect, where a given node's opacity changes smoothly from one minimum value to a maximum value and back, has been updated. The update is very minor: Now it's not necessary anymore to define an opacity in the node's "style" attribute. The opacity can be defined in external CSS files, or even not be defined at all (in which case the opacity is equal to 100%). Also, I archived my old "JavaScript consulting" pages. Most of the advices given on these pages are still valid, but the pages ......

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 ......

Barcelona

Flying often to Malaysia provided us with enough miles to get a "free" ticket to a european destination of our choice. I put "free" in quotation signs, because in fact you still have to pay quite a few taxes, not even mentioning the hotel and of course the kids' tickets, and also given the very low plane tickets prices in Europe currently, it didn't make that big a difference. So it was really more of an excuse for a weekend abroad coupled with a city's visit. We chose Barcelona, where none of us ......

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 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, ......