If you´ve read something about XNA, you have probably seen a concept that, though it´s out there for many years now, it´s quite new and specially appropiate for games: Component based programming.
Some people pointed out that I´m talking more about the interface used in the Component Based Design of XNA than the CBD itself, and they are right. Absolutely right.
The important idea I wanted to transmit here is the convenience of using game objects or components that share an interface like the following:
// Object initialization, boot up, etc
void Initialize();
// State update: Put your game logic in here
void Update(double pAppTime, float pElapsedTime);
// Draw method: draw the object if needed
void Render(Device pGraphicsDevice);
The important thing about this methodology is that it keeps a very simple application structure, and every component behaves in the very same way. If you think about it, most of the times you don´t need anything appart from those 3 methods.
In the following posts in this same tag, I´ll include a very simple arkanoid-like game application that follows this mothodology. It´s quite simple, C# and GDI based, but it performs pretty well and shows what I´m talking about.
Cheers!