SlideShare uma empresa Scribd logo
1 de 48
.NET Framework Overview.NET Framework Overview
.NET Framework, CLR, MSIL, Assemblies, CTS, etc..NET Framework, CLR, MSIL, Assemblies, CTS, etc.
Doncho MinkovDoncho Minkov
Telerik School AcademyTelerik School Academy
schoolacademy.telerik.comschoolacademy.telerik.com
Technical TrainerTechnical Trainer
http://www.minkov.ithttp://www.minkov.it
Table of ContentsTable of Contents
1.1. What isWhat is .NET.NET??
Microsoft .NET platform architectureMicrosoft .NET platform architecture
1.1. What isWhat is .NET.NET FrameworkFramework??
.NET Framework Architecture.NET Framework Architecture
1.1. Common Language Runtime (CLR)Common Language Runtime (CLR)
2.2. Managed CodeManaged Code
3.3. Intermediate LanguageIntermediate Language MSILMSIL
4.4. Assemblies and MetadataAssemblies and Metadata
5.5. .NET Applications.NET Applications
Table of ContentsTable of Contents (2)(2)
8.8. Common Language Infrastructure (CLI)Common Language Infrastructure (CLI) andand
integration of different languagesintegration of different languages
 Common Language Specification (CLS)Common Language Specification (CLS)
 Common Type System (CTS)Common Type System (CTS)
8.8. Framework Class LibraryFramework Class Library
9.9. Integrated Development EnvironmentIntegrated Development Environment VisualVisual
StudioStudio
.NET Framework.NET Framework
Microsoft's Platform forMicrosoft's Platform for
Application DevelopmentApplication Development
What is the .NET PlatformWhat is the .NET Platform??
 The .NET platformThe .NET platform
Microsoft's platform for software developmentMicrosoft's platform for software development
Unified technology for development of almostUnified technology for development of almost
any kind of applicationsany kind of applications
 GUI / Web / RIA / mobile / server / cloud / etc.GUI / Web / RIA / mobile / server / cloud / etc.
 .NET platform versions.NET platform versions
.NET Framework.NET Framework
Silverlight / Windows Phone 7Silverlight / Windows Phone 7
.NET Compact Framework.NET Compact Framework
What isWhat is .NET Framework?.NET Framework?
 .NET Framework.NET Framework
An environment for developing andAn environment for developing and
executingexecuting .NET.NET applicationsapplications
Unified programming modelUnified programming model,, set of languages,set of languages,
class librariesclass libraries,, infrastructure, components andinfrastructure, components and
tools for application developmenttools for application development
Environment for controlled execution ofEnvironment for controlled execution of
managed codemanaged code
 It is commonly assumed thatIt is commonly assumed that
.NET platform == .NET Framework.NET platform == .NET Framework
..NET Framework ComponentsNET Framework Components
 Common Language RuntimeCommon Language Runtime (CLR)(CLR)
Environment for controlled executionEnvironment for controlled execution ofof
programmed codeprogrammed code –– like a virtual machinelike a virtual machine
ExecutesExecutes .NET.NET applicationsapplications
 Framework Class LibraryFramework Class Library (FCL)(FCL)
StandardStandard class library for .NET developmentclass library for .NET development
Delivers basic functionality for developingDelivers basic functionality for developing:: XML,XML,
ADO.NET, LINQ, ASP.NET, WPF, WCF, WWF,ADO.NET, LINQ, ASP.NET, WPF, WCF, WWF,
Silverlight, Web services, Windows Forms,Silverlight, Web services, Windows Forms, ......
 SDK, compilers and toolsSDK, compilers and tools
.NET Framework Architecture.NET Framework Architecture
The OSThe OS manages themanages the resourcesresources,, thethe
processes and the users of the machineprocesses and the users of the machine
Provides to the applications someProvides to the applications some
services (threadsservices (threads,, I/O, GDI+, DirectX,I/O, GDI+, DirectX,
COM, COM+, MSMQ, IIS, WMI, …)COM, COM+, MSMQ, IIS, WMI, …)
CLR is a separate process in the OSCLR is a separate process in the OS
Operating System (OS)Operating System (OS)
Operating System (OS)Operating System (OS)
Common Language Runtime (CLR)Common Language Runtime (CLR)
CLR managesCLR manages the execution ofthe execution of
the.NET codethe.NET code
Manages the memoryManages the memory,,
concurrencyconcurrency,, securitysecurity, ..., ...
.NET Framework Architecture.NET Framework Architecture (2)(2)
CLRCLR
Operating System (OS)Operating System (OS)
Common Language Runtime (CLR)Common Language Runtime (CLR)
Base Class Library (BCL)Base Class Library (BCL)
.NET Framework Architecture.NET Framework Architecture ((33))
Rich object-oriented library withRich object-oriented library with
fundamental classesfundamental classes
Input-output, collections, textInput-output, collections, text
processing, networking,processing, networking, securitysecurity,,
multi-threadingmulti-threading,, ……
Operating System (OS)Operating System (OS)
Common Language Runtime (CLR)Common Language Runtime (CLR)
Base Class Library (BCL)Base Class Library (BCL)
ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier)
.NET Framework Architecture.NET Framework Architecture ((44))
Database accessDatabase access
ADO.NET, LINQ, LINQ-to-SQL andADO.NET, LINQ, LINQ-to-SQL and
Entity FrameworkEntity Framework
Strong XML supportStrong XML support
Operating System (OS)Operating System (OS)
Common Language Runtime (CLR)Common Language Runtime (CLR)
Base Class Library (BCL)Base Class Library (BCL)
ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier)
.NET Framework Architecture.NET Framework Architecture ((55))
WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier)
Windows CommunicationWindows Communication
Foundation (WCF) and WindowsFoundation (WCF) and Windows
Workflow Foundation (WWF) forWorkflow Foundation (WWF) for
the SOA worldthe SOA world
Operating System (OS)Operating System (OS)
Common Language Runtime (CLR)Common Language Runtime (CLR)
Base Class Library (BCL)Base Class Library (BCL)
ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier)
.NET Framework Architecture.NET Framework Architecture ((66))
WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier)
ASP.NETASP.NET
Web Forms, MVC, AJAXWeb Forms, MVC, AJAX
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindows
FormsForms
WPFWPF SilverlightSilverlight
User interface technologies: Web based,User interface technologies: Web based,
Windows GUI, WPF, Silverlight, mobile,Windows GUI, WPF, Silverlight, mobile,
……
Operating System (OS)Operating System (OS)
Common Language Runtime (CLR)Common Language Runtime (CLR)
Base Class Library (BCL)Base Class Library (BCL)
ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier)
.NET Framework Architecture.NET Framework Architecture ((77))
WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier)
ASP.NETASP.NET
Web Forms, MVC, AJAXWeb Forms, MVC, AJAX
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindows
FormsForms
WPFWPF SilverlightSilverlight
C#C# C++C++ VB.NETVB.NET J#J# F#F# JScriptJScript PerlPerl DelphiDelphi ……
Programming language on your flavor!Programming language on your flavor!
.NET Framework 4.0.NET Framework 4.0
15
The FutureThe Future
16
Common LanguageCommon Language
RuntimeRuntime ((CLRCLR))
The Heart of .NET FrameworkThe Heart of .NET Framework
Common Language RuntimeCommon Language Runtime ((CLRCLR))
 Managed execution environmentManaged execution environment
