Nov 16, 2009 at 6:31 AM
Edited Nov 16, 2009 at 6:33 AM
This will be a breaking change in the source control with the end results being a nice seperation between the DE Map control and the DE Toolkit.
1. Proposed file structure:
--Compiled dlls, proj.net, SL toolkit, Microsoft.Maps.MapControl etc.
So we have three main folders, the core DeepEarth Maps, the toolkit and third party dlls or Silverlight ports.
Controls in the Toolkit will either be map agnostic, (eg ColorPicker), OR live in a folder based on the map they work with eg Digitizer just works with Bing currently.
Mostly the same but toolkit can drop the extra namespaces eg:
DeepEarth.Client.Controls.CoordinatePanel.BingMaps namespace for the Bingmaps version of the CoordinatePanel control is over the top, just be DeepEarth.Client.Controls.BingMaps as a namespace, assembly would become DeepEarth.Client.Controls.BingMaps.CoordinatePanel
DeepEarth.Client.Controls.CoordinatePanel.DEMap namespace for the DE map version of the CoordinatePanel control would be DeepEarth.Client.Controls.DEMap as a namespace, assembly would become DeepEarth.Client.Controls.DEMap.CoordinatePanel
Example of a map agnostic control:
DeepEarth.Client.Controls.ColorPicker.ColorPicker would be just DeepEarth.Client.Controls.ColorPicker.
3. Drop abstract class in toolkit controls
Although it was kind of neat it just created a bunch of complex plumbing, we will have duplication for controls but it will be super easy for anyone to come and understand it or use it for the map they are interested in. eg for DEMap you just add the DEMap
version of the dlls, 1 dll per control but pretty easy for us to combine into one dll at release time if we feel it is nicer.
4. Replace all references to Microsoft.Maps.MapControl.Map with Microsoft.Maps.MapControl.MapCore
5. Move the custom styles for each control (DeepEarthDark) into each generic.xaml template
The idea here is that out of the box each control looks really good with needing to reference the SL toolkit and include a massive theme xaml. Overall if you're useing all the controls this may be ever slightly larger but allows us to keep each control seperate
and easily maintained by its owner.
Let me know if there is anything else you feel should be done at the same time or any comments or suggestions. I want to get this done by the end of the week.