• Skip to content
  • Skip to link menu
aKademy 2006
  • Sitemap
  • Contact Us
 

iQyoto/Kimono C# bindings

Speaker: Richard Dale

The Qyoto/Kimono languages bindings are currently under development, and will allow C# to be used to write Qt/KDE programs. The talk will describe the unusual design of the bindings; how they use transparent proxies to divert every single method call to a single SmokeInvocation.Invoke() method, which then looks up the call in the Smoke language independent dynamic runtime, marshals the arguments and calls the target C++ method. This differs from the usual way of implementing bindings for a language like Java or C# where each method call would directly invoke the target C++ method via JNI or a C function from P/Invoke respectively.

The architecture has been designed from the ground up to enable multi-language Aspect Oriented Programming; each method call, slot invocation and signal emit is a point cut that can be intercepted and customised with Ruby code (and not xml as is customary). Thus the Domain Specific Language (i.e. Ruby) used to describe point cuts, can also be use to write advice code if desired (as well as C# of course).

They are autogenerated directly from the Qt/KDE headers, greatly reducing the maintenance effort. KDE doxygen comments are automatically converted to the xml based C# style of comment format.

Any language that is based on the CLR, such as C#, Iron Python, Boo, VB.NET or Nemerle will be able to use the bindings, allowing some very interesting possibilities for writing KDE applications.

Richard Dale

[Richard Dale]

I began working on adding KDevelop Objective-C support in late 1999, adding syntax highlighting, class parsing and so on. This made me think of the idea of providing some Qt/KDE Objective-C bindings along with C ones in early 2000. The project was a technical success and I then began work on some Java bindings which were first released in early 2001. Since then I've helped with the PerlQt bindings project, and wrote the QtRuby and Korundum bindings based on the PerlQt code and the language independent Smoke library. I've also added Ruby support to KDevelop including a debugger various QtRuby/Korundum and Rails project templates. I've been working on the C# Qyoto/Kimono bindings on and off for the last two and a half years.

I've been a professional programmer since 1978, and am currently working for Foton Sistemas Inteligentes in Gran Canaria, on diverse projects such as the 'Meduxa' KDE distribution for all the Canarian schools, and a Rails based Ferry booking system.

Media

Slides (TGZ/HTML) (165k)
Video (Ogg) (153M)


Overview

Skip menu "Overview"
  • aKademy 2006
  • Schedule
  • Sponsors

Conference

Skip menu "Conference"
  • Program
  • Speakers
  • Presentations
  • Call for Participation

Coding Marathon

Skip menu "Coding Marathon"
  • OpenDocument Day
  • HCI Day
  • BoF Sessions
  • Development Area
  • KDE e.V. Meeting

Participate

Skip menu "Participate"
  • Location
  • Travel
  • Accommodation
  • Registration

Information

Skip menu "Information"
  • Press
  • Contact

Global navigation links

  • KDE Home
  • KDE Accessibility Home
  • Description of Access Keys
  • Back to content
  • Back to menu

Search:


Maintained by the aKademy team
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal