This project is read-only.

DotSpatial.Desktop re-organizing.

Sep 20, 2010 at 5:11 AM

The steering committee has been strongly advocating some serious re-naming and re-factoring of the code that makes up DotSpatial.Desktop.  It was part of the plan from day 1, but just hadn't had a chance to happen yet.  The "Drawing" layer is now its own project (DotSpatial.Symbology) and the Windows.Forms dialogs and controls associated with symbology make up their own project (DotSpatial.Symbology.Forms).  The naming pattern is being repeated for other parts of the project.  DotSpatial.Projections and DotSpatial.Projections.Forms, etc.  

Anyway, at least the entire solution compiles, but I tried to open a symbol dialog on a feature and it threw an exception related to the message resources or something.  So basically I still have some debugging left to do and there are still some classes left to move around.  Therefore, I have temporarilly created a new branch called SymbologyRefactor.  If you work with the default tip, this huge effort of refactoring is not merged in yet since it is broken.  However, if you are interested, you can take a peek at the new organization.  The empty project DotSpatial.Tool represents a hypothetical effort of the future to achieve a tool/modeling business layer that is separate from the System.Windows.Forms gui controls.  It won't work with the current design, so that's still on the drawing board for a future task.  Also everywhere else, the naming of Symbology.Forms are forms that depend on and interact with the business logic from Symbology.  The case of Tools, however, we have the extension project with the actual tools themselves, rather than the definition of an ITool or any tool/modeling business logic.  It wouldn't have fit the patter to have DotSpatial.Tools.Forms since if anything the dependency goes the other direction.  Intead, I decided we could use the singular case:  DotSpatial.Tool.Forms and eventually if we ever get some non-windows forms business logic going it would belong in DotSpatial.Tool.  This awaits committee discussion however, and should be thought of as a place holder.