Zitat von
Neutral General:
Werde dann wohl entscheiden ob ich C++ oder C# nehme. Was ist denn objektiv gesehen geeigneter?
Eigentlich ist eine managed Umgebung (Java / .NET)
genau das Richtige für solche Server. Sie skalieren sehr gut, optimieren sehr gut und bieten durch die schiere Größe des Frameworks für so ziemlich jede Aufgabe bereits fertige Klassen. Zudem brauchst Du Dich beim Entwickeln nicht um den Speicher zu kümmern. Der wird ja verwaltet. Zudem hat das ganze zwei weitere große Vorteile: Memory Leaks sind ausgeschlossen. Ein kleiner Fehler im Memory-Management in C++ und Dein Server produziert Memory Leaks. Die sind schwer zu finden und beeinflussen die Stabilität des Servers (irgendwann hat der Rechner halt keinen Speicher mehr). Nächster Punkt: Buffer Overflows sind ausgeschlossen. Da der Speicher von der Runtime verwaltet wird, wird da nichts bei irgendwelchen Copy-Operationen wo hin geschrieben, wo es nichts zu suchen hat und ggf. später ausgeführt wird. Insbesondere wenn Du einen Server schreibst der öffentlich läuft sollte dieses Sicherheitsplus auf jeden Fall für eine managed Umgebung sprechen.
Wenn Du mit C# nicht so gut zurecht kommst schau Dir mal Prism an
Aber ich denke, in .NET bist Du für so einen Server sehr gut aufgehoben. Und wenn Du im Prinzip vorne 'nur' Sockets und hinten z.B. eine Datenbank hast, dann läuft das ganze auf Mono auch ohne weiteres. Du kannst ja z.B. auch mit C# auf Windows direkt gegen Mono anstelle des .NET Frameworks von Microsoft entwickeln und testen. Dann läufts auch unter Linux *g*