1.net framework aluno luiz gustavo martins matéria sistemas de objetos distribuídos

38
1 .Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

Upload: iago-covalski-guimaraes

Post on 07-Apr-2016

220 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

1

.Net Framework

AlunoLuiz GUStavo Martins

MatériaSistemas de Objetos Distribuídos

Page 2: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

2

Roteiro

• Origem• O que é .NET , Características e Como funciona• CLR• Web Forms• Web Services• Servidores .NET• Pros e Contras• Referências

Page 3: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

3

Origem do .NET

20002000InternetInternet33rdrd Gen Gen

.NET.NET

19961996InternetInternet11stst Gen Gen

IE/IISIE/IIS

19971997InternetInternet22ndnd Gen Gen

WinDNAWinDNA19921992Client/ServerClient/Server

Win32Win32

Page 4: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

4

O que é .NET?

• Fábula dos 3 cegos• É só uma nova linguagem?• É um Visual Studio novo?• É só um ambiente para troca de mensagens

e dados baseados em SOAP e XML?• É tudo isso e muito mais!!!

Page 5: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

5

O que É .NET Framework?

• Plataforma para desenvolvimento e execução de software

• Criada visando o desenvolvimento de software para a internet e aplicações distribuídas

Page 6: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

6

Características da Plataforma .Net

• Independência de Sistema Operacional– A plataforma compila o programa para código

nativo antes da primeira execução

• Integração entre Linguagens– Todas as linguagens .NET utilizam a mesma

API de desenvolvimento

Page 7: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

7

Características da Plataforma .NET

• Facilidade de Distribuição– Ao ser compilado os executáveis anotam as

versões das DLL’s que foram utilizadas– Os executáveis rodam utilizando sempre as

DLL’s com que foram compilados– Não é necessário mais registrar o programa. O

“assemblie” contém toda informação necessária para o funcionamento do programa

Page 8: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

8

Características da Plataforma .NET

• Confiabilidade– Tipagem forte (“type safety”) , todas as

classes .NET derivam de uma mesma classe mãe, Object

– Coleta de lixo em todas linguagens .NET

Page 9: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

9

Como Funciona?VBVBSource Source

codecodeCompilerCompiler

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

Page 10: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

10

CLRC

omm

on L

angu

age

Run

time

Com

mon

Lan

guag

e R

untim

e

FrameworksFrameworks

Class loader and layoutClass loader and layout

IL to

IL

to

nativ

e co

de

nativ

e co

de

com

pile

rsco

mpi

lers

GC, stack walk, code managerGC, stack walk, code manager

Secu

rity

Secu

rity

Exec

utio

nEx

ecut

ion

Supp

ort

Supp

ort

Base ClassesBase Classes

Page 11: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

11

CLR

• CLR – Common Language Runtime– Foi escrita do 0– Controla a execução de código no .NET Framework– Compila código IL para código nativo da máquina

antes da primeira execução do programa– Carrega classes necessárias para o programa sendo

executado– Reforça as checagens de segurança– Não é uma Máquina Virtual como em Java

Page 12: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

12

Como Funciona?

• EXEs e DLLs tem um formato específico de arquivo (PE – Portable Executable)

• Windows consegue executar e carregar EXEs e DLLs porque entende esse formato

• Os programas .NET tem alguns dados a mais que avisam o sistema operacional que a CLR deve ser ativada e a partir disso cuida do carregamento e execução desse arquivo e de todos componentes requisitados por ele

Page 13: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

13

Como Funciona?

• Gerando o Assemblie

Source CodeSource Code

C++, C#, VB ou C++, C#, VB ou qualquer qualquer linguagem .NETlinguagem .NET

csc.exe ou vbc.execsc.exe ou vbc.exeCompiladorCompilador

AssemblieAssemblie

DLL ou EXEDLL ou EXE

Page 14: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

14

Executavel Portátil

• Exemplo

MetadataMetadata

IL IL Managed Managed

codecode

ResourcesResources

MyExample.DLLMyExample.DLL

Page 15: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

15

Meta-Dados

• “Dados sobre os dados”• Inclui informações sobre tipos que define

ou que utiliza• Informação sobre versão• Referência a assemblies externos com dll

que são usadas e suas espectivas versões • Descrições sobre módulos, classes, campos,

propriedades, eventos, etc

Page 16: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

16

Metadata

• A CLR usa para verificação, reforço de segurança, layout da memória e para a execução

• O Carregador de Classes utiliza para achar e carregar classes .NET ja que os meta-dados contém informação de onde essas classes se encontram, mesmo que em outro assemblie na rede

• JIT usa metadata para compilar o programa antes da primeira execução

Page 17: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

17

Metadata

• Classes reflexivas podem ler o metadata em tempo de execução

• Sem metadata a plataforma não poderia prover verificação de tipos, segurança, adminstração de memória, depuração, etc

• Resumindo não existiria .NET sem meta-dados

Page 18: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

18

I.L. – Intermediate Language

• Linguagem totalmente orientada a objetos• Projetada para ser compilada e não

interpretada• A IL é para a plataforma .NET o que o

bytecode é para Java

Page 19: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

19

