This project has moved and is read-only. For the latest updates, please go here.

Getting HydroDesktop, Presentations and Publications, Functional Specifications, Database Structure, Sample Data, Workshops and Training, Current Task List

Mailing list

When you begin development of code for Hydrodesktop, please sign up for the developer mailing list:

Also, watch the codeplex discussions

HydroDesktop Developer Documentation

coding practices

Testing Procedures for HydroDesktop

Creating Custom Extensions or Plugins for HydroDesktop

  • There are 7 simple steps to create a plugin or extension for HydroDesktop:
  1. Download HydroDesktop and install it. It is preferable to have the latest version. You may already have it on your computer. Check the downloads page on this site.
  2. In Visual Studio create a new project of type "Class Library"
  3. Add references to the DotSpatial GIS libraries that are in your HydroDesktop folder. At a minimum you will need to add references to DotSpatial.Extensions and DotSpatial.Controls. 
  4. Set the output build path for your assembly to the folder for the plugins in your HydroDesktop directory. For real time debugging capabilities, you can also set the Start Action (in your project properties) to "Start external program" and choose your HydroDesktop executable to be the start up program.
  5. Implement the class, 'Extension' in the main class of your extension.
  6. Add code to the "Activate" and "Deactivate" methods in your class.
  7. Do something cool. 
  • Somewhat more detailed steps are given together with an example plugin for importing a text file here: How to make a plugin.
  • A sample solution for the above tutorial is available here: Hello World Data Importer
  • A very simple hello world sample plugin project with source code is here: Hello HydroDesktop
  • Much of the power of a HydroDesktop plugin comes from using and accessing functions in the map environment. Go to the documentation page on to learn more.

HydroDesktop Coding Conventions


  • HydroModeler is a plug-in to HydroDesktop that allows for component-based modeling of hydrologic systems that is being prototyped by researchers at the University of South Carolina. The emphasis of HydroModeler is on standards-based data transfer between the HIS and models using the Open Modeling Interface (OpenMI).  The motivation for HydroModeler is to provide an environment that supports community-based model development.  To learn more about HydroModeler, please see the HydroModeler help files installed with HydroDesktop or email Jon Goodall ( 


Quick Links

Getting HydroDesktop, Presentations and Publications, Functional Specifications, Database Structure, Sample Data, Workshops and Training, Roadmap, Use Cases, Unit Tests, HydroDesktop Testing Report

Documentation from Older Versions

  • HydroDesktop_Quick_Start_Guide.pdf - With a 15-minute walkthrough, this document illustrates how to discover, access, visualize and export hydrologic time series data using HydroDesktop. If you are a new HydroDesktop user, read this guide to get started.
  • Unpublished Web Services Tutorial.pdf - This tutorial will help you access web services from a HydroServer not registered with HIS Central. (also available as .docx)
  • HydroDesktop Workshop Exercise - This more advanced exercise was developed by Tim Whiteaker and includes two parts - using HydroDesktop to search and download data, and also using the R plugin in HydroDesktop


Project Files (dspx)

Automated Build artifacts

Mac Build

CZO Desktop Build

For coding conventions, please see the MapWindow conventions at

When you're ready to write help documentation, please review the instructions in Documentation\OnlineHelp folder in the repository.

Search and Discovery Tool

Here is the source code for the Search and Discovery Tool that James Seppi developed and Zichuan Ye improved:

Logos and Icons


Last edited Jun 25, 2014 at 12:52 AM by jirikadlec2, version 36


No comments yet.