Upload
kalb
View
22
Download
0
Embed Size (px)
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
Citation preview
Programação VisualAula 1
Plataforma .Net
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
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
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();
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
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)
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
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
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