Blue Theme Orange Theme Green Theme Red Theme
 
6 Months Free & No Setup Fees ASP.NET Hosting!
Home | Forums | Videos | Photos | Blogs | Beginners | Advertise with Us
 | Consulting  
Submit an Article Submit a Blog 
 Jump to
Skip Navigation Links
TechnologyExpand Technology
WebsiteExpand Website
Discover the top 5 tips for understanding .NET Interop
Search :       Advanced Search »
Home » VB.NET » Building a Class Library Component and Consumer Client Application with VB.NET

Building a Class Library Component and Consumer Client Application with VB.NET

GDI+ is next evolution of GDI. Using GDI objects in earlier versions of Visual Studio was a pain. This tutorial gives you a head start with GDI+ using VB.NET. In this tutorial, you will learn how to write graphics applications and understand the concept behind the System.Drawing namespace and its members.

Author Rank :
Page Views : 73839
Downloads : 342
Rating :
 Rate it
Level : Beginner
   Print Read/Post comments Post a comment  Similar Articles  
   Email to a friend  Bookmark  Author's other articles  
Download Files:
ComponentNClient.zip
 
 
Mindcracker MVP Summit 2012
Become a Sponsor
Become a Sponsor
 Tag Cloud
 Latest Jobs
More ... 
 Latest Interview Questions
More ... 

Creating a class library component (DLL) using Visual Studio .NET is pretty simple. In this tutorial, I will show you how to create a class library component and use it from a client application.

I have divided this tutorial in two parts. 

  • Building a server class library.
  • Building a consumer client application.
  • Building a Server Class Library.

In this section, I will create a Math server class library with a couple of methods and properties in it. 

Create an Empty Class Library Project

Select File->New->Project->Visual Basic Projects->Class Library.

Select your project name and appropriate directory using Browse button and click OK. I give my component name "VBNetMathComponent" as you can see from Figure 1.



Figure 1.

Project and Its files

The Solution Explorer adds two Visual Basic classes to your project. First is AssemblyInfo.vb and second is Class1.vb.  We don't care about AssemblyInfo class. We will be concentrating on Class1.vb. See Figure 2.



Figure 2.

If you double click on Class1.vb, you will see the class declaration as following:

Public Class Class1
End Class

Here you can change your class name to whatever you want. We change our class name to McMathClass. Now my new class looks like the following:

Public Class McMathClass
End Class

Adding Methods and Properties to the Class

Now we will add one method and one property to the class. We define a public function called Add, which takes two input parameters and returns the sum of two. We also add a property called AllowAddition of type Boolean. The Add method works only when this property is true.

The source code for Add method and AllowAddition property is listed as following:

Public Class McMathClass
' Define a local variable to store the property value.
Private allowSum As Boolean
' Define Add function which adds two double values and retunes the
' sum of two
Public Function Add(ByVal val1 As Double, ByVal val2 As Double) As Double
If allowSum = True Then
' Return the sum of two input values
Return val1 + val2
Else
Return 0
End If
End
Function
' Define AllowAddition property
Public Property AllowAddition() As String
Get
Return allowSum
End Get
Set(ByVal Value As String)
allowSum = Value
End Set
End
Property
End
Class

Build the DLL

Now build the DLL and see bin\debug directory of your project. You will see VBNetMathComponent.dll in this folder. This is your component.

Building a Class Library Consumer Client Application

Now we will create a client application that will call our class library and its members. We will create a console application that will consume our class library.

Create a Console Application

Again, we create the console application using Visual Studio .NET.

Select File->New->Project->Visual Basic Projects->Console Application.

I give my console application name MathLibraryConsumer as you can see from the Figure 3.



Figure 3.

Add Reference to the Library

Now next step is to add reference to the library. You can use Add Reference menu option to add a reference. Go to Project->Add reference and browse for VBNetMathComponent.dll as you can see from Figure 4.



Figure 4.

After completing this step, you will notice the component reference is added to your project references as you can see from Figure 5.



Figure 5.

Calling the Component

Now we create an instance of McMathClass, set its property and call Add method. As you can see from the following code, first I set AllowAddition property to false and call the Add method and send the output to the console. After that I set AllowAddition proeprty to true, call the Add method again, and send the output to the cosnole.

Module Module1
Sub Main()
' Define a private variable
Dim total As Double
' Create an instance of McMathClass
Dim myComp As New VBNetMathComponent.McMathClass()
' Set AllowAddition property to false
myComp.AllowAddition = False
Console.WriteLine("Adding two numbers with AllowAddition False:")
' Add two numbers
total = myComp.Add(3, 5)
' Send output to console
Console.WriteLine(total.ToString())
' Now set AllowAddition to true
myComp.AllowAddition = True
Console.WriteLine("Adding two numbers with AllowAddition True:")
' Add two numbers
total = myComp.Add(3, 5)
' Send output to console
Console.WriteLine(total.ToString())
Console.ReadLine()
End Sub
End
Module

