Programação Visual

9
Programação Visual Aula 1 Plataforma .Net

description

Programação Visual. Aula 1 Plataforma .Net. VB. VB. C++. C++. C#. C#. JScript. JScript. …. …. VB. VB. C++. C++. C#. C#. JScript. JScript. …. …. Common Language Specification. Common Language Specification. Common Language Specification. Common Language Specification. - PowerPoint PPT Presentation

Transcript of Programação Visual

Page 1: Programação Visual

Programação VisualAula 1

Plataforma .Net

Page 2: Programação Visual

Mar-03 Programação Visual – Engenharia Informática - EST Setubal

2

Base Class Library (Framework)Base Class Library (Framework)

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET: Dados e XMLADO.NET: Dados e XML

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicese Web Formse Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Base Class Library (Framework)Base Class Library (Framework)

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET: Dados e XMLADO.NET: Data and XML

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicese Web Formsand Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Page 3: Programação Visual

Mar-03 Programação Visual – Engenharia Informática - EST Setubal

3

.NET Framework Architecture

Common Language Runtime

MetadataType System Execution

System Base Framework

IO Net Security ServiceProcess

ADO.NET XML SQL Threading

System.Web

Web Services Web Forms

ASP.NET Application Services

System.WinForms

Controls Drawing

Windows Application Services

Page 4: Programação Visual

Mar-03 Programação Visual – Engenharia Informática - EST Setubal

4

Common Type System

Value typesValue types PrimitivesPrimitives intint i; float f;i; float f;

EnumsEnums enumenum State { Off, On }State { Off, On }

StructsStructs structstruct Point { Point { intint x, y; }x, y; }

Reference typesReference types ClassesClasses class Foo: Bar, class Foo: Bar, IFooIFoo { … }{ … }

InterfacesInterfaces interface interface IFooIFoo: : IBarIBar { … }{ … }

ArraysArrays string[] s = new string[10];string[] s = new string[10];

DelegatesDelegates delegate void Empty();delegate void Empty();

Page 5: Programação Visual

5 Programação Visual – Engenharia Informática - EST Setubal

Mar-03

VBVBSource Source codecode

CompilerCompiler

C++C++C#C#

CompilerCompilerCompilerCompiler

AssemblyAssemblyIL CodeIL Code

AssemblyAssemblyIL CodeIL Code

AssemblyAssemblyIL CodeIL Code

Operating System ServicesOperating System Services

Common Language RuntimeCommon Language Runtime

JIT CompilerJIT Compiler

Native CodeNative Code

ManagedManagedcodecode

UnmanagedUnmanagedComponentComponent

Linguagens Intermédias e JIT’s

Page 6: Programação Visual

6 Programação Visual – Engenharia Informática - EST Setubal

Mar-03

Linguagens Intermédias e JIT’s1. O código é escrito em C#

2. O código é compilado resultando num ficheiro .exe que contém

1. O programa em código MSIL (MS Intermediate Language)

2. Uma parte read-only com um cabeçalho PE standard (Win32-portable executable)

3. Uma função _CorExeMain do runtime .NET

3. Quando a aplicação é executada o SO carrega o PE e as Dinamyc Linked Lybraries (dll) tal como faz com qualquer PE válido. ... Incluindo o dll que exporta a função _CorExeMain (mscoree.dll)

Page 7: Programação Visual

7 Programação Visual – Engenharia Informática - EST Setubal

Mar-03

Linguagens Intermédias e JIT’s4. O carregador do SO salta para o ponto de entrada dentro do PE

(exactamente como executa qualquer outro PE)

Mas como o o SO não pode executar código MSIL (óbvio!), o ponto de entrada é uma pequena instrução que executa o salto para a função _CorExeMain do mscoree.dll

5. A função _CorExeMain inicia a execução do código MSIL que foi colocado na PE.

Como o código MSIL não pode ser executado directamente, o CLR compila o MSIL, utilizando um compilador just-in-time, para instruções nativas da máquina (CPU)

Note-se que a compilação do JIT ocorre à medida que os métodos do programa não evocados.

O código executável é mantido em cache e recompilado apenas se existirem alterações

Page 8: Programação Visual

8 Programação Visual – Engenharia Informática - EST Setubal

Mar-03

Linguagens Intermédias e JIT’sPodem utilizar-se três tipos de JIT’s

1. PreJIT

1. Geração de código na instalação (vantagens / desvantagens)

2. JIT (por defeito ... Atenção!)

1. Tal como descrito nos slides anteriores

3. EconoJIT

1. Concebido para sistemas com recursos limitados

2. Code pitching – descarta código gerado quando faltam recursos ao sistema (memmória)

3. Vantagens/desvantagens

Page 9: Programação Visual

Mar-03 Programação Visual – Engenharia Informática - EST Setubal

9

.NET versus Java/J2EE

.NET Class Library

WebForms / WinForms CLR Always uses Native

Code Compilation ASP.NET ADO.NET SOAP / XML

Java Core API Java Beans Java Swing Java Virtual Machine Native Code Compilation

is optional JSP JDBC EJB / JMS / SOAP / XML