Programmiersprachen
C#
- Standard:
- C# Spezifikation
- C# Referenz
- Programmierhandbuch
Links
Charakteristik
- Verwandtschaft zu C++ und Java
-
- syntaktische Verwandschaft, schlanke Sprache
- Zeiger in Normalfall nicht nötig wie bei Java, allerdings kann man sie dazunehmen, wenn man sie wirklich braucht (Gut!)
- Typsicher
- Virtuelle Maschine .NET
- Automatische Speicherverwaltung (Garbage Collection)
- Attribute
- Mit Attributen kann man Zusatzinformationen angeben (z.B, für Transaktionsverarbeitung)
Laufzeitumgebung
- Common Language infrastruktur (CLI) .Net - hier ist es die präferierte Sprache (wie C in Unix)
Kritik
- Die Vermeidung von IDL-Sprachen ist schlecht, damit lassen sich keine heterogenen Systeme bauen. Natürlich ist das Compilieren und Sprachmapping aufwendig und eine nahtlose Integration sehr wünschenswert.
Sind wichtige Middlewaredienste wie CORBA und DDS oder Webservices nahtlos integrierbar ?
Details
Typisierung
- Explizit
- Bsp: int i = 10;
- Typ wird expizit angegeben
- Implizit mit var
- Bsp: var v=10; - der Compiler leitet den Typ selber ab.
Dies ist interessant bei Ergebnissen von komplexen Abfragen
Language INtegrated Query
LINQ ist eine Teilsprache um Datenquellen wie Datenbanken, XML-Dokumente und streams und interne Datenstrukturen abzufragen. LINQ hat die selbe Abstraktionsebene wie SQL, sogar Abfrageergebnisse können wiederum in Ausdrücke eingehen.
Tutorials
Netzwerkprogrammierung
- TCP/IP Socket-Programmierung in C#
- Ereignisorientierte Programmierung
- Dies scheint eine gute Idee zu sein, wie man auch ein multiplexing realisieren kann.
- Ereignisorientierte Programmierung
Multithreading
- Raffi Krikorian: "Multithreading with C#" 2001
- vergleicht u.a. Multithreading in Java mit Multithreading in C#
- Multithreading in C#
IO-Programmierung
Streamreader mit "using" als Resourcenmanagementnutzung
GUI Programmierung
Control.Invoke-Methode braucht man, um asynhron GUI-Elemente
Compiler
- Roslyn .NET Compiler Platform
- [Heise 4.4.2014]
Informatik- und Netzwerkverein Ravensburg e.V
Rudolf Weber