Blue Theme Orange Theme Green Theme Red Theme
 
Home | Forums | Videos | Photos | Blogs | Beginners
 | Consulting  
Submit an Article Submit a Blog 
 Login Close
User Id:
Password:
 
Forgot Password
Forgot Username
Why Register
 Jump to
Skip Navigation Links
TechnologyExpand Technology
WebsiteExpand Website
 Resources  
Close
 Our Network  
Close
Search :       Advanced Search »
Home » VB.NET » Apply Object Serialization in Real Life Situation

Apply Object Serialization in Real Life Situation

Object serialization is a process of streaming an object into a byte array. This article explains the object serialization process using a real world example.

Total page views :  2264
Total downloads :  41
   Print Read/Post comments Post a comment  Similar Articles  
   Email to a friend  Bookmark  Author's other articles  
Download Files:
WindowsApplication1.zip
 
Become a Sponsor

Let us check the situation as you went to a super market and ordered some thing. After the purchase, the cashier summarized the amount and you have not so much of amount at that time. But you can take it from an ATM counter (I am saying a situation where credit/debit card payments not possible. Only ready cash want to be paid.). So you just leave the shop for taking the money and the shopkeeper want to keep your bill as a pending one and should deal with the billing of other customers. So keeping a bill or any thing as a pending one is our core discussion. You can keep the items in memory and can also easily forget them when a power failure occurred. So every thing should be persists in a file form is the best option.

Serialization is doing nothing, but keeps the state of an object in the form of a file. So you can access large amount of data through your application and also keep the object containing data in a file format. So you can carry your whole data along with you in a simple file format and can also access it whenever you wish. Saving an object state is termed as serialization and from the saved format regain the object's state is known as deserialization. In the sample code along with this article I saved the particular bill item in a serialized form and then deserialized it for later use. Remember that serialization has the format of xml or binary. If you use the xml format, it stores everything in a text format and can be readable. But binary format is a secure one and used in this article also.

Create a new VB.Net windows application and add a new class named Item to that project. This Item class is the object we are going to persist. Item class is used to store the items of a bill which want to be saved as a pending bill. Below is the structure of class Item.

<Serializable()>

Public Class Item

 

    Private itemName As String

    Private itemId As String

    Private itemPrice As Double

    Private itemQuantity As Long

    Private netAmount As Double

 

Public Sub New()

        itemName = ""

        itemPrice = 0.0

        itemQuantity = 0

        netAmount = 0.0

End Sub 'New

 

Public Property ItemName() As String

        Get

            Return ItemName

        End Get

        Set(ByVal value As String)

            itemName = value

        End Set

End Property

 

Public Property ItemId() As String

        Get

            Return ItemId

        End Get

        Set(ByVal value As String)

            itemId = value

        End Set

End Property

 

Public Property ItemPrice() As Double

        Get

            Return itemPrice

        End Get

        Set(ByVal value As Double)

            itemPrice = value

        End Set

End Property

 

Public Property ItemQuantity() As Long

        Get

            Return ItemQuantity

        End Get

        Set(ByVal value As Long)

            itemQuantity = value

        End Set

End Property

 

Public Property NetAmount() As Double

        Get

            Return NetAmount

        End Get

        Set(ByVal value As Double)

            netAmount = value

        End Set

End Property

 

End Class 'Item

 

As you can see there are 5 properties declared in the class to store the items as their names describes. Storing operation will took place in a win form. But the most important thing want to be notice is the [Serializable] attribute. Every object you want to serialize should at least decorate this attribute.

In the front end you have 4 text boxes for entering values for name, quantity, price and net amount of a particular item. If you clicks on Save button nothing special will happen. Just saving the record. But our aim the button for saving the pending bills. When u clicks that button, an object of Item class will create and set the objects properties with the corresponding values of the fields. The ItemId property will set by creating a new GUID, as the object will save using this value. Now and now we want to save this object in a file format. Just look the code below

'Create a file stream in which teh object will store

Dim fstream As FileStream = File.Create((SERIALIZED_FILE_PATH + "@" \ +objItem.ItemId))

'Object will store in binary format

Dim bf As New BinaryFormatter()

'Bind the filestream with that of binaryformatter. Also mentioned the object to save

bf.Serialize(fstream, objItem)

fstream.Close()

fstream = Nothing

bf = Nothing

 

We are going to store the object in a file so first create a FileStream object using static method Create of  File Class. The argument is the full path name of the file. After setting this we want to create an object of BinaryFormatter, as we are going to store the object in a binary format. Use the Serialize() method of BinaryFormatter to serialize the particular object. Arguments are the file stream we created and the object which we want to serialize. If you browse to the location, you can see the file with an extension of ".dat" (you can use your own extension). There is a list view in the form to view all object data serialized. For that we are using Deserialize() method of BinaryFormatter. As Deserialize() returns an object type for occupying all types of data, we need to cast the returned value. Just look the code below.

