resistance is obsolete ™ ;-)
the groupware construction kit

Developing OpenGroupware.org

Your language is not listed here? Let us know! Focusing on standard protocols and being compatible with ANSI-C, OGo services provide a very high compatibility with almost any language environment.

Most of OpenGroupware.org is written in a language called Objective-C, or in short, ObjC. ObjC is a very simple object oriented extension to ANSI-C and features Smalltalk OO at ANSI-C portability and speed.
Using Objective-C you can tweak almost any aspect of OpenGroupware.org.

Python is the scripting language of choice of the OGo core developers and most scripting examples are in implemented in that language. In turn Python is well supported.
Access to OGo XML-RPC services is trivial from Python and in turn from Python based environments like Zope or Plone.

You can access OGo services using XML-RPC from ANSI-C. On the other side you might consider learning ObjC (~1 day task for a developer fluent in C) and get access to the full OGo environment.
In addition its easy to wrap OGo Objective-C classes in ANSI-C APIs in case you are restricted to use "pure" C.

No specific APIs are currently provided for C++. As usual you can use WebDAV or XML-RPC interfaces to access OGo groupware services, and this is the way how C++ applications like KOrganizer access OGo.
Notably on MacOSX and with upcoming GCC versions on other environments, there is a new language called ObjC++ which integrates Objective-C with C++. This provides seemless access to OGo classes from C++.

.NET, and especially Mono project, are considered important at OGo as they are attempting to be a "Java done right". Using IKVM, access to all OGo Java APIs is ensured and using IronPython, Python instructions apply as well.
Finally, Adam Williams is working on direct support for Mono using a C#/GTK# frontend for OGo.

Be the first to provide OGo related Ruby information! :-) So far we have no Ruby specific instructions, but the regular integration and access technologies should apply for Ruby. That is, use an Ruby XML-RPC client to access OGo services or integrate webpages written in Ruby from SOPE/OGo HTML components.

Of course Perl can seemlessly access all the functionality of OGo provided by the shell tools. In addition Perl supports XML-RPC very well and OGo provides examples for that.
As a matter of fact its simple to integrate existing Perl based dynamic webpages into OGo WebUI.

Various examples are provided to show how to access OGo services from PHP using the XML-RPC interface. Adam Williams has stepped up to wrap the raw XML-RPC calls into a convinient PHP API called POGI.
If you have existing PHP webpages you would like to integrate or if you want to enhance OGo WebUI using PHP this is easy to accomplish with SOPE.

OGo provides broad Java support and the future will bring even more. Besides examples of Swing applications, SWT applications and Portlets, the JOGI API wraps the OGo XML-RPC server into convinient Java objects.
In the future JIGS will be used to provide Java access to all OGo objects (on MacOSX you can use the Apple provided Java/ObjC bridge).
Finally you can easily integrate JSP's and Servlets into the OGo WebUI to integrate existing applications or to enhance OGo using Java.

A lot of OGo services can be accessed from a Unix shell, either using specialized commandline tools or using the excellent xmlrpc_call tool which allows you to invoke OGo XML-RPC services from the shell.

As with the other languages, OGo services can be accessed using either WebDAV or XML-RPC from Basic environments like VisualBasic.
In addition you can reuse APIs provided by the C# effort in case you are using VisualBasic for .NET (or the Mono Basic compiler).

whyclose

We welcome your feedback!
Trademarks.  
This site is sponsored by
SKYRIX Software AG
ZideOne GmbH
MDlink