Microsoft Dot Net Master

Microsoft Dot Net Master
Microsoft Dot Net Master

Friday, July 15, 2011

In CAO model when we want client objects to be created by “NEW” keyword is there any precautions to be taken ?

Remoting Clients and Remoting Server can communicate because they share a common
contract by implementing Shared Interface or Base Class (As seen in previous examples).
But according to OOP’s concept we can not create a object of interface or Base Classes
(Abstract Class). Shipping the server object to client is not a good design practice. In
CAO model we can use SOAPSUDS utility to generate Metadata DLL from server which
can be shipped to client, clients can then use this DLL for creating object on server. Run
the SOAPSUDS utility from visual studio command prompt for syntax see below :-
soapsuds -ia:RemotingServer -nowp -oa:ClientMetaData.dll
Where RemotingServer is your server class name.
ClientMetaData.dll is the DLL name by which you will want to create the metadll.
Server code will change as follows :-
ChannelServices.RegisterChannel(objHttpChannel)
RemotingConfiguration.ApplicationName = “RemoteObject”
RemotingConfiguration.RegisterActivatedServiceType(GetType(InterFaceRemoting.InterFaceRemoting))
Note :- We have to provide applicationname and register the object as ActivatedServiceType.
On client side we have to reference the generated ClientMetaData.dll from SOAPSUDS
utility. Below are changes which are needed to be incorporated at the Remoting Client :-
RemotingConfiguration.RegisterActivatedClientType(typeof(RemoteObject),“http://
localhost:1234/MyServer”)
Dim objRemoteObject as new RemoteObject().

RemoteObject is class which is obtained from ClientMetaData.dll which we created using
SOAPSUDS utility. Now you can reference the object as normal object.

No comments:

Post a Comment