How we work with C#

Unser zweiter „How we work with“-Beitrag bezieht sich dieses Mal auf C#. C was? Ja, für Laien kommt die moderne, objektorientierte und typsichere Programmiersprache klangtechnisch etwas spartanisch daher. Aber für unser Entwicklungsteam geht es nicht ohne, denn insbesondere im IoT-Umfeld hat C# in den letzten Jahren große Verbreitung gefunden. Mittlerweile existieren zahlreiche, oftmals quelloffene Softwarepakete für die Aufbereitung von Daten sowie Kommunikations-Stacks zur Anbindung von Edge-Controllern an übergeordnete Cloud-Systeme.

Die erste Version wurde Anfang der 2000er Jahre veröffentlicht. Ihre Wurzeln bilden C und C++, es finden sich aber ebenso auch viele Elemente von Java in ihr wieder. Das wichtigste Designziel der Sprache C# war und ist ihre Plattformunabhängigkeit. Von der Historie her eng mit dem .NET-Framework, ist ist C# dadurch auch auf Windows-Plattformen am weitesten verbreitet. Projekte wie Mono oder auch .NET Core von Microsoft ermöglichen das Cross-Development, so dass sich in C# geschriebene Applikationen mittlerweile auch gleichwertig auf anderen Betriebssystemen wie beispielsweise Linux ausführen lassen.

 

C# in der Praxis

Unser Entwicklungsteam hat die Mono-Runtime in das Linux BSP unseres Edge Controllers sysWORXX CTR-700 integriert. Das ermöglicht es, in C# geschriebene Programme unmittelbar auf dem CTR-700 auszuführen. Die von SYS TEC implementierte Klassenbibliothek "Ctr700Drv" erlaubt zudem ein direktes Ansprechen der Ein- und Ausgänge des Gerätes aus C#. Dabei werden Abfragen im Polling genauso unterstützt wie das Auslösen von Events bei Änderungen eines Eingangswertes. Zusammen mit der sehr umfangreichen .NET Klassenbibliothek steht so in Summe ein sehr leistungsfähiges Framework für das Cross-Development von Embedded Applikationen zur Verfügung.

Als Entwicklungsumgebung für die C#-Programmierung setzen wir auf Visual Studio. Diese komfortable und leistungsfähige IDE steht in Form der Community-Edition für Ausbildungs-, Evaluierungs- und sonstige nicht-kommerzielle Zwecke kostenfrei zur Verfügung. Mit Hilfe des „VSMonoDebugger“ Plug-ins lassen sich die übersetzten Programme direkt aus Visual Studio heraus auf das CTR-700 deployen und ausführen. Für die Fehlersuche stehen wir gewohnt Debugging-Funktionalitäten wie Breakpoints, Single Step sowie die Inspektion von Variablen und Datenobjekten zur Verfügung.

Mit dem Duo aus Visual Studio und C# ist Cross-Development für Embedded Systeme wie unser sysWORXX CTR-700 ebenso komfortabel und einfach, wie das Schreiben von Desktop- und Server-Applikationen. Durch das umfangreiche und leistungsfähige Framework verringern sich Entwicklungszeit und Fehlerrate gleichermaßen.

Neugierig, wie unser sysWORXX CTR-700 in C# programmiert wird? Hier findest Du das Programmierbeispiel.