Microsoft
.NET Framework
Fundamentals
.NET ?
.NET is a platform or technology that
provides a standardized set of services in order
to develop , to execute, to deploy and to
maintain different types of application.
Provides a very good environment to develop
network applications and Web Services
Provides programming API and unified
language-independent development
framework
The Core Components
of .NET Framework:
FCL
&Common
CLR Language Runtime
Framework Class Library
.NET Framework
Common Language Runtime
CLR manages code execution at
runtime
Memory management, thread
management, etc.
Common Language Runtime
Operating System
.NET Framework
Base Class Library
Object-oriented collection of reusable
types
Collections, I/O, Strings,
.NET Framework (Base Class Library)
Common Language Runtime
Operating System
.NET Framework
Data Access Layer
Access relational databases
Disconnected data model
Work with XML
ADO .NET and XML
.NET Framework (Base Class Library)
Common Language Runtime
Operating System
.NET Framework
ASP.NET & Windows Forms
Create applications front-end
Web-based user interface, Windows
GUI, Web services,
ASP .NET
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET and XML
.NET Framework (Base Class Library)
Common Language Runtime
Operating System
.NET Framework
Programming Languages
Use your favorite language
C++
C#
VB.NET Perl
J#
ASP .NET
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET and XML
.NET Framework (Base Class Library)
Common Language Runtime
Operating System
.NET Framework
Common Language Specification
C++
VB
Common
Language
C#
Perl Specification
J#
ASP .NET
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET and XML
.NET Framework (Base Class Library)
Common Language Runtime
Operating System
.NET Framework
Visual Studio .NET
C++
C#
VB
Perl
J#
Common Language Specification
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET and XML
.NET Framework (Base Class Library)
Common Language Runtime
Operating System
Visual Studio .NET
ASP .NET
.NET Framework
Standards Compliance
C++
C#
VB
Perl
J#
C# Language
Submitted to ECMA
Common Language Specification
Web Services Web Forms
Mobile Internet Toolkit
Windows
Forms Web services
ADO .NET and XML
.NET Framework (Base Class Library)
Common Language Runtime
Operating System
Visual Studio .NET
ASP .NET
Open Language
Specification
XML, SOAP-based
XML-based
data access
Common Language
Manages running code like a virtual
Runtime
machine
Threading
Memory management
No interpreter: JIT-compiler produces native
code during the program installation or at run
time
security
Code access security
Code can be verified to guarantee type safety
Role-based security
Common Language
Runtime
Diagram
Base Class Library
Support
Thread Support
COM Marshaler
Type Checker
Exception Manager
Security Engine
Debug Engine
MSIL
MSILto
toNative
Native
Compilers
Compilers(JIT)
(JIT)
Class
ClassLoader
Loader
Code
Code
Manager
Manager
Garbage
Garbage
Collector
Collector(GC)
(GC)
Managed Code
Code that targets the CLR is referred to as
managed code
All managed code has the features of the
CLR
Object-oriented
Type-safe
Cross-language integration
Cross language exception handling
Multiple version support
Managed code is represented in special
Intermediate Language (IL)
Automatic Memory
Management
The CLR manages memory for managed code
All allocations of objects and buffers made
from a Managed Heap
Unused objects and buffers are cleaned up
automatically through Garbage Collection
Multiple Language
Support
IL (MSIL or CIL) Intermediate Language
IL (MSIL or CIL) Intermediate Language
It is low-level (machine) language, like
Assembler, but is Object-oriented
CTS is a rich type system built into the CLR
Implements various types (int, float, string, )
And operations on those types
CLS is a set of specifications that all
languages and libraries need to follow
This will ensure interoperability between
languages
Intermediate Language
.NET languages are compiled to an
Intermediate Language (IL)
IL is also known as MSIL or CIL
CLR compiles IL in just-in-time (JIT)
manner each function is compiled just
before execution
The JIT code stays in memory for
subsequent calls
Recompilations of assemblies are also
possible
Common Type System
(CTS)
All .NET languages have the same primitive
data types. An int in C# is the same as an int
in VB.NET
When communicating between modules
written in any .NET language, the types are
guaranteed to be compatible on the binary
level
Types can be:
Reference types passed by reference, stored
in the heap
Value types passed by value, stored in the
stack
Common Language
Specification (CLS)
Any language that conforms to the CLS is a
.NET language
A language that conforms to the CLS has the
ability to take full advantage of the Framework
Class Library (FCL)
CLS is standardized by ECMA
.NET Languages
Languages provided by Microsoft
Third-parties languages
Perl, Python, Pascal, APL, COBOL, Eiffel,
Haskell, ML, Oberon, Scheme, Smalltalk
Advanced multi-language features
C++, C#, J#, VB.NET, JScript
Cross-language inheritance and exceptions
handling
Object system is built in, not bolted on
No additional rules or API to learn
Code Compilation and Execution
Compilation
Source
Code
Language
Compiler
Execution
Native
Code
JIT
Compiler
Code
MSIL
Metadata
Also called
Assembly
(.EXE or
.DLL file)
Before
installation or
the first time
each method is
called
Assemblies
DLL or EXE file
Smallest deployable unit in the CLR
Have unique version number
No version conflicts (known as DLL hell)
Contains IL code to be executed
Security boundary permissions are
granted at the assembly level
Type boundary all types include the
assembly name they are a part of
Self-describing manifest metadata that
describes the types in the assembly
Metadata in Assembly
Type Descriptions
Classes
Classes
Base classes
Implemented interfaces
interfaces
Data members
Methods
Methods
Assembly Description
Name
Version
Version
Culture
Other
Other assemblies
assemblies
Security
Security Permissions
Permissions
Exported
Exported Types
Example of MSIL Code
.method private hidebysig static void Main()
cil managed
{
.entrypoint
// Code size
11 (0xb)
.maxstack 8
IL_0000: ldstr
"Hello, world!"
IL_0005: call
void
[mscorlib]System.Console::WriteLine(string)
IL_000a: ret
} // end of method HelloWorld::Main
ILDASM
Can examine assemblies, assembly code
with the ILDASM tool
Here is ILDASM run on
VideoUnScramble.exe
Assembly Manifest
Assembly
Components
Applications
One or more assemblies
Assemblies conflict resolution
Using metadata
Local (preferred)
Global Assembly Cache (GAC)
The .NET Framework
Library
ASP.NET
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO.NET and XML
Base Class Library
.NET Framework Namespaces
System.Web
Services
Description
UI
HtmlControls
Discovery
WebControls
System.WinForms
Design
Protocols
ComponentModel
System.Drawing
Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data
System.Xml
ADO
SQL
XSLT
Design
SQLTypes
XPath
Serialization
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Diagnostics
Reflection
Text
Remoting
Globalization
Resources
Threading
Serialization
Base Class Library Namespaces
System
Collections
Security
Configuration
ServiceProcess
Diagnostics
Text
Globalization
Threading
IO
Runtime
InteropServices
Net
Reflection
Remoting
Resources
Serialization
Windows Forms
Application Example
ASP.NET
Framework
for building Web applications
and Web services in any .NET language
ASP.NET
Rich page architecture Web Forms
Rich set of ASP.NET server controls
Data validation
Data bound grids
Event-driven execution model
Great Web-services support
Easy to deploy
High reliability and availability
High performance and scalability
Scalable handling of state information
Demo
Create simple Web-based
dngatabase application
with:
Dropdownlist
Other Fundamentals
Web Services (compare to Remoting)
AJAX
WPF
Silverlight
WCF
WWF
ASP.NET MVC
Summary
.NET Framework is a code execution platform
the environment which .NET programs run
.NET Framework consists of two primary
parts: Common Language Runtime and .NET
Class Libraries
The CLS (Common Language Specification)
allows different languages to interact
seamlessly.
The CTS (Common Type System) allows all
languages to share base data types.
Summary (2)
.NET languages are compiled to MSIL by their
respective compilers
MSIL code is compiled to machine code by the
JIT compiler
All .NET languages have equal access to the
FCL (Framework Class Library) which is a
rich set of classes for developing software
Base Class Library is set of basic classes:
Collections, I/O, Networking, Security, etc.
ADO.NET provides .NET applications with
access to relational databases
Summary (3)
.NET has great XML support including: DOM,
XSLT, XPath, and XSchema
Windows Forms provides GUI interface for the
.NET applications
ASP.NET allows creating web interface to
.NET applications
Web Services expose functionality from web
sites and make it remotely accessible through
standard XML-based protocols
Visual Studio .NET is powerful development
IDE for all .NET languages and technologies
Questions?