.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 Java Code
Native Code
Byte 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
…
ASPServices .NET XML
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.
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.
Languages
Ada
APL
lcc (MS Research Redmond)
Basic (Visual Basic)
Mondrian (Utrecht)
C#
C
ML (MS Research Cambridge)
Mercury (Melbourne U.)
C++
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
of Use
Object-oriented model Everything
is an object
Namespace and Framework structure Easier
to comprehend and use
Naming
Freedom
scheme of namespaces reflects the underlying functionality
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 System Code
specific
wide
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)