Announcement

Topics: General Topics, SharpMap Project
Coordinator
Apr 18, 2011 at 3:39 PM
Edited May 29, 2012 at 3:13 PM

Dear SharpMap community,

a core of the SharpMap development team has met last thursday (04/14/2011) in Amsterdam to discuss further sharpmap development.
This is what we agreed upon:

  • Ensure all configurations of the current SharpMap v0.9 solution build and pass test. Tag current version of trunk
    [DONE]
  • Remove VS2005 and VS2008 project and solution files and maintain only VS2010 solution.
    [DONE VS2005]
  • Remove SharpMap.UI.Web controls in favor of an OpenLayers with SharpMap based WMS server approach (Diego).
  • Switch target framework to .Net 4.0
    [DONE]
  • Integration of GeoAPI and NetTopologySuite
    [DONE]
  • Remove reliance on System.Data et. Al.
  • Replace ProjNet reprojection library with DotSpatial.Projections.
  • Merge functionality from v0.9.5-Deltashell to trunk.

In order to streamline this process we agreed on IRC/Skype meetings, which - I am afraid - have not been scheduled yet. There is also a strong interest in repeating personal meetings on a regular basis.

We sure could use a helping hand. Anyone that feels he can provide some input on one or the other topic is encuoraged to speak up.

FObermaier

Coordinator
Apr 18, 2011 at 6:58 PM

This sounds really good, please make a schedule for upcoming meetings, I'm interested in participating.

Should this list of work-items be moved into the Issue-list?
I'll see if I can find time to take on some of the task..

Developer
Apr 18, 2011 at 7:14 PM

How 0.9.5-Deltashell branch and trunk differs? 

 0.9.5-Deltashell looks very promising (with GeoApi/NTS integration, advanced functions, spatial tools), with some lacks on data providers (i.e. SqlServer2008 - that looks not so hard to convert from trunk to branch). I've take a brief look, and UI windows controls looks very different, I'm wrong? Other major changes?

Maybe someone that kknws well the story of sharpmap development can explain better how different versions of sharpmap are different one from each other. 

Thanks.

Editor
Apr 19, 2011 at 2:30 PM

Hi!

Great news (especially "Remove reliance on System.Data et. Al"). Please let us know if and how we can help!

Goran

Coordinator
Apr 19, 2011 at 2:50 PM

0.9.5-Deltashell is really a major refactoring and extension of 0.9.5. Features implemented are:

  • Switch to use IFeature in vector and raster data sources
  • Refactor IDataProvider into IFeatureProvider
  • Implement rendering of layers into their own image and then merge them in Map
  • Added convept of Coverages and use it for rasters and data defined on a set of features (FeatureCoverage) or on networks (NetworkCoverage)
  • Make object model of SharpMap eventable (PropertyChange, CollectionChange) - really simplifies life for desktop apps
  • Themes are refactored into: ICategorialTheme, IQuantityTheme, IGradientTheme
  • Mapping themese to XML (custom scheme, migrate to SLD in the future) 
  • Use geometries from NTS
  • Add custom renderers
  • Almost full-featured vector feature editor, including topological relations between featurs
  • Implemented MapControl + MapTools (Strategy pattern)
  • Added test coverage a bit here and there (Open .sln and then run all tests, by the way all forms can be skipped by putting empty build.server in C:\ :)
  • ... don't remember all, actually the whole branch is a work of group of developers at my company

In my oppinion there should be the following steps done before merge, I will try to do them asap:

  • Make sure that the latest version is on CodePlex
  • Try to make it independent from PostSharp (compile-time)
  • Move Coverages into .Extensions for a time being to avoid references to DelftTools.Functions (maybe too complex for now, need to be cleaned-up and separated into API and implementation first, I plan to do it for/at FOSS4G 2011)

I'd suggest that people open .sln file in branch and play a bit with it, look at the all tests first (with resharper), source code. Then maybe it will be even easier to just clean-up the branch and merge trunk changes into it instead of merging branch into trunk. And then rename it to trunk. Depends on what the rest of people are thinking and effort required.

