51
.NET Framework Overview .NET Framework, CLR, MSIL, Assemblies, CTS, etc. Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training www.nakov.com mvccourse.telerik.com

1. MS.NET Framework Overview - ASP.NET MVC

Embed Size (px)

DESCRIPTION

Web Applications with ASP.NET MVC @ Telerik Academy http://mvccourse.telerik.com The website and all video materials language is Bulgarian This lecture discusses the following topics: What is .NET? Microsoft .NET platform architecture What is .NET Framework? .NET Framework Architecture Common Language Runtime (CLR) Managed Code Intermediate Language MSIL Assemblies and Metadata .NET Applications Common Language Infrastructure (CLI) and integration of different languages Common Language Specification (CLS) Common Type System (CTS) Framework Class Library Integrated Development Environment Visual Studio

Citation preview

Page 1: 1. MS.NET Framework Overview - ASP.NET MVC

.NET Framework Overview

.NET Framework, CLR, MSIL, Assemblies, CTS, etc.

Svetlin Nakov

Telerik Software Academyacademy.telerik.com

Manager Technical Trainingwww.nakov.com

mvccourse.telerik.com

Page 2: 1. MS.NET Framework Overview - ASP.NET MVC

Table of Contents1. What is .NET?

Microsoft .NET platform architecture

2. What is .NET Framework? .NET Framework Architecture

3. Common Language Runtime (CLR)

4. Managed Code

5. Intermediate Language MSIL

6. Assemblies and Metadata

7. .NET Applications

Page 3: 1. MS.NET Framework Overview - ASP.NET MVC

Table of Contents (2)8. Common Language Infrastructure

(CLI) and integration of different languages

Common Language Specification (CLS)

Common Type System (CTS)

9. Framework Class Library

10.Integrated Development Environment Visual Studio

Page 4: 1. MS.NET Framework Overview - ASP.NET MVC

.NET FrameworkMicrosoft's Platform

for Application Development

Page 5: 1. MS.NET Framework Overview - ASP.NET MVC

What is the .NET Platform?

The .NET platform Microsoft's platform for software

development Unified technology for development

of almost any kind of applications GUI / Web / RIA / mobile / server /

cloud / etc.

.NET platform versions .NET Framework Silverlight / Windows Phone 7 .NET Compact Framework

Page 6: 1. MS.NET Framework Overview - ASP.NET MVC

What is .NET Framework?

.NET Framework An environment for developing and

executing .NET applications Unified programming model, set of

languages, class libraries, infrastructure, components and tools for application development

Environment for controlled execution of managed code

It is commonly assumed that .NET platform == .NET Framework

Page 7: 1. MS.NET Framework Overview - ASP.NET MVC

.NET Framework Components

Common Language Runtime (CLR) Environment for controlled

execution of programmed code – like a virtual machine

Executes .NET applications Framework Class Library (FCL)

Standard class library for .NET development

Delivers basic functionality for developing: XML, ADO.NET, LINQ, ASP.NET, WPF, WCF, WWF, Silverlight, Web services, Windows Forms, ...

SDK, compilers and tools

Page 8: 1. MS.NET Framework Overview - ASP.NET MVC

.NET Framework Architecture

The OS manages the resources, the processes and the users of the machine

Provides to the applications some services (threads, I/O, GDI+, DirectX, COM, COM+, MSMQ, IIS, WMI, …)

CLR is a separate process in the OS

Operating System (OS)

Page 9: 1. MS.NET Framework Overview - ASP.NET MVC

Operating System (OS)

Common Language Runtime (CLR)

CLR manages the execution of the.NET code

Manages the memory, concurrency, security, ...

.NET Framework Architecture (2)

CLR

Page 10: 1. MS.NET Framework Overview - ASP.NET MVC

Operating System (OS)

Common Language Runtime (CLR)

Base Class Library (BCL)

.NET Framework Architecture (3)

Rich object-oriented library with fundamental classes

Input-output, collections, text processing, networking, security, multi-threading, …

Page 11: 1. MS.NET Framework Overview - ASP.NET MVC

Operating System (OS)

Common Language Runtime (CLR)

Base Class Library (BCL)

