In super simple terms, (one of the) aim of serialization is to convert an object (not a class) that can be transported.
There are two processes that are attached to Serialization viz. deserializing and serializing AND to understand that – let’s draw an analogy with star trek:
In computer science, in the context of data storage and transmission, serialization is the process of converting a data structure or object state into a format that can be stored (for example, in a file or memory buffer, or transmitted across a network connection link) and “resurrected” later in the same or another computer environment
Let’s Simplify that!
we need to serialize the object when 1) an object is to be sent over the network 2) state of an object is to be saved.
Moral of the story
To send an object via network, it is serialized.
After it’s received, to recover it, it is deserialized.
Now let’s get into action!
I am familiar with .Net framework– so I am going to share a demo code for XML serialization (serializing + deserializing) with you.
Here’s the class definition (person.cs). Just a simple object for demo purpose:
[code language=”css”]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace XMLSerialization
{
class person
{
static void Main(string[] args)
{
}
public class person
{
private string _firstname, _lastname, _twitter;
public person()
{
_firstname = "";
_lastname = "";
_twitter = "";
}
public string firstname
{
get { return _firstname; }
set { _firstname = value; }
}
public string lastname
{
get { return _lastname; }
set { _lastname = value; }
}
public string twitter
{
get { return _twitter; }
set { _twitter = value; }
}
}
}
} [/code]
Code for Serializing an object:
[code language=”css”]
class Program
{
static void Main(string[] args)
{
person personone = new person();
personone.firstname = "paras";
personone.lastname = "doshi";
personone.twitter = "@paras_doshi";
Console.WriteLine("serializing….");
XmlSerializer serializer = new XmlSerializer(typeof(person));
string path = ".\filename.xml";
FileStream fs = File.OpenWrite(path);
XmlTextWriter writer = new XmlTextWriter(fs,System.Text.Encoding.UTF8);
writer.Formatting = Formatting.Indented;
try
{
serializer.Serialize(writer, personone);
}
finally
{
writer.Close();
}
Console.WriteLine("Serialization: Done!");
}
} [/code]
Code to deserialize an object:
[code language=”css”]
Console.WriteLine("Deserialization…..");
XmlSerializer serializer = new XmlSerializer(typeof(person));
I recently learned how to include charts in visual studio 2008 express edition. If you want to do the same then you need do following things: 1) Get visual studio 2008 Express SP1 or higher version 2) Upgrade to .net 3.5 sp1 (if you use lower version of .net) 3) Download Microsoft chart controls : Download Link and then install it.
After you are done with Installing a ‘charts’ option will appear in the Data Tab in Toolbox. If you still do not see it you will need to add