DeepEarth will become an innovation centre for controls, libraries and services for use on any Silverlight mapping platform.
DeepEarth began as a project for likeminded developers to explore what the power of Silverlight, DeepZoom and Maps could do. Huge contributions from developers like Shaun, Rick and David created an innovative open source map control with many components. At Christmas 2008 we produced a V1 release and followed up with a V1.1, many developers have downloaded and used the control with successful results. But a few things happened in March this year which stalled the project:
- Microsoft released Silverlight 3 preview
- Microsoft release the Virtual Earth CTP Silverlight control
- ESRI released a Silverlight control
None of these were unexpected but certainly these made me think about what would be best for DeepEarth and developers wanting to contribute to this space. Some lessons I have learnt over the life of the project:
- The project must be very simple to get running on your machine, tokens, source safe files and many web projects makes this tricky.
- For people to easily contribute a few days of their valuable time the solution needs to be easy to understand or else all effort is used in just getting to terms with the existing code.
- People want to contribute code, more flexibility is required in giving write access (Developer Role)
- Everyone's time is precious and although we enjoy coding new exciting silverlight controls it often takes a back seat to other commitments.
- Commercially it is impossible to use an unsupported open source control for production environments
Firstly we won't be abandoning the existing control, it still is the only open source Silverlight map control available. Rather we will be componentizing the reusable controls and code and moving these into separate generic controls with implementations for other Silverlight map controls, for example the Microsoft Virtual Earth CTP Silverlight control.
Each control will be its own project within the solution, with the ability to add implementations for any Silverlight map control developers want to use. This modular approach solves many problems:
- Developers can pick and choose what they want to use from the project for their solution
- It will be very easy to contribute a new control or enhancement to an existing control
- Developers can choose which base map control suits there specific needs and still use rich common controls.
- We can provide a Silverlight 3 branch of controls.
Secondly I'm please to announce we have a commercial partner that will be providing enterprise level testing, documentation and support around this project. More details to follow on this but essentially controls developed here will be refactored, documented, unit tests created and then published back to this project under the Microsoft Public License (Ms-PL).
Lastly I have a list of the current control and some more I've been working on that will make the initial base of the project.
- Navigation Control
- Co-ordinate Control
- Layer Control
- Digitizer (drawing) Control
- Timeline Control
- Collaboration Control
- Mini-map Control
- WMS Control
- Pins, Polygons, Poly-lines
- GML Serialization (SQL2008 integration)
- Tile Providers
- Tile Cache Handler
Over the next few weeks there will be some restructuring here, I'd love to hear your feedback and constructive criticisms.