On Cider, we're rapidly approaching a big planning phase where the outcome of that planning phase will the set of features that are going to be in and out of v1.
On my side, that means taking a hard look at the features associated with Control development, design time customization and extensibility in general.
Here's a list of features stack ranked and listed by priority category (Must Have, High Want, Nice to Have).
Is this the right set of features and are these features prioritized correctly?
- Programmatic differentiation of "design time" from runtime
- Custom Property Editors (think UITypeEditor)
- Accessing and editing sub-properties of a type
- Custom Object Editor (think ActiveX property sheets that allow object level editing, not just property editing)
- Access to standard items (resources, data sources, styles, templates)
- Access to other items/controls on the design surface
- Leverage Cider UI Components (Property Editors, Property Browser, collection editor and design time UI)
- Commands/Verbs/Smart Tags (adding commands/verbs to a context menu)
- Metadata discovery (decoupling metadata from the controls themsevles -- can be added later)
- Add controls to the toolbox at installation time and add references to the current project when that control is instantiated
- Run a configuration wizard when instantiating a control from the toolbox onto the design surface
- Ability to replace stock editors with a custom editor (replace the string editor)
- Better and easier integration with the help system
- Able to add a custom control to any UI that presents a list of controls (i.e. data binding picker)
Nice to Have
- In-place design time UI (adorners)
- Ability to create custom custom collection editors
Your feedback is wanted and desired. Please let me know what's missing and if any of the priorities don't resonate with your priorities.