توضیح مختصر در مورد Remoting :
همونطور که می دونید یه Remoting App. شامل دو بخش هسست که یکی روی سرور اجرا می شه و یکی دیگه روی کلاینت.
Server Side بوسیله یه Windows Service پیغامهای Client Side رو در یافت در یافت و پردازش می کنه .
روی کلاینت با ساختن یه Proxy می تونیم به Server Side App دسترسی داشته باشیم.
قابل ذکر هست که از طریق دو کانال HTTP و TCP توانایی ارتباط دارند که HTTP Channel اغلب در محلی از اینترنت که فایروالها نیاز به انتقال دارند استفاده می ه و TCP از طریق ارتباط مستقیم سوکت ها توسعه داده می شود.
Marshal-by-Value Objects
Marshal-by-value objects should implement the ISerializable interface or should be marked with the SerializableAttribute attribute so that the remoting system can serialize these objects automatically. When the client calls a method on marshal-by-value objects, the remoting system creates a copy of these objects and passes the copy to the client application domain. After the client application receives the copy, the copy in the client application domain handles any method call. In addition, when marshal-by-value objects are passed as arguments, a copy of the object is passed to the method.
To improve performance and reduce processing time, move the complete state of the object and its functionality to the target application domain. Using marshal-by-value objects reduces time- and resource-consuming trips across network, process, and application domain boundaries. You also use marshal-by-value objects directly from within the original application domain of the object. In this case, access is efficient because marshaling does not take place.
Marshal-by-Reference Objects
Marshal-by-reference objects are remotable objects that extend the System.?Marshal-ByRefObject class. When a client creates an instance of a marshal-by-reference object in its own application domain, the .NET Remoting infrastructure creates a proxy object in the caller application domain that represents the marshal-by-?reference object and returns a reference of that proxy to the caller. The client then makes method calls to the proxy object. The remoting system marshals those calls, returns them to the server application domain, and invokes the call on the actual object