.NET Framework Overview
Download
Report
Transcript .NET Framework Overview
.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)