.NET Framework
University of Negros Occidental – Recoletos College of Information Technology
2009/7/26 1
.NET Enterprise Vision
Users
Any device, Any place, Any time
XML Web Services
Scheduling Notification Authentication Integrate business applications and processes
Back Office
Heterogeneous application and server infrastructure
Billing
2009/7/26
Customer Service
Sales
2
.NET Framework
programming model for building applications on Windows clients, servers, and mobile or embedded devices.
provide a managed execution environment, simplified development and deployment, and integration with a wide variety of programming languages.
2009/7/26 3
.NET Core Components
Common Language Runtime
Garbage collection Language integration Integrated security
Framework Class Library
Provides the core functionality: ASP.NET, Web Services, ADO.NET, Windows Forms, IO, XML, etc.
2009/7/26 4
Common Language Runtime
memory management, thread management, etc. convert the .NET Managed Code to native code controls the interaction with the Operating System.
Common Language Runtime Operating System
2009/7/26 5
Framework Class Library
Object-oriented collection of reusable types Collections, I/O, Strings, …
.NET Framework (Base Class Library) Common Language Runtime Operating System
2009/7/26 6
Data Access Layer
access relational databases data model work with XML
ADO .NET and XML .NET Framework (Base Class Library) Common Language Runtime Operating System
2009/7/26 7
ASP.NET and Windows Forms
Create application’s 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
2009/7/26 8
Programming Languages
Use your favorite language
C++ C#
VB.NET Perl
J#
… Windows Forms
ASP .NET
Web Forms Web Services Mobile Internet Toolkit
ADO .NET and XML .NET Framework (Base Class Library) Common Language Runtime Operating System
2009/7/26 9
Common Language Specification
C++
VB Common Language Specification… C# 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
2009/7/26 10
Visual Studio.NET
C++ C#
VB
Perl
J#
…
Common Language Specification
Visual Studio .NET 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
2009/7/26
11
Common Language Infrastructure
defines an environment that allows multiple high-level
languages to be used on different computer platforms without being rewritten for specific architectures.
Four Aspects:
1. Common Type System 2. Metadata 3. Common Language Specification 4. Virtual Execution System
2009/7/26 12
Common Type System
set of types and operations that are shared by all
CTS-compliant programming languages.
defines how types are declared, used, and managed
in the runtime, and is also an important part of the runtime's support for cross-language integration.
2009/7/26
13
Metadata
Information about program structure is
language-agnostic, so that it can be referenced between languages and tools, making it easy to work with code written in a language you are not using. language to be easily used as software component written in another language.
Allows software component (.exe or .dll) written in one
stored in a file called Manifest, and contains information
about the members, types, references and all the other data that the Common Language Runtime (CLR) needs for execution .
14
2009/7/26
Common Language Specification
ensures complete interoperability among
applications, regardless of the language used to create the application.
a set of base rules to which any language targeting
the CLI (Common Language Infrastructure) should conform in order to interoperate with other CLScompliant languages.
2009/7/26
15
Virtual Execution System (VES)
loads and executes CLI-compatible programs, using
the metadata to combine separately generated pieces of code at runtime.
Similar to Java Virtual Machine
2009/7/26
16
Common Intermediate Language
intermediate language that is abstracted from the platform
hardware.
CPU-independent set of instructions that can be converted to
the native code (Second platform-neutral language) Intermediate Language
Also known as Microsoft Intermediate Language or includes instructions for loading, storing, initializing, and calling
methods on objects, as well as instructions for arithmetic and logical operations, control flow, direct memory access, exception handling, and other operations
17
2009/7/26
Portable Executable
Both Microsoft Intermediate Language (MSIL)
and Metadata assembled together is known as Portable Executable (PE) file.
supposed to be portable across all 32-bit operating
systems by Microsoft .Net Framework.
2009/7/26
18
Native Code
Operating System-independent
Also known as Managed Code , that is, the
language's functionality is managed by the .NET Framework .
2009/7/26
19
Managed Code vs Unmanaged Code
executed by the Common
Language Runtime (CLR) environment
executed CPU
by
computer’s
More reliable and robust
(Garbage Collection, Type Safety, etc..)
Isolated secure
accessible outside runtime environment
the
can make direct calls to the OS (very risky) .
2009/7/26
20
Dynamic Translation
During the code execution time, the Managed Code
compiled only when it is needed, that is it converts the appropriate instructions to the native code for execution just before when each function is called.
preserves memory and save time during application
initialization.
2009/7/26
21
Just In Time (JIT) Compiler
converts the Microsoft Intermediate Language (MSIL)
code into native code to the Operating System (OS).
Works based on the architecture of the OS.
(same Microsoft Intermediate Language (MSIL) can be
executed on different Operating Systems without rewriting the source code. )
2009/7/26
22
How CLI Works?
.NET Compatible Languages Independent Compilation
Convert Compile Source to CIL (through JIT)
Platform- specific
Converts CIL to machine code
2009/7/26
23
Some Common CLI Languages
C# C++/CLI J#: IronPython
- C++ and Java
- C++ - Java (discontinued) - Python
IronRuby
VB.NET Oxygene L# P#
-Ruby
- object-oriented dialect of Visual Basic. - object-oriented Pascal - Lisp
-
Prolog
2009/7/26
24
How .NET Works?
1. Microsoft .Net Languages Source Code are compiled
1.1 Microsoft Intermediate Language (MSIL) 1.2 Metadata (stored in Manifest file) 2. Common Language Runtime (CLR) uses metadata to locate and load classes, generate native code, provide security, and execute Managed Code.
(The Common Language Runtime (CLR) provides various Just In Time (JIT) compilers, and each works on a different architecture depends on Operating Systems, that means the same Microsoft Intermediate Language (MSIL) can be executed on different Operating Systems.)
2009/7/26
25
How .NET Works?
Source code
.NET Compiler
MSIL ------Metadata
CLR --[JIT]
Output
2009/7/26
26
Topic Summary
Overview of .NET Framework Components of .NET Framework Common Language Infrastructure
2009/7/26
27
Summary of Terms
.NET Framework Common Language Runtime (CLR) Framework Class Library (FCL) Common Language Specification (CLS) Common Language Infrastructure (CLI) Common Type System (CTS) Metadata Virtual Execution System (VES) Common Intermediate Language Portable Executable Native Code Managed Code Unmanaged Code Dynamic Translation Just In Time Compiler
2009/7/26
28
Analysis
Differentiate native code from Microsoft Intermediate
Language. What reasons make unmanaged code less reliable and less secure? Explain one benefit of Virtual Execution System. Why MSIL executable across different OS? What is the advantage of Common Language Infrastructure?
2009/7/26
29
Assignment
Software Project proposal
- Name of software to be created - purpose - functionalities Primitive Data Types of the following languages - Java - C#.NET - VB.NET Syntax of variable declaration, decision and iteration statements of the following languages: - Java - C#.NET - VB.NET What is a programming model?
2009/7/26
30
Sources
http://vb.net-informations.com/framework/what_is_net_framework.htm http://msdn.microsoft.com/en-us/vstudio/default.aspx
2009/7/26
31