Show Blogger Panel Hide Blogger Panel
Alex Yakunin

March 4, 2010

Thoughts: what must be done ASAP to improve v.4.2?

Few days have passed after v4.2 release, so far I made the following conclusions:

DisconnectedState needs manual + more advanced WPF sample. Probably, we must also add few features to it to make it more usable (based on advanced sample).

"Really good sample" means:
  • It must be an MDI application working with multiple Sessions and DisconnectedStates.
  • It must behave as it is expected from typical business application.
  • It must browse large result set utilizing LINQ in DO4 for paging / sorting / filtering.
  • The sample must be usable as template for similar applications. I.e. we must not trade between immediate clearness (= certain amount code duplication, etc.) and practical usability of code we use there. So e.g. if necessary, we must add any helper types for routine tasks.
  • Ideally, we must show WPF client <-> middle-tier server case.
  • Possibly, we must use some well-known third-party grid with rich feature set.
New Legacy mode needs manual + extensions allowing to use it in wider set of cases. 

Currently I keep in mind the following extensions we may implement:
  • Views support. Must be pretty easy - AFAIK we already can extract their structure info (columns + types), so we must ~ add "read only" flag to some of objects in domain model, extend attributes & support this in builder.
  • Few mode upgrade modes / options: no validation at all, model caching (Domain must start much faster in case there are 500+ types).
  • Ideally, we must add support for ActiveRecord pattern (T4 templates generating our classes from extracted database schema).
  • Possibly: support of DO v3.9 type identifiers extraction / mapping to v3.9 schemas. Ideally, with T4, but even a full description of migration process would be a big plus.
What do you think, is this reasonable? Any comments \ ideas are welcome. WPF case is of #1 priority for me now; other issues will be handled by Denis Krjuchkov and Alexey Kochetov.