Gena

Developer
Apr 19, 2011 at 3:17 PM

I'm playing with the branch code and looks very powerful, although I'm experiencing some limitations (as example: select tool is broken if vector layer define a CoordinateTransformation).

I've made some simple experiments (SqlServer2008 provider, a WmsTileSource and other small fixes), I hope that you can upload to codeplex the latest version soon :)

Coordinator
Apr 19, 2011 at 3:38 PM

I will try to work on it a bit this weekend. I'm a bit puzzled right now about how to maintain it in a bit longer term. E.g. things like DelftTools.Utils.

---

With DelftTools.Functions and DelftTools.Units I think maybe to release it separately as e.g. NScience, NScience.Units. It is really about MultiDimensionalArrays, Units of Measure, Variables and discrete vector-valued Functions http://mathworld.wolfram.com/VectorFunction.html :) ... think about is as a multi-dimensional dictionary + units + information about interpolation. See also CDM: http://www.unidata.ucar.edu/software/netcdf-java/CDM/index.html.

I made ICoverage extend from IFeature and IFunction, but IFuntion interfaces feels way to heavy right now. We plan to write a paper for FOSS4G about it with SiggyF. Then it will be an opportunity to refactor it a bit and split things so that IFunction (IVariable ...) will be much more lightweight.

Coordinator
Apr 20, 2011 at 7:24 AM
With DelftTools.Functions and DelftTools.Units I think maybe to release it separately as e.g. NScience, NScience.Units. It is really about MultiDimensionalArrays, Units of Measure, Variables and discrete vector-valued Functions http://mathworld.wolfram.com/VectorFunction.html :) ... think about is as a multi-dimensional dictionary + units + information about interpolation. See also CDM: http://www.unidata.ucar.edu/software/netcdf-java/CDM/index.html.

I made ICoverage extend from IFeature and IFunction, but IFuntion interfaces feels way to heavy right now. We plan to write a paper for FOSS4G about it with SiggyF. Then it will be an opportunity to refactor it a bit and split things so that IFunction (IVariable ...) will be much more lightweight.

I think of releasing DelftTools.Functions and DelftTools.Unit into some sort of public repository is a necessity if we want to move that branch to trunk. So even if it is not my decision, I would definately appreciate this.

Another problem that must be considered is how enhancements on Deltares side will be maintained in this repository or the other way around.

Cheers FObermaier

Developer
Apr 23, 2011 at 1:49 PM
Edited Apr 26, 2011 at 6:34 AM

a little sidenote: can be useful to share some resharper style settings, to apply to all code in trunk, so different people of the team can share the same style when working in the project.

as example: http://stylecopforresharper.codeplex.com/

and http://stylecopforresharper.codeplex.com/wikipage?title=InstallingTheReSharperCodeStyleSettingsFile&referringTitle=Home

PS: of course this can made after all the merges in the trunk

Editor
Apr 25, 2011 at 4:16 PM
FObermaier wrote:

"Remove SharpMap.UI.Web controls in favor of an OpenLayers with SharpMap based WMS server approach (Diego). "


Hi Fobermaier

It's sad to hear that.

How is this approach going to be ? Have you have thought about a MapSui approach ?

Developer
Apr 25, 2011 at 6:20 PM
carjona wrote:

How is this approach going to be ? Have you have thought about a MapSui approach ?

mapsui is a silverlight vizualizer, heavily based on brutile, so actually you can already use sharmap (as wms server) with mapsui, simply adding a TileLayer with a WmscRequest, or something similar, I don't remember well all the mapsui API... :)

so why are your doubts about removing Web.UI? I can try to build a openlayers demo that shows how powerful can be an approch based on openlayers on client-side and sharpmap only server-side.

Editor
May 3, 2011 at 1:20 PM

Diego:

It's not doubt, only that I like the Web.UI Ajax version and had some projects working on it.

But I understand that the WMS approach with OpenLayers is better and can be more powerful.

I'd like to see your demo and learn from it.

 

May 7, 2011 at 3:49 PM

