Dave saw
a presentation on Avalon at Flash In The Can, and
had some interesting take aways...
On 3D: "I’m somewhat unclear how detailed the native 3D rendering
support is. There was a demo of multiple video sources being mapped to rotating spheres,
so there’s at least a few basic shapes and textures. My confusion is partially the
result of the ‘special guests’ pulled on stage — a software company that created a
3D -> Flash convertor, which it had adapted for Avalon. Given Flash’s lack of native
3D object support, hence the need for this tool, I’m left wondering what that means
for Avalon’s 3D support."
The big difference here is that Zam3D for Avalon allows the full 3D model to be brought
into Avalon. You can rotate at runtime, zoom around the model, change lighting, etc.
Their Flash based product flatens the 3D to a fixed series of 2D vectors, which gives
you a fixed movie, instead of an environment.
On XAML: "The code itself looks like (well-formed) tag soup from
1997. Whereas the web has seen a shift from presentational markup (in the form of
tables, embedded attributes like bgcolor, and the dreaded font tag)
to structural markup with a separated presentation layer (CSS),
XAML is purely a presentational language. I couldn’t see evidence of attention toward
semantics, and all the presentational attributes are embedded right in the markup.
Januszewski referenced ‘a CSS-like syntax’, but there’s nothing CSS-like about it.
It’s ugly presentational HTML all
over again. A sample snippet:"
Ah, here is one thing that I think just didn't show through on the demo. Avalon uses
a very powerful styling system to allow exactly the type of semantics that Dave talks
about. You can have simple markup ("<Button />") and then elsewhere declare
exactly what the button looks like (using "<Style.VisualTree>"). I think the
biggest difference with Avalon's model is that it is extensible. CSS works great for
the fixed set of ~200 attributes that they define, and for their fixed set of elements
(I understand that CSS can be applied to arbitrary XML, however the output is limited
to the browser HTML render).
This is a platform, so all of this works seamlessly with accessibility, globalization,
etc.
On web integration: "I’d be a whole lot more comfortable with
XAML if it were strictly meant as a Windows OS rendering language. Proprietary markup
on a proprietary platform is nothing to get worked up over. But the obvious web cross-over
leads me to hope we’re not going to see a whole new generation of browser/OS-specific
web apps. I wonder if Microsoft might be hoping for something different."
Avalon is a Windows platform technology. XAML is a language for binding CLR objects
into markup. Avalon elements in XAML is a Windows application markup. The ability
to seamlessly deploy and integrate Avalon based applications into the browser is our
attempt to bridge the worlds of the web and Windows. Today application authors are
forced to choose between rich client applications and familiar browser activation,
hosting, and ui models. With Avalon we are trying to make it so that people that want
to build rich client applications can leverage the user's familiarity with the browser.
On devices: "What will this code do on a PocketPC or PalmOS cell
phone?"
This is a fabulous question, and I can say right now, I don't know. There is some
hope that we could build a PocketPC version of Avalon (much in the same way there
is a PocketPC version of Win32/User32/GDI/WinForms/etc.). PalmOS is probably not doable,
because it isn't based on Windows (Avalon is pretty closely tied to DirectX, which
is available for PocketPC but not, to my knowledge, PalmOS - there are other OS dependencies
there as well, this is just one example).
Building client software for Phones/PDAs/TVs/etc have very different input and usage
patterns. This is an area that I'm really interested in - how much can you really
reuse the UI? I'm all for saving the business objects, which I can do today using
.NET Compact Framework, but when it comes to the UI, I'm not convinced that any level
of styling will make my desktop application "just work" on my cell phone.
Dave isn't universally down on Avalon... there are some great quotes in there:
On Quartz and Avalon: "Without getting too carried away with
the specifics though, what seems to be the main difference between Quartz and Avalon
is the openness and flexibility."
Anyway, Dave, keep the feedback coming.
If anyone out there knows Dave, I'd love to chat with him via phone, email, or in
person.