- A DLL file is called as an Assembly.
- Assembly contains reusable code in the format of byte code.
- A collection of classes is called namespace
- Collection on namespaces is an assembly
- Collection of Assemblies is FCL (Framework Class Library)
- 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.
- In some cases, C #.net assembly may not work in VB.Net
- To add an assembly
Interested in mastering .NET? Learn more about ".NET Training" in this blog post.
Go to project menu Add reference
Browse
choose a DLL file
- To import the classes of namespace “using” keyword is required.
- DLL
System. DATA
System. DATA. OLEDB
- Assemblies are divided into two types
- Private
- Shared
- In private assemblies, all the referred DLLS will be copied automatically into LOCAL projects debug folder.
- In shared assemblies, the referred DLLS will not be copied into LOCAL project debug folder.
- Private assemblies occupies more memory when these are referred from many projects.
- 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 the project
- Private test (output will be a 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 the project.
Namespace private e test
{Public class test
{
Public string M1 ()
{
Return “form M1”;
}
//M1
}
//test
}
Namespace 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 build solution)
OBS:-
Private test. DLL is created under D:/C194 /private test / bin / debug folder with the following Structure
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
Add reference
Browse
private Test .dll
- Place a button
Using private test;
both should be returned 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 the project is executed then private Test. DLL is copied into 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
open vb.net windows Application Project with name V Test.
Project Menu
Add reference
Browse
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 ())//can not be called.
Note: - Test 2 is having two methods with name print and PRINT where the only case is different. This type of method is not accessible from VB.net because VB.net is not case sensitive.
Working with Shared Assemblies:-
C:/Windows/Assembly
- ALL DLL file which is registered with GAC is called a shared Assembly.
GAC – Global Assembly cache
- C:/windows/Assembly folder is called as GAC.
- Assembly folder a secured folder where copy and paste is not allowed.
- A DLL, which contains a strong name can be registered with GAC.
- A strong name is also called a public key token, which provides a unique identifier, to as an assembly.
- Syntax to create a Strong name
Sn – K abc.snk Small case
- A DLL with strong name can be registered with GAC with the help of GacUtil tool.
Gacutil -I dll file
- Small
- Install
-u uninstall
Example on shared Assembly:-
- Open class library project with project name asc 123
Namespace 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 Programs
Microsoft Visual Studio 2008
Visual Studio Tools
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
Abc 123 Properties
Signing
check the “Sign the assembly” checkbox
Select “browse” from the combo box
choose ABC.snk file
Providing Meta Information (optional):
Project menu
ABC 123 Properties
Application
Click on the Assembly Information button and type some information.
Build the project (build 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
Add reference
Browse
Abc 123.dll Place a Button Using ABC 123 Namespace 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 into D :/ c194/WINTEST/bin /Debug folder, hence Abc 123.DLL is a Shared Assembly
Note:-
All predefined assemblies are shared assemblies