Dim fstream As FileStream = File.OpenRead(serializedFiles.GetValue(fileIndex).ToString())

Dim bf As New BinaryFormatter()

Dim ser As Item = CType(bf.Deserialize(fstream), Item)

Dim itemValues As String() =  {ser.ItemName, ser.ItemPrice.ToString(), ser.ItemQuantity.ToString(), ser.NetAmount.ToString(), ser.ItemId.ToString()}

itemsListView.Items.Add(New ListViewItem(itemValues))

You want to select an item from list view for saving it as a normal paid bill. Then click the Save button to finish the process, as it saves the values to database and deletes the particular pending bill from the location.

So basic concept is that every pending item will be stored as a serialized object and you can select any saved object at any time and converted it to a paid bill. This is really a concept and you can design it in your own way. Please check the code along with this.

NOTE: THIS ARTICLE IS CONVERTED FROM C# TO VB.NET USING A CONVERSION TOOL. ORIGINAL ARTICLE CAN BE FOUND ON C# CORNER (http://www.c-sharpcorner.com/). 


Login to add your contents and source code to this article
 About the author
 
Jaish Mathews
Residing in Calicut, India. Bachelors degree in mathematics. Working at Computer Science Corporation, Chennai as Project Leader. Interest areas are ASP.NET, C#, AJAX and XML
Looking for C# Consulting?
C# Consulting is founded in 2002 by the founders of C# Corner. Unlike a traditional consulting company, our consultants are well-known experts in .NET and many of them are MVPs, authors, and trainers. We specialize in Microsoft .NET development and utilize Agile Development and Extreme Programming practices to provide fast pace quick turnaround results. Our software development model is a mix of Agile Development, traditional SDLC, and Waterfall models.
Click here to learn more about C# Consulting.
 
Introducing MaxV - one click. infinite control. Hyper-V Hosting from MaximumASP.
Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Dynamic PDF
ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
Go.NET
Build custom interactive diagrams, network, workflow editors, flowcharts, or software design tools. Includes many predefined kinds of nodes, links, and basic shapes. Supports layers, scrolling, zooming, selection, drag-and-drop, clipboard, in-place editing, tooltips, grids, printing, overview window, palette. 100% implemented in C# as a managed .NET Control. Document/View/Tool architecture with many properties&events. Optional automatic layout.
Dundas Software
Dundas Chart for .NET is the most advanced .NET charting package available today.  With an extremely complete feature set, elegant architecture and easy implementation, Dundas Chart can quickly add advanced Charting functionality to enhance and transform ASP.NET and Windows Forms applications.  Whether you are implementing charting into internal projects, or building applications for clients, Dundas Chart offers advanced technology and advanced results to get the most out of data.
Clickatell's SMS Gateway
Clickatell's Developer Solutions allow you to SMS enable any website or application via a range of API's. Learn More about our API connections.
Free access to .NET Memory Management video
Everything you need to know about Garbage Collection, Temporary Objects, Fragmentation, Finalization and common causes of memory leaks in .NET. Watch the video here.
Microsoft Visual Studio 2010 Professional
Microsoft Visual Studio 2010 Professional will launch on April 12, but you can beat the rush and secure your copy today by pre-ordering at the affordable estimated retail price of $549 (US). Pre-order now.
Nevron Chart for .NET 2010.1 Now Available
The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Developer-Ready ASP.NET 2.0 Web Hosting with 3 MONTHS FREE
Now supporting .NET 3.0 Framework with Windows Workflow Foundation, Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), windows CardSpace (WCS)! Providing more flexibility for Developers with Web Services Support and a User/Permission Manger. Also supporting MS SQL 2005/2000 with Real-Time Backups, FREE Automated Attach .MDF Tool, FREE SQL Restore and Shrink SQL DB Tools, and SQL
 
   Print Read/Post comments Post a comment  Similar Articles  
   Email to a friend  Bookmark  Author's other articles  
Download Files:
WindowsApplication1.zip
 
 Post a Feedback, Comment, or Question about this article
Subject:  
Comment:  
Become a Sponsor
 Comments

 Hosted by MaximumASP  |  Found a broken link?  |  Contact Us  |  Terms & conditions  |  Privacy Policy  |  Site Map  |  Suggest an Idea  |  Media Kit
Current Version: 5.2009.6.2
 © 2010  contents copyright of their authors. Rest everything copyright Mindcracker. All rights reserved.