Operações entre as linguagens

• Um componente é criado usando a linguagem A e é chamado MyNamespace.dll

• Em um componente separado escrito na linguagem B nós podemos importar o assemblie...– #using MyNamespace.dll

• E então podemos acessar a classe normalmente– using namespace MyNamespace;– MyClass *cls = new MyClass();– result = cls->MyMethod();

Page 20: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

20

Características Entre As Linguagens

• Suporte entre linguagens e componentes– Herança– Tratamento Exceções – Depuração

• Bom para estender componentes de terceiros usando a linguagem de sua escolha

Page 21: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

21

Exemplo em Managed C++

#using <mscorlib.dll>using namespace System

void main(){ Console::WriteLine(L”visite www.gustheman.com

!!”);}

Page 22: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

22

Exemplo em VB.NET

Import System

Public Module modmain

Sub Main()Console.WriteLine(“visite www.gustheman.com !!”)

End Sub

End Module

Page 23: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

23

Exemplos em C#

using System;

class MainApp{

public static void Main(){Console.WriteLine(“visite www.gustheman.com !!”);}

}

Page 24: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

24

Exemplo em IL

.class private auto ansi MainAppExtends [mscorlib]System.Object{ .method public hidesyg static void Main() cil managed { .entrypoint

.maxstack 8

Page 25: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

25

Exemplo de IL

ldstr “visite www.gustheman.com!!” call void [mscorlib]System.Console::WriteLine( classe

System.String ) ret } // fim do metodo MainApp::Main .method public hydebysig specialname rtspecialname

instance void .ctor() cil managed { .maxstack 8

Page 26: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

26

Exemplo de IL

ldarg.0 call instace void

[mscorlib]System.Object::.ctor()ret

} // fim do metodo MainApp::.ctor}// fim da classe MainApp

Page 27: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

27

Web Forms

• Nova maneira de se desenvolver páginas HTML• A página é compilada na primeira execução e a

versão compilada é usada nas demais chamadas• Desenvolvimento fácil, parecido com o

desenvolvimento antigo do VB ou Visual C++• A Página gerada só tem HTML padrão, podendo

ser vista em qualquer navegador (browser) sem problemas

Page 28: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

28

Web Forms

• Separação clara entre a lógica da página (código) e o design (HTML)

• A parte lógica pode ser escrita em qualquer linguagem .NET

• Código ASP antigo ainda é suportado• Melhor controle de sessão, permitindo

maior escalabilidade

Page 29: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

29

Web Services

• Software como um Serviço• Possibilita o uso de componentes através do

protocolo padrão de HTTP• Software podem se comunicar usando XML e

Internet• Micro$oft ja disponibiliza o seviço de

autenticação Passport• O projeto HailStorm é uma evolução do Passport,

com muito mais serviços

Page 30: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

30

Web Services

ClienteCliente WebWebServiceService

WebWebServiceService WebWeb

ServiceService

XMLXML

XMLXML

HTMLHTML

XMLXML

Page 31: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

31

Web Services

• UDDI – Universal Description, Discovery and Integration – Páginas Amarelas de Web Services

• SOAP + XML• WSDL – Web Services Description Language –

Descrição da interface oferecida pelo web service– Feita em XML– Parecido com IDL (COM)

Page 32: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

32

Smart Devices (aparelhos espertos)

• O que torna um aparelho esperto é o fato de ele poder acessar Web Services

• Possibilita o usuário interagir com seus dados não importando o lugar, o tipo nem o número de aparelhos que se usa

• Dentre os aparelhos espertos temos os PCs, laptops, telefones, palms e até mesmo o Xbox

Page 33: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

33

Servidores .NET

• Servidores que ajudam na distribuição e hospedagem de software e serviços .NET

• Na família de servidores oferecidos temos:– SQL server 2000, alta disponibilidade e suporte a XML

nativo– Application center, servidor que controla grupos de

servidores, tornando mais fácil a administração

Page 34: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

34

Servidores .NET

• Mais Servidores– Exchange – servidor de mails– Biz talk – fornece ferramentas necessárias para

integração de aplicativos heterogêneos.– Host Integration Server – Integra novos

sistemas com os dados e recursos de mainframe

Page 35: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

35

.Net Pros

• Tem suporte a múltiplas linguagens– C#, Managed C++, VB.NET, ASP.NET– Perl, Cobol, Pascal estão sendo portados por outras

empresas

• É amigável a padrões abertos (SOAP, HTML, XML)

• O código é compilado, não importando a linguagem ou o método de distribuição utilizados

Page 36: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

36

.Net contras

• É mais uma plataforma de desenvolvimento, o que significa reescrever código e aprender novos truques

• Atualmente só disponível para Windows

Page 37: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

37

Perguntas?

Page 38: 1.Net Framework Aluno Luiz GUStavo Martins Matéria Sistemas de Objetos Distribuídos

38

Referências

• Site oficial : www.microsoft.com/net• www.linhadecodigo.com.br• www.gotdotnet.com• www.oreilly.com• Livro .Net Framework Essentials

– Thuan Thai & Hoang Q. Lam – O´REILLY• MSDN• www.google.com