In this post, we will discuss Serialization and Deserialization in C#.Net in Remoting. Also, you can check out my previous posts on:
Serialization and Deserialization basically used in Distributed Applications like Remoting, Webservice, WCF etc. These are explained below.
Serialization and Deserialization:
-> To exchange the information between both the parties i.e, client and server they use the process Serialization and Deserialization.
-> An application represents the data in high level (object format) which can’t flow freely, it needs to convert into low level(binary or text) and then it transferred to other systems where on the target machine low-level data has to be converted back into the high level.
-> Serialization is a process of converting high-level data to low-level data and De-serialization is the process of converting low-level data to high-level data.
-> If the client and server in one OS, it is the Binary format and if they are in different OS, it is Text format.
-> Remoting provides Formatter Classes to perform Serialization and Deserialization.
These are as follows:
1. Soap Formatters: HttpServerChannel,HttpClientChannel
Soap Formatted are used for text serialization and deserialization and Binary Formatters are used for binary serialization and deserialization.
2. Binary Formatters: TCP server channel, TCPClientChannel
Binary is more efficient (time and memory used) and not human readable. Soap is human readable.
We can serialize our own classes if we mark them as [Serializable] attribute that means it serializes all members of a class, except those marked as [NonSerialized].