3. INTRODUCTIONINTRODUCTION
MICROSOFT .NET (PRONOUNCED“DOT NET”) IS A SOFTWARE COMPONENTMICROSOFT .NET (PRONOUNCED“DOT NET”) IS A SOFTWARE COMPONENT
THAT RUNS ON THETHAT RUNS ON THE WINDOWS OPERATING SYSTEMWINDOWS OPERATING SYSTEM..
MICROSOFT .NET IS A FRAMEWORK WHICH PROVIDES A COMMONMICROSOFT .NET IS A FRAMEWORK WHICH PROVIDES A COMMON
PLATFORM TO EXECUTE OR, RUN THE APPLICATIONS DEVELOPED INPLATFORM TO EXECUTE OR, RUN THE APPLICATIONS DEVELOPED IN
VARIOUS PROGRAMMING LANGUAGES (VARIOUS PROGRAMMING LANGUAGES (VISUAL BASIC, VISUAL C#, AND
VISUAL C++ ).).
MICROSOFT ANNOUNCEDTHE .NET INITIATIVE IN JULY 2000.MICROSOFT ANNOUNCEDTHE .NET INITIATIVE IN JULY 2000.
THE MAIN INTENTION WAS TO BRIDGE THE GAP INTHE MAIN INTENTION WAS TO BRIDGE THE GAP IN INTEROPERABILITYINTEROPERABILITY
BETWEEN SERVICES OF VARIOUS PROGRAMMING LANGUAGES.BETWEEN SERVICES OF VARIOUS PROGRAMMING LANGUAGES.
4. OBJECTIVESOBJECTIVES
----THE .NET FRAMEWORKIS DESIGNEDTO FULFILL THE----THE .NET FRAMEWORKIS DESIGNEDTO FULFILL THE
FOLLOWING OBJECTIVES:FOLLOWING OBJECTIVES:
• PROVIDE OBJECT-ORIENTED PROGRAMMINGPROVIDE OBJECT-ORIENTED PROGRAMMING
ENVIRONMENTENVIRONMENT
• PROVIDE ENVIRONMENT FOR DEVELOPING VARIOUSPROVIDE ENVIRONMENT FOR DEVELOPING VARIOUS
TYPES OF APPLICATIONS, SUCH AS WINDOWS-BASEDTYPES OF APPLICATIONS, SUCH AS WINDOWS-BASED
APPLICATIONS AND WEB-BASED APPLICATIONSAPPLICATIONS AND WEB-BASED APPLICATIONS
• TO ENSURE THAT CODE BASED ON THE .NETTO ENSURE THAT CODE BASED ON THE .NET
FRAMEWORK CAN INTEGRATE WITH ANY OTHERFRAMEWORK CAN INTEGRATE WITH ANY OTHER
6. COMPONENTS OF .NETCOMPONENTS OF .NET
ARCHITECTUREARCHITECTURE
---MICROSOFT .NET CONSISTS OF FOURMAJORCOMPONENTS:---MICROSOFT .NET CONSISTS OF FOURMAJORCOMPONENTS:
COMMON LANGUAGE SPECIFICATION (CLS)COMMON LANGUAGE SPECIFICATION (CLS) –– BLUE IN THE DIAGRAMBLUE IN THE DIAGRAM
FRAMEWORKCLASS LIBRARY (FCL)FRAMEWORKCLASS LIBRARY (FCL) –– REDRED
COMMON LANGUAGE RUNTIME (CLR)COMMON LANGUAGE RUNTIME (CLR) –– GREENGREEN
.NET TOOLS.NET TOOLS –– YELLOWYELLOW
7. COMMON TYPE SYSTEM
(CTS)
COMMON TYPE SYSTEM (CTS) DESCRIBES A SET OF TYPES THAT CAN BE USED IN
DIFFERENT .NET LANGUAGES IN COMMON . THAT IS , THE COMMON TYPE SYSTEM
(CTS) ENSURE THAT OBJECTS WRITTEN IN DIFFERENT .NET LANGUAGES CAN
INTERACT WITH EACH OTHER.
COMMON TYPE SYSTEM (CTS) PROVIDES BASE SET OF DATA TYPES (SUCH
AS BOOLEAN, BYTE, CHAR, INT32, AND UINT64) WHICH IS RESPONSIBLE FOR
CROSS LANGUAGE INTEGRATION. THE COMMON LANGUAGE RUNTIME (CLR) CAN
LOAD AND EXECUTE THE SOURCE CODE WRITTEN IN ANY .NET LANGUAGE, ONLY
IF THE TYPE IS DESCRIBED IN THE COMMON TYPE SYSTEM (CTS) .
---TO IMPLEMENT OR SEE HOW CTS IS CONVERTING THE DATA TYPE TO A COMMON
DATA TYPE, FOR EXAMPLE, WHEN WE DECLARE AN INT TYPE DATA TYPE IN C# AND
VB.NET THEN THEY ARE CONVERTED TO INT32. IN OTHER WORDS, NOW BOTH
WILL HAVE A COMMON DATA TYPE THAT PROVIDES FLEXIBLE COMMUNICATION
BETWEEN THESE TWO LANGUAGES.
8. COMMON LANGUAGE SPECIFICATIONCOMMON LANGUAGE SPECIFICATION
(CLS)(CLS)
------PERFORMS THE FOLLOWING FUNCTIONS:PERFORMS THE FOLLOWING FUNCTIONS:
IT ESTABLISHES A FRAMEWORK THAT HELPS ENABLE CROSS-LANGUAGEIT ESTABLISHES A FRAMEWORK THAT HELPS ENABLE CROSS-LANGUAGE
INTEGRATION, TYPE SAFETY, AND HIGH PERFORMANCE CODE EXECUTION.INTEGRATION, TYPE SAFETY, AND HIGH PERFORMANCE CODE EXECUTION.
IT PROVIDES AN OBJECT-ORIENTED MODEL THAT SUPPORTS THE COMPLETEIT PROVIDES AN OBJECT-ORIENTED MODEL THAT SUPPORTS THE COMPLETE
IMPLEMENTATION OF MANY PROGRAMMING LANGUAGES.IMPLEMENTATION OF MANY PROGRAMMING LANGUAGES.
IT DEFINES RULES THAT LANGUAGES MUST FOLLOW, WHICH HELPS ENSURE THATIT DEFINES RULES THAT LANGUAGES MUST FOLLOW, WHICH HELPS ENSURE THAT
OBJECTS WRITTEN IN DIFFERENT LANGUAGES CAN INTERACT WITH EACH OTHER.OBJECTS WRITTEN IN DIFFERENT LANGUAGES CAN INTERACT WITH EACH OTHER.
10. FRAMEWORK CLASS LIBRARYFRAMEWORK CLASS LIBRARY
(FCL)(FCL)
THE FCL IS A COLLECTION OF OVER 7000 CLASSES AND DATA TYPES THATTHE FCL IS A COLLECTION OF OVER 7000 CLASSES AND DATA TYPES THAT
ENABLE .NET APPLICATIONS TO READ AND WRITE FILES, ACCESS DATABASES,ENABLE .NET APPLICATIONS TO READ AND WRITE FILES, ACCESS DATABASES,
PROCESS XML, DISPLAY A GRAPHICAL USER INTERFACE, DRAW GRAPHICS, USEPROCESS XML, DISPLAY A GRAPHICAL USER INTERFACE, DRAW GRAPHICS, USE
WEB SERVICES, ETC.WEB SERVICES, ETC.
THE FCL WRAPS MUCH OF THE MASSIVE, COMPLEX WIN32 API INTO MORETHE FCL WRAPS MUCH OF THE MASSIVE, COMPLEX WIN32 API INTO MORE
SIMPLE .NET OBJECTS THAT CAN BE USED BY C# AND OTHER .NET PROGRAMMINGSIMPLE .NET OBJECTS THAT CAN BE USED BY C# AND OTHER .NET PROGRAMMING
LANGUAGES.LANGUAGES.
12. COMMON LANGUAGE RUNTIMECOMMON LANGUAGE RUNTIME
(CLR)(CLR)
THE CLR IS THETHE CLR IS THE COMMONCOMMON EXECUTION ENGINE FOR .NET APPLICATIONSEXECUTION ENGINE FOR .NET APPLICATIONS
AND SERVES AS THE INTERFACE BETWEEN .NET APPLICATIONS ANDAND SERVES AS THE INTERFACE BETWEEN .NET APPLICATIONS AND
THE OPERATING SYSTEM.THE OPERATING SYSTEM.
THE CLR PROVIDES MANY SERVICES SUCH AS:THE CLR PROVIDES MANY SERVICES SUCH AS:
LOADS AND EXECUTES CODE.LOADS AND EXECUTES CODE.
CONVERTS INTERMEDIATE LANGUAGE TO NATIVE MACHINE CODE.CONVERTS INTERMEDIATE LANGUAGE TO NATIVE MACHINE CODE.
AUTOMATIC MEMORY MANAGEMENT.AUTOMATIC MEMORY MANAGEMENT.
MANAGES MEMORY AND OBJECTS.MANAGES MEMORY AND OBJECTS.
14. EXECUTION IN CLREXECUTION IN CLR
Common Language RuntimeCommon Language Runtime
VBVB
SourceSource
codecode
CompilerCompiler
C++C++C#C#
AssemblyAssembly
IL CodeIL Code
JIT CompilerJIT Compiler
ManagedManaged
codecode
Native CodeNative Code
CompilerCompiler CompilerCompiler
AssemblyAssembly
IL CodeIL Code
AssemblyAssembly
IL CodeIL Code
Operating System ServicesOperating System Services
15. INTERMEDIATE LANGUAGEINTERMEDIATE LANGUAGE
(IL)(IL)
INTERMEDIATE LANGUAGE IS ALSO KNOWN AS MSIL
(MICROSOFT INTERMEDIATE LANGUAGE) OR CIL (COMMON
INTERMEDIATE LANGUAGE).
ALL .NET SOURCE CODE IS COMPILED TO IL. IL IS THEN
CONVERTED TO MACHINE CODE AT RUN-TIME BY A JUST-IN-
TIME (JIT) COMPILER.
THE RECOMPILATION IS JUST-IN-TIME (JIT) MEANING IT ISTHE RECOMPILATION IS JUST-IN-TIME (JIT) MEANING IT IS
DONE AS SOON AS A FUNCTION OR SUBROUTINE IS CALLED.DONE AS SOON AS A FUNCTION OR SUBROUTINE IS CALLED.
16. MANAGED VS UNMANAGED CODE
MANAGED CODE
MANAGED CODE IS THE CODE THAT IS
EXECUTED DIRECTLY BY THE CLR INSTEAD
OF THE OPERATING SYSTEM.
THE CODE COMPILER FIRST COMPILES THE
MANAGED CODE TO INTERMEDIATE
LANGUAGE (IL) CODE.
THIS CODE DOESN'T DEPEND ON MACHINE
CONFIGURATIONS AND CAN BE EXECUTED
ON DIFFERENT MACHINES.
IN THE MANAGED CODE, SINCE THE
EXECUTION OF THE CODE IS GOVERNED BY
CLR, THE RUNTIME PROVIDES
DIFFERENT SERVICES, SUCH AS GARBAGE
COLLECTION, TYPE CHECKING, EXCEPTION
HANDLING, AND SECURITY
SUPPORT.
UNMANAGED CODE
UNMANAGED CODE IS THE CODE THAT IS
EXECUTED DIRECTLY BY THE OPERATING
SYSTEM OUTSIDE THE CLR
ENVIRONMENT.
IT IS DIRECTLY COMPILED TO NATIVE
MACHINE CODE WHICH DEPENDS ON THE
MACHINE CONFIGURATION.
IN THE UNMANAGED CODE, THE
ALLOCATION OF MEMORY, TYPE SAFETY,
AND SECURITY IS REQUIRED TO BE TAKEN
CARE OF BY THE DEVELOPER. IF THE
UNMANAGED CODE IS NOT
PROPERLY HANDLED, IT MAY RESULT IN
MEMORY LEAK.
17. ----A PIECE OF MANAGED CODE IS EXECUTED
AS FOLLOWS:
CHOOSING A LANGUAGE COMPILER
COMPILING THE CODE TO MSIL
COMPILING MSIL TO NATIVE CODE
EXECUTING THE CODE.
18. JIT COMPILER
THE JIT COMPILER IS AN IMPORTANT ELEMENT OF CLR, WHICH LOADS MSIL ON
TARGET MACHINES FOR EXECUTION.
THE MSIL IS STORED IN .NET ASSEMBLIES AFTER THE DEVELOPER HAS COMPILED
THE CODE WRITTEN IN ANY .NET-COMPLIANT PROGRAMMING LANGUAGE, SUCH AS
VISUAL BASIC AND C#.
JIT COMPILER TRANSLATES THE MSIL CODE OF AN ASSEMBLY (LIKE DLL) AND
USES THE CPU ARCHITECTURE OF THE TARGET MACHINE TO EXECUTE A .NET
APPLICATION.
JIT COMPILER ALSO ENFORCES TYPE-SAFETY IN RUNTIME ENVIRONMENT OF .NET
FRAMEWORK. IT CHECKS FOR THE VALUES THAT ARE PASSED TO PARAMETERS OF
ANY METHOD.
---FOR EXAMPLE, THE JIT COMPILER DETECTS ANY EVENT, IF A USER TRIES TO
ASSIGN A 32-BIT VALUE TO A PARAMETER THAT CAN ONLY ACCEPT 8-BIT VALUE.
19. .NET ASSEMBLY
THE .NET ASSEMBLY IS THE STANDARD FOR COMPONENTS DEVELOPED WITH THE
MICROSOFT.NET.
ASSEMBLIES ARE THE BUILDING BLOCKS OF .NET FRAMEWORK APPLICATIONS.
DOT NET ASSEMBLIES MAY OR MAY NOT BE EXECUTABLE, I.E., THEY MIGHT EXIST
AS THE EXECUTABLE (.EXE) FILE OR DYNAMIC LINK LIBRARY (DLL) FILE.
DURING THE COMPILE TIME METADATA IS CREATED WITH MICROSOFT
INTERMEDIATE LANGUAGE (MSIL) AND STORED IN A FILE CALLED ASSEMBLY
MANIFEST . ASSEMBLY MANIFEST CONTAINS INFORMATION ABOUT ITSELF AND
ABOUT THE MEMBERS, TYPES, REFERENCES AND ALL THE OTHER DATA THAT THE
RUNTIME NEEDS FOR EXECUTION.
----THERE ARE TWO KIND OF ASSEMBLIES IN .NET
• PRIVATE
• SHARED
20. PRIVATE
ASSEMBLY
A PRIVATE ASSEMBLY IS USED
ONLY BY A SINGLE APPLICATION,
AND USUALLY IT IS STORED IN
THAT APPLICATION'S INSTALL
DIRECTORY.
SHARED
ASSEMBLY
A SHARED ASSEMBLY IS ONE
THAT CAN BE REFERENCED BY
MORE THAN ONE APPLICATION.
IF MULTIPLE APPLICATIONS
NEED TO ACCESS AN
ASSEMBLY, WE SHOULD ADD
THE ASSEMBLY TO THE GLOBAL
ASSEMBLY CACHE (GAC)
21. .NET TOOLS.NET TOOLS
VISUAL STUDIO .NETVISUAL STUDIO .NET IS MICROSOFT’S FLAGSHIP TOOL FOR DEVELOPING WINDOWSIS MICROSOFT’S FLAGSHIP TOOL FOR DEVELOPING WINDOWS
SOFTWARE.SOFTWARE.
VISUAL STUDIO PROVIDES AN INTEGRATED DEVELOPMENT ENVIRONMENT (IDE)VISUAL STUDIO PROVIDES AN INTEGRATED DEVELOPMENT ENVIRONMENT (IDE)
FOR DEVELOPERS TO CREATE STANDALONE WINDOWS APPLICATIONS,FOR DEVELOPERS TO CREATE STANDALONE WINDOWS APPLICATIONS,
INTERACTIVE WEB SITES, WEB APPLICATIONS, AND WEB SERVICES RUNNING ONINTERACTIVE WEB SITES, WEB APPLICATIONS, AND WEB SERVICES RUNNING ON
ANY PLATFORM THAT SUPPORTS .NET.ANY PLATFORM THAT SUPPORTS .NET.
IN ADDITION, THERE ARE MANY .NET FRAMEWORK TOOLS DESIGNED TO HELPIN ADDITION, THERE ARE MANY .NET FRAMEWORK TOOLS DESIGNED TO HELP
DEVELOPERSDEVELOPERS CREATE, CONFIGURE, DEPLOY, MANAGE AND SECURE .NETCREATE, CONFIGURE, DEPLOY, MANAGE AND SECURE .NET
APPLICATIONS AND COMPONENTS.APPLICATIONS AND COMPONENTS.
There is also a third and least known type of an assembly:
Satellite Assembly . A Satellite Assembly contains only static objects like images and other non-executable files required by the application.