I have a root object in a multi-tiered Silverlight app with a long chain of children that is loaded when the user logs in. They have to wait a few seconds for all the objects to load, but then they can interact as though using a standard desktop application. This works well. BUT when they save (minor) changes to the root object, the whole tree is sent back to the server - taking a long time. Is it possible to mark children as [NotSendable] or something (like [NotUndoable])? I'm assuming I'm not the first to run into this.
No, you're not the first. If you do a search on the forum for something like "datagram", you'll see all sorts of discussions on this.
The short answer is that, out-of-the-box, CSLA does not support what you're wanting to do. But it is possible, I believe through some custom programming for the DataPortal. I'm not sure how much work it would entail in a SL context - all the other discussions on this have been in a more traditional client-server context, and modifying the DataPortal to do what you want in those instances is (I think) a little easier.
You might also look into utilizing compression - the general consensus seems to be that compression can do wonders for things like this, and it's going to be a whole lot easier to implement. Again, a forum search ought to give you the details.
Look at the Csla.DiffGram sample project (in CslaNet\cs). It demonstrates how to implement a diffgram/datagram model for a large object graph, and should work the same in SL as in .NET since it is all at the business object level.
DiffGram: really useful - thanks!
Copyright (c) Marimer LLC