SharpMap WPF - back again...

Topics: SharpMap Project, SharpMap v2.0
Mar 12, 2008 at 9:07 AM
Hi all.
After quite a long break, I'd like to re-engage the WPF front end development effort
As I understand from some remarks stated in the dev meetings IRC logs, the general direction, from project structuring point of view, is to have a separate project for the full blown technology specific controls.
This, and the various challenges involved in implementing the WPF front end, made me think of creating a dedicated CodePlex project for WPF controls suite based on SharpMap 2.0 engine.
The objectives of such a project would be more then just providing rendering/presentations onto a WPF based UI, but also to create a full range of controls supporting editing, data binding, skining etc...
The initial design goals are:
  1. To provide an easy to use, easy to learn developer friendly mapping toolbox for WPF (perhaps the best single reference describing what "easy to use" control is, and how to implement it is http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756)
  2. To be conceptually and technically compatible with SharpMap 2.0 design and API
  3. To be consistent and compatible with WPF control design spirit, in particular:
    1. To support WPF content model (e.g. being able to put a WPF control with specific geographic coordinates onto the map control)
    2. To utilize WPF framework services wherever possible instead of coding "home made" solutions
    3. To support pervasive data binding
    4. To support styling and templating
    5. To be markup friendly

Perhaps it's worth noting that the above list is not very trivial to achieve, and more then once I've encountered a point where the desire to remain consistent with the technology agnostic SharpMap design stood against the will to have WPFish control. A specific example will be presented in a separate post.

By now, I'll be glad to have your opinions, remarks, etc... regarding the engagement of the new project, and if all goes well, it should be up and running by the end of the week.
B.
Coordinator
Mar 15, 2008 at 6:16 AM
Hey blackrussian -

I'm glad to hear from you again. Your work is greatly appreciated.

I fairly well agree with every point you make. In general, matching a renderer and presenter pair to WPF should adhere to the design principles and construction of WPF. Of course, in order for SharpMap to be general purpose, some trade offs might have to be made.

I have no objection to a separate project to host the WPF renderer and presenter. Eventually, the SharpMap team may want to include a WPF renderer / presenter as part of the main project, for consistency and ease. I can't say for certain, however, and if it makes the most sense to start a separate project to foster the development, I say: go for it!
Apr 25, 2008 at 12:21 AM
Hi codekaizen and thanks for your replay.
If no objections found - time for the work to be done!
So you're all invited to visit http://www.codeplex.com/WpfSharpMapControls, share your thoughts, comment on the design, join the effort etc...
See you there,
B.
Developer
Apr 28, 2008 at 4:56 PM
Hi blackrussian,

I added your project to my rss reader :)

There are some others around SharpMap that are also intereseted in WPF, like PR, myself, and Hai, who contributed a DeepZoom type WPF viewer:
http://www.codeplex.com/SharpMap/SourceControl/PatchList.aspx

Your work is also relevant for the Silverlight controls we would like to build for SharpMap. I am particularly interested in performance issues with WPF. Simply rendering vectors as WPF Shapes is very slow so I am looking into faster alternatives. I hope I can find the time play around with your controls soon.

Paul