Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file, a memory buffer, or transmitted across a network connection to be used later in the same or another computer environment. And this sequence of bits can be of any format the user chooses; however, they are usually formed as XML or binary.
The reverse of this process, converting these bits back to the original data structures and objects, is called Deserialization
Serialization example in .net: DataSet.WriteXml("myfile.xml");
Deserialization example in .net: DataSet.ReadXml("myfile.xml");
Whereas Marshaling is the process of converting managed data types to unmanaged data types. There’re many differences between the managed and unmanaged environments. One of them is not being available a data Type of one environment in the other one. In order to be able to interact with the other environment, you will need to not to change the type format, but to change its name. This is an example:
Let say a unmanaged code has a function returning a BOOL data type, you can’t interpret the return type, that’s because your managed environment doesn’t have a BOOL; although, it has a System.Boolean.
Marshalling is so named because it was first studied in 1962 by Edward Waite Marshall, then with the General Electric Corporation
Refrences:
[
^]
and for more information you could take a look at this article.
[
^]
http://msdn.microsoft.com/en-us/library/zah6xy75%28v=vs.110%29.aspx[
href="http://msdn.microsoft.com/en-us/library/zah6xy75%28v=vs.110%29.aspx" target="_blank" title="New Window">^]