Closed
Description
This needs design.
- How do we map the form from the HTML to an action on the app.
- How do we bind the form data to the app state for processing.
- Support for antiforgery.
- Support for server side rendered patterns (PRG).
Mapping form data specifically.
- Declarative binding
- Primitive values
- Collections
- Dictionaries
- Complex types
- Recursive complex types
- Error handling
- Globalization
- Security
- Extensibility
- Ignored properties.
- Changing the property name.
- Required properties.
- Custom converters for a given property.
- Converter source generation
- Optimization
- Removing allocations during prefix computation.
- Removing allocations from reading the form.
- Optimized form data structure for common form sizes
- Evaluate using a list instead of a dictionary for small sets of keys. AdaptiveCapacityDictionary
- Filtering out keys we don't care about when reading the dictionary.
- Sizing the dictionary ahead of time to avoid resizing it.
- Inlining implementation for primitive types (bypass the converter)
- Avoid allocating a prefix collection when there is only one dictionary on the type hierarchy (since will only process a single set of keys).