Anti-alias for WPF 3D on Windows XP?

July 19, 2007

Has anyone tried implementing 3D graphics on Windows XP? I am using a Dell Latitude D620 laptop to develop this WPF-based 3D chart library, and find out there is no way to work around this anti-alias issue on Windows XP?

Here is an example of the chart I am trying to develop:

Look how bad it is without anti-alias on. I searched all WPF forums and blogs, and it seems there is no way to turn on AA on Windows XP. Very disappointed 😦

Why Microsoft supports AA on Windows Vista while turns it off on Windows XP? The underlying hardwares aren’t the same for both OS on the same laptop? This is a HUGE negative point I’d give to the WPF team as you know there are plenty of business and corporations out there who are still on Windows XP and who’d like to adopt WPF-based technology to enhance usabilities otherwise. I think even Java 3D does better than this!!! — Not mentioning Flash/Flex has smoother 3D support that this!

If you happen to know the tricks to make the AA works under Windows XP (SP2), I’d highly appreciate. 🙂

The chart itself was simply written in XAML with very little C# code behind to generate the mesh and random data.


WPF books recommendation

July 18, 2007

A friend of mine who recently gets involved in a WPF/XAML project asked me for a list of books (a short list!) that I can recommend to her as a “quick start” reading. So, if you are also new to this field, I’d recommend the following two books:

  • Windows Presentation Foundation Unleashed. This book is printed in color and most of the illustrations are in color. It covers the basics of XAML and important concepts in WPF that can help you quick start on WPF/XAML.
  • Essential Windows Presentation Foundation. Written by the former WPF lead architect Chris Anderson, this book gives you first-hand insights into the design decisions and how WPF works internally. Highly recommend if you want to dive a bit deeper into the internals of WPF.

If you have more good WPF-based books to recommend, you are welcome to list them by posting comments under this blog entry.

Rant of the day – OOP design principles

July 18, 2007

Coming from the background of enterprise-level software applications development, it is often sad to see development of software being pushed into dead-ends with end-less and count-less bug fixes, and feature break-downs. Though Object-Oriented software design approach was introduced many years ago (or at least 10-15 years ago), it is still surprisingly common to find so many software packages created with lack of basic understanding of OOA&D principles in mind. The other day after I finished reading this Head First Object-Oriented Analysis and Design book from O’Reilly, I feel this book should be recommended to anyone who seriously considering a career in the software development field, at least anyone who are using or planning to use object-oriented language to develop software packages. Here is a nice summary of OOA&D principles. Personally I found the following principles of are very important to understand and follow wisely to build a successful and adaptable system:

Also in general, programming to interfaces, not inheritances can help a big time in many cases. Composition, decorator (or helper service)-based approach is more adaptive than inheritance based approach. We learned that in one of my previous projects in a hard way.

WPF is an excellent example of the extensive usage of decorator (helper-service) approach – through DependentProperty, AttachedProperty, you don’t have to subclass the existing UI elements to add new behaviors. Instead, you build decorators and through AttachedProperty, you can modify or extend behaviors of existing UI elements.

A WPF and XAML based chart

July 17, 2007

While having fun with WPF/XAML in my spare time, I came across this work by John Stevien at CodeProject. So I went out to try something fun with WPF and see if we can create something similar to the charts you see on Google finance. Since unlike Adobe Flex platform, WPF/XAML lacks any built-in support for data charts, I think this could be something helpful in real-life applications. Here is the results of this 4-hour adventure. I’ve created a WPF/XAML based 2D filled chart that supports dynamic zooming and panning, and track-ball of the current chart positions for time-series data. This chart could possibly be used in many situations where time-series data needs to be displayed.

This chart utilize the flexibility and power of the “adorner” class in WPF Visual elements. The following shows the chart in action:

[ Update: 7/20/2007]

The source code is uploaded to my share here. You can download and try the code.

[Update: 1/16/2009]

A new source code link is posted at:

new source code link

A peek into Flex2/ActionScript3 world

July 17, 2007

Being a heavy-Microsoft-centric technologist for so many years, I just happened to take a quick and very skin-deep peek into the Adobe Flex 2/ ActionScript 3 world of development. Though admittedly my very basic and limited knowledge of Flex/AS, I see both the power/beauty of Flex as well as the limitations of the platform. I am sure the list will grow longer when I dive more into this amazing Adobe platform.

  • Richer class library of animations. Flex2/AS seems have more support for real-life 2D animations than WPF/XAML offers
  • Multi-threading or lack of it: As far as I learned, seems there is not much multi-threading support on the Flex/AS platform. While WPF / XAML, through its underlying .Net Framework 2.0/3.0, the support for multi-threading is very strong and inherited.
  • Some useful and richer UI classes in Flex2 that cannot be found in WPF/XAML. I wish I can find better built-in support for charting (at least 2D charting) as we see in the Flex2. This is one of the areas in WPF/XAML I’d like to see more improvement. Although we can accomplish 2D interactive charting in WPF/XAML with little efforts, having a built-in, standard support can save a lot of development/support time in many business applications.
  • Media support. Flex2 has more support for types of media than WPF/XAML has. Also the MediaElement in WPF/XAML only works with the latest (or at least version 10) of Windows Media, which is really a drawback. Why not support for YouTube Google Video or other popular internet video format also? Why not support Flash movie also? WPF is definitely lagging behind Flex in this area

Test of WordPress

July 14, 2007

So this is the first entry in my WordPress test. Not too hard to find my ways around. 🙂