Hi Matthew. Sorry for the late response, but I was hoping your post would get a response from other DevForce users dealing with the same issues. You're definitely on the right track, and as an experienced DevForce Classic developer you already have a head start in knowing to pre-load data and reduce trips to the BOS, so I'm not sure what else I can add. We're doing what we can to improve performance and to provide an easy-to-use tool set for working in Silverlight, and suggestions are always welcome.
Here are a few areas to look at --
- using Include with queries to pre-load related data (this was done with EntitySpans in Classic)
- using InvokeServerMethodAsync to both move logic to the BOS and to send larger "chunks" of data to the client
- the AsyncSerialTask and AsyncParallelTask, both of which attempt to make working with numbers of async actions a bit easier
- asynchronous navigation using the PendingEntity and PendingEntityList - these allow you to continue to use DevForce lazy loading of navigation properties in the async world
- caching data to IsolatedStorage using the EntityCacheState (this was called an EntitySet in Classic)