Exploring: XamlPad to XamlDesigner
I’ve been exploring XamlPad and XamlDesigner features built on top of .NET 4. I plan to ship a XamlPad+ sample soon. After that, I’d like to provide guidance and/or small samples for all of the other steps to enable the Xaml Tools out there to continue to evolve at a rapid pace; hopefully with my teams help.
Who will find this useful? People who make their own XamlPad’s or Xaml based Designer’s today. People who want to learn how it could be done. Etc…
Would love to understand who finds this interesting (beyond those building XamlPad’s today). Feel free to comment or contact me directly ( rrelyea at microsoft dot com ).
I list some steps of evolution a XAML based tool can make from a simple Pad to a more powerful Designer.
[Updated 1/30/2010 with notes which of the following features are in XamlPadSample that I've posted]
XamlPad you Know and Love
XamlPad v3 -- (XamlPadSample step 1 and later contains this feature)
- Edit the XAML in a TextBox, as you type, see changes show up in the View pane.
XAML UI Step: A few more basics -- (XamlPadSample step 1 and later contains this feature)
- Supports Page or Window at root with Proxy object (since Page/Window classes can’t be hosted inside a standard WPF Window).
- Strips Events
- Strips x:Class
Next Steps to help UI (WPF/Silverlight) Scenarios
XAML UI Step: Support Application Resources -- (XamlPadSample step 1f and later contains this feature)
- Supports {StaticResource foo} where foo is defined in App.xaml
- Load ApplicationDefinition into ApplicationProxy class (primarily to grab app.Resources)
- Inject resource holder as “root” element during parse with Resources property set to app.Resources
XAML UI Step: Silverlight Support
- Use SilverlightSchemaContext (from XAML Toolkit)
- Use a SilverlightHost control
Next Steps to help UI and non-UI Scenarios
XAML Step: Load Assemblies -- (XamlPadSample step 1f and later contains this feature)
- Load built assembly & reference assemblies
XAML Step: Editor
- Syntax Coloring
- Intellisense (use XamlSchemaContext to provide type/member information)
XAML Step: PropertyGrid, Selection Model, SourcePreservation
- Simple Property Grid
- Selection model enabling selection in View surface or Xaml editor, and synchronized editor.
- Source preservation of XAML with XamlDom based store
Next Steps to help non-UI Scenarios
XAML Step: Support View for non-UI XAML -- (XamlPadSample step 1f and later contains a start on this Alternate View feature)
- Support providing a View and a Design Experience for non-UI XAML