Does anyone know if it is possible to return an object from a remoting
interface and have it be usable with .NET? I am trying to accomplish what I
used to do in DCOM where I would call a function on an interface and it
would return a new remote object. I could then call functions on that new
object. When I attempt this with .NET it complains that the object has no
channel sink. When I looked into the .NET configuration settings, this
scenerio didn't seem to fit the 3, SingleCall, SingleInstance, or Client
Initiated. The closest one I could think of was Client Initiated but it is
the server that creates the object. Any ideas? Is this just not possible
with .NET?

Thanks.

Jayme

Re: Creating a remotable object like DCOM by Dmytro

Dmytro
Mon Sep 25 05:47:02 CDT 2006

Jayme,

In DCOM, AFAIR it is also the server who creates the object - an interface
you are given is actually only a proxy (or stub, can't remember exactly
which of them runs on the client side).

--
Regards,
Dmytro Lapshyn [MVP]
http://blogs.vbcity.com/DmytroL

"Jayme Pechan" <jayme.pechan@whitefeld.com> wrote in message
news:OwiHaFC4GHA.600@TK2MSFTNGP05.phx.gbl...
> Does anyone know if it is possible to return an object from a remoting
> interface and have it be usable with .NET? I am trying to accomplish what
> I used to do in DCOM where I would call a function on an interface and it
> would return a new remote object. I could then call functions on that new
> object. When I attempt this with .NET it complains that the object has no
> channel sink. When I looked into the .NET configuration settings, this
> scenerio didn't seem to fit the 3, SingleCall, SingleInstance, or Client
> Initiated. The closest one I could think of was Client Initiated but it
> is the server that creates the object. Any ideas? Is this just not
> possible with .NET?
>
> Thanks.
>
> Jayme
>


Re: Creating a remotable object like DCOM by Jayme

Jayme
Mon Sep 25 09:47:19 CDT 2006

Right, in DCOM, I create the object on the server and it marshals the
interface to the client which is a proxy because all calls to the object get
marshalled to the server. The point though is that the client maintains a
reference to a unique object on the server with its own state and such until
it is released by the client. I need to find some way to do this same
thing, if possible, in .NET. It looks like it is impossible.

Thanks.

Jayme

"Dmytro Lapshyn [MVP]" <x-code@no-spam-please.hotpop.com> wrote in message
news:OWqkh$I4GHA.696@TK2MSFTNGP03.phx.gbl...
> Jayme,
>
> In DCOM, AFAIR it is also the server who creates the object - an interface
> you are given is actually only a proxy (or stub, can't remember exactly
> which of them runs on the client side).
>
> --
> Regards,
> Dmytro Lapshyn [MVP]
> http://blogs.vbcity.com/DmytroL
>
> "Jayme Pechan" <jayme.pechan@whitefeld.com> wrote in message
> news:OwiHaFC4GHA.600@TK2MSFTNGP05.phx.gbl...
>> Does anyone know if it is possible to return an object from a remoting
>> interface and have it be usable with .NET? I am trying to accomplish
>> what I used to do in DCOM where I would call a function on an interface
>> and it would return a new remote object. I could then call functions on
>> that new object. When I attempt this with .NET it complains that the
>> object has no channel sink. When I looked into the .NET configuration
>> settings, this scenerio didn't seem to fit the 3, SingleCall,
>> SingleInstance, or Client Initiated. The closest one I could think of
>> was Client Initiated but it is the server that creates the object. Any
>> ideas? Is this just not possible with .NET?
>>
>> Thanks.
>>
>> Jayme
>>
>



Re: Creating a remotable object like DCOM by Dmytro

Dmytro
Tue Sep 26 02:34:21 CDT 2006

I've checked with MSDN docs and the Client Activation mode is just what you
need. To quote the "Client Activation" topic from MSDN's .NET Framework
Developer's Guide:

"Client-activated objects are objects whose lifetimes are controlled by the
calling application domain, just as they would be if the object were local
to the client. With client activation, a round trip to the server occurs
when the client tries to create an instance of the server object, and the
client proxy is created using an object reference (ObjRef) obtained on
return from the creation of the remote object on the server. Each time a
client creates an instance of a client-activated type, that instance will
service only that particular reference in that particular client until its
lease expires and its memory is recycled. If a calling application domain
creates two new instances of the remote type, each of the client references
will invoke only the particular instance in the server application domain
from which the reference was returned.
In COM, clients hold an object in memory by holding a reference to it. When
the last client releases its last reference, the object can delete itself.
Client activation provides the same client control over the server object's
lifetime, but without the complexity of maintaining references or the
constant pinging to confirm the continued existence of the server or client.
Instead, client-activated objects use lifetime leases to determine how long
they should continue to exist."

Please refer to the whole topic for more information:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconclientactivation.asp


--
Regards,
Dmytro Lapshyn [MVP]
http://blogs.vbcity.com/DmytroL

