The mission of The Carbon Project is to bring open and interoperable geospatial services to everyone.That’s a daring statement, but The Carbon Project backs it up by doing two things: First, providing new innovation to the field which will provide more accessibility and usability of open-geospatial specifications, and second, providing solutions where there are currently none.However, to be successful in our mission to bring open geospatial services to everyone, we had to face some stark realities and “buck the trend” in the open-geospatial community.This article, third in an occasional series by Nuke Goldstein, looks at offering open geospatial tools to the non-Java world.
Moving the Open Geospatial Movement Forward
The movement toward open and interoperable geospatial services is somewhat correlated with the platform war between J2EE and Microsoft .NET.It is easy to see the likeness.The open geospatial world thrives on the many independent vendors involved in its evolution and a major part of the work within the open geospatial community is done in Java. (We define the open geospatial community here as the group of organizations that have invested in the development and implementation of open standards for geoprocessing through industry organizations like OGC.Hopefully this community will grow to include anyone who uses or develops software that uses geospatial interoperability on the Windows platform.) Many of the organizations involved in the open geospatial community view Java as the only way to deliver truly "open" geospatial applications.Often it seems that the same Java-only mindset that drives the global open source movement is dominating the open geospatial community.
However, we believe that shunning the Windows user and developer communities is a major disservice to the open geospatial cause and hurts uptake and adoption of open geospatial standards.We believe this because the vast majority of PC users still use Windows and the .NET development community is a growing force in the software application world.For example, a Forester Research report from September 2004, found that .NET is now more often named the primary development platform by North American companies with more than half of surveyed organizations choosing the .NET Framework over J2EE.A key driver behind this growth is widespread use of Microsoft's development tools, especially Visual Studio .NET and programming languages like C# (pronounced "C-sharp"), the new .NET language.In fact, C# beat out Java as the preferred programming language in a recent ComputerWorld survey of developers.Regardless of which survey you believe, the fact is that there are a lot of Windows and .NET developers that need attention from the open geospatial community.We believe that providing Windows and .NET developers the tools to use open geospatial services and specifications will facilitate the creation of new technologies and innovation in the field, and ultimately push the open geospatial movement forward much faster than the Java-only route.
Facing the Reality of the Desktop
Some would argue that Java-based applications should provide a solution on any platform.Truth is, excluding web page type services, most standalone applications used on a Windows machine are based on Microsoft technology and not J2EE.Moreover, there are things in the Windows realm that simply are not "doable" in Java.For example, many existing desktop GISs are COM-based.To change, update or extend these types of applications so they can use OGC Web Services, the developer must use COM-supporting development platforms such as Visual C++ or Visual Basic.Moreover, most developers who target Windows as their platform use technologies such as COM, Win32 and .NET which are not supported by J2EE.To have this community of mainstream developers adopt a new open geospatial software technology, you must talk in their language.
CarbonTools, the free open geospatial toolkit from The Carbon Project, provides an API for open geospatial services in the language of Windows developers.The CarbonTools API fully supports Open Geospatial Consortium (OGC) specifications such as Web Map Service (WMS), Web Feature Service (WFS) and Geography Markup Language (GML), all in .NET libraries.The first version of CarbonTools was written in Visual C++ and was heavily dependent on COM, ATL and MSXML.The latest version, CarbonTools 2, available as freeware, was a complete rewrite to C# and completely based on the .NET Framework.
Gaining Much in the Transformation to .NET
There are many reasons why CarbonTools made the transformation to .NET. First, most modern PCs already include the latest .NET platform or can be easily updated online.Second, this modern and rich environment is much easier to develop on and deploy, thus enabling developers to produce interoperable components faster and with better quality.Third, .NET provides a good solution for interacting with COM modules, which enables CarbonTools to support those who have yet to make the transformation, and easily extend COM-based third party GIS.Overall, we've concluded that by switching to a full .NET solution we gain a lot and lose very little.
Growing Open Geospatial .NET Development Community
Since it was released as freeware in late January 2005, CarbonTools 2 has been downloaded almost 1,000 times.The Carbon Project was stunned by the interest and very grateful for the support.To help out, we've decided to do two things to foster this growing global community. First, we've donated 200 copies of CarbonTools and Gaia, to the Global Spatial Data Infrastructure (GSDI) Association to be included on their upcoming "GSDI-8" CD.In addition, The Carbon Project will soon launch a new free resource, The Carbon Portal, to help the growing open geospatial .NET community.Through The Carbon Portal, anyone will be able to join the open geospatial .NET community at no cost, exchange ideas, source code and find support among others seeking to advance open geospatial interoperability into "mainstream" IT applications.
In the future, I'll discuss some of the powerful applications being developed by the open geospatial .NET community, including ones using WFS and GML, some of OGC's most powerful specifications.
Information about a training course involving CarbonTools is available.