Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Pointer in C# (https://www.delphipraxis.net/126241-pointer-c.html)

Neutral General 20. Dez 2008 20:50

Re: Pointer in C#
 
Zitat:

Zitat von Dax
Zitat:

Zitat von Neutral General
Mal so nebenbei... Oder sollte man einen Server, der auch auf Linux laufen soll vielleicht doch eher mit C++ schreiben?

Wenn ich mir das hier so durchlese zweifel ich langsam daran, dass C# die richtige Sprache ist...

Mono

Was genau ist Mono? Mono ist doch "nur" eine IDE oder?

mkinzler 20. Dez 2008 20:51

Re: Pointer in C#
 
Zitat:

Was genau ist Mono? Mono ist doch "nur" eine IDE oder?
Nein eine alternative Implementierung der VM, Runtime und diversen Kompilern

jfheins 20. Dez 2008 20:56

Re: Pointer in C#
 
Köntest du den Playerstate nicht einfach als Text übertragen? also z.B. dezimal mit Leerzeichen getrennt:

1273 -73674 25062 -7246284

Das kan man dann einfach trennen und einzeln zuweisen - oder kommt es sehr auf Geschwindigkeit an?

Edit: Alternativ kannst du ja auch sowas machen:

id = arr[0] + arr[1] << 8;
x = arr[2] + arr[3] << 8 + ...

Ein kleines bisschen Schreibarbeit, aber schneller als Strings ;)

Neutral General 20. Dez 2008 21:35

Re: Pointer in C#
 
Zitat:

Zitat von jfheins
...

Also das mit den Strings geht auf keinen Fall. Es kann gut sein, dass der Server später viel zu tun haben wird. Da darf der Server seine Zeit nicht mit irgendwelchen Strings verschwenden.

Zurzeit bin ich mir C++ am anschauen. Ich kann mich nicht so richtig mit diesen Frameworks anfreunden :?

Werde dann wohl entscheiden ob ich C++ oder C# nehme. Was ist denn objektiv gesehen geeigneter?

Phoenix 20. Dez 2008 21:47

Re: Pointer in C#
 
Zitat:

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 :zwinker:

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*

Neutral General 20. Dez 2008 21:56

Re: Pointer in C#
 
Hi,

Also ich komme mit C# soweit eigentlich bisher ganz gut zurecht aber ich muss die Sache mit den Pointern wohl erstmal verdauen, weil... Wie soll ich nur ohne meine lieben Pointer programmieren? :cry: :mrgreen:

Naja ich werd mich wohl nochn bisschen mit C# und dem .NET auseinandersetzen müssen...

Ich kann aber den Server auch erstmal "ganz normal" in C# (SharpDevelop) programmieren und dann später einfach mit Mono kompilieren oder muss ich dann alles umbauen?

mkinzler 20. Dez 2008 21:58

Re: Pointer in C#
 
Zitat:

Ich kann aber den Server auch erstmal "ganz normal" in C# (SharpDevelop) programmieren und dann später einfach mit Mono kompilieren oder muss ich dann alles umbauen?
Kommt darauf an, welche (GUI-)Bibliothek du benutzt. Es gibt auch eine Monoversion von SharpDevelop ( MonoDevelop)

jfheins 20. Dez 2008 22:07

Re: Pointer in C#
 
Zitat:

Zitat von Neutral General
Ich kann aber den Server auch erstmal "ganz normal" in C# (SharpDevelop) programmieren und dann später einfach mit Mono kompilieren oder muss ich dann alles umbauen?

Wen Mono das ist, was ich glaube das es das ist, dann brauchst du es nicht nochmal kompilieren (bzw. das wird ja für dich gemacht) sondern einfach nur die exe-datei kopieren und läuft ;)

Das Compilieren zur IL ist noch plattformunabhängig und das JIT-Compiling wird ja transparent auf der Zielmaschiene durchgeführt ...

alzaimar 20. Dez 2008 22:24

Re: Pointer in C#
 
Was spricht eigentlich dagegen, die Daten in einen Stream zu schmeissen und dann Stück für Stück auszulesen? Da benötigt man doch keinen unmanaged code, Pointer o.ä... :gruebel:

Phoenix 21. Dez 2008 10:56

Re: Pointer in C#
 
Zitat:

Zitat von alzaimar
Was spricht eigentlich dagegen, die Daten in einen Stream zu schmeissen und dann Stück für Stück auszulesen? Da benötigt man doch keinen unmanaged code, Pointer o.ä... :gruebel:

Prinzipiell nichts. Das ist nämlich genau das, was der BinaryFormatter macht. Den baut man einmal für die Objektstruktur und gut ist. Den Rest erledigt das Framework.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz