C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries...

30

Transcript of C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries...

Page 1: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable
Page 2: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

C# .NET?

• New programming language introduced by Microsoft contained in its .net technology

Uses many of the best features of C++, Java, Visual

Basic, and other OO languages.

Small learning curve from either C++ or Java

Some important features include:

• B I N E S H

All types in a C# program are now of type object

Millions of lines of C# code already

available in .Net framework libraries

First Component oriented language in C/C++

family –

Page 3: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Enterprise Vision (C# Choice)

Users Any device, Any place, Any time

- Right

XML Web Services Integrate business applications and processes

Authe ntication Sche duling

Notification

Back Office Heterogeneous application and server infrastructure

Sales Customer Service ERP & Billing

B I N E S H

Page 4: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

The .NET Platform

Protocols: HTTP, Tools:

Visual Studio.NET,

Notepad

HTML, XML,

SOAP, UDDI

Your Internal

Web Service

.NET Foundation

Web Services

Third-Party

Web Services

.NET Enterprise

Servers

Web Form Web Service

.NET Framework

CLR

Windows

Clients

Applications

B I N E S H

Page 5: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

So what is .NET?

• .NET is a platform that provides a standardized set of services.

– It’s just like W indows, except distributed over Internet.

It exports a common interface so that it’s

programs can be run on any system that

supports .NET.

the

• A specific software framework

– Includes a common runtime

B I N E S H

Page 6: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework

Programming model for .NET

Platform for running .NET managed code in

a virtual machine

Provides a very good environment to

develop networked applications and W eb

Services

Provides programming API and unified

language-independent development

framework

B I N E S H

Page 7: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

The Core of .NET Framework: FCL & CLR

• Framework Class Library

– Provides the core functionality:

ASP.NET, W eb Services, ADO.NET, W indows

Forms, IO, XML, etc. all leading to Model & Distributed Model.

Enterprise

• Common Language Runtime

Garbage collection

Language integration

Multiple versioning support (no more

Integrated security

DLL hell!)

B I N E S H

Page 8: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

MMSSIILL

E x e uu

ttii

oo

nn

Code Compilation and Execution

Compilation

Language Compiler

Also called Assembly (.EXE or .DLL file)

Source Code

Code

Metadata

Before installation or the first time

each method is called

c

Native Code

JIT Compiler

B I N E S H

Page 9: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework with Programming Languages/OS

Programming Languages

ADO.NET, Window s forms,

ASP.NET, Globalization, Security

.NET Framew ork Class Library

Common Language Runtime

Operating System

B I N E S H

Page 10: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET

Platfor

m Code

How the .NET Framework

Programming Services

.NET Framew ork

Works

Visual Basic Applications Class Library

.NET

Platfor

m Code

Visual C# Applications

JIT compiler produces machine language

Visual C++ Applications Common Language

Runtime

Source code compiles as MSIL

Data Types

ADO.NET

Web Services

Windows

B I N E S H

Page 11: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework Common Language Runtime

– CLR manages code execution runtime

Memory management, thread

management, etc.

at

Common Language Runtime

Operating System

B I N E S H

Page 12: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework

Base Class Library

Object-oriented collection of reusable

Collections, I/O, Strings, …

Standard & Common Classes

Simple to use

Remoting and many more……

types

.NET Framework (Base Class Library)

Common Language Runtime

Operating System

B I N E S H

Page 13: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework

Data Access Layer

Access relational databases

Disconnected data model

W ork with XML

ADO .NET and XML

.NET Framework (Base Class Library)

Common Language Runtime

Operating System

B I N E S H

Page 14: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework ASP.NET & Windows Forms

– Create application’s front-end – W eb-

based user interface, W eb services, …

W indows GUI,

ASP .NET Windows Forms Web Forms Web Services

Mobile Internet Toolkit

ADO .NET and XML

.NET Framework (Base Class Library)

Common Language Runtime

Operating System

B I N E S H

Page 15: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework Programming Languages

– Use your favorite language

C++ C# Perl J# … VB.NET

ASP .NET Windows Forms Web Forms Web Services

Mobile Internet Toolkit

ADO .NET and XML

.NET Framework (Base Class Library)

Common Language Runtime

Operating System

B I N E S H

Page 16: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

CCoommmmoo

nn LLaanngg

uuaaggee SSppeecciiffiicc

aattiioonn

.NET Framework

Common Language Specification

C++ C#

ASP

Perl J# … VB

.NET Web Services

Windows Forms Web Forms

Mobile Internet Toolkit

ADO .NET and XML

.NET Framework (Base Class Library)

Common Language Runtime

Operating System

B I N E S H

Page 17: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework Visual Studio .NET

C++ C# Perl J# … VB

Common Language

ASP .NET

Specification

Windows Forms Web Forms Web Services

Mobile Internet Toolkit

ADO .NET and XML

.NET Framework (Base Class Library)

Common Language Runtime

Operating System

Vis

ual S

tud

io .N

ET

B I N E S H

Page 18: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

.NET Framework

Standards Compliance

C# Language – Submitted to ECMA

C++ C# Perl J# VB

Open Language Specification

Common Language

ASP .NET Web Services Web Forms

Mobile Internet Toolkit

Specification

Windows Web services – Forms XML, SOAP-based

ADO .NET and XML

XML-based data access

.NET Framework (Base Class Library)

Common Language Runtime

Operating System

Vis

ual S

tud

io .N

ET

B I N E S H

Page 19: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Programming Studio .NET

Features of Visual

Web Forms Tools

Windows Forms Tools

Multiple Languages

Error Handling

XML Web Services Tools

Data Access

B I N E S H

Page 20: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Web Architecture: Framework vs. COM+

COM+

Presentation

Business Logic

Data

B I N E S H

Page 21: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Common Language Runtime

• Manages running code – like a virtual machine

– –

Threading Memory management

No interpreter: JIT-compiler produces native code – during the program installation or at run time

• Fine-grained evidence-based security – Code access security

• •

Code can be verified to guarantee type safety No unsafe casts, no un-initialized variables and no out- of-bounds array indexing

– Role-based security

B I N E S H

Page 22: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Exploring the Code Cycle

Application source code is written.

A .Net compiler generates IL code and builds assembly.

Application execution begins normally, with the loader reading the executable header.

Windows

Required DLLs are loaded.

The _CorExeMain function inserted at the application’s entry point is executed by the OS.

_CorExeMain uses a Just In Time (JIT) compiler to compile the IL code to native code.

Native code is executed.

• Compiling your source code, regardless of the language used, results in code output.

IL

• Behind the scenes, the compiler inserts a stub function to load the CLR, which then runs the Just In Time Compiler to transform the IL code into

native code.

B I N E S H

Page 23: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Features of C# Flexible: C# programs can execute on the current machine, or they can be transmitted over the Web and executed on some distant computer.

Powerful: C# has essentially the same command set as C++, but with the rough edges filed smooth.

Easier to use: C# modifies the commands responsible for most C++ errors so you spend far less time chasing down those errors.

Visually oriented: The .NET code library that C# uses for many of its capabilities provides the help needed to readily create complicated display frames with drop-down lists, tabbed windows, grouped buttons, scroll bars, and background images, to name just a few. Internet friendly: C# plays a pivotal role in the .NET Framework, Microsoft’s current approach to programming for Windows, the Internet, and beyond. .NET is pronounced dot net.

Secure: Any language intended for use on the Internet must include serious security to protect against malevolent hackers.

B I N E S H

Page 24: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Managed Code

• Code that targets the CLR is referred to as managed code

• All managed code has the features CLR

of the

– –

Object-oriented Type-safe

Cross-language integration

Cross language exception handling

Multiple version support

• Managed code is represented in special Intermediate Language (IL)

B I N E S H

Page 25: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Automatic Memory Management

• The

CLR manages memory for managed code

All allocations of objects and buffers made from a

Managed Heap

Unused objects and buffers are cleaned up automatically

through Garbage Collection

• Some of the worst bugs in software development are

not

possible with managed code

Leaked memory or objects

References to freed or non-existent objects

Reading of uninitialised variables

• Pointerless environment

B I N E S H

Page 26: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Multiple Language Support

IL (MSIL or CIL) – Intermediate Language It is low-level (machine) language, like

Assembler, but is Object-oriented

CTS is a rich type system built into the CLR

Implements various types (int, float, string, …)

And operations on those types

CLS is a set of specifications that all languages and libraries need to follow

This will ensure interoperability between languages

B I N E S H

Page 27: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Intermediate Language

• .NET languages are compiled to an Intermediate Language (IL)

IL is also known as MSIL or CIL

CLR compiles IL in just-in-time (JIT)

manner – each function is compiled just

before execution

The JIT code stays in memory for

subsequent calls

Recompilations of assemblies are also

possible

B I N E S H

Page 28: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Example of MSIL Code

.method private hidebysig static cil managed

{

void Main()

.entrypoint // Code size 11 (0xb) .maxstack IL_0000:

8 ldstr "Hello, world!"

IL_0005: call void [mscorlib]System.Console::WriteLine(string) IL_000a: ret

method HelloWorld::Main } // end of

B I N E S H

Page 29: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Common Type System (CTS)

• All .NET languages have the same primitive data types. An int in C# is the same as an int in VB.NET

• W hen communicating between modules written in any .NET language, the types are guaranteed to be compatible on the binary level

• Types can be: –

Value types – passed by value, stored in the stack

Reference types – passed by reference, stored in the heap

• Strings are a primitive data type now

B I N E S H

Page 30: C# .NET? - sbinesh.yolasite.com Sharp Basic By Binesh.pdf · available in .Net framework libraries First Component oriented language in C/C++ ... Object-oriented collection of reusable

Common Language Specification (CLS)

• Any language that conforms to the CLS is a .NET language

A language that conforms to the CLS has

the ability to take full advantage of the

Framework Class Library (FCL)

CLS is standardized by ECMA

B I N E S H