I'm researching about technologies (around Microsoft tech) to create mapping application and would like to have advice/suggestions.

Brief requirement to build mapping application with Microsoft Platform:

  1. Adding Pins on the map.
  2. Clicking on the pins to get more information as popup.
  3. There may be links connecting to various pins (i.e. shortest connection, and not actual physical representation of path on the map). In some near future there may be requirement to represent actual physical path between two pins.
  4. Clicking on the link to get more information as popup.
  5. Base maps can be hosted externally or internally.

Which base map source can a good candidate for any apparent reasons? (i.e. Google, Bing or OpenStreetMap).

Suggestions for API/Controls for creating web application using ASP.NET or Silverlight app or windows based WPF application.

How GeoServer or MapServer can be useful in for such applications?

Suggestions for other notable tools/API/controls for designing such applications

  • 8
    Think there is more than one question in there... – Mapperz May 16 '11 at 14:00

I like Esri's ArcGIS API for Microsoft Silverlight/WPF, and also the ArcGIS Viewer for Silverlight.

You can use Bing with these, or base maps from ArcGIS.com.

Also, consider using SQL Server 2008 with Sql Server Management studio to prototype spatial sql queries. Isaac Kunen's blog is a good resource. Best when used with the Sql Server Spatial Tools from codeplex.

Spatial types are also supported on Sql Azure.


The Bing Maps Silverlight control would meet all of your requirements above. One thing worth noting that if you wish to serve your own tiles, you are confined to the Web Mercator spatial reference. Also, if you plan to render a significant amount of vector data (lines,polygons) with complex symbology, the Silverlight control is limited in its capabilities.

SharpMap is another viable option if you are looking to stay within .NET. It is quite robust, and would allow you to incorporate the major spatial data formats in your application.


You can use a Google API (and probably Bing API) to provide the dots on a map and the clicking for more information. However it will probably be easier to use OpenLayers, as then you can move from one map provider to another with out having to start again. You may well want to make use of WFS-T to handle adding points to the system, this will allow you to hold the data in your own database.

If you choose to host your basemaps internally then you will need to set up a map server, you can start with GeoServer or MapServer for free or pay out for ArcServer. I'd recommend that you set up the system using Open Standards (WMS, WFS, WFS-T) so that you are not tied to one particular vendor and can move from server to server as your needs dictate.


I started to play around with some open source technologies to do something very similar.

Viewing side there is http://deepearth.codeplex.com/ which is very similar to the bing silverlight control.

I used postgis as the database and used the .net Entity framework to genereate code that could be used on the ASP.net side to handle the features.

There is also some good work being done http://dotspatial.codeplex.com/ which may help in some part of your solution.


Falling into the other tools category - Microsoft are bringing spatial types into their Entity Framework. This is their object-relational mapper, and adding spatial types will allow you to make spatial queries using LINQ without having to worry about the database or SQL e.g.

var distances = from s in db.Stores
                select s.Location.Distance(anotherLocation);

MapDotNet from ISC is one of Microsofts highest recommended solutions. Silverlight based on lots of room to grow.


For a highly interactive web app, I would recommend using ESRI's Silverlight API for ArcGIS Server.

Not the answer you're looking for? Browse other questions tagged or ask your own question.