Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2008  »  11  »  Siegen lernen  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Übersetzer

Gmcs ist der C#-Compiler, der Generics, unterstützt. Dies ist die C#-Entsprechung für Templates in C++. Mono ist die Laufzeitumgebung, die zur Ausführung übersetzter Programme nötig ist. Unter [7] ist ein Binary-Installer der Mono-2.0-Preview-2-Version verfügbar. Für die Einführung in diesem ersten Artikel genügt jedoch Version 1.9.1. Wer Schwierigkeiten hat, diese auf seinem System zum Laufen zu bekommen, findet auf der Mono-Webseite Images mit Version 1.9.1 für den VMware-Player.

Handwerkszeug

Wer Programmcode schreibt, kann auf einen Editor mit Syntax-Highlighting kaum verzichten. Für C# gibt es einen Emacs-Mode (Abbildung 1, [8]). Wem das nicht genügt, der findet in Monodevelop [9] eine Open-Source-Entwicklungsumgebung. Fürs erste Hello-World-Programm (Listing 1) reicht ein Editor aber aus.


Abbildung 1: Neue Aufgabe für den Veteranen: Ein frei verfügbarer Mode macht Emacs C#-tauglich.

Das Programm sieht auf den ersten Blick einem C++- oder Java-Programm sehr ähnlich. Aufgrund der gemeinsamen Ahnenreihe ist dies natürlich kein Zufall. Sie zeigt sich zum Beispiel darin, dass die beiden Kommentarformen »/* */« und »//« möglich sind. Ferner gibt es Dokumentationskommentare [10].

Listing 1:
»helloWorld.cs«

01 using System;
02 
03 namespace LinuxMagazinHelloWorld
04 {
05   class HalloWelt
06   {
07     public static void Main(string[] args)
08     {
09       for(int i=0; i<2; i++){
10         // Ohne "using System;" muessten wir hier
11         // System.Console.WriteLine("..."); schreiben
12         Console.WriteLine("Hallo Nr. {0}, Linux Magazin!", i.ToString());
13       }
14     }
15   }
16 }

Wie in C++ stellt eine Methode »Main()« den Startpunkt des Programms dar. Allerdings schreibt sie sich in C# groß und ist stets in eine Klasse (im Beispiel in »HalloWelt«) eingebettet. Entsprechend ihrer besonderen Funktion ist die Methode als »static« zu deklarieren.

Anders als C++ ist C# zwingend objektorientiert aufgebaut. C++ nötigt den Entwickler nicht dazu, überhaupt Klassen zu verwenden. Dagegen leiten sich alle Klassen der Dotnet-Klassenhierarchie von der Klasse »System.Object« ab. Zeile 12 in der »for()«-Schleife kann daher für die Variable »i« die von der Klasse »System.Object« vererbte Methode »ToString()« aufrufen. Ihr Rückgabewert ersetzt den Ausdruck »{0}« im Text, den »Konsole.WriteLine()« ausgibt.

Die explizite Typenumwandlung in Zeile 12 ist streng genommen nicht nötig, die Zeile hätte auch »Console.WriteLine("Hallo Nr. {0}, Linux Magazin!", i);« lauten können. Das Weglassen des Semikolons am Ende der Klassendeklaration (Zeile 16) ist übrigens kein Versehen, in C# ist dies die Regel.

Das Beispiel aus Listing 1 lässt sich auf der Kommandozeile mit dem Befehl »gmcs helloWorld.cs« übersetzen. Das Ergebnis ist eine Datei »helloWorld.exe«. Unter Linux ist zu deren Ablauf die Mono-Runtime-Umgebung nötig. Erst der Aufruf »mono helloWorld.exe« startet daher das Programm:

Hallo Nr. 0, Linux Magazin!
Hallo Nr. 1, Linux Magazin!

Es gibt - wie erwartet - den String aus Zeile 12 zweimal auf der Kommandozeile aus und ersetzt dabei »{0}« durch den Schleifenzähler.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Richtig eintüten C#-Entwicklung unter Linux - Teil 3
Es entwickelt sich Qt- und KDE-Entwicklung mit Kdevelop 4
Frisch aufgebrüht Netbeans 6.0 und Eclipse 3.3 im Vergleich
Projekteküche Aktueller Überblick über freie Software und ihre Macher
Türöffner Service-orientierte Abbildung von Geschäftsprozessen mit freier Software
Grenzen überwinden Mit Qt Mobility in QML und C++ Apps für mobile Geräte entwickeln
Whitepaper
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)