Not knowing your budget i'll try to give you options.
First thing is you're not going to find an SDK/API that you can do all of the things you mention. It's going to take a combination of technology and customized programming to make it happen.
1) GeoDatabase:
Start out with a GeoDatabase you can store all the collected data in.
You have Oracle Spatial, MS SQL spatial, among others but my favorite-which happens to be free and open source, PostGIS.
2) WEB Data Services:
You can serve out the data via geo-web services in standardized REST, GeoJSON and SOAP protocols. These will create the layers of data your application will be consuming. The Microsoft (big daddy) of them all would be ESRI ArcGIS Server. But I prefer GeoServer or Mapserver again, free and open source.
3) Visualization:
Your going to need an API to visualize your data. There's got to be endless possibilities. Google Maps, Bing Maps, ESRI Javascript/flex/flash and other apis, and my favorite OpenLayers. Your guest it, free and opensource. And these are only the web-based mapping API's you have a slew of other OS install-able options.
4) Authoring:
To help in editing, creating, viewing your data you'll need an application for that. The framework you choose might dictate this though. If you go with ESRI products you'll probably find yourself using Arc-XXX (arcmap, arcscene,...) products. But if you go the opensource free way you could use QGIS among others.
5) Customization:
Once you have all these tools you can use their API's to do what you need. You'll probably use at least a dozen other tools such as GDAL, JQuery, Python APIs, C# APIs to do what you want. But it's going to take baby steps.
Truth is: It can take you a while to get a hand of everything. I imagine learning the GIS as you go is going to slow down progress significantly. You're bound to make rookie mistakes. But if you don't have a timeline and this is more of a learning process go for it! If you have a budget thought, you might want to consider hiring someone to help you out. There's a lot to projections, datums, routing networks and just GIS in general. You'll need to get a grasp of the Geographic part in G.I.S. to do a good job.
Hope this helps your journey of building what sounds to be a great app.
You need to specify an object id column! If you don't have one on your table, you need to add one (UINT).
You need to check your connection string. Is your SQL-Server instance really "YOUSSEF-PC\SQL"?
You can test if your connection works by invoking
System.Diagonstics.Debug.Assert(vly.GetFeatureCount() > 0);
Do you have geometry of geography objects in your table? If they are not geometry, you need to specify that in the constructor like
VectorLayer vly= new VectorLayer("vly", new SharpMap.Data.Providers.SqlServer2008(connstr, "quartier", "shape", "oid", SqlServerSpatialObjectType.Geography));
Best Answer
I am currently using SharpMap for Winforms Desktop App written in C#. I use sharpmap to display ESRI shape files.
The sample application is pretty good. Not sure how accurate distance calculations in SharpMap are but seems fine. Probably depends on your GIS base files.
A fair assessment is that the documentation is fair to poor. But its written in C# which is a big help when you debugging issues.
I wish the project was more active.