"Jayme Pechan" <jayme.pechan@whitefeld.com> wrote in message
news:uNdV2FL4GHA.4764@TK2MSFTNGP05.phx.gbl...
> Right, in DCOM, I create the object on the server and it marshals the
> interface to the client which is a proxy because all calls to the object
> get marshalled to the server. The point though is that the client
> maintains a reference to a unique object on the server with its own state
> and such until it is released by the client. I need to find some way to
> do this same thing, if possible, in .NET. It looks like it is impossible.
>
> Thanks.
>
> Jayme
>
> "Dmytro Lapshyn [MVP]" <x-code@no-spam-please.hotpop.com> wrote in message
> news:OWqkh$I4GHA.696@TK2MSFTNGP03.phx.gbl...
>> Jayme,
>>
>> In DCOM, AFAIR it is also the server who creates the object - an
>> interface you are given is actually only a proxy (or stub, can't remember
>> exactly which of them runs on the client side).
>>
>> --
>> Regards,
>> Dmytro Lapshyn [MVP]
>> http://blogs.vbcity.com/DmytroL
>>
>> "Jayme Pechan" <jayme.pechan@whitefeld.com> wrote in message
>> news:OwiHaFC4GHA.600@TK2MSFTNGP05.phx.gbl...
>>> Does anyone know if it is possible to return an object from a remoting
>>> interface and have it be usable with .NET? I am trying to accomplish
>>> what I used to do in DCOM where I would call a function on an interface
>>> and it would return a new remote object. I could then call functions on
>>> that new object. When I attempt this with .NET it complains that the
>>> object has no channel sink. When I looked into the .NET configuration
>>> settings, this scenerio didn't seem to fit the 3, SingleCall,
>>> SingleInstance, or Client Initiated. The closest one I could think of
>>> was Client Initiated but it is the server that creates the object. Any
>>> ideas? Is this just not possible with .NET?
>>>
>>> Thanks.
>>>
>>> Jayme
>>>
>>
>
>


Re: Creating a remotable object like DCOM by Jayme

Jayme
Mon Oct 02 17:39:50 CDT 2006

That seems sensible but they require that the object be created from the
client (apparently). If its possible to do what I want, this would have to
be the right one. Thanks for the suggestion.

Jayme

"Dmytro Lapshyn [MVP]" <x-code@no-spam-please.hotpop.com> wrote in message
news:uGXDw4T4GHA.3400@TK2MSFTNGP04.phx.gbl...
> I've checked with MSDN docs and the Client Activation mode is just what
> you need. To quote the "Client Activation" topic from MSDN's .NET
> Framework Developer's Guide:
>
> "Client-activated objects are objects whose lifetimes are controlled by
> the calling application domain, just as they would be if the object were
> local to the client. With client activation, a round trip to the server
> occurs when the client tries to create an instance of the server object,
> and the client proxy is created using an object reference (ObjRef)
> obtained on return from the creation of the remote object on the server.
> Each time a client creates an instance of a client-activated type, that
> instance will service only that particular reference in that particular
> client until its lease expires and its memory is recycled. If a calling
> application domain creates two new instances of the remote type, each of
> the client references will invoke only the particular instance in the
> server application domain from which the reference was returned.
> In COM, clients hold an object in memory by holding a reference to it.
> When the last client releases its last reference, the object can delete
> itself. Client activation provides the same client control over the server
> object's lifetime, but without the complexity of maintaining references or
> the constant pinging to confirm the continued existence of the server or
> client. Instead, client-activated objects use lifetime leases to determine
> how long they should continue to exist."
>
> Please refer to the whole topic for more information:
>
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconclientactivation.asp
>
>
> --
> Regards,
> Dmytro Lapshyn [MVP]
> http://blogs.vbcity.com/DmytroL
>
> "Jayme Pechan" <jayme.pechan@whitefeld.com> wrote in message
> news:uNdV2FL4GHA.4764@TK2MSFTNGP05.phx.gbl...
>> Right, in DCOM, I create the object on the server and it marshals the
>> interface to the client which is a proxy because all calls to the object
>> get marshalled to the server. The point though is that the client
>> maintains a reference to a unique object on the server with its own state
>> and such until it is released by the client. I need to find some way to
>> do this same thing, if possible, in .NET. It looks like it is
>> impossible.
>>
>> Thanks.
>>
>> Jayme
>>
>> "Dmytro Lapshyn [MVP]" <x-code@no-spam-please.hotpop.com> wrote in
>> message news:OWqkh$I4GHA.696@TK2MSFTNGP03.phx.gbl...
>>> Jayme,
>>>
>>> In DCOM, AFAIR it is also the server who creates the object - an
>>> interface you are given is actually only a proxy (or stub, can't
>>> remember exactly which of them runs on the client side).
>>>
>>> --
>>> Regards,
>>> Dmytro Lapshyn [MVP]
>>> http://blogs.vbcity.com/DmytroL
>>>
>>> "Jayme Pechan" <jayme.pechan@whitefeld.com> wrote in message
>>> news:OwiHaFC4GHA.600@TK2MSFTNGP05.phx.gbl...
>>>> Does anyone know if it is possible to return an object from a remoting
>>>> interface and have it be usable with .NET? I am trying to accomplish
>>>> what I used to do in DCOM where I would call a function on an interface
>>>> and it would return a new remote object. I could then call functions
>>>> on that new object. When I attempt this with .NET it complains that
>>>> the object has no channel sink. When I looked into the .NET
>>>> configuration settings, this scenerio didn't seem to fit the 3,
>>>> SingleCall, SingleInstance, or Client Initiated. The closest one I
>>>> could think of was Client Initiated but it is the server that creates
>>>> the object. Any ideas? Is this just not possible with .NET?
>>>>
>>>> Thanks.
>>>>
>>>> Jayme
>>>>
>>>
>>
>>
>