You should break your project up into multiple components…
First, develop a service layer for your Fez.
Maybe create a web service or simple RESTful interface over HTTP or even a simple TCP socket service. You need to be able to control all the functions on your robot from the outside. There is no UI for this - just the raw service calls like “Forward(100)” or “Stop” or whatever.
Do this first because the UI development will then be much easier.
Once you have this interface defined you can design your UI to issue those commands. You can really use any UI technology you want - Java or Silverlight or Android. It shouldn’t matter. As long as they can talk TCP to your robot you should be in business.
Next you create your UI. Because it will run on a phone, choose the best dev environment for the phone. If it has an emulator for the PC, even better because then you can develop on the PC and deploy to phone later. If you’re using Android Java you should be able to do this.
Now, there may be the situation where you want to control the robot by means of a browser where the “web server” is actually running on the Fez and the Fez is serving up “real” HTML web pages. This can be done, but I won’t recommend it. Your time is better spent creating a good services interface on the device and use a rich platform to do the GUI and let the two talk to each other.
There are lots of ideas in Microsoft Robotics Studio to do this kind of thing.