Spirit of Atlanta

Last weekend I drove my daughter to Atlanta for a drum corps audition camp.  I spent Saturday recovering from the drive (which was repeated in the reverse direction Sunday), getting an oil change (the reminder went off somewhere in the Carolinas), and fixing up the client-side contract changes to match up with the server-side changes made previously.

I finally got to test and fix the code this weekend, and ended up finishing some resource transfer code I had been delaying, as well as removing some client-server transfer classes by marking the original classes with DataContract attributes.

I can now run a host and client, with the ability to render the terrain and presentable objects.  Before I move on to implementing icon visualization on the client-side, and building more animation support for actions, there is still some work to make sure the “Ikosa” services are working, since in my test, I couldn’t get my character to move…

I’ll be heading back to Atlanta this next weekend, so I want to avoid spending the time on Saturday fixing my refactoring.


Renegotiating Contracts

Spent a lot of time this past weekend refactoring the code-base to isolate the DataContracts into their own assemblies.  The idea is to get the services and proxies to understand each other without having to export meta-data through the Mex endpoint.  I had to “invert” a lot of code so that the game-state model classes created their service info instances.  All done now (server-side at least), still have to do the proxy/client changes, then the dreaded distributed testing.

While this was on the agenda for awhile, the immediate impetus was the pending addition of DataContracts for animation support, which would be cumbersome to add using the meta-data exchange (Mex) mechanism.

The proxy/client changes won’t be without challenges, as I originally defined partial class additions to the imported WSDL; and these will have to find a new way to get involved in the proxy (MVVM anyone?).  I wrote a previous post many moons ago on my proxy-side shift to MVVM style WPF UI, so should be “fun”!