Working with assemblies in C# .net

  1. A DLL file is called as an Assembly.

Screenshot_1

 

  1. Assembly contains reusable code in the format of byte code.
  2. A collection of classes is called namespace
  3. Collection on namespaces is assembly
  4. Collection of Assemblies is FCL (Frame work class Library)
  5. Assembly supports language interoperability

That is the assembly developed in C #.net can be used in Vb .net and ASP.net also and vice versa.

  1. In some cases C #.net assembly may not work in VB.Net
  2. To add an assembly

Go to project menu  arrrow Add reference arrrow  Browse arrrow choose a DLL file

  1. To import the classes of name space “using” keyword is required .
  2. DLL arrrow System. DATA arrrow System. DATA. OLEDB

 

 

  1. Assemblies are divided in to two types
  2. Private
  3. Shared

Screenshot_2

 

 

 

  1. In private    assemblies all the referred DLLS will be copied automatically in to LOCAL projects debug folder.
  2. In shared assemblies , the referred DLLS will not be copied in to LOCAL project debug folder.
  3. Private assemblies occupies more memory , when these are referred from many projects.
  4. When many projects to be developed for the same client, then shared assemblies are recommended. if only one project is required for a client , then private assemblies are best.

 

 

Example on Private Assembly:-

 

Note: – To develop assemblies .net introduced class library project template

  • Open a class library project with project
  • Private test (out put will be private test. dll)

 

Note:-

DLL files are not executable, only it contains reusable code.

 

OBS: –

For every project by default a namespace will be created with the name of project.

 

Namespace private e test

{

Public class test

{

Public string M1 ()

{

Return “form M1”;

}//M1

}//test

}

 

Name space sub private Test

{

Public class test 2

{

Public String Print ()

{

Return “from print”;

}//print

Public string PRINT ()

{

Return “from PRINT”;

}//print

}//test2

}//sub private test

}//private test

 

Build the project  (build menu arrrowbuild solution)

 

OBS:-

 

Private test . DLL is created under

D:/C194 /private test / bin / bebug folder  with the following Structure

 

Screenshot_3

 

 

Similar to System . Io

  • Calling private Test . DLL from a C #.net windows Application Project

 

  • Open WFAP with project name c Test (C test or any name)
  • Go to project menu arrrowAdd referencearrrow Browse arrrow private Test .dll
  • Place a button

Using private test;                                              both should be return if one write,

Using private test. Sub private Test;                    then only that namespace classes all user

 

// code for button

{

Test t = new test ();

Message Box . show (t. M1());

Test 2 S = new Test 2 ();

Message Box . show (S. Print ());

Message Box . show (S. Print ());

}

 

Execute the Project (f5):-

 

When project is executed then private Test. DLL is copied in to C :/c 194/Ctest/Bin/debug folder, hence  private Test . DLL is a private assembly.

  • Calling Private Test.Dll from VB.net
  • Windows Application Project

 

arrrowopen vb.net windows Application Project with name V Test.

 

Project Menu arrrowAdd reference arrrow Browse arrrow

Private Test. DLL

Place a button

Imports Private Test

 

Imports Private Test. Sub Private Test

//code for b1_click

Dim t As New Test

Message Box (t1. M1())

Dim S As New Test2

Message Box (S. print ())//cannot be called.

Note: –

Test 2 is having two methods with name print and PRINT where only case is a different . This type  of methods are not accessible from VB.net because VB.net is not case sensitive.

 

    Working with Shared Assemblies:-

C:/Windows/Assembly

 

  1. ALL DLL file which is registered with GAC is called as shared Assembly.

GAC – Global Assembly cache

  1. C:/windows/Assembly folder is called as GAC.
  2. Assembly folder a secured folder where copy and paste is not allowed.
  3. A DLL, which contains a strong name can be registered with GAC.
  4. Strong name is also called as public key token, which provides unique identifier, to as assembly.
  5. Syntax to create Strong name

Sn – K abc.snk

 

Small case

 

  1. A DLL with strong name can be registered with GAC with the help of GacUtil tool.

 

Gacutil  -I  dll file

  • Small
  • Install

 

-u arrrow uninstall

Example on shared Assembly:-

  • Open class library project with project name asc 123

 

Name space ABC 123

{

Public Class Test

{

Public String Get Test ()

{

Return “from get text”;

}//get text

}//text

}//ABC 123

 

 

Steps to create a Strong name in C# .net

  • Open .net command prompt

(Start arrrowPrograms arrrowMicrosoft visual Studio 2008 arrrowVisual Studio Tools arrrow visual Studio 2008 command prompt )

D: enter key

  • Cd c 1194
  • C 194 > cd abs 123

 

Abc 123 >cd bin

Abc 123/bin > cd debug

 

OBS:-

 

Abc.snk file is created with a strong name linking abc.snk in the current project

Project menu arrrowAbc 123 Properties arrrowSigning arrrowcheck “Sign the assembly” check box arrrow Select “” “browse” from the combo box arrrow choose ABC.snk file

                    Providing Meta Information  (optional):

Project menu  arrrowABC 123 Properties  arrrow Applicationarrrow click on Assembly Information button  and type some information.

 

Build the project  (buildarrrow build Solution)

 

OBS:-

ABC 123. DLL is created under

D:/c194 /ABC 123 / Bin /Debug folder

Open .net command prompt and type as follows

Gacutil – I abc 123.dll

 

OBS:-

ABC 123. DLL is registered with GAC

(C :/windows/Assembly)  hence it is called as shared Assembly.

Open windows Forms Application Project  with Project name WINTEST

Project menu  arrrowAdd reference arrrowBrowse arrrow Abc 123.dll

Place a Button

Using ABC 123

Name space WINTEST

Code for Button1_click

{

Test t  = new Test ();

Message Box. Show  (t. Get Text ());

}

Execute the Project  (f5)

 

OBS:-

 

ABC123.DLL is not copied in to

D :/ c194/WINTEST/bin /Debug folder, hence Abc 123.DLL is a Shared Assembly

 

Note:-

 

All predefined assemblies are shared assemblies

“At TekSlate, we are trying to create high quality tutorials and articles, if you think any information is incorrect or want to add anything to the article, please feel free to get in touch with us at info@tekslate.com, we will update the article in 24 hours.”

0 Responses on Working with assemblies in C# .net"

    Leave a Message

    Your email address will not be published. Required fields are marked *

    Support


    Please leave a message and we'll get back to you soon.
    Three + 6