ADO.NET, LINQ and XML (Data Tier)

.NET Framework Architecture (4)

Database access ADO.NET, LINQ, LINQ-to-SQL and Entity Framework

Strong XML support

Page 12: 1. MS.NET Framework Overview - ASP.NET MVC

Operating System (OS)

Common Language Runtime (CLR)

Base Class Library (BCL)

ADO.NET, LINQ and XML (Data Tier)

.NET Framework Architecture (5)

WCF and WWF (Communication and Workflow Tier)

Windows Communication Foundation (WCF) and Windows Workflow Foundation (WWF) for the SOA world

Page 13: 1. MS.NET Framework Overview - ASP.NET MVC

Operating System (OS)

Common Language Runtime (CLR)

Base Class Library (BCL)

ADO.NET, LINQ and XML (Data Tier)

.NET Framework Architecture (6)

WCF and WWF (Communication and Workflow Tier)

ASP.NETWeb Forms, MVC, AJAXMobile Internet Toolkit

WindowsForms

WPF Silverlight

User interface technologies: Web based, Windows GUI, WPF, Silverlight, mobile, …

Page 14: 1. MS.NET Framework Overview - ASP.NET MVC

Operating System (OS)

Common Language Runtime (CLR)

Base Class Library (BCL)

ADO.NET, LINQ and XML (Data Tier)

.NET Framework Architecture (7)

WCF and WWF (Communication and Workflow Tier)

ASP.NETWeb Forms, MVC, AJAXMobile Internet Toolkit

WindowsForms

WPF Silverlight

C# C++VB.NET J# F# JScriptPerlDelphi …

Programming language on your flavor!

Page 15: 1. MS.NET Framework Overview - ASP.NET MVC

.NET Framework 4.0

15

Page 16: 1. MS.NET Framework Overview - ASP.NET MVC

The Future

16

Page 17: 1. MS.NET Framework Overview - ASP.NET MVC

Common Language

Runtime (CLR)The Heart of .NET Framework

Page 18: 1. MS.NET Framework Overview - ASP.NET MVC

Common Language Runtime (CLR)

Common Language Runtime (CLR)

Managed execution environment Controls the execution of

managed .NET programming code Something like virtual machine

Like the Java Virtual Machine (JVM) Not an interpreter

Compilation on-demand is used Known as Just In Time (JIT)

compilation

Possible compilation in advance (Ngen)

Page 19: 1. MS.NET Framework Overview - ASP.NET MVC

Responsibilities of CLRResponsibilities of CLR Execution of the IL code and the JIT compilation

Managing memory and application resources

Ensuring type safety

Interaction with the OS

Managing security

Code access security

Role-based security

Page 20: 1. MS.NET Framework Overview - ASP.NET MVC

Responsibilities of CLR (2)

Managing exceptions Managing concurrency – controlling the parallel execution of application threads

Managing application domains and their isolation

Interaction with unmanaged code Supporting debug /

profile of .NET code

Page 21: 1. MS.NET Framework Overview - ASP.NET MVC

CLR Architecture

Class Loader

IL to NativeJIT Compiler

CodeManager

GarbageCollector

Security Engine Debug Engine

Type Checker Exception Manager

Thread Support COM Marshaler

Base Class Library Support

Page 22: 1. MS.NET Framework Overview - ASP.NET MVC

Managed and Unmanaged Code

What is the Difference?

Page 23: 1. MS.NET Framework Overview - ASP.NET MVC

Managed Code CLR executed code is called managed code

Represents programming code in the low level language MSIL (MS Intermediate Language)

Contains metadata Description of classes, interfaces,

properties, fields, methods, parameters, etc.

Programs, written in any .NET language are Compiled to managed code (MSIL) Packaged as assemblies (.exe

or .dll files)

Page 24: 1. MS.NET Framework Overview - ASP.NET MVC

Managed Code (2)Managed Code (2)

Object-oriented Secure Reliable

Protected from irregular use of types (type-safe)

Allows integration between components and data types of different programming languages

Portable between different platforms Windows, Linux, Max OS X, etc.

Page 25: 1. MS.NET Framework Overview - ASP.NET MVC

