Main Page DBusSharp

From NDesk

(Difference between revisions)
Jump to: navigation, search
Revision as of 18:02, 17 May 2007 (edit)
Alp (Talk | contribs)

← Previous diff
Revision as of 18:03, 17 May 2007 (edit) (undo)
Alp (Talk | contribs)

Next diff →
Line 135: Line 135:
dbus-sharp-glib 0.3 is the current stable release for GLib integration. dbus-sharp-glib 0.3 is the current stable release for GLib integration.
 +
 +There is an archive of [[DBusSharp/Roadmap|release notes]].
==== Development ==== ==== Development ====

Revision as of 18:03, 17 May 2007

dbus-sharp is a C# implementation of D-Bus. It's often referred to as "managed D-Bus" to avoid confusion with existing bindings (which wrap libdbus).

D-Bus is an inter-process communication framework that lets applications interface with the system event bus as well as allowing them to talk to one another in a peer-to-peer configuration.

Contents

Status

This software is under development but is already used by a wide range of applications for tasks as simple as maintaining a single instance of the GUI to whole instant messaging frameworks and hardware detection APIs.

It provides a tested, high-performance bridge to and from all systems that are exposed via D-Bus, regardless of programming language, UI toolkit or license. The source code is MIT X11 licensed (Free Software/Open Source), allowing integration into other projects with very few restrictions.

The code is a clean-room implementation based on the D-Bus Specification Version 0.11 and study of the wire protocol of existing tools.

It aims for compatibility with Mono and Microsoft .NET frameworks supporting the 2.0 profile. Backward compatibility with 1.0 will not be a consideration. Ongoing work to ensure CLS compliance means that managed D-Bus can be used by any language that can target the CLR.

Cross platform support

Supported platforms

A standard build of managed D-Bus will work across a wide range of platforms:

  • x86
  • 64-bit (eg. AMD64)
  • Big endian (eg. PPC)
  • ARM (eg. Nokia 770)
  • Mono 1.1.13 or newer
  • GNU/Linux
  • FreeBSD
  • Mac OS X
  • Microsoft Windows / .NET runtime (in the 0.5 development branch)

Soon to be supported

Users

A few projects bundle the source code for managed D-Bus with their applications. This kind of arrangement can work if you're on good terms with someone who can maintain dbus-sharp, but ideally you should depend on stable releases.

Contact

Support can be found on the #managed-dbus IRC channel on irc.gnome.org

There is no mailing list or email contact address.

Bundling guidelines

"Bundling" involves including the sources for managed D-Bus in an application's source tree to avoid the external dependency.

  • Make sure the AssemblyInfo.cs files are included in the build
  • Make sure the libraries are not installed to the GAC
  • Make sure you include the same source files as used by the official Makefile and exclude other source code files that are not part of the build (eg. IntrospectionSchemas.cs and others)
  • Try to keep up to date with the latest stable releases -- stable releases contain minimal changes required to keep the libraries working well on a variety of ever-changing platforms
  • Try to provide a configure option allowing the application to be build against versions of the library in the GAC instead of the bundled versions

Packaging guidelines

  • Only package stable releases
  • Name the packages along the lines of "ndesk-dbus" and "ndesk-dbus-glib" rather than "dbus-sharp" -- the source package name will soon be changed to reflect this
  • If in doubt, follow the conventions set by the Debian packages

As a dependency

This documentation does not yet apply but will become relevant when the libraries become installable.

To determine CSFLAGS to pass to your C# compiler:

pkg-config --libs ndesk-dbus-1.0 ndesk-dbus-glib-1.0

or with gmcs:

gmcs -pkg:ndesk-dbus-1.0 -pkg:ndesk-dbus-glib-1.0 ...

To determine where .service files should be installed:

pkg-config --define-variable=prefix=$prefix --variable=session_bus_services_dir ndesk-dbus-1.0

or

pkg-config --define-variable=datadir=$datadir --variable=session_bus_services_dir ndesk-dbus-1.0

Download

See the managed D-Bus release archive.

0.4.x is the stable branch, while 0.5.x features ongoing performance, portability and thread safety work.

dbus-sharp-glib 0.3 is the current stable release for GLib integration.

There is an archive of release notes.

Development

See the development roadmap for a detailed list of remaining tasks.

git-clone git://git.ndesk.org/pub/scm/dbus-sharp

The dbus-sharp API is not stable. In particular, please don't check this into your cvs/svn repository or bundle it with your program. And don't even think about installing it in the user's GAC or packaging it for your distribution yet.

There is also a module which provides GLib integration as an optional extra:

git-clone git://git.ndesk.org/pub/scm/dbus-sharp-glib

Retrieved from "http://ndesk.org/DBusSharp"