Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von typhos
Thema: .NET Remoting + By-value
Am im Forum: Netzwerktechnologien

Ja, OK. Ich habe nun eine kleine Remote-Anwendung erstellt (sehr klein und einfach). Nun drängt sich mir die nächste Frage auf:

Wenn ich SingleCall verwende, wird ja für jeden Methodenaufruf eine neue Instanz auf dem Server erzeugt und nach dem Aufruf wieder beendet.

Wie werden denn standardmäßig die Ergebnisse der Mothoden an den Client übertragen? Ich weiß, dass man das steuern kann, indem man als Rückgabeparameter Objekte verwendet, die von MarshalByRefObject abgeleitet sind (für eine Übertragung per Referenz) bzw. die das [Serializable]-Attribut bekommen (für eine Übertragung by value).
Aber wie werden die Objekte übertragen, wenn ich nichts mache, also standardmäßig?

Ich schätze mal, einfache Datentypen (string, int, float etc.) werden sowieso per Value übertragen, oder? Wie sieht es mit Objekten von DataSet oder DataTable aus? Werden die per Referenz übertragen? Wenn ja, kann ich mir selbst eine Klasse erstellen, die von z.B. DataTable abgeleitet ist und das [Serializable]-Attribut bekommt, um einen DataTabel by value zu übertragen?

Danke für eure Hilfe!!

Thema: .NET Remoting + By-value
Am im Forum: Netzwerktechnologien

Danke für die Antwort.

Lass mich das etwas eingrenzen:
Sagen wir, ich habe eine Klasse, in der verschiedene Methoden sind - davon einige, die nur irgendwas berechnen, und andere, die Daten aus einer Datenbank holen. Natürlich soll die Klasse auf dem Server vorhanden sein und die Datenbankabfragen müssen auch dort getätigt werden.
Der Client soll am besten nicht die Klassenimplementation kennen, sondern (wenn es geht) nur ein Interface. Weiterhin soll der Client die Klasse, die auf dem Server liegt, instanzieren und damit arbeiten können. Wenn ich dich richtig verstanden habe, funktioniert das nur byRef, da ja auf dem Client keine Datenbank ist. Die Methoden, die ausschließlich aus irgendwelchen Inputparametern irgendetwas berechnen, sollten aber (wenn möglich) auf dem Client ausgeführt werden, um den Server (bei vielen Clients) nicht zu stark zu belasten.

Wie muss ich dabei vorgehen? Ist das überhaupt so möglich?

Thema: .NET Remoting + By-value
Am im Forum: Netzwerktechnologien

Hallo,
ich beschäftige mich erst seit ein paar Tagen mit .NET Remoting und ich habe dabei ein Problem bzw. eine Frage:

Bei der Übergabe der Objekte vom Server/Host zum Client by value werden die Objekte ja kopiert.
Damit die Klassen auf dem Client instanziert werden können, muss das Assambly, welches die Klassen enthält, auch beim Client eingebunden werden. Woher weiß ich denn, dass wirklich ein Objekt vom Server erzuegt und auf den Client kopiert wird, wenn ich dort ein neues Objekt instanziere? Der Typ ist natürlich vorher mit RegisterActivatedClientType als Remote-Objekt registriert worden!

Dann frage ich mich noch folgendes: Nehmen wir an, wir haben auf dem Server eine Assambly mit der Geschäftslogik - zum Beispiel wird in einer Methode etwas aus einer Datenbank gelesen und als DataSet zurückgegeben. Wenn aber die Klasse der Geschäftslogik auf dem Client instanziert wird (wo natürlich keine Datenbank vorhanden ist - es soll ja eigentlich auch die Datenbankabfrage auf dem Server passieren), funktioniert das dann?
Oder ist die Übergabe der Objekte by value in dem Fall gar nicht möglich? Was sind überhaupt die Vor- und Nachteile von einer by-value-Übertragung?


Ich hoffe, jemand versteht meinen Text - kann mich momentan leider nicht besser ausdrücken!!
Vielen Dank schonmal im Voraus!