Controls the execution of managedControls the execution of managed ..NETNET
programming codeprogramming code
 Something like virtual machineSomething like virtual machine
Like the Java Virtual Machine (JVM)Like the Java Virtual Machine (JVM)
 Not an interpreterNot an interpreter
Compilation on-demand is usedCompilation on-demand is used
 Known asKnown as Just In Time (JIT) compilationJust In Time (JIT) compilation
 Possible compilation in advance (Ngen)Possible compilation in advance (Ngen)
ResponsibilitiesResponsibilities ofof CLRCLR
 Execution of theExecution of the IL codeIL code andand the JITthe JIT
compilationcompilation
 Managing memory and application resourcesManaging memory and application resources
 Ensuring type safetyEnsuring type safety
 Interaction with the OSInteraction with the OS
 Managing securityManaging security
Code access securityCode access security
Role-based securityRole-based security
ResponsibilitiesResponsibilities ofof CLRCLR (2)(2)
 Managing exceptionsManaging exceptions
 Managing concurrencyManaging concurrency –– controlling thecontrolling the
parallel execution of applicationparallel execution of application threadsthreads
 Managing application domains and theirManaging application domains and their
isolationisolation
 Interaction with unmanaged codeInteraction with unmanaged code
 SupportingSupporting debug /debug /
profile of .NET codeprofile of .NET code
CLR ArchitectureCLR Architecture
Class LoaderClass Loader
IL to NativeIL to Native
JIT CompilerJIT Compiler
CodeCode
ManagerManager
GarbageGarbage
CollectorCollector
Security EngineSecurity Engine Debug EngineDebug Engine
Type CheckerType Checker Exception ManagerException Manager
Thread SupportThread Support COM MarshalerCOM Marshaler
Base Class Library SupportBase Class Library Support
Managed andManaged and
Unmanaged CodeUnmanaged Code
What is the Difference?What is the Difference?
Managed CodeManaged Code
 CLR executed code is calledCLR executed code is called managed codemanaged code
 Represents programming code in the low levelRepresents programming code in the low level
languagelanguage MSILMSIL (MS Intermediate Language)(MS Intermediate Language)
 Contains metadataContains metadata
Description of classesDescription of classes,, interfacesinterfaces,, propertiesproperties,,
fieldsfields,, methodsmethods,, parameters, etc.parameters, etc.
 ProgramsPrograms,, written in anywritten in any .NET language are.NET language are
Compiled to managed codeCompiled to managed code (MSIL)(MSIL)
Packaged as assemblies (Packaged as assemblies (.exe.exe oror ..dlldll files)files)
Managed CodeManaged Code (2)(2)
 Object-orientedObject-oriented
 SecureSecure
 ReliableReliable
Protected fromProtected from irregularirregular use of typesuse of types ((type-safe)type-safe)
 Allows integration between components andAllows integration between components and
data types of different programmingdata types of different programming
languageslanguages
 Portable between different platformsPortable between different platforms
Windows, Linux, Max OS X, etc.Windows, Linux, Max OS X, etc.
Unmanaged (Win32) CodeUnmanaged (Win32) Code
 No protection of memory and type-safetyNo protection of memory and type-safety
Reliability problemsReliability problems
Safety problemsSafety problems
 Doesn’t contain metadataDoesn’t contain metadata
Needs additional overhead like (e.g. use COM)Needs additional overhead like (e.g. use COM)
 Compiled to machine-dependent codeCompiled to machine-dependent code
Need of different versions for differentNeed of different versions for different
platformsplatforms
Hard to be ported to other platformsHard to be ported to other platforms
Memory ManagementMemory Management
 CLR manages memory automaticallyCLR manages memory automatically
Dynamically loadedDynamically loaded objects are stored in theobjects are stored in the
managed heapmanaged heap
Unusable objects are automatically cleaned upUnusable objects are automatically cleaned up
by theby the garbage collectorgarbage collector
 Some of the big problems are solvedSome of the big problems are solved
Memory leaksMemory leaks
Access to freed or unallocated memoryAccess to freed or unallocated memory
 Objects are accessed through a referenceObjects are accessed through a reference
IntermediateIntermediate
Language (MSIL)Language (MSIL)
Intermediate LanguageIntermediate Language
((MSILMSIL,, ILIL,, CIL)CIL)
 Low level languageLow level language ((machine languagemachine language)) for thefor the
.NET CLR.NET CLR
 Has independent set of CPU instructionsHas independent set of CPU instructions
Loading and storing data, calling methodsLoading and storing data, calling methods
Arithmetic and logical operationsArithmetic and logical operations
Exception handlingException handling
Etc.Etc.
 MSIL is converted to instructions for theMSIL is converted to instructions for the
