Leichtgewichtige Twitter-API-Bibliothek für C#

Die meisten Bibliotheken welche Zugang zur Twitter-API in C# (.NET/Mono) bereitstellen haben ein Problem. Sie sind schlicht zu groß. Meist bestehen sie aus einem dutzend Bibliotheken und werden mit der Zeit immer unhandlicher. So war auf der Suche nach einer leichtgewichtigen Bibliothek für den Zugriff auf das Twitter-API. Fündig wurde ich mit TinyTwitter.

TinyTwitter auf GitHub

TinyTwitter auf GitHub

Diese Bibliothek besteht im Kern aus einer Datei und lässt sich einfach verwenden. Um einen Tweet zu senden, recht folgender Code:

var oauth = new OAuthInfo
{
    AccessToken = "YOUR ACCESS TOKEN",
    AccessSecret = "YOUR ACCES SECRET",
    ConsumerKey = "YOUR CONSUMER KEY",
    ConsumerSecret = "YOUR CONSUMER SECRET"
};

var twitter = new TinyTwitter(oauth);

twitter.UpdateStatus("I'm tweeting.");

Zu finden ist die Bibliothek auf GitHub. Lizenziert ist TinyTwitter unter der Apache Lizenz und damit freie Software.

OpenRA

In meinem gestrigen Artikel ging es um eine Command & Conquer Version für den Browser. Neben dem Original gibt es eine Reihe von Projekte welche sich mehr oder weniger mit Command & Conquer beschäftigen. Eines dieser Projekte ist OpenRA. Dabei handelt es sich um eine Engine welche das Feeling und die Spielmechanik von Command & Conquer nachbaut. So kann die Engine unter anderem die Spieldaten der alten Command & Conquer Teile nutzen. Angeboten werden dabei aber im Moment nur einzelne Missionen und keine zusammenhängende Kampagne. Neben dem Singleplayermodus gibt es auch einen Multiplayermodus.

Der Titelschirm von OpenRA

Der Titelschirm von OpenRA

OpenRA ist unter der GPLv3 lizenziert und damit freie Software. Der Quelltext ist auf GitHub zu finden. Geschrieben ist das ganze in C#. Damit ist ist OpenRA unter Linux, Mac OS X und Windows lauffähig. Die offizielle Seite des Projektes ist unter openra.net zu finden.

Ribbon-Bibliothek für Windows Forms

Sogenannte Ribbons hatte Microsoft durch seine neueren Office-Versionen bekannt gemacht. Für WPF gibt es Ribbon-Unterstützung in Form des Namespaces System.Windows.Controls.Ribbon. Möchte man Ribbons allerdings in Windows Forms einsetzten, muss man Fremdkomponenten nutzen. Office Ribbon ist dabei eine solche Komponente.

Eines der Beispiel-Formulare der Bibliothek

Eines der Beispiel-Formulare der Bibliothek

Die Bibliothek Office Ribbon stellt Ribbon für Windows Forms zur Verfügung. Die Ribbon lassen sich im Aussehen anpassen, zur Zeit gibt es Themes welche das Aussehen von Office 2007 bis 2013 nachahmen. Lizenziert ist die Bibliothek unter der Microsoft Public License und damit freie Software. Das Projekt wird auf CodePlex gehostet und aktiv entwickelt.

AVI Dateien unter C# schreiben

Wenn man eine AVI Datei unter C# schreiben möchte, wird man feststellen das es zwar viele Wege gibt, aber keiner dieser Wege führt nach Rom. Jede vorgeschlagende Variante hat meist Abhängigkeiten, welche man nicht haben möchte. So wird bei vielen Varianten FFMPEG als DLL genutzt, bei anderen werden Windows DLLs genutzt, was dazu führt das der Quellcode nicht unabhängig von der Plattform ist. Abhilfe schafft hier die freie unter der MIT-Lizenz lizenzierte Bibliothek SharpAvi. Um eine AVI-Datei zu schreiben sind mit Hilfe der Bibliothek nur einige Zeilen Quelltext nötig:

//AviWriter anlegen
AviWriter writer=new AviWriter("test.avi");
writer.FramesPerSecond=25;

//Videostream anlegen
IAviVideoStream stream=writer.AddVideoStream();
stream.Width=1920;
stream.Height=1080;
stream.Codec=KnownFourCCs.Codecs.Uncompressed;
stream.BitsPerPixel=BitsPerPixel.Bpp24;

//Encode für Kompression anlegen
//Ohne Encoder wird die Datei unkomprimiert gepsiechert (stream.WriteFrame)
var encoder=new MotionJpegVideoEncoderWpf(stream.Width, stream.Height, 100);
var encodingStream=new EncodingVideoStreamWrapper(stream, encoder);

//Schwarzen Frame anlegen
byte[] frameData=new byte[stream.Width*stream.Height*3];

//Frames schreiben
for(int i=0;i<25; i++)
{
    encodingStream.WriteFrame(frameData, 0);
}

//Writer schließen
writer.Close();

In diesem Beispiel wird eine AVI Datei mit 25 schwarzen Frames erzeugt, was bei der angegebenen Framerate exakt einer Sekunde entspricht. Zu finden ist SharpAvi auf der offiziellen Webseite. Alternativ kann der Spiegel auf GitHub genutzt werden.

libwave.net

Möchte man eine Wave-Datei unter .NET oder Mono öffnen, so wird man feststellen das es hierfür wenige sinnvolle Möglichkeiten gibt. Viele der vorgeschlagenen Lösungen nutzen spezielle APIs, welche die Platzformunabhängigkeit zerstören. Aus diesem Grund habe ich mir wieder mal NAudio vorgenommen und aus dieser Bibliothek eine Bibliothek namens libwave.net abgeleitet.

Eine geöffnete Wave-Datei

Eine geöffnete Wave-Datei

Dank der freien Lizenz (NAudio ist unter der Ms-Pl lizenziert) stellte dies kein Problem dar. Mit der Bibliothek ist es möglich Wave-Dateien zu schreiben und zu lesen. Das Interface wurde dabei auf das notwendigste reduziert. Die Möglichkeiten werden dabei in den beiliegenden Beispielen aufgezeigt. Lauffähig ist die Bibliothek unter .NET und Mono. Zu finden ist das Projekt unter github.com/seeseekey/libwave.net.