After working with DataObjects for about a month, I thought I'd share a few suggestions from the perspective of a "noob". 1 - Sessions are simply confusing. I understand the need and usefulness of them, but it seems like they constantly cause issues either because of scope or because they don't fall into my crazy style of development. Don't get me wrong, I don't believe this type of lower level control isn't needed, just that a more transparent / automated method could be integrated as well for more simplistic situations. I guess I believe they're counter-intuitive to the idea of rapid application development on their base level... 2 - The fact that objects are always connected is both a blessing and curse at the same time. The fact that the only method of using them as a detached object is by jumping through hoops with sessions and disconnectedState is extremely complicated to understand and takes away from how simple dataobjects makes data access. It would be absolutely amazing and powerful to be able to transition an object to and from states by: myobj.Disconnected = true; or myobj.TakeOffline(); By automating this transition (disconnecting events, deactivating from underlying listeners, etc.) and transforming the object to an offline state would make RIA integration much more easy to manage and has many practical usage cases. Including specific LINQ expressions such as ToOfflineList() & ToOfflineSingle() could also help keep unneeded transactions to a minimum. 3 - Centralizing the model. This might very well be possible, but I've tried several things and have had to include little hacks to have a central model library. This includes when using a class domain manager and upgrade handler. Being able to reference a single library and integrate into an existing project with data access already validate, managed and concurrent would be exceptionally powerful. Being about to specify the UpgradeHandler or being able to specify which applications only validate the domain and which actually handle the upgrades would take the guess work out of rolling out new versions of n-Tier applications. I'm not trying to be critical or speak ill of what I consider the single best ORM I've ever used. I only bring these up in the hopes of that perhaps the core developers see value in these suggestions and consider the value of some of them. Thanks for an amazing framework... Sorry if this isn't the right venue for this, but I couldn't really find a better spot. |