current physical CPU by the JIT compilercurrent physical CPU by the JIT compiler
SampleSample MSIL ProgramMSIL Program
.method private hidebysig static void Main() cil managed.method private hidebysig static void Main() cil managed
{{
.entrypoint.entrypoint
// Code size 11 (0xb)// Code size 11 (0xb)
.maxstack 8.maxstack 8
ldstr "Hello, world!"ldstr "Hello, world!"
call voidcall void
[mscorlib]System.Console::WriteLine(string)[mscorlib]System.Console::WriteLine(string)
retret
} // end of method HelloWorld::Main} // end of method HelloWorld::Main
Compilation and ExecutionCompilation and Execution
CompilationCompilation
ExecutionExecution
JITJIT
compilercompiler
MachineMachine
codecode
MSILMSIL
CodeCode
MetadataMetadata
SourceSource
codecode
LanguageLanguage
compilercompiler
AssemblyAssembly
(.EXE or(.EXE or
.DLL file).DLL file)
When givenWhen given
method is calledmethod is called
for the first timefor the first time
Pre-compilationPre-compilation
during theduring the
install (NGEN)install (NGEN)
.NET Applications.NET Applications
Assemblies, Metadata and ApplicationsAssemblies, Metadata and Applications
.NET Assemblies.NET Assemblies
 .NET assemblies:.NET assemblies:
Self-containing .NET componentsSelf-containing .NET components
 Stored in .DLL and .EXE filesStored in .DLL and .EXE files
Contain list of classes, types and resourcesContain list of classes, types and resources
Smallest deployment unit in CLRSmallest deployment unit in CLR
Have unique version numberHave unique version number
 .NET deployment model.NET deployment model
No version conflicts (forget the "DLL hell")No version conflicts (forget the "DLL hell")
Supports side-by-side execution of differentSupports side-by-side execution of different
versions of the same assemblyversions of the same assembly
Metadata in the AssembliesMetadata in the Assemblies
 Metadata in the .NET assembliesMetadata in the .NET assemblies
Data about data contained in the assemblyData about data contained in the assembly
Integral part of the assemblyIntegral part of the assembly
Generated by the .NET languages compilerGenerated by the .NET languages compiler
Describes all classes, their class members,Describes all classes, their class members,
versions, resources, etc.versions, resources, etc.
Metadata in AssembliesMetadata in Assemblies
Type DescriptionType Description
Assembly DescriptionAssembly Description
Classes, interfaces, inner types, base
classes, implemented interfaces,
member fields, properties, methods,
method parameters, return value,
attributes, etc.
Dependencies on other assembliesDependencies on other assemblies
SecuritySecurity permissionspermissions
Exported typesExported types
Dependencies on other assembliesDependencies on other assemblies
SecuritySecurity permissionspermissions
Exported typesExported types
[digital[digital
signature]signature]
[digital[digital
signature]signature]
NameName
VersionVersion
LocalizationLocalization
NameName
VersionVersion
LocalizationLocalization
..NETNET ApplicationsApplications
 Configurable executable .NET unitsConfigurable executable .NET units
 Consist of one or more assembliesConsist of one or more assemblies
 Installed by "copy / paste"Installed by "copy / paste"
No complex registration of componentsNo complex registration of components
 Different applications use different versions ofDifferent applications use different versions of
common assembliescommon assemblies
No conflicts due to their "strong name"No conflicts due to their "strong name"
 Easy installationEasy installation,, un-installation and updateun-installation and update
Common Type System (CTS)Common Type System (CTS)
 CTS defines the CLRCTS defines the CLR supported types ofsupported types of
data and the operations over themdata and the operations over them
 Ensures data level compatibility betweenEnsures data level compatibility between
different .NETdifferent .NET languageslanguages
E.g.E.g. stringstring inin C#C# is the same likeis the same like StringString inin
VB.NETVB.NET and inand in J#J#
 Value types and reference typesValue types and reference types
 All types derive fromAll types derive from System.ObjectSystem.Object
The .NET LanguagesThe .NET Languages
C#,VB.NET, C++, J#, etc.C#,VB.NET, C++, J#, etc.
..NET LanguagesNET Languages
 .NET languages by Microsoft.NET languages by Microsoft
C#, VB.NET, Managed C++, J#, F#,C#, VB.NET, Managed C++, J#, F#, JScriptJScript
 .NET languages.NET languages by third partiesby third parties
Object Pascal, Perl, Python, COBOL, Haskell,Object Pascal, Perl, Python, COBOL, Haskell,
Oberon, Scheme, Smalltalk…Oberon, Scheme, Smalltalk…
 Different languages can be mixed in a singleDifferent languages can be mixed in a single
applicationapplication
 Cross-language inheritance of types andCross-language inheritance of types and
exception handlingexception handling
C# LanguageC# Language
 C# is mixture between C++, Java and DelphiC# is mixture between C++, Java and Delphi
 Fully object-oriented by designFully object-oriented by design
 Component-oriented programming modelComponent-oriented programming model
 ComponentsComponents,, properties and eventsproperties and events
 No header files like C/C++No header files like C/C++
 Suitable forSuitable for GUIGUI andand WebWeb applicationsapplications
 XML based documentationXML based documentation
 InIn C# all data types are objectsC# all data types are objects
 Example:Example: 5.ToString()5.ToString() is a valid callis a valid call
C# Language – ExampleC# Language – Example
 C# is standardized byC# is standardized by ECMA and ISOECMA and ISO
 Example of C# program:Example of C# program:
using System;using System;
class NumbersFrom1to100class NumbersFrom1to100
{{
static void Main()static void Main()
{{
for (int i=1; i<=100; i++)for (int i=1; i<=100; i++)
{{
Console.WriteLine(i);Console.WriteLine(i);
}}
}}
}}
Framework ClassFramework Class
Library (FCL)Library (FCL)
Standard Out-of-the-box .NET APIsStandard Out-of-the-box .NET APIs
Framework Class Library (FCL)Framework Class Library (FCL)
 Framework Class Library is the standardFramework Class Library is the standard
.NET Framework library of out-of-the-box.NET Framework library of out-of-the-box
reusable classes and components (APIs)reusable classes and components (APIs)
Base Class Library (BCL)Base Class Library (BCL)
ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier)
WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier)
ASP.NETASP.NET
Web Forms, MVC, AJAXWeb Forms, MVC, AJAX
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindows
FormsForms
WPFWPF SilverlightSilverlight
FCL NamespacesFCL Namespaces
ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier)
WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier)
ASP.NETASP.NET
Web Forms, MVC, AJAXWeb Forms, MVC, AJAX
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindows
FormsForms
WPF & SilverlightWPF & Silverlight
System.WebSystem.WebSystem.WebSystem.Web
System.Web.MvcSystem.Web.MvcSystem.Web.MvcSystem.Web.Mvc
System.WindowsSystem.Windows
.Forms.Forms
System.WindowsSystem.Windows
.Forms.Forms
System.DrawingSystem.DrawingSystem.DrawingSystem.Drawing
System.WindowsSystem.WindowsSystem.WindowsSystem.Windows
System.Windows.MediaSystem.Windows.MediaSystem.Windows.MediaSystem.Windows.Media
System.Windows.MarkupSystem.Windows.MarkupSystem.Windows.MarkupSystem.Windows.Markup
System.ServiceModelSystem.ServiceModelSystem.ServiceModelSystem.ServiceModel System.ActivitiesSystem.ActivitiesSystem.ActivitiesSystem.Activities System.WorkflowSystem.WorkflowSystem.WorkflowSystem.Workflow
System.DataSystem.DataSystem.DataSystem.Data System.LinqSystem.LinqSystem.LinqSystem.Linq
System.Data.LinqSystem.Data.LinqSystem.Data.LinqSystem.Data.Linq
System.XmlSystem.XmlSystem.XmlSystem.Xml
System.Xml.LinqSystem.Xml.LinqSystem.Xml.LinqSystem.Xml.Linq System.Data.EntitySystem.Data.EntitySystem.Data.EntitySystem.Data.Entity
Visual Studio IDEVisual Studio IDE
Powerful Development Environment for .NETPowerful Development Environment for .NET
Visual StudioVisual Studio
 Visual Studio is powerful IntegratedVisual Studio is powerful Integrated
