The businessfacade project business appearance layer encapsulates 3 class Customersystem, OrDersystem, ProductSystem, and directly calls the data access layer and the service logic layer class in classes to provide the interface of the Web layer. Interesting is that each class is named by system. Customer system? Order system? Product system? Three classes in the business appearance layer inherit from the MARSHALBYREFOBJECT class to support remote processing. The interpretation of the MSDN for the MarshalByrefObject class is: "Allows cross-application domain boundary access objects in applications that support remote processing." "Application Domain is a partition resident in one or more applications in an operating system process. Objects in the same application domain direct communication. There are two ways to communicate in different application domains: one is a copy of the application domain boundary transfer object, one is to use the agent exchange message. "" "MarshalByrefObject is used The proxy exchange message is based on the base class of the object that communicates across the application domain boundary. It is not implicitly encapsulated by the object inherited from MarshalByrefObject. A copy of the object. "" MarshalByrefObject object can be accessed directly within the boundary of the local application domain. When the application in the remote application domain first accesses the MarshalByrefObject, the proxy will be transferred to the remote application. Sealed back to the object in the local application domain. "" When using the type of the application domain boundary, the type must be inherited from MarshalByrefObject, and because the object's member cannot be used outside the application domain So you do not copy the status of the object. "Customersystem class has a password to pass the .NET built-in encryption support for password protection, which can be easily used in our usual items.
Question: 1. How do you explain? . 3. All classes in Common project are marked as [SerializableAttribute], marked as [SerializableAttribute] and inherited from the MARSHALBYREFOBJECT class to support remote calls, what is the difference between the two? 4. I feel abstracting the business appearance layer increases the complexity of the system and increases encoding amount.