Unmanaged (Win32) Code

No protection of memory and type-safety Reliability problems Safety problems

Doesn’t contain metadata Needs additional overhead like (e.g.

use COM) Compiled to machine-dependent code Need of different versions for

different platforms Hard to be ported to other

platforms

Page 26: 1. MS.NET Framework Overview - ASP.NET MVC

Memory Management CLR manages memory automatically Dynamically loaded objects are

stored in the managed heap Unusable objects are automatically

cleaned up by the garbage collector Some of the big problems are solved Memory leaks Access to freed or unallocated

memory Objects are accessed through a reference

Page 27: 1. MS.NET Framework Overview - ASP.NET MVC

Intermediate Language (MSIL)

Page 28: 1. MS.NET Framework Overview - ASP.NET MVC

Intermediate Language (MSIL, IL, CIL)

Low level language (machine language) for the .NET CLR

Has independent set of CPU instructions Loading and storing data, calling

methods Arithmetic and logical operations Exception handling Etc.

MSIL is converted to instructions for the current physical CPU by the JIT compiler

Page 29: 1. MS.NET Framework Overview - ASP.NET MVC

Sample MSIL Program

.method private hidebysig static void Main() cil managed{ .entrypoint // Code size 11 (0xb) .maxstack 8 ldstr "Hello, world!" call void [mscorlib]System.Console::WriteLine(string) ret} // end of method HelloWorld::Main

Page 30: 1. MS.NET Framework Overview - ASP.NET MVC

Compilation and Execution

Compilation

Execution

JIT compile

r

Machine code

MSILCode

MetadataSource code

Language

compiler

Assembly

(.EXE or

.DLL file)

When given method is called for the first

timePre-compilation during the

install (NGEN)

Page 31: 1. MS.NET Framework Overview - ASP.NET MVC

.NET ApplicationsAssemblies, Metadata and

Applications

Page 32: 1. MS.NET Framework Overview - ASP.NET MVC

.NET Assemblies .NET assemblies:

Self-containing .NET components Stored in .DLL and .EXE files

Contain list of classes, types and resources

Smallest deployment unit in CLR Have unique version number

.NET deployment model No version conflicts (forget the "DLL

hell") Supports side-by-side execution of

different versions of the same assembly

Page 33: 1. MS.NET Framework Overview - ASP.NET MVC

Metadata in the Assemblies

Metadata in the .NET assemblies Data about data contained in the

assembly Integral part of the assembly Generated by the .NET languages

compiler Describes all classes, their class

members, versions, resources, etc.

Page 34: 1. MS.NET Framework Overview - ASP.NET MVC

Metadata in Assemblies

Type Description

Assembly Description

Classes, interfaces, inner types, base classes, implemented interfaces, member fields, properties, methods, method parameters, return value,attributes, etc.

Dependencies on other assembliesSecurity permissionsExported types

[digitalsignature]

NameVersionLocalization

Page 35: 1. MS.NET Framework Overview - ASP.NET MVC

.NET Applications Configurable executable .NET units Consist of one or more assemblies Installed by "copy / paste"

No complex registration of components

Different applications use different versions of common assemblies No conflicts due to their "strong

name" Easy installation, un-installation and update

Page 36: 1. MS.NET Framework Overview - ASP.NET MVC

Common Type System (CTS)

CTS defines the CLR supported types of data and the operations over them

Ensures data level compatibility between different .NET languages E.g. string in C# is the same like String in VB.NET and in J#

Value types and reference types All types derive from System.Object

Page 37: 1. MS.NET Framework Overview - ASP.NET MVC

The .NET LanguagesC#, VB.NET, C++, J#, etc.

Page 38: 1. MS.NET Framework Overview - ASP.NET MVC

.NET Languages

.NET languages by Microsoft C#, VB.NET, Managed C++, J#, F#,

JScript .NET languages by third parties

Object Pascal, Perl, Python, COBOL, Haskell, Oberon, Scheme, Smalltalk…

Different languages can be mixed in a single application

Cross-language inheritance of types and exception handling

Page 39: 1. MS.NET Framework Overview - ASP.NET MVC

C# Language C# is mixture between C++, Java

and Delphi Fully object-oriented by design

Component-oriented programming model Components, properties and

events No header files like C/C++ Suitable for GUI and Web

applications XML based documentation

In C# all data types are objects Example: 5.ToString() is a valid

call

Page 40: 1. MS.NET Framework Overview - ASP.NET MVC

C# Language – Example

C# is standardized by ECMA and ISO

Example of C# program:using System;

class NumbersFrom1to100{ static void Main() { for (int i=1; i<=100; i++) { Console.WriteLine(i); } }}

Page 41: 1. MS.NET Framework Overview - ASP.NET MVC

Framework Class Library (FCL)

Standard Out-of-the-box .NET APIs

Page 42: 1. MS.NET Framework Overview - ASP.NET MVC

Framework Class Library (FCL)

Framework Class Library is the standard .NET Framework library of out-of-the-box reusable classes and components (APIs)

Framework Class Library is the standard .NET Framework library of out-of-the-box reusable classes and components (APIs)

Base Class Library (BCL)

ADO.NET, LINQ and XML (Data Tier)

WCF and WWF (Communication and Workflow Tier)

ASP.NETWeb Forms, MVC, AJAXMobile Internet Toolkit

WindowsForms

WPF Silverlight

Page 43: 1. MS.NET Framework Overview - ASP.NET MVC

FCL Namespaces

ADO.NET, LINQ and XML (Data Tier)

WCF and WWF (Communication and Workflow Tier)

ASP.NETWeb Forms, MVC, AJAXMobile Internet Toolkit

WindowsForms

WPF & Silverlight

System.Web

System.Web.Mvc

System.Windows.Forms

System.Drawing

System.Windows

System.Windows.Media

System.Windows.Markup

System.ServiceModel System.Activities System.Workflow

System.Data System.Linq

System.Data.Linq

System.Xml

System.Xml.Linq System.Data.Entity

Page 44: 1. MS.NET Framework Overview - ASP.NET MVC

Visual Studio IDEPowerful Development Environment for .NET

Page 45: 1. MS.NET Framework Overview - ASP.NET MVC

Visual Studio Visual Studio is powerful Integrated Development Environment (IDE) for .NET Developers Create, edit, compile and run .NET

applications Different languages – C#, C++,

VB.NET, J#, … Flexible code editor Powerful debugger Integrated with SQL Server and IIS Strong support of Web services,

WCF and WWF

Page 46: 1. MS.NET Framework Overview - ASP.NET MVC

Visual Studio (2) Visual programming

Component-oriented, event based Managed and unmanaged code Helpful wizards and editors

Windows Forms Designer WCF / Silverlight Designer ASP.NET Web Forms Designer ADO.NET / LINQ-to-SQL / XML Data

Designer Many third party extensions

Page 47: 1. MS.NET Framework Overview - ASP.NET MVC

Visual Studio IDE

Page 48: 1. MS.NET Framework Overview - ASP.NET MVC

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

.NET Framework Overview

http://academy.telerik.com

Page 49: 1. MS.NET Framework Overview - ASP.NET MVC

Exercises1. Describe briefly .NET Framework.

Indicate its key components?

2. What is Common Language Runtime (CLR)? Why it is important part of .NET Framework?

3. What is .NET assembly? What are its integral parts?

4. What is the assembly metadata and what does it contain?

5. Describe the process of compilation of C# program to assembly and the process of assembly execution.

6. What is managed code? Why it is preferred over the traditional unmanaged (native) code?

Page 50: 1. MS.NET Framework Overview - ASP.NET MVC

Exercises (2)

7. What is MSIL language? Indicate its key characteristics.

8. What is Common Language Specification (CLS)? Why is it developed?

9. What is Common Type System? When is it used?

10.Point out some of the most popular .NET languages. What is common for all of them?

11.What is Framework Class Library (FCL)? What functionality does it deliver? Indicate its key technologies and namespaces.

Page 51: 1. MS.NET Framework Overview - ASP.NET MVC

Free Trainings @ Telerik Academy

Web Applications with ASP.NET MVC Course mvccourse.telerik.com

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com