Development Environment (IDE) for .NETDevelopment Environment (IDE) for .NET
DevelopersDevelopers
Create, edit, compile and run .NET applicationsCreate, edit, compile and run .NET applications
Different languagesDifferent languages –– C#, CC#, C++,++, VB.NET,VB.NET, J#, …J#, …
FlexibleFlexible code editorcode editor
PowerfulPowerful debuggerdebugger
Integrated with SQL ServerIntegrated with SQL Server andand IISIIS
Strong support of Web services, WCF and WWFStrong support of Web services, WCF and WWF
Visual StudioVisual Studio (2)(2)
 Visual programmingVisual programming
Component-orientedComponent-oriented,, event basedevent based
 Managed and unmanaged codeManaged and unmanaged code
 Helpful wizards and editorsHelpful wizards and editors
Windows Forms DesignerWindows Forms Designer
WCF / Silverlight DesignerWCF / Silverlight Designer
ASP.NET Web Forms DesignerASP.NET Web Forms Designer
ADO.NET / LINQ-to-SQL / XML Data DesignerADO.NET / LINQ-to-SQL / XML Data Designer
 Many third party extensionsMany third party extensions
Visual StudioVisual Studio IDEIDE
.NET Framework Overview.NET Framework Overview
Questions?Questions?
http://aspnetcourse.telerik.com

Mais conteúdo relacionado

Mais procurados

Nakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishSvetlin Nakov
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental PrinciplesIntro C# Book
 
dot net technology
dot net technologydot net technology
dot net technologyImran Khan
 
C# Framework class library
C# Framework class libraryC# Framework class library
C# Framework class libraryPrem Kumar Badri
 
Common language runtime clr
Common language runtime clrCommon language runtime clr
Common language runtime clrSanSan149
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial Jm Ramos
 
C# programming language
C# programming languageC# programming language
C# programming languageswarnapatil
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)slire
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NETRajkumarsoy
 
Collection Framework in java
Collection Framework in javaCollection Framework in java
Collection Framework in javaCPD INDIA
 
Collections In Java
Collections In JavaCollections In Java
Collections In JavaBinoj T E
 
Architecture of .net framework
Architecture of .net frameworkArchitecture of .net framework
Architecture of .net frameworkThen Murugeshwari
 

Mais procurados (20)

Nakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - English
 
C sharp
C sharpC sharp
C sharp
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
 
dot net technology
dot net technologydot net technology
dot net technology
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
C# Framework class library
C# Framework class libraryC# Framework class library
C# Framework class library
 
Common language runtime clr
Common language runtime clrCommon language runtime clr
Common language runtime clr
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
 
C# language
C# languageC# language
C# language
 
C# programming language
C# programming languageC# programming language
C# programming language
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Collection Framework in java
Collection Framework in javaCollection Framework in java
Collection Framework in java
 
Collections In Java
Collections In JavaCollections In Java
Collections In Java
 
Introduction to c#
Introduction to c#Introduction to c#
Introduction to c#
 
Architecture of .net framework
Architecture of .net frameworkArchitecture of .net framework
Architecture of .net framework
 
Threading in C#
Threading in C#Threading in C#
Threading in C#
 
Asp Architecture
Asp ArchitectureAsp Architecture
Asp Architecture
 

Semelhante a .NET Framework Overview

Semelhante a .NET Framework Overview (20)

Net Framework Overview
Net Framework OverviewNet Framework Overview
Net Framework Overview
 
Nakov dot net-framework-overview-english
Nakov dot net-framework-overview-englishNakov dot net-framework-overview-english
Nakov dot net-framework-overview-english
 
.NET Overview
.NET Overview.NET Overview
.NET Overview
 
.net framework
.net framework.net framework
.net framework
 
Introdot Netc Sharp En
Introdot Netc Sharp EnIntrodot Netc Sharp En
Introdot Netc Sharp En
 
Overview of microsoft dot net platforms
Overview of microsoft dot net platformsOverview of microsoft dot net platforms
Overview of microsoft dot net platforms
 
.Net overview
.Net overview.Net overview
.Net overview
 
.Net Framework
.Net Framework.Net Framework
.Net Framework
 
Introductionto .netframework by Priyanka Pinglikar
Introductionto .netframework by Priyanka PinglikarIntroductionto .netframework by Priyanka Pinglikar
Introductionto .netframework by Priyanka Pinglikar
 
Microsoft.Net
Microsoft.NetMicrosoft.Net
Microsoft.Net
 
