.NET Framework Overview
.NET and the .NET Framework
Objectives
 Learn
basic principles and concepts of.NET and the
.NET framework
Contents

Looking Back

.NET and .NET Framework Overview

Summary

Questions
Section 1: Looking Back
 Challenges
for the development organization
 Challenges
for the corporate customer
 Missing
????
Challenges for Development Organization
 Development

Language and operating system choices
 Delivery

CD-ROM: production, packaging, transport
 Stability

DLL compatibility issues

Operating system—pollution leads to instability

Compatibility tests with “popular” solutions
 Maintenance

Customer involvement, even for critical updates

Packaging, production, and delivery of medium
Challenges for the Corporate Customer
 Deployment

Installation often requires time and personnel

Testing for compatibility with existing applications and OS

License management
 Stability
and security

Requires (even more!) testing

Can lead to inadvertent breaches of security

Can destabilize the system or other solutions [ Registry]
 Maintenance

All the problems of deployment and security revisited!
Missing ????
 We
need all system features to be available to
programmers in any language.
 We’d
like our code to be able to run on a variety of
platforms.
 We
need help with managing different versions of the
same software package.
 We’d
like object-oriented programming features to be
available in and between all programming languages.
 For
safety, we want to be able to restrict the operations
of pieces of code we don’t fully trust.
The .NET Framework Design Goals
What were missing are goals !!!!

"Cross-Language Development”

Inheritance, Debugging, Exception handling

Reliability and Security

Simple Development and Deployment

Device-agnostic
Section 2: .NET Framework Overview
 What
Is .NET?
 Migration
 Key
Paths—from Anywhere to .NET
Benefits of .NET
Concept of Platform independence &
Language Independence
Native Code
Byte Code
Java Code
Java Compiler
JRE
Native Code
MS-IL Code
C# Code
IL Compiler
VB.NET Code
IL Compiler
CLR
Managed code

Code running under control of the CLR is called Managed code

Platform Independence :

Mono - Linux

Mono - Mac

.NET framework - windows

Performance Improvement [JIT]

Language interpretability
[ IL1 + SC2 = IL2 ]
Strong Data typing
 IL
– No ambiguous data type

VB variant (NO)
 VB.NET
 CTS
Integer - C# no Integer
– COMMON TYPE SPECIFICATION
 Predefined
 .NET
languages targets code depends on these types
 VB.NET
 CTS
data types that are in IL
Integer & C# int – IL’s Int32
defines rich hierarchy of types.
What is . NET?
 .Net
= Library + Environment
 Library
: like extension of API
 Environment
: Layer between OS and Application.
.NET Framework Architecture
C#
VB
C++
Scheme
…
ASP
.NET
XML
Services
Windows
Forms
User Interfaces
ADO .NET and XML
Data Connectivity
Base Class Library
Base Framework
Common Language Runtime
Operating System
Visual Studio.NET
Common Language Specification
Common Language Runtime
Base Class Library Support
Thread Support
COM Marshaler
Type Checker
Exception Manager
Security Engine
Debug Engine
MSIL to Native
Compilers (JIT)
Code
Manager
Class Loader
Garbage
Collector (GC)
JIT – Just In Time

IL is always JIT compiled where java byte code was interpreted

IL never compiled to native code in one go, JIT compiler simply
each portion of code as it is called (Just In Time)

Then resultant native code is stored until the application exits. So
no need to recompile

Since final stage JIT Compiler know exactly what processor type
the program will run on. Take advantage of particular machine
code instruction.
Garbage Collector
Before GC
 Make
the application code do it manually [ C++ ]
 Resources
never occupied for longer than unnecessary.
 Code
that request memory should explicitly inform the
system when it no longer requires that memory.
 Make
objects maintain reference counts [ COM ]
 COM
component maintain a count of how many clients are
currently maintaining reference to it.
 When
reference count reaches to zero, component can destroy
itself and free up memory and resources.
GC – Clean up memory
 Dynamically requested memory allocated
on heap.
 When heap gets full and
needs tidying
up, it calls garbage collector.
 GC examining references
to objects
stored on the heap to identify which one
are accessible from your code.
 Objects that are
not referred to are
deemed to be no longer accessible from
your code and therefore be removed.
 The garbage
collector has access to the
list of active roots that the just-in-time
(JIT) compiler and the runtime maintain.
Languages

Ada

APL


lcc
(MS Research Redmond)
Basic (Visual Basic)

Mondrian (Utrecht)

C#


C
ML
(MS Research Cambridge)

C++

Mercury
(Melbourne U.)

J#

Oberon (Zurich University)

COBOL

Oz (Univ of Saarlandes)

Component Pascal
(Queensland Univ of Tech)

Perl

ECMAScript (JScript)

Python

Eiffel (Monash University)

Scheme (Northwestern U.)

Haskell
(Utrecht University)

SmallTalk
Key Benefits of .NET
 Ease

Object-oriented model


of Use
Everything is an object
Namespace and Framework structure

Easier to comprehend and use

Naming scheme of namespaces reflects the underlying functionality
 Freedom
to Choose:

The language that meets your needs

The development tool that is best for you

The “features and functionality” to “plug in to”
Key Benefits of .NET
 Stability

Say “goodbye” to memory leaks

Garbage collection manages memory

Assembly eliminates DLL compatibility issues

Deliverables are restricted to an assembly
 Security

Restricting or containing the illegal memory reference

Comprehensive security model

Assembly specific

System wide

Code inspection through MSIL
Key Benefits of .NET
 Deployment
and Management

Deployment: Code is “Assembled” and Run “Securely”

Maintenance: Version Maintenance Simplified
 The
Web the Way You Want It

Anywhere

Anytime

On any device
The Framework
Sample of what’s in the framework










Microsoft® .NET Base Class
Libraries
File IO
Networking
Database Access
XML
Security
Cryptography
Threading
Enterprise Services
Graphics








COM Interoperability
Registry
Monitoring System Events
Windows® Management
Interface
Globalization
Configuration
Diagnostics
Reflection
The .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
IL Compilers
 CSC
& vbc

out

target:exe winexe library

o

warn: 0-4

nowarn

unsafe

checked

nologo

main

reference

lib
Configuration and Deployment Tools

Type Library Exporter (Tlbexp.exe)

Type Library Importer (Tlbimp.exe)

Web Services Description Language Tool (Wsdl.exe)

Web Services Discovery Tool (Disco.exe)

XML Schema Definition Tool (Xsd.exe)

ASP.NET Install (aspnet_regiis.exe)

Global Assembly Cache tool (gacutil.exe)

.NET Framework Configuration Tool (mscorcfg.msc)

Installer tool (installutil.exe)
Security Tools

Code Access Security Policy Tool (Caspol.exe)

File Signing Tool (Signcode.exe)

Permissions View Tool (Permview.exe)

PEVerify Tool (PEverify.exe)

Secutil Tool (Secutil.exe)

Strong Name Tool (Sn.exe)
General Tools

Common Language Runtime Minidump Tool
(Mscordmp.exe)

mscordmp /pid [pid number] /out [output file]

MSIL Assembler (Ilasm.exe)

MSIL Disassembler (Ildasm.exe)

Resource File Generator Tool (Resgen.exe)

Windows Forms Class Viewer (Wincv.exe)
Descargar

.NET Framework Overview