I went through this before for me it was a 4 tiers application:
- Database, I used Sql Server 2008 Spatial Database.
- Map Manager application, its main objective is to import the spatial data from different sources into the sql database, and other minor objectives like (styling the map objects, edit visible zoom level of objects, ...)
- WMS, a RESTful wcf service that renders the tiles.
- Map Client Control, a silverlight control that renders the tiles from the WMS.
You can find a lot of resources on the web on how to manipulate the spatial data (read, write, search...) and for rendering tiles I used the Bing Maps Tile System
http://msdn.microsoft.com/en-us/library/bb259689.aspx
And what remains is just the implementation,
- The Map Client Control requests a tile from the WMS.
- The WMS calculates the tile boundaries and retrieves the spatial data within these boundaries and render them on an image and returns it to the client.
- The Map Client Control is responsible for layouting the tiles, zooming, panning...
You can cache the rendered tiles by implementing some cache techniques.
And finally I wish you good luck.