.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
Challenges
for the development organization for the corporate customer
Missing
????
Challenges for Development Organization Development
Language and operating system choices CD-ROM: production, packaging, transport
DLL compatibility issues Operating system—pollution leads to instability Compatibility tests with “popular” solutions Customer involvement, even for critical updates Packaging, production, and delivery of medium
Delivery
Stability
Maintenance
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.
our code to be able to run on a variety of platforms. help with managing different versions of the same software package.
We’d like
We need
We’d like
object-oriented programming features to be available in and between all programming languages. safety, we want to be able to restrict the operations of pieces of code we don’t fully trust.
For
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? Paths—from Anywhere to .NET
Migration
Key
Benefits of .NET
Concept of Platform independence & Language Independence
Java Code
Java Compiler
Byte Code
JRE
Native Code
C# Code
IL Compiler
MS-IL Code CLR
Native Code
VB.NET Code
IL Compiler
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 data types that are in IL
Predefined .NET
languages targets code depends on these types
Integer & C# int – IL’s Int32
VB.NET CTS
defines rich hierarchy of types.
What is . NET?
.Net
= Library + Environment : like extension of API : Layer between OS and Application.
Library
Environment
.NET Framework Architecture
C# VB C++ Scheme …
Visual Studio.NET Common Language Specification
ASP .NET XML Services
Windows Forms User Interfaces
ADO .NET and XML Data Connectivity
Base Class Library Base Framework Common Language Runtime Operating System
Common Language Runtime
Base Class Library Support Thread Support
Type Checker
COM Marshaler
Exception Manager
Security Engine MSIL to Native Compilers (JIT) Code Manager Class Loader
Debug Engine 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++ ]
occupied for longer than unnecessary.
Resources never 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
on heap.
allocated
When heap
gets full and needs tidying up, it calls garbage collector. references to objects stored on the heap to identify which one are accessible from your code. are not referred to are deemed to be no longer accessible from your code and therefore be removed. collector has access to the list of active roots that the just-in-time (JIT) compiler and the runtime maintain.
GC examining
Objects that
The garbage
Languages
Ada
APL Basic (Visual Basic) C#
C C++ J# COBOL Component Pascal (Queensland Univ of Tech)
lcc (MS Research Redmond) Mondrian (Utrecht) ML (MS Research Cambridge)
Mercury (Melbourne U.) Oberon (Zurich University)
Oz (Univ of Saarlandes) Perl Python Scheme (Northwestern U.) SmallTalk
ECMAScript (JScript)
Eiffel (Monash University) Haskell (Utrecht University)
Key Benefits of .NET
Ease
of Use
Everything is an object Easier to comprehend and use Naming scheme of namespaces reflects the underlying functionality
Object-oriented model
Namespace and Framework structure
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
Discovery Protocols
System.WinForms
Design ComponentModel
UI HtmlControls
WebControls
System.Drawing
Security SessionState Drawing2D Imaging Printing
Text
Caching Configuration
System.Data
ADO Design SQL SQLTypes XSLT XPath
System.Xml
Serialization
System
Collections Configuration IO Net Security ServiceProcess Runtime InteropServices Remoting Serialization
Diagnostics Globalization
Reflection Resources
Text Threading
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)