Programação Visual
Aula 1
Plataforma .Net
VB
C++
C#
JScript
…
ASP.NET: Web Services
e Web
and
Web
Forms
Forms
Windows
Forms
ADO.NET: Data
Dados
and
e XML
XML
Base Class Library (Framework)
Visual Studio.NET
Common Language Specification
Common Language Runtime
2
Mar-03
Programação Visual – Engenharia Informática - EST Setubal
.NET Framework Architecture
System.WinForms
System.Web
Web Services
Web Forms
ASP.NET Application Services
Controls
Drawing
Windows Application Services
System Base Framework
ADO.NET
XML
SQL
Threading
IO
Net
Security
ServiceProcess
Common Language Runtime
Type System
Metadata
Execution
3
Mar-03
Programação Visual – Engenharia Informática - EST Setubal
Common Type System
l
Value types



l
int i; float f;
enum State { Off, On }
struct Point { int x, y; }
Reference types




4
Primitives
Enums
Structs
Classes
Interfaces
Arrays
Delegates
class Foo: Bar, IFoo { … }
interface IFoo : IBar { … }
string[] s = new string[10];
delegate void Empty();
Mar-03
Programação Visual – Engenharia Informática - EST Setubal
Linguagens Intermédias e JIT’s
Source
code
Managed
code
VB
C#
C++
Compiler
Compiler
Compiler
Assembly
IL Code
Assembly
IL Code
Assembly
IL Code
Unmanaged
Component
Common Language Runtime
JIT Compiler
Native Code
Operating System Services
5
Mar-03
Programação Visual – Engenharia Informática - EST Setubal
Linguagens Intermédias e JIT’s
1. 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)
6
Mar-03
Programação Visual – Engenharia Informática - EST Setubal
Linguagens Intermédias e JIT’s
4. 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
7
Mar-03
Programação Visual – Engenharia Informática - EST Setubal
Linguagens Intermédias e JIT’s
Podem utilizar-se três tipos de JIT’s
1.
PreJIT
1.
2.
JIT (por defeito ... Atenção!)
1.
3.
8
Geração de código na instalação (vantagens / desvantagens)
Tal como descrito nos slides anteriores
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
.NET versus Java/J2EE

.NET Class Library








WebForms / WinForms
CLR
Always uses Native
Code Compilation
ASP.NET
ADO.NET
SOAP / XML
9






Java Core API
Java Beans
Java Swing
Java Virtual Machine
Native Code
Compilation is optional
JSP
JDBC
EJB / JMS / SOAP /
XML
Mar-03
Programação Visual – Engenharia Informática - EST Setubal
Download

Net