Documentation for Programmers

DotSpatial Programmer Tutorials

DotSpatial SDK Style Documentation

Developer Getting Started Guide

  • The Getting Started Guide was written in 2009 and is partly out of date. It could help get you started with the basics of dragging and dropping controls as well as controlling symbology. Any references to "MapWindow.dll" should be replaced with DotSpatial.

Library Specific Documentation

Documentation for Code Contributors

 The design architecture of DotSpatial follows two paradigms.  The first is to separate the graphical user interfaces from the business logic.  The second is to use a larger number of modules to increase code reusability, and allow access to parts of the framework without requiring the entire thing.  However, great energy is being spent to ensure the libraries work as well together as if they were all part of the same framework. Additionally, see the specific resources for users and code contributors below. 

Which Libraries Have Documentation and Are Available For Download?

The goal of the DotSpatial framework is to increase code re-usability by subdividing a fully working GIS framework down into smaller, specialized components.  Part of that process involves the separation of the System.Windows.Forms dependent GUI layer from the business layer.  The major libraries are shown below.
Framework Libraries
Namespace Contents Available Docs
DotSpatial.Analysis WhiteBox and some functions from MapWindow    
DotSpatial.Data Data access objects for FeatureSet, Raster, & Images. 
DotSpatial.Data.Rasters.GdalExtension optional GDAL support for image and raster files.  
DotSpatial.Modeling Place holder for non-GUI modeling code    
DotSpatial.Positioning GeoFrameworks 2 and GPS.NET 3  
DotSpatial.Projections Proj4 
DotSpatial.Serialization XML serialization code for saving projects.  
DotSpatial.Symbology Layers, Cartographic Symbolizers  
DotSpatial.Topology NetTopologySuite/JavaTopologySuite Topology methods.


Graphical User Interface Libraries
Namespace Contents Available Docs
DotSpatial.Controls Map, Legend, Ribbon, Toolbox, Layout etc.  
DotSpatial.Data.Forms Data Dialogs or Open File dialog methods   
DotSpatial.Modeling.Forms Modeling controls, tool dialogs, and dialog elements  
DotSpatial.Projections.Forms Windows Forms Dialogs related to projections  
DotSpatial.Symbology.Forms Windows Forms Dialogs & components for symbology  


Last edited Apr 19, 2014 at 4:48 AM by mogikanin, version 92


gis4sd Feb 9 at 6:55 AM 
gis4sd Today at 2:54 PM delete this comment
Thank you very much.
Wish dotspatial go up and up.
And if it is posible, please update document to fit the recent version.

subsci Sep 10, 2014 at 12:30 AM 
Why should I use dotSpatial rather than GRASS? GRASS is coded in C/C++ and I can certainly handle that, and that's deep. GRASS seems to be sustainable, but not dotSpatial. Even MapWindow seems to be down the tube. But I want to use MapWindow because uses it. But waterbase (substitute for ArcSWAT) uses a 4.8.x version of MapWindow.

bennywolf Jun 29, 2014 at 8:42 AM 
I found that the scale factor and gird convergence of a specified point are not calculated except LambertConformalConic.OnSpecial. Is there any plan to implement other project method?

jeddiwissam Dec 3, 2013 at 11:21 AM 
where i can find the dotspatial web controle librery for web application

Joska Sep 17, 2012 at 1:34 AM 
How to Setup the Tool Manager

i did this and some searching on the forum and the tools didnt appear.... is it cause im using 2010 express?

Joska Sep 5, 2012 at 6:53 PM 
In my opinion the programm deserves a more up to date step by step to set the most used items up.... so man things arent as obvious as you may expect.... when in fact they are...

I for now am very busy to understand why I couldnt install the toolbox... its a lot of work to understand every next step... some things are obsolete, most examples out of date or written in csharp or many easy assumptions are made in examples.....

matspca May 13, 2012 at 4:53 PM 
I am going to attempt to make the data model persistent using VelocityDB. Any suggestions for how to start this task and how to stay up to date with new versions of dotspatial? Essentially XML serializtion would no longer be needed. VelocityDB persistence is way more efficient and can happen while working on a project automaticly. I am brand new to this but I have clients who wants this functionality with persitence in VelocityDB. Any suggestions are welcome. Send to

mudnug Apr 30, 2012 at 9:24 PM 
Note that the first video is very much out of date, but there are some newer tutorials at

DruidGetitfixed Apr 16, 2012 at 11:00 PM 
Please, please, please add some more videos. Preferably with a step or two beyond where these get to and with a little more explanation of why things are done the way they are. These are so useful in understanding the relationships between the various elements of the DotSpatial framework and the intentions of the designers of how they are meant to be used.

mudnug Feb 4, 2011 at 4:06 PM 
Here are a few videos to help you get started with the Dec 15, 2010 release.

Creating a new project and getting the visual components and references wired up in Visual C# 2010 Express (except Tool Manager).

How to add DotSpatial controls to Toolbox

How to Setup the Tool Manager