Future topics


Couple quick responses to that “what to cover next” post, in case I don’t get another chance for awhile:



  • Threading and STA — I’m always happy to talk about threading, although I already wrote a lot into previous post.  Regarding STA specifically, currently we require true COM STA (CoInitializeEx & COINIT_APARTMENTTHREADED), in future release we might relax that to an “STA-like” model without the CoInitialize requirement, although I suspect by the time that happens there won’t be enough heavy-duty COM code out there to make a real difference.
  • 3D and DirectX — definitely falls into that “needs research” category, that will take a few weeks.
  • Dependency properties — are you interested in how the implementation works, or the various tricks for defining dependency properties on your own controls?
  • commanding and undo — largely separate topics, I know a lot more about commanding than I do about undo…

Coming up next — a sample about Avalon and MDI!


Comments (6)

  1. I think if you could explain some of the property system extensibility mechanisms, such as:

    * PropertyMetadata and all its goodness

    * Overriding the virtual methods of DependencyObject ( GetValueCore, OnPropertyInvalidated, … )

    * Registering a GetValueOverride vs a ReadLocalValueOverride in the PropertyMetadata.

    and how they all interact, that would be very useful. The property system is just so rich that I think some of the fundamentals of the model need to be explained esp. for control authors or just those who are interested. Should also handily address the 3 point.

    -Lonnie

  2. mihailik says:

    >> The property system is just so rich

    >> that I think some of the fundamentals

    >> of the model need to be explained

    Yeah, this is excellent right words! It is great to see some internals but all base mechanics are slightly non-clear yet.

    Where that properties lives, why it used and what is impact on performance? What if I use it on non-Avalon objects like collection or business component — is it add value?

  3. Michael Lowe says:

    Another vote for dependency properties. Some aspects I’m interested hearing more about include:

    – for one of my dependency properties, how can I intercept the getting and setting of the property value and translate it from one form to another (ie. keep the internal format of the dependency property different than external format). The dependency property may be of the same type or a different type. Seems like type converters or GetValueOverride/SetValueOverride might be the way to do it, but that’s a lot of messing around for such a simple and fundumental requirement.

    – when you implement a CLR property to match one of your dependency properties, why aren’t the CLR property accessors used to get and set the dependency property values. If they were, this would provide an easy way to implement previous requirement above.

  4. Lee says:

    Thank you for your great articles about Avalon threading. If I understood correctly, Avalon contains at least two threads for each Avalon app: UI thread and render thread. Can you explain something about the mystery in render thread? when is the render thread created? how the render thread interact with the UI thread?

  5. I think another useful thing to discuss is how the property system animates property values. I think the Avalon idea that "The property itself is animated" is relatively new for most people. Most of the animation systems I have used (AnimateWindow in Win32) just modify some property of the object being animated in a completely external way, whereas in Avalon the property itself is animated and getting the value of a property on an object may result in two different values being returned on consecutive accesses without the developer changing any property values. This is a different way of looking at animation than most other packages I’ve seen. I think some discussion of these mechanics will shed some light on how the whole system works.

  6. PatriotB says:

    "I think another useful thing to discuss is how the property system animates property values. I think the Avalon idea that "The property itself is animated" is relatively new for most people."

    This reminds me of some of the capabilities of DirectAnimation, a promising technology that MS abandoned a number of years ago. You could animate lots of different things, even number properties.