Hi - I'm interested in using and contributing to this project, but I'm confused about the versions. Should I be working on v0.9x or v2.0?

Developer
May 8, 2011 at 8:22 AM

this talk is about v0.9x version, that we hope do become v1.0 soon :)

Jun 3, 2011 at 4:28 PM

The http://dotspatial.codeplex.com/ team is going to be releasing Projections as a nuget package (see http://nuget.org/). Currently that nuget package targets .Net 3.5

Also, the symbols will become available at http://www.symbolsource.org/ so you can step through the code without worrying about downloading and compiling the source. (See http://blogs.msdn.com/b/camerons/archive/2011/04/01/debugging-series-symbol-server.aspx)

Perhaps this will help with your linking effort.

Jun 17, 2011 at 6:40 AM
FObermaier wrote:

Dear SharpMap community,

a core of the SharpMap development team has met last thursday (04/14/2011) in Amsterdam to discuss further sharpmap development.
This is what we agreed upon:

  • Ensure all configurations of the current SharpMap v0.9 solution build and pass test. Tag current version of trunk
  • Remove VS2005 and VS2008 project and solution files and maintain only VS2010 solution.
  • Remove SharpMap.UI.Web controls in favor of an OpenLayers with SharpMap based WMS server approach (Diego).

FObermaier

Hi,

I just stated to use SharpMap is ASP.NET pages. When you say you will do way with "SharpMap.UI.Web controls" - what should I avoid using?

 I am following the code from \sharpmap-89801\Trunk\DemoWebSite\Simple.aspx.cs. 

My web.config has the code  -  <add verb="*" path="GetMap.aspx" type="SharpMap.Web.HttpHandler,SharpMap" />

 

I have not used any AJAX code.

Please let me know what route I should take?

 

Developer
Jun 17, 2011 at 6:45 AM

My2Cents: use OpenLayers or "similar code" (leaflet, polymaps, modestmaps, and so on) clientside and use SharpMap only server-side as a "map provider" via WMS protocol.

You can find a very limited (for now, I hope) sample in the trunk/demo folder

Jun 17, 2011 at 8:18 AM

Thnaks for the quick reply.

I have invested quite a lot of time on this project. I think 0.9 version has the functionality to support my client's needs. Since WMS example code is lmited, at this point . I will have difficult time to complete this project on time.

Will the Web controls be removed completely from the the 0.9version also? Or just future developement will be stopped i.e version 2.0 & so on?

Developer
Jun 17, 2011 at 8:30 AM

Actually all the documentation you need is on the openlayers website.

The only improvement I wanna develop in the future is to let SharpMap Wms handler support also GeoJSON. 

So we can use openlayers and polymaps to render vector data in a easier way.

Jun 17, 2011 at 8:43 AM

openlayers and polymaps - Both use Javascript. Not sure if my client to agree to the usage of Javascript.  Anyways you did not answer my question  -

Will the Web controls be removed completely from the the 0.9version also? Or just future developement will be stopped i.e version 2.0 & so on?

Developer
Jun 17, 2011 at 8:50 AM
tarana wrote:

openlayers and polymaps - Both use Javascript. Not sure if my client to agree to the usage of Javascript.  Anyways you did not answer my question  -

Will the Web controls be removed completely from the the 0.9version also? Or just future developement will be stopped i.e version 2.0 & so on?

Wow, aspnet webcontrols without javascript in the clientside? good luck :)

How about your question? I don't know how to answer.

I think that no one in the sharpmap team actually is interested in Asp.Net webcontrols, but this is only a feeling.

Coordinator
Jun 22, 2011 at 4:27 PM

There is the SharpLayers project in the v2 tree, basically an asp.net control library that uses openlayers under the covers. Mostly undocumented :)

also the web layers in v2 (and also 1.1 experimental)can use GeoJson renderers  to provide data to a client side vector lib.

cheers jd 

Coordinator
Jun 24, 2011 at 1:33 PM

Are there any other developers going to FOSS4G in Denver? 

If there are, maybe it could be a good place to have a sharpmap-developer meeting?