So I’ve been reading up on C# recently and toying around with writing example code, and at the same time, I’ve been looking at what libraries are out there to work with. For example, I’d naturally wonder how I could rebuild my project in C# that I’ve been working on as a grad student.
There seems to be very current effort to produce C# bindings for Qt: https://github.com/ddobrev/QtSharp. There’s not much in the way of documentation at all, but I assume it is a fork from an old project called Qyoto, which as I understand provided Qt bindings for Mono/KDE apps. So I don’t know to what extent this current project supports Qt4 versus Qt5, but I think it’s something I want to get to know because it really is all about interfacing with an existing C++ library and making it operate within a managed C# environment.
OpenTK is another nice one under active development: sourceforge.net/projects/opentk/. I have always felt incomplete working in the area of graphics without actually learning graphics from the ground up and getting hands on with OpenGL, and this looks like the perfect excuse to do it. Just looking at the quick 15 minute introduction, they show off some fancy C# way of what looks like specifying callbacks. It also exposes OpenAL API for audio, which makes me think of SDL, which interestingly also has C# bindings.
SimpleITK (http://sourceforge.net/projects/simpleitk/) is another cool API that is actively maintained. Unfortunately you have to deal with the ITK-quality documentation, which at best leaves something to be desired. But judging from the autocompletion, there’s a significant part of the image-processing API exposed. I think I definitely want to toy around with manipulating MRI images, which I ostensibly should be pretty familiar with but am actually not ever since I’ve been enlisted on this geometry processing project that is my thesis topic.
Hope to post more about these as I play and learn. P.S. Yay, first C# tagged article. Sadly, using the string “C#” as the tag ends up tagging the article as C++, so it’ll have to be csharp.