SynapseIndia dotnet framework library
SynapseIndia  dotnet framework librarySynapseIndia  dotnet framework library
SynapseIndia dotnet framework library
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
 
Synapse india reviews sharing asp.net
Synapse india reviews sharing  asp.netSynapse india reviews sharing  asp.net
Synapse india reviews sharing asp.net
 
Introduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutionsIntroduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutions
 
.Net overview
.Net overview.Net overview
.Net overview
 
.Net Overview
.Net Overview.Net Overview
.Net Overview
 
jhkghj
jhkghjjhkghj
jhkghj
 
test2PPT
test2PPTtest2PPT
test2PPT
 
Asp net
Asp netAsp net
Asp net
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 

Mais de Doncho Minkov

Mais de Doncho Minkov (20)

Web Design Concepts
Web Design ConceptsWeb Design Concepts
Web Design Concepts
 
Web design Tools
Web design ToolsWeb design Tools
Web design Tools
 
HTML 5
HTML 5HTML 5
HTML 5
 
HTML 5 Tables and Forms
HTML 5 Tables and FormsHTML 5 Tables and Forms
HTML 5 Tables and Forms
 
CSS Overview
CSS OverviewCSS Overview
CSS Overview
 
CSS Presentation
CSS PresentationCSS Presentation
CSS Presentation
 
CSS Layout
CSS LayoutCSS Layout
CSS Layout
 
CSS 3
CSS 3CSS 3
CSS 3
 
Adobe Photoshop
Adobe PhotoshopAdobe Photoshop
Adobe Photoshop
 
Slice and Dice
Slice and DiceSlice and Dice
Slice and Dice
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPF
 
WPF Layout Containers
WPF Layout ContainersWPF Layout Containers
WPF Layout Containers
 
WPF Controls
WPF ControlsWPF Controls
WPF Controls
 
WPF Templating and Styling
WPF Templating and StylingWPF Templating and Styling
WPF Templating and Styling
 
WPF Graphics and Animations
WPF Graphics and AnimationsWPF Graphics and Animations
WPF Graphics and Animations
 
Simple Data Binding
Simple Data BindingSimple Data Binding
Simple Data Binding
 
Complex Data Binding
Complex Data BindingComplex Data Binding
Complex Data Binding
 
WPF Concepts
WPF ConceptsWPF Concepts
WPF Concepts
 
Model View ViewModel
Model View ViewModelModel View ViewModel
Model View ViewModel
 
WPF and Databases
WPF and DatabasesWPF and Databases
WPF and Databases
 