Now build and run the project. The output looks like Figure 6. As you can see from this output, the Add method returns 0 when the AllowAddition property is false, and returns the sum when the AllowAddition property is true.



Figure 6.

Summary

In this simple tutorial, you learned how to write a class library using VB.NET and consume it from a consumer client application. Using the same methodology, you can implement your component and extend the functionality.

Comment Request!
Thank you for reading this post. Please post your feedback, question, or comments about this post Here.
Login to add your contents and source code to this article
 [Top] Rate this article
 
 About the author
 
Mahesh Chand
Mahesh is the founder of C# Corner and Mindcracker Network, an author of several .NET programming books and a Microsoft MVP for 6 consecutive years. In his day to day work, Mahesh is a Senior Software Consultant with over 14 years of IT industry experience building systems for Financial and Banking, Engineering & Architectural, Imaging, Construction, Biological & Pharmaceuticals, Healthcare and Education industries. His expertise is Windows Forms, ASP.NET, Silverlight, WPF, WCF, Visual Studio 2010, SQL Server, and Oracle.  If you are looking for a Sharepoint, Windows Forms, ASP.NET, WPF, Silverlight, C#, VB.NET, Oracle, and SQL Server Consultant in Philadelphia area or remote location, drop me a line at MAHESH [AT] C-SHARPCORNER [DOT] COM.
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.
Discover the top 5 tips for understanding .NET
Ricky Leeks presents the top 5 tips for understanding .NET Interoperability. Learn more.
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.
ASP.NET 4 Hosting
Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites – Click Here!
 
 Post a Feedback, Comment, or Question about this article
Subject:
Comment:
6 Months Free & No Setup Fees ASP.NET Hosting!
Become a Sponsor
 Comments
COM in vb.net by chitra On November 16, 2006

 

hi mahesh

      Iam a new member of this site.

      i need clarification for 2 of my doubts:

    1.  in our company,  for any application we create in vb.net , we do it in a 3 tier architectural style ( we create 3 projects for presentation layer, business layer and datalayer) . And for each layer we add reference.

My question : Is  the above way  we do,  is called COM implementation in vb.net ? 

          2. Is the word 'COM' referred as 'COM' itself in .net terminology or by some other name ?

 

Reply | Email | Modify 
Re: COM in vb.net by Mahesh On November 25, 2006

1. For development, Project Reference is preferable than the assembly reference. However, assembly reference is also OK as long as your team is OK with it.

2. Yes COM is same. There is no seperate COM in .NET.

Reply | Email | Modify 
Re: Class components by Mahesh On November 25, 2006
You may need to install the missing component.
Reply | Email | Modify 
Re: Re: Class components by raj On July 10, 2007
Hi Mahesh, This is Raj. I am not expertise in .net. I read your article its really helpful but i have on doubt. The dll you created is it class library? And could you please tell me how can i create assembly for the same and use it into client application? Thanks and Regards, Raj
Reply | Email | Modify 
Re: Re: Re: Class components by Mahesh On July 11, 2007

Yes this is a class library. To use it, just add reference to your application by RIGHT CLICK ON PROJECT -> SELECT ADD REFERENCE menu item -> Browse this DLL.

An assembly is a generic name from a DLL or EXE in .NET.

Reply | Email | Modify 
Re: Re: Re: Re: Class components by Robert On September 28, 2007
Hello! I read your article and dozen more. Is it possible to use the created dll without adding it to the references? (For example: register with regsrv32.exe and use..) Robert
Reply | Email | Modify 
Re: Re: Re: Re: Re: Class components by Mahesh On September 28, 2007
You can use it using the LoadLibrary method. Read more document on reflection and loading DLL dynamically. Search this site. I think there are some articles on it. Or search www.c-sharpcorner.com
Reply | Email | Modify 
AllowAddition property is a Boolean by Ramasubramanian On September 28, 2008
Hi, AllowAddition property has to be boolean since you set the property value to FALSE or TRUE. Is there any reason you kept it as String. If so, the property value setting to be in quotes right. Let me know if I am wrong.
Reply | Email | Modify 
Re: AllowAddition property is a Boolean by Mahesh On April 7, 2009
Yes you are correct.
Reply | Email | Modify 
Re: Re: AllowAddition property is a Boolean by Rob On October 18, 2009
Is there a limit to the size of a class library dll, and is there a recommended max size?
Reply | Email | Modify 
Mahesh - Help please..?? by Udit On June 1, 2010
Hi Mahesh,
I read ur article and it is very nicely explained...but i have a question to ask...it might be silly but still i m serious that i don't know the answer..

Ok my question is..suppose we add a Windows Media Player component in Visual Studio 2010 and we when we build our application it works fine, but when we copy just the exe file from release folder to some other folder, it gives error on runtime...u know what must be the problem?
....i m guessing that the problem are the dll files of windows media player component in release folder...the application works fine with all those files in the same folder..! Please reply ASAP..!

Thanks
Udit
Reply | Email | Modify 
Mindcracker MVP Summit 2012
 © 2012  contents copyright of their authors. Rest everything copyright Mindcracker. All rights reserved.