introdução à plataforma microsoft.net monique monteiro

26
Introdução à Introdução à Plataforma Plataforma Microsoft .NET Microsoft .NET Monique Monteiro Monique Monteiro

Upload: internet

Post on 19-Apr-2015

110 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Introdução à Plataforma Microsoft .NET Microsoft .NET

Monique MonteiroMonique Monteiro

Page 2: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

AgendaAgenda• Plataforma Microsoft .NETPlataforma Microsoft .NET• .NET X J2EE.NET X J2EE• Common Language InfrastructureCommon Language Infrastructure

– Modelo de CompilaçãoModelo de Compilação– Common Type SystemCommon Type System– CLI – Principais ImplementaçõesCLI – Principais Implementações

• CLR X JVMCLR X JVM• .NET – Arquitetura.NET – Arquitetura• ASP .NETASP .NET• Web ServicesWeb Services• C# X JavaC# X Java• ReferênciasReferências

Page 3: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Plataforma Microsoft .NETPlataforma Microsoft .NET• Plataforma de desenvolvimento multi-Plataforma de desenvolvimento multi-

linguagem e multi-paradigmalinguagem e multi-paradigma• Ambiente de execução gerenciado:Ambiente de execução gerenciado:

– Máquina virtualMáquina virtual– Compilação Compilação just-in-timejust-in-time– Gerenciamento automático de memóriaGerenciamento automático de memória

• Integração de serviços para:Integração de serviços para:– Desenvolvimento Web (ASP .NET)Desenvolvimento Web (ASP .NET)– Service Oriented Architecture Service Oriented Architecture (Web (Web

Services)Services)– Computação Distribuída (.NET Remoting)Computação Distribuída (.NET Remoting)

• Principais linguagens: C#, VB .NET, J#Principais linguagens: C#, VB .NET, J#

Page 4: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

.NET X J2EE.NET X J2EE

J2EEJ2EE .NET.NET

WebWeb Struts, JSF, Struts, JSF, LaszloLaszlo

ASP .NETASP .NET

Banco de Banco de DadosDados

JDBCJDBC ADO .NETADO .NET

Web Web ServicesServices

Suporte por Suporte por meio de APIsmeio de APIs

Suporte Suporte embutido e embutido e simplificadosimplificado

DistribuiçãoDistribuição RMI, EJBRMI, EJB .NET Remoting.NET Remoting

• ..NET:NET:““Várias linguagens em um único ambiente”Várias linguagens em um único ambiente”

• J2EEJ2EE– ““Uma única linguagem em vários ambientes”Uma única linguagem em vários ambientes”

Page 5: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Common Language InfrastructureCommon Language Infrastructure

• Infra-estrutura de execução Infra-estrutura de execução padronizada pela ECMApadronizada pela ECMA

• Especificação define:Especificação define:– Common Type SystemCommon Type System– MetadadosMetadados– Common Language SpecificationCommon Language Specification– Virtual Execution SystemVirtual Execution System

Page 6: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Modelo de CompilaçãoModelo de Compilação

Código Fonte

Linguagem X

Manifesto

Common Intermediate Language

Assembly

Código Nativo

1

2

(Compilação Just-In-Time)

2

(Interpretação)

OU

Page 7: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Common Type SystemCommon Type SystemTipoTipo

Por Valor(“Value Types”)

Por Referência(“Reference Types”)

Por Referência(“Reference Types”)

Pré-definidosPré-definidos Definidos pelo Usuário

Definidos pelo Usuário

Enumerações (“Enums”)

Enumerações (“Enums”)InteirosInteiros

Ponto FlutuantePonto Flutuante

Auto-descritosAuto-descritos

Equivalentes por Nome

Equivalentes por Nome

DelegatesDelegates

“Boxed Value Types”

“Boxed Value Types”

“Boxed Enums”“Boxed Enums”

Equivalentes Estruturais

Equivalentes Estruturais

ArraysArrays

EstruturasEstruturas

Interface Ponteiro Pré-definidos

String

Object

Page 8: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

EstruturasEstruturas

• Exemplo de Exemplo de value typevalue type (alocadas na (alocadas na pilha)pilha)

