Loading...
Searching...
No Matches
Values
- Explicitness
- Developer Productivity
- Familiarity
- Transparency - it is better to require the developer to be more involved in details than to build abstractions that don't work in every scenario
- No "magic" - when magic doesn't work, it is very difficult to do anything about it since you didn't know what it was doing in the first place
- Providing both extremes (simple and full featured) is better than providing a single compromise method
- Keep models simple and not asynchronous -
Constraints
- Must work on Xamarin Forms, MAUI, Avalonia and Uno
- Must be compatible with XAML property binding
- Models are normally immutable to app code, except for the mutable proxy pattern eg. for forms
In Scope
- Caching
- Persistence
- Offline
- Queries
- Taking queries offline
Out of Scope
- local queries - queries only happen in the ICascadeOrigin (which can be implemented to do queries anywhere)
- automatic refreshing of collections when models change - use HasMany* maintenance methods
- many-to-many relationships - use a join table with HasMany and BelongsTo. You'll likely add properties to the join table anyway
- Reactivity and Subscription (for now) - ie changes on the server being pushed to the client