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
Current revision (18:12, 10 February 2009) (edit) (undo)
Alp (Talk | contribs)
(Add note on bug tracker)
 
(29 intermediate revisions not shown.)
Line 1: Line 1:
-dbus-sharp is a C# implementation of [http://www.freedesktop.org/wiki/Software/dbus D-Bus]. It's often referred to as "managed D-Bus" to avoid confusion with existing bindings (which wrap libdbus).+[http://www.ndesk.org/archive/dbus-sharp/ndesk-dbus-0.6.0.tar.gz http://www.ndesk.org/images/step1.png] [http://www.ndesk.org/archive/dbus-sharp/ndesk-dbus-glib-0.4.1.tar.gz http://www.ndesk.org/images/step2.png]
 + 
 +ndesk-dbus is a C# implementation of [http://www.freedesktop.org/wiki/Software/dbus D-Bus]. It's often referred to as dbus-sharp, or "managed D-Bus" to avoid confusion with existing bindings (which wrap libdbus).
D-Bus is an inter-process communication framework that lets applications D-Bus is an inter-process communication framework that lets applications
Line 44: Line 46:
==== Soon to be supported ==== ==== Soon to be supported ====
-* Solaris (in progress: http://bugzilla.gnome.org/show_bug.cgi?id=370081)+<!--
-* MIPS (untested) (eg. wifi routers)+* Solaris (in progress: http://bugzilla.gnome.org/show_bug.cgi?id=370081 -- external patch available to make it work in the meantime)
 +-->
 +* MIPS (untested) (eg. wifi routers) -- pending JIT fix
=== Users === === 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.+This is a list of applications known to make use of managed D-Bus:
* [http://www.ndesk.org/ NDesk] component object model (NParts etc.) * [http://www.ndesk.org/ NDesk] component object model (NParts etc.)
Line 65: Line 69:
* [http://mono.dcsharp.com/ dcsharp] file sharing client using the Direct Connect protocol, for notifications, single instance and remote control * [http://mono.dcsharp.com/ dcsharp] file sharing client using the Direct Connect protocol, for notifications, single instance and remote control
* [http://dev.mmgsecurity.com/projects/lat/ LAT] LDAP Administration Tool * [http://dev.mmgsecurity.com/projects/lat/ LAT] LDAP Administration Tool
-* [http://www.snorp.net/log/2006/12/08/im-in-ur-virtual-machines-managing-them/ VMX Manager], Virtual Machine Manager), GNOME CVS(?)+* [http://www.snorp.net/log/2006/12/08/im-in-ur-virtual-machines-managing-them/ VMX Manager], Virtual Machine Manager, GNOME SVN(?)
-* [http://www.k-d-w.org/clipboard/NewStuffManager/ NewStuffManager], a plugin update/download service+* [http://capuchin.k-d-w.org/ Capuchin] (formerly NewStuffManager), a plugin update/download service
* [http://folks.o-hand.com/iain/last-exit/ last-exit], a music player for Last.fm * [http://folks.o-hand.com/iain/last-exit/ last-exit], a music player for Last.fm
* [http://muine-player.org/ Muine], a music player for GNOME * [http://muine-player.org/ Muine], a music player for GNOME
Line 77: Line 81:
* [http://svn.gnome.org/viewcvs/podsleuth PodSleuth] iPod model information discovery/export tool, using hal-sharp * [http://svn.gnome.org/viewcvs/podsleuth PodSleuth] iPod model information discovery/export tool, using hal-sharp
* [http://live.gnome.org/Banter Banter] collaboration client (Telepathy) * [http://live.gnome.org/Banter Banter] collaboration client (Telepathy)
 +* [http://netherilshade.free.fr/circ/ circ] IRC client
 +* [http://svn.gnome.org/viewvc/beagle/trunk/beagle-xesam/ Beagle xesam-adapter] desktop search API
 +* [[DBusExplorer|D-Bus Explorer]]
 +* [https://edge.launchpad.net/gc GNOME Do]
 +* [http://www.iola.dk/nemo/ Nemo] file manager, for [http://www.gnome.org/projects/tracker/ Tracker]
 +* [http://www.cmartin.tk/blam.html Blam] RSS aggregator
 +* [http://monotorrent.com/ MonoTorrent / Monsoon] BitTorrent client
 +
 +=== Documentation ===
 +
 +See the [[DBus_Documentation|NDesk.DBus documentation]] for a brief developers guide.
=== Contact === === Contact ===
Line 82: Line 97:
Support can be found on the #managed-dbus IRC channel on irc.gnome.org Support can be found on the #managed-dbus IRC channel on irc.gnome.org
-There is no mailing list or email contact address.+=== Reporting bugs ===
-=== Bundling guidelines ===+Bugs are now tracked on the [https://bugs.launchpad.net/ndesk-dbus NDesk D-Bus Launchpad bug tracker].
-"Bundling" involves including the sources for managed D-Bus in an application's source tree to avoid the external dependency.+If you have sent bug reports or feature requests directly to the authors in the past, please create a new entry in the tracker to ensure the issues are dealt with.
- +
-* 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:+
- +
-<pre>+
-pkg-config --libs ndesk-dbus-1.0 ndesk-dbus-glib-1.0+
-</pre>+
- +
-or with gmcs:+
- +
-<pre>+
-gmcs -pkg:ndesk-dbus-1.0 -pkg:ndesk-dbus-glib-1.0 ...+
-</pre>+
- +
-To determine where .service files should be installed:+
- +
-<pre>+
-pkg-config --define-variable=prefix=$prefix --variable=session_bus_services_dir ndesk-dbus-1.0+
-</pre>+
- +
-or+
- +
-<pre>+
-pkg-config --define-variable=datadir=$datadir --variable=session_bus_services_dir ndesk-dbus-1.0+
-</pre>+
=== Download === === Download ===
-See the [http://www.ndesk.org/archive/dbus-sharp/ managed D-Bus release archive].+See the [http://www.ndesk.org/archive/ndesk-dbus/ 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.+
==== Development ==== ==== Development ====
Line 140: Line 111:
See the [[DBusSharp/Roadmap|development roadmap]] for a detailed list of remaining tasks. See the [[DBusSharp/Roadmap|development roadmap]] for a detailed list of remaining tasks.
-git-clone [http://git.ndesk.org/?p=dbus-sharp git://git.ndesk.org/pub/scm/dbus-sharp]+git-clone [http://gitweb.ndesk.org/?p=dbus-sharp 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.+The dbus-sharp API is now fairly stable stable. It's best to install a released version and depend on it from your application rather than bundling the sources directly as has been done in the past.
There is also a module which provides GLib integration as an optional extra: There is also a module which provides GLib integration as an optional extra:
-git-clone [http://git.ndesk.org/?p=dbus-sharp-glib git://git.ndesk.org/pub/scm/dbus-sharp-glib]+git-clone [http://gitweb.ndesk.org/?p=dbus-sharp-glib git://git.ndesk.org/pub/scm/dbus-sharp-glib]
 + 
 +=== Exposition ===
 + 
 +* [http://live.gnome.org/Boston2006 GNOME Boston Summit 2006], MIT Media Lab, Aaron Bockover
 +* [http://www.guadec.org/node/555 GUADEC 2007] Birmingham, UCE Conservatoire, Alp Toker ([http://www.atoker.com/dbus/managed-dbus-guadec07.pdf view slides])

Current revision

step1.png step2.png

ndesk-dbus is a C# implementation of D-Bus. It's often referred to as dbus-sharp, or "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

[edit] 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.

[edit] Cross platform support

[edit] 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)

[edit] Soon to be supported

  • MIPS (untested) (eg. wifi routers) -- pending JIT fix

[edit] Users

This is a list of applications known to make use of managed D-Bus:

[edit] Documentation

See the NDesk.DBus documentation for a brief developers guide.

[edit] Contact

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

[edit] Reporting bugs

Bugs are now tracked on the NDesk D-Bus Launchpad bug tracker.

If you have sent bug reports or feature requests directly to the authors in the past, please create a new entry in the tracker to ensure the issues are dealt with.

[edit] Download

See the managed D-Bus release archive.

[edit] 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 now fairly stable stable. It's best to install a released version and depend on it from your application rather than bundling the sources directly as has been done in the past.

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

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

[edit] Exposition

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