• Exemplo (C#):Exemplo (C#):

Page 9: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

EnumeraçõesEnumerações

• Exemplo de Exemplo de value typevalue type (alocadas na (alocadas na pilha)pilha)

• Exemplo (C#):Exemplo (C#):

Page 10: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

DelegatesDelegates

• Versão OO e segura de ponteiros para Versão OO e segura de ponteiros para funçãofunção

• Utilizados no modelo de eventosUtilizados no modelo de eventos• Exemplo:Exemplo:public delegate int Function(int x, int y);...Function function1 = new Function(Sum);Function function2 = new Function(<some object>.Subtract);int result1 = function1(10, 20);int result2 = function2(30, 40);...static int Sum(int x, int y) { return x + y; }...int Subtract(int a, int b) { return x – y; }

public delegate int Function(int x, int y);...Function function1 = new Function(Sum);Function function2 = new Function(<some object>.Subtract);int result1 = function1(10, 20);int result2 = function2(30, 40);...static int Sum(int x, int y) { return x + y; }...int Subtract(int a, int b) { return x – y; }

Page 11: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

CLI – Principais ImplementaçõesCLI – Principais Implementações

• Common Language Runtime Common Language Runtime (Microsoft .NET)(Microsoft .NET)

• Shared Source CLI (Rotor)Shared Source CLI (Rotor)– ““Subconjunto” da CLR para fins de Subconjunto” da CLR para fins de

pesquisapesquisa

• MonoMono– Plataformas: Linux, Solaris, Mac OS X, Plataformas: Linux, Solaris, Mac OS X,

Windows, UnixWindows, Unix

Page 12: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

CLR X JVMCLR X JVM

CLRCLR JVMJVM

Suporte a Suporte a GenericsGenerics

NativoNativo Sintático Sintático

Boxing/UnboxingBoxing/Unboxing NativoNativo SintáticoSintático

EnumeraçõesEnumerações NativoNativo SintáticoSintático

Sistema de TiposSistema de Tipos Multi-Multi-paradigmaparadigma

Específico Específico para Javapara Java

Page 13: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

.NET – Arquitetura .NET – Arquitetura

Common Language Runtime

Biblioteca de Classes Básicas

ADO .NET – Dados e XML

Web Services Web Forms

Windows FormsASP .NET

Page 14: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

ASP .NETASP .NET

• Tecnologia para criação de aplicações Tecnologia para criação de aplicações Web baseada no Framework .NETWeb baseada no Framework .NET

• Reformulação total da tecnologia ASPReformulação total da tecnologia ASP• Compatível com qualquer Compatível com qualquer

linguagem .NETlinguagem .NET• Gerenciamento automático de Gerenciamento automático de

sessões em sessões em Web FarmsWeb Farms

Page 15: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

ASP .NETASP .NET

• Web FormsWeb Forms– Páginas ASP .NET compiladas Páginas ASP .NET compiladas

dinamicamentedinamicamente– Correspondente ao Correspondente ao Java Server PagesJava Server Pages do do

J2EEJ2EE– Componentes semelhantes aos encontrados Componentes semelhantes aos encontrados

em ferramentas RAD para desktopem ferramentas RAD para desktop– Modelo declarativoModelo declarativo– Suporte automático a validaçãoSuporte automático a validação– Portáveis entre diferentes navegadores Portáveis entre diferentes navegadores

(incluindo dispositivos móveis)(incluindo dispositivos móveis)

Page 16: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Web Forms – FerramentasWeb Forms – Ferramentas

• Visual Studio .NETVisual Studio .NET• Web Matrix (gratuita)Web Matrix (gratuita)• Macromedia Dreamweaver MXMacromedia Dreamweaver MX• Borland C# BuilderBorland C# Builder• Notepad...Notepad...

Page 17: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

ASP .NETASP .NET

• Web ServicesWeb Services““Serviços disponibilizados via Serviços disponibilizados via WWW WWW com base com base

em padrões e especificações estabelecidos em padrões e especificações estabelecidos (SOAP, WSDL, UDDI, etc.), de forma (SOAP, WSDL, UDDI, etc.), de forma

independente de linguagem de independente de linguagem de programação.”programação.”

• Foco em facilidade de desenvolvimentoFoco em facilidade de desenvolvimento– Identificados por uma única palavra-chaveIdentificados por uma única palavra-chave– Mecanismos Mecanismos built-inbuilt-in de conversão entre de conversão entre

SOAP/XML e o ambiente orientado a objetosSOAP/XML e o ambiente orientado a objetos

Page 18: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Web ServicesWeb Services

• WebMethods FrameworkWebMethods Framework– Fornecido por ASP .NETFornecido por ASP .NET– ExtensívelExtensível– Mapeia mensagens SOAP em Mapeia mensagens SOAP em

chamadas/retorno de métodoschamadas/retorno de métodos

Page 19: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

• Arquivo .asmxArquivo .asmx

• Arquivo Fonte (pré-compilado)Arquivo Fonte (pré-compilado)

Web Service – Exemplo Web Service – Exemplo

using System.Web.Services;

public class MathService { [WebMethod] public double Add(double x, double y) { return x + y;}

[WebMethod] public double Sub(double x, double y) { return x – y;}

public double Mul(double x, double y) { return x * y;}

public double Div(double x, double y) { return x / y;}

}

using System.Web.Services;

public class MathService { [WebMethod] public double Add(double x, double y) { return x + y;}

[WebMethod] public double Sub(double x, double y) { return x – y;}

public double Mul(double x, double y) { return x * y;}

public double Div(double x, double y) { return x / y;}

}

<%@ WebService class="MathService"%><%@ WebService class="MathService"%>

Page 20: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Web Services – Modelo de ExecuçãoWeb Services – Modelo de Execução

1.1. Requisição HTTP/SOAP é recebida e encaminhada Requisição HTTP/SOAP é recebida e encaminhada ao arquivo .asmx correspondenteao arquivo .asmx correspondente

2.2. Classe e método são localizadosClasse e método são localizados3.3. Processamento é realizado e retornado via Processamento é realizado e retornado via

HTTP/SOAPHTTP/SOAP

POST /math/math.asmx HTTP/1.1…SOAPAction: "urn:math:subtract"

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Subtract xmlns="http://example.org/math"> <x>33</x> <y>66</y> </Subtract> </soap:Body></soap:Envelope>

Page 21: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Web Services – Mapeamento XML – OO Web Services – Mapeamento XML – OO

• Deserialização SOAP Deserialização SOAP → → Objetos via Objetos via ReflexãoReflexão

• Limitada ao padrão de esquemas Limitada ao padrão de esquemas (WSDL, (WSDL, XML SchemasXML Schemas))

Classe

ObjetosObjetos

Objetos

Esquema XML

ObjetosObjetos

Documento XML

Page 22: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

C# X Java – Similaridades C# X Java – Similaridades • Sintaxes praticamente idênticasSintaxes praticamente idênticas• Todas as classes descendem de ObjectTodas as classes descendem de Object• Não há funções ou constantes globaisNão há funções ou constantes globais

– Tudo pertence a uma classeTudo pertence a uma classe

• Falta de suporte a herança múltiplaFalta de suporte a herança múltipla– Suporte a interfacesSuporte a interfaces

• Uso de exceçõesUso de exceções• Conceito de espaço de nomes (namespaces Conceito de espaço de nomes (namespaces

X packages)X packages)• Comentário utilizado para documentaçãoComentário utilizado para documentação• Classes e métodos com nomes parecidosClasses e métodos com nomes parecidos

– Equals(), Finalize(), ToString(), etc.Equals(), Finalize(), ToString(), etc.

Page 23: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

C# X Java – Diferenças C# X Java – Diferenças • Sentença Sentença foreach foreach para iteração por arrays e para iteração por arrays e

classes que implementam classes que implementam IEnumerableIEnumerable– Introduzido no J2SE 5.0Introduzido no J2SE 5.0

• Suporte a propriedadesSuporte a propriedades• Enumerações, estruturasEnumerações, estruturas• Métodos não virtuais por padrãoMétodos não virtuais por padrão

– Declarados como Declarados como virtualvirtual e sobrescritos com e sobrescritos com overrideoverride

• Campos/métodos e propriedades Campos/métodos e propriedades privateprivate por por padrãopadrão

• Sobrecarga de operador (inclusive coerção)Sobrecarga de operador (inclusive coerção)• Documentação em XMLDocumentação em XML• Uso de ponteiros (código marcado como Uso de ponteiros (código marcado como unsafeunsafe))

Page 24: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

Propriedades – ExemploPropriedades – Exemplopublic class Pessoa{ string nome;

public string Nome{ get

{ return nome; } set { nome = value; } }}

public class Pessoa{ string nome;

public string Nome{ get

{ return nome; } set { nome = value; } }}

Page 25: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Microsoft .NET

ReferênciasReferências

• .NET Framework Developer Cente.NET Framework Developer Cente– http://msdn.microsoft.com/netframework/http://msdn.microsoft.com/netframework/

• ASP .NET:ASP .NET:– http://msdn.microsoft.com/ASP.NET/http://msdn.microsoft.com/ASP.NET/– http://www.asp.net/whidbey/http://www.asp.net/whidbey/

• Web Services:Web Services:– http://msdn.microsoft.com/webservices/http://msdn.microsoft.com/webservices/

• Mobile Developer Center:Mobile Developer Center:– http://msdn.microsoft.com/mobility/http://msdn.microsoft.com/mobility/

• C# para Programadores de JavaC# para Programadores de Java. Brian . Brian Bagnall, Philip Chen, Stephen Golsberg. Alta Bagnall, Philip Chen, Stephen Golsberg. Alta Books.Books.

Page 26: Introdução à Plataforma Microsoft.NET Monique Monteiro

Introdução à Plataforma Introdução à Plataforma Microsoft .NET Microsoft .NET

Monique MonteiroMonique Monteiro