Último

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Último (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

.NET Framework Overview

  • 1. .NET Framework Overview.NET Framework Overview .NET Framework, CLR, MSIL, Assemblies, CTS, etc..NET Framework, CLR, MSIL, Assemblies, CTS, etc. Doncho MinkovDoncho Minkov Telerik School AcademyTelerik School Academy schoolacademy.telerik.comschoolacademy.telerik.com Technical TrainerTechnical Trainer http://www.minkov.ithttp://www.minkov.it
  • 2. Table of ContentsTable of Contents 1.1. What isWhat is .NET.NET?? Microsoft .NET platform architectureMicrosoft .NET platform architecture 1.1. What isWhat is .NET.NET FrameworkFramework?? .NET Framework Architecture.NET Framework Architecture 1.1. Common Language Runtime (CLR)Common Language Runtime (CLR) 2.2. Managed CodeManaged Code 3.3. Intermediate LanguageIntermediate Language MSILMSIL 4.4. Assemblies and MetadataAssemblies and Metadata 5.5. .NET Applications.NET Applications
  • 3. Table of ContentsTable of Contents (2)(2) 8.8. Common Language Infrastructure (CLI)Common Language Infrastructure (CLI) andand integration of different languagesintegration of different languages  Common Language Specification (CLS)Common Language Specification (CLS)  Common Type System (CTS)Common Type System (CTS) 8.8. Framework Class LibraryFramework Class Library 9.9. Integrated Development EnvironmentIntegrated Development Environment VisualVisual StudioStudio
  • 4. .NET Framework.NET Framework Microsoft's Platform forMicrosoft's Platform for Application DevelopmentApplication Development
  • 5. What is the .NET PlatformWhat is the .NET Platform??  The .NET platformThe .NET platform Microsoft's platform for software developmentMicrosoft's platform for software development Unified technology for development of almostUnified technology for development of almost any kind of applicationsany kind of applications  GUI / Web / RIA / mobile / server / cloud / etc.GUI / Web / RIA / mobile / server / cloud / etc.  .NET platform versions.NET platform versions .NET Framework.NET Framework Silverlight / Windows Phone 7Silverlight / Windows Phone 7 .NET Compact Framework.NET Compact Framework
  • 6. What isWhat is .NET Framework?.NET Framework?  .NET Framework.NET Framework An environment for developing andAn environment for developing and executingexecuting .NET.NET applicationsapplications Unified programming modelUnified programming model,, set of languages,set of languages, class librariesclass libraries,, infrastructure, components andinfrastructure, components and tools for application developmenttools for application development Environment for controlled execution ofEnvironment for controlled execution of managed codemanaged code  It is commonly assumed thatIt is commonly assumed that .NET platform == .NET Framework.NET platform == .NET Framework
  • 7. ..NET Framework ComponentsNET Framework Components  Common Language RuntimeCommon Language Runtime (CLR)(CLR) Environment for controlled executionEnvironment for controlled execution ofof programmed codeprogrammed code –– like a virtual machinelike a virtual machine ExecutesExecutes .NET.NET applicationsapplications  Framework Class LibraryFramework Class Library (FCL)(FCL) StandardStandard class library for .NET developmentclass library for .NET development Delivers basic functionality for developingDelivers basic functionality for developing:: XML,XML, ADO.NET, LINQ, ASP.NET, WPF, WCF, WWF,ADO.NET, LINQ, ASP.NET, WPF, WCF, WWF, Silverlight, Web services, Windows Forms,Silverlight, Web services, Windows Forms, ......  SDK, compilers and toolsSDK, compilers and tools
  • 8. .NET Framework Architecture.NET Framework Architecture The OSThe OS manages themanages the resourcesresources,, thethe processes and the users of the machineprocesses and the users of the machine Provides to the applications someProvides to the applications some services (threadsservices (threads,, I/O, GDI+, DirectX,I/O, GDI+, DirectX, COM, COM+, MSMQ, IIS, WMI, …)COM, COM+, MSMQ, IIS, WMI, …) CLR is a separate process in the OSCLR is a separate process in the OS Operating System (OS)Operating System (OS)
  • 9. Operating System (OS)Operating System (OS) Common Language Runtime (CLR)Common Language Runtime (CLR) CLR managesCLR manages the execution ofthe execution of the.NET codethe.NET code Manages the memoryManages the memory,, concurrencyconcurrency,, securitysecurity, ..., ... .NET Framework Architecture.NET Framework Architecture (2)(2) CLRCLR
  • 10. Operating System (OS)Operating System (OS) Common Language Runtime (CLR)Common Language Runtime (CLR) Base Class Library (BCL)Base Class Library (BCL) .NET Framework Architecture.NET Framework Architecture ((33)) Rich object-oriented library withRich object-oriented library with fundamental classesfundamental classes Input-output, collections, textInput-output, collections, text processing, networking,processing, networking, securitysecurity,, multi-threadingmulti-threading,, ……
  • 11. Operating System (OS)Operating System (OS) Common Language Runtime (CLR)Common Language Runtime (CLR) Base Class Library (BCL)Base Class Library (BCL) ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier) .NET Framework Architecture.NET Framework Architecture ((44)) Database accessDatabase access ADO.NET, LINQ, LINQ-to-SQL andADO.NET, LINQ, LINQ-to-SQL and Entity FrameworkEntity Framework Strong XML supportStrong XML support
  • 12. Operating System (OS)Operating System (OS) Common Language Runtime (CLR)Common Language Runtime (CLR) Base Class Library (BCL)Base Class Library (BCL) ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier) .NET Framework Architecture.NET Framework Architecture ((55)) WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier) Windows CommunicationWindows Communication Foundation (WCF) and WindowsFoundation (WCF) and Windows Workflow Foundation (WWF) forWorkflow Foundation (WWF) for the SOA worldthe SOA world
  • 13. Operating System (OS)Operating System (OS) Common Language Runtime (CLR)Common Language Runtime (CLR) Base Class Library (BCL)Base Class Library (BCL) ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier) .NET Framework Architecture.NET Framework Architecture ((66)) WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier) ASP.NETASP.NET Web Forms, MVC, AJAXWeb Forms, MVC, AJAX Mobile Internet ToolkitMobile Internet Toolkit WindowsWindows FormsForms WPFWPF SilverlightSilverlight User interface technologies: Web based,User interface technologies: Web based, Windows GUI, WPF, Silverlight, mobile,Windows GUI, WPF, Silverlight, mobile, ……
  • 14. Operating System (OS)Operating System (OS) Common Language Runtime (CLR)Common Language Runtime (CLR) Base Class Library (BCL)Base Class Library (BCL) ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier) .NET Framework Architecture.NET Framework Architecture ((77)) WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier) ASP.NETASP.NET Web Forms, MVC, AJAXWeb Forms, MVC, AJAX Mobile Internet ToolkitMobile Internet Toolkit WindowsWindows FormsForms WPFWPF SilverlightSilverlight C#C# C++C++ VB.NETVB.NET J#J# F#F# JScriptJScript PerlPerl DelphiDelphi …… Programming language on your flavor!Programming language on your flavor!
  • 15. .NET Framework 4.0.NET Framework 4.0 15
  • 17. Common LanguageCommon Language RuntimeRuntime ((CLRCLR)) The Heart of .NET FrameworkThe Heart of .NET Framework
  • 18. Common Language RuntimeCommon Language Runtime ((CLRCLR))  Managed execution environmentManaged execution environment Controls the execution of managedControls the execution of managed ..NETNET programming codeprogramming code  Something like virtual machineSomething like virtual machine Like the Java Virtual Machine (JVM)Like the Java Virtual Machine (JVM)  Not an interpreterNot an interpreter Compilation on-demand is usedCompilation on-demand is used  Known asKnown as Just In Time (JIT) compilationJust In Time (JIT) compilation  Possible compilation in advance (Ngen)Possible compilation in advance (Ngen)
  • 19. ResponsibilitiesResponsibilities ofof CLRCLR  Execution of theExecution of the IL codeIL code andand the JITthe JIT compilationcompilation  Managing memory and application resourcesManaging memory and application resources  Ensuring type safetyEnsuring type safety  Interaction with the OSInteraction with the OS  Managing securityManaging security Code access securityCode access security Role-based securityRole-based security
  • 20. ResponsibilitiesResponsibilities ofof CLRCLR (2)(2)  Managing exceptionsManaging exceptions  Managing concurrencyManaging concurrency –– controlling thecontrolling the parallel execution of applicationparallel execution of application threadsthreads  Managing application domains and theirManaging application domains and their isolationisolation  Interaction with unmanaged codeInteraction with unmanaged code  SupportingSupporting debug /debug / profile of .NET codeprofile of .NET code
  • 21. CLR ArchitectureCLR Architecture Class LoaderClass Loader IL to NativeIL to Native JIT CompilerJIT Compiler CodeCode ManagerManager GarbageGarbage CollectorCollector Security EngineSecurity Engine Debug EngineDebug Engine Type CheckerType Checker Exception ManagerException Manager Thread SupportThread Support COM MarshalerCOM Marshaler Base Class Library SupportBase Class Library Support
  • 22. Managed andManaged and Unmanaged CodeUnmanaged Code What is the Difference?What is the Difference?
  • 23. Managed CodeManaged Code  CLR executed code is calledCLR executed code is called managed codemanaged code  Represents programming code in the low levelRepresents programming code in the low level languagelanguage MSILMSIL (MS Intermediate Language)(MS Intermediate Language)  Contains metadataContains metadata Description of classesDescription of classes,, interfacesinterfaces,, propertiesproperties,, fieldsfields,, methodsmethods,, parameters, etc.parameters, etc.  ProgramsPrograms,, written in anywritten in any .NET language are.NET language are Compiled to managed codeCompiled to managed code (MSIL)(MSIL) Packaged as assemblies (Packaged as assemblies (.exe.exe oror ..dlldll files)files)
  • 24. Managed CodeManaged Code (2)(2)  Object-orientedObject-oriented  SecureSecure  ReliableReliable Protected fromProtected from irregularirregular use of typesuse of types ((type-safe)type-safe)  Allows integration between components andAllows integration between components and data types of different programmingdata types of different programming languageslanguages  Portable between different platformsPortable between different platforms Windows, Linux, Max OS X, etc.Windows, Linux, Max OS X, etc.
  • 25. Unmanaged (Win32) CodeUnmanaged (Win32) Code  No protection of memory and type-safetyNo protection of memory and type-safety Reliability problemsReliability problems Safety problemsSafety problems  Doesn’t contain metadataDoesn’t contain metadata Needs additional overhead like (e.g. use COM)Needs additional overhead like (e.g. use COM)  Compiled to machine-dependent codeCompiled to machine-dependent code Need of different versions for differentNeed of different versions for different platformsplatforms Hard to be ported to other platformsHard to be ported to other platforms
  • 26. Memory ManagementMemory Management  CLR manages memory automaticallyCLR manages memory automatically Dynamically loadedDynamically loaded objects are stored in theobjects are stored in the managed heapmanaged heap Unusable objects are automatically cleaned upUnusable objects are automatically cleaned up by theby the garbage collectorgarbage collector  Some of the big problems are solvedSome of the big problems are solved Memory leaksMemory leaks Access to freed or unallocated memoryAccess to freed or unallocated memory  Objects are accessed through a referenceObjects are accessed through a reference
  • 28. Intermediate LanguageIntermediate Language ((MSILMSIL,, ILIL,, CIL)CIL)  Low level languageLow level language ((machine languagemachine language)) for thefor the .NET CLR.NET CLR  Has independent set of CPU instructionsHas independent set of CPU instructions Loading and storing data, calling methodsLoading and storing data, calling methods Arithmetic and logical operationsArithmetic and logical operations Exception handlingException handling Etc.Etc.  MSIL is converted to instructions for theMSIL is converted to instructions for the current physical CPU by the JIT compilercurrent physical CPU by the JIT compiler
  • 29. SampleSample MSIL ProgramMSIL Program .method private hidebysig static void Main() cil managed.method private hidebysig static void Main() cil managed {{ .entrypoint.entrypoint // Code size 11 (0xb)// Code size 11 (0xb) .maxstack 8.maxstack 8 ldstr "Hello, world!"ldstr "Hello, world!" call voidcall void [mscorlib]System.Console::WriteLine(string)[mscorlib]System.Console::WriteLine(string) retret } // end of method HelloWorld::Main} // end of method HelloWorld::Main
  • 30. Compilation and ExecutionCompilation and Execution CompilationCompilation ExecutionExecution JITJIT compilercompiler MachineMachine codecode MSILMSIL CodeCode MetadataMetadata SourceSource codecode LanguageLanguage compilercompiler AssemblyAssembly (.EXE or(.EXE or .DLL file).DLL file) When givenWhen given method is calledmethod is called for the first timefor the first time Pre-compilationPre-compilation during theduring the install (NGEN)install (NGEN)
  • 31. .NET Applications.NET Applications Assemblies, Metadata and ApplicationsAssemblies, Metadata and Applications
  • 32. .NET Assemblies.NET Assemblies  .NET assemblies:.NET assemblies: Self-containing .NET componentsSelf-containing .NET components  Stored in .DLL and .EXE filesStored in .DLL and .EXE files Contain list of classes, types and resourcesContain list of classes, types and resources Smallest deployment unit in CLRSmallest deployment unit in CLR Have unique version numberHave unique version number  .NET deployment model.NET deployment model No version conflicts (forget the "DLL hell")No version conflicts (forget the "DLL hell") Supports side-by-side execution of differentSupports side-by-side execution of different versions of the same assemblyversions of the same assembly
  • 33. Metadata in the AssembliesMetadata in the Assemblies  Metadata in the .NET assembliesMetadata in the .NET assemblies Data about data contained in the assemblyData about data contained in the assembly Integral part of the assemblyIntegral part of the assembly Generated by the .NET languages compilerGenerated by the .NET languages compiler Describes all classes, their class members,Describes all classes, their class members, versions, resources, etc.versions, resources, etc.
  • 34. Metadata in AssembliesMetadata in Assemblies Type DescriptionType Description Assembly DescriptionAssembly Description Classes, interfaces, inner types, base classes, implemented interfaces, member fields, properties, methods, method parameters, return value, attributes, etc. Dependencies on other assembliesDependencies on other assemblies SecuritySecurity permissionspermissions Exported typesExported types Dependencies on other assembliesDependencies on other assemblies SecuritySecurity permissionspermissions Exported typesExported types [digital[digital signature]signature] [digital[digital signature]signature] NameName VersionVersion LocalizationLocalization NameName VersionVersion LocalizationLocalization
  • 35. ..NETNET ApplicationsApplications  Configurable executable .NET unitsConfigurable executable .NET units  Consist of one or more assembliesConsist of one or more assemblies  Installed by "copy / paste"Installed by "copy / paste" No complex registration of componentsNo complex registration of components  Different applications use different versions ofDifferent applications use different versions of common assembliescommon assemblies No conflicts due to their "strong name"No conflicts due to their "strong name"  Easy installationEasy installation,, un-installation and updateun-installation and update
  • 36. Common Type System (CTS)Common Type System (CTS)  CTS defines the CLRCTS defines the CLR supported types ofsupported types of data and the operations over themdata and the operations over them  Ensures data level compatibility betweenEnsures data level compatibility between different .NETdifferent .NET languageslanguages E.g.E.g. stringstring inin C#C# is the same likeis the same like StringString inin VB.NETVB.NET and inand in J#J#  Value types and reference typesValue types and reference types  All types derive fromAll types derive from System.ObjectSystem.Object
  • 37. The .NET LanguagesThe .NET Languages C#,VB.NET, C++, J#, etc.C#,VB.NET, C++, J#, etc.
  • 38. ..NET LanguagesNET Languages  .NET languages by Microsoft.NET languages by Microsoft C#, VB.NET, Managed C++, J#, F#,C#, VB.NET, Managed C++, J#, F#, JScriptJScript  .NET languages.NET languages by third partiesby third parties Object Pascal, Perl, Python, COBOL, Haskell,Object Pascal, Perl, Python, COBOL, Haskell, Oberon, Scheme, Smalltalk…Oberon, Scheme, Smalltalk…  Different languages can be mixed in a singleDifferent languages can be mixed in a single applicationapplication  Cross-language inheritance of types andCross-language inheritance of types and exception handlingexception handling
  • 39. C# LanguageC# Language  C# is mixture between C++, Java and DelphiC# is mixture between C++, Java and Delphi  Fully object-oriented by designFully object-oriented by design  Component-oriented programming modelComponent-oriented programming model  ComponentsComponents,, properties and eventsproperties and events  No header files like C/C++No header files like C/C++  Suitable forSuitable for GUIGUI andand WebWeb applicationsapplications  XML based documentationXML based documentation  InIn C# all data types are objectsC# all data types are objects  Example:Example: 5.ToString()5.ToString() is a valid callis a valid call
  • 40. C# Language – ExampleC# Language – Example  C# is standardized byC# is standardized by ECMA and ISOECMA and ISO  Example of C# program:Example of C# program: using System;using System; class NumbersFrom1to100class NumbersFrom1to100 {{ static void Main()static void Main() {{ for (int i=1; i<=100; i++)for (int i=1; i<=100; i++) {{ Console.WriteLine(i);Console.WriteLine(i); }} }} }}
  • 41. Framework ClassFramework Class Library (FCL)Library (FCL) Standard Out-of-the-box .NET APIsStandard Out-of-the-box .NET APIs
  • 42. Framework Class Library (FCL)Framework Class Library (FCL)  Framework Class Library is the standardFramework Class Library is the standard .NET Framework library of out-of-the-box.NET Framework library of out-of-the-box reusable classes and components (APIs)reusable classes and components (APIs) Base Class Library (BCL)Base Class Library (BCL) ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier) WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier) ASP.NETASP.NET Web Forms, MVC, AJAXWeb Forms, MVC, AJAX Mobile Internet ToolkitMobile Internet Toolkit WindowsWindows FormsForms WPFWPF SilverlightSilverlight
  • 43. FCL NamespacesFCL Namespaces ADO.NET, LINQ and XML (Data Tier)ADO.NET, LINQ and XML (Data Tier) WCF and WWF (Communication and Workflow Tier)WCF and WWF (Communication and Workflow Tier) ASP.NETASP.NET Web Forms, MVC, AJAXWeb Forms, MVC, AJAX Mobile Internet ToolkitMobile Internet Toolkit WindowsWindows FormsForms WPF & SilverlightWPF & Silverlight System.WebSystem.WebSystem.WebSystem.Web System.Web.MvcSystem.Web.MvcSystem.Web.MvcSystem.Web.Mvc System.WindowsSystem.Windows .Forms.Forms System.WindowsSystem.Windows .Forms.Forms System.DrawingSystem.DrawingSystem.DrawingSystem.Drawing System.WindowsSystem.WindowsSystem.WindowsSystem.Windows System.Windows.MediaSystem.Windows.MediaSystem.Windows.MediaSystem.Windows.Media System.Windows.MarkupSystem.Windows.MarkupSystem.Windows.MarkupSystem.Windows.Markup System.ServiceModelSystem.ServiceModelSystem.ServiceModelSystem.ServiceModel System.ActivitiesSystem.ActivitiesSystem.ActivitiesSystem.Activities System.WorkflowSystem.WorkflowSystem.WorkflowSystem.Workflow System.DataSystem.DataSystem.DataSystem.Data System.LinqSystem.LinqSystem.LinqSystem.Linq System.Data.LinqSystem.Data.LinqSystem.Data.LinqSystem.Data.Linq System.XmlSystem.XmlSystem.XmlSystem.Xml System.Xml.LinqSystem.Xml.LinqSystem.Xml.LinqSystem.Xml.Linq System.Data.EntitySystem.Data.EntitySystem.Data.EntitySystem.Data.Entity
  • 44. Visual Studio IDEVisual Studio IDE Powerful Development Environment for .NETPowerful Development Environment for .NET
  • 45. Visual StudioVisual Studio  Visual Studio is powerful IntegratedVisual Studio is powerful Integrated Development Environment (IDE) for .NETDevelopment Environment (IDE) for .NET DevelopersDevelopers Create, edit, compile and run .NET applicationsCreate, edit, compile and run .NET applications Different languagesDifferent languages –– C#, CC#, C++,++, VB.NET,VB.NET, J#, …J#, … FlexibleFlexible code editorcode editor PowerfulPowerful debuggerdebugger Integrated with SQL ServerIntegrated with SQL Server andand IISIIS Strong support of Web services, WCF and WWFStrong support of Web services, WCF and WWF
  • 46. Visual StudioVisual Studio (2)(2)  Visual programmingVisual programming Component-orientedComponent-oriented,, event basedevent based  Managed and unmanaged codeManaged and unmanaged code  Helpful wizards and editorsHelpful wizards and editors Windows Forms DesignerWindows Forms Designer WCF / Silverlight DesignerWCF / Silverlight Designer ASP.NET Web Forms DesignerASP.NET Web Forms Designer ADO.NET / LINQ-to-SQL / XML Data DesignerADO.NET / LINQ-to-SQL / XML Data Designer  Many third party extensionsMany third party extensions
  • 48. .NET Framework Overview.NET Framework Overview Questions?Questions? http://aspnetcourse.telerik.com

Notas do Editor

  1. 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. .NET metadata, in the Microsoft .NET framework, refers to code that describes .NET CIL (Common Intermediate Language) code. A .NET language compiler will generate the metadata and store this in the assembly containing the CIL. Metadata describes all classes and class members that are defined in the assembly, and the classes and class members that the current assembly will call from another assembly. The metadata for a method contains the complete description of the method, including the class (and the assembly that contains the class), the return type and all of the method parameters. When the CLR executes CIL it will check to make sure that the metadata of the called method is the same as the metadata that is stored in the calling method. This ensures that a method can only be called with exactly the right number of parameters and exactly the right parameter types.