If you're coming here without having signed up for the workshop, or without being aware of the associated blog, please see the introductory thread located in the
XNA 4.0 Workshop General Forum.
Also, I've now added up-to-date source code for Chapter 2 and Chapter 3 of the XNA Game Studio 3.0 Unleashed book. This code works with XNA Game Studio 4.0 and in many cases, I've added the addition of a WinPhone 7 project file - which wasn't in the original solution.
Post if you have questions.
In the mean time, there was only a few changes required to get the original code working. The first was the removal of the Net and Storage using statements. Those are added by default in most non-WinPhone 7 projects, however there is no reference implementation for those assemblies for Windows Phone. Programmers will use IsolatedStorage to write data to the WinPhone 7 and Networking is disabled without a special license.
The next change, as indicated in my supplemental material on GameTime, is a result of Microsoft removing the ElapsedRealTime and TotalRealTime members from the GameTime struct. This was done because Microsoft felt it was confusing to the users to have GameTime and RealTime in the same struct, and they felt there were already good ways of getting elapsed and total real time. Of those is the DateTime class which has millisecond precision. I chose to go that route. To keep with the spirit of the demo I use DateTime to cache the time the application was started, and then compute the elapsed real time in between each call to Draw.
Note: It's bad practice to put game logic inside of Draw. We'll talk more about predicated tiling later, but especially with fixed step games and on the Xbox 360, it's important to make sure all relevant game logic is put within the Update method - otherwise it may be processed more or less times than desired.