Você está na página 1de 26

Introduo Plataforma

Microsoft .NET
Monique Monteiro

Agenda

Plataforma Microsoft .NET


.NET X J2EE
Common Language Infrastructure
Modelo de Compilao
Common Type System
CLI Principais Implementaes

CLR X JVM
.NET Arquitetura
ASP .NET
Web Services
C# X Java
Referncias

Introduo Plataforma Microsoft .NET

Plataforma Microsoft .NET


Plataforma de desenvolvimento multilinguagem e multi-paradigma
Ambiente de execuo gerenciado:
Mquina virtual
Compilao just-in-time
Gerenciamento automtico de memria

Integrao de servios para:

Desenvolvimento Web (ASP .NET)


Service Oriented Architecture (Web Services)
Computao Distribuda (.NET Remoting)

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


Introduo Plataforma Microsoft .NET

.NET X J2EE
.NET:
Vrias linguagens em um nico ambiente

J2EE
Uma nica linguagem em vrios ambientes

Web
Banco de Dados
Web Services
Distribuio
Introduo Plataforma Microsoft .NET

J2EE
Struts, JSF, Laszlo

.NET
ASP .NET

JDBC
Suporte por meio
de APIs
RMI, EJB

ADO .NET
Suporte embutido
e simplificado
.NET Remoting

Common Language Infrastructure


Infra-estrutura de execuo padronizada pela
ECMA
Especificao define:

Common Type System


Metadados
Common Language Specification
Virtual Execution System

Introduo Plataforma Microsoft .NET

Modelo de Compilao
Manifesto

1
Cdigo Fonte

Assembly

Common Intermediate Language

Linguagem X
2

(Compilao Just-In-Time)
OU

2
(Interpretao)

Introduo Plataforma Microsoft .NET

Cdigo Nativo

Common Type System


Tipo
Tipo

Por Valor
(Value Types)

Por
Por Referncia
Referncia
(Reference
(Reference Types)
Types)

Definidos
Definidos pelo
pelo
Usurio
Usurio

Pr-definidos
Pr-definidos

Auto-descritos
Auto-descritos

Inteiros
Inteiros

Enumeraes
Enumeraes
(Enums)
(Enums)

Ponto
Ponto Flutuante
Flutuante

Estruturas
Estruturas

Interface

Ponteiro

Equivalentes
Equivalentes
por
por Nome
Nome

String

Delegates
Delegates

Object

Boxed
Boxed
Value
Value Types
Types

Boxed
Boxed Enums
Enums

Equivalentes
Equivalentes
Estruturais
Estruturais

Arrays
Arrays

Introduo Plataforma Microsoft .NET

Pr-definidos

Estruturas
Exemplo de value type (alocadas na pilha)
Exemplo (C#):

Introduo Plataforma Microsoft .NET

Enumeraes
Exemplo de value type (alocadas na pilha)
Exemplo (C#):

Introduo Plataforma Microsoft .NET

Delegates

Verso OO e segura de ponteiros para funo


Utilizados no modelo de eventos
Exemplo:

public delegate int Function(int x, int


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

Introduo Plataforma Microsoft .NET

y);
object>.Subtract);

+ y; }
y; }

CLI Principais Implementaes


Common Language Runtime (Microsoft .NET)
Shared Source CLI (Rotor)
Subconjunto da CLR para fins de pesquisa

Mono
Plataformas: Linux, Solaris, Mac OS X, Windows,
Unix

Introduo Plataforma Microsoft .NET

CLR X JVM
CLR

JVM

Suporte a Generics

Nativo

Sinttico

Boxing/Unboxing

Nativo

Sinttico

Enumeraes

Nativo

Sinttico

Multi-paradigma

Especfico
para Java

Sistema de Tipos

Introduo Plataforma Microsoft .NET

.NET Arquitetura
Web Services

Web Forms

ASP .NET

Windows Forms

ADO .NET Dados e XML


Biblioteca de Classes Bsicas
Common Language Runtime

Introduo Plataforma Microsoft .NET

ASP .NET
Tecnologia para criao de aplicaes Web
baseada no Framework .NET
Reformulao total da tecnologia ASP
Compatvel com qualquer linguagem .NET
Gerenciamento automtico de sesses em
Web Farms

Introduo Plataforma Microsoft .NET

ASP .NET
Web Forms
Pginas ASP .NET compiladas dinamicamente
Correspondente ao Java Server Pages do J2EE
Componentes semelhantes aos encontrados em
ferramentas RAD para desktop
Modelo declarativo
Suporte automtico a validao
Portveis entre diferentes navegadores (incluindo
dispositivos mveis)

Introduo Plataforma Microsoft .NET

Web Forms Ferramentas

Visual Studio .NET


Web Matrix (gratuita)
Macromedia Dreamweaver MX
Borland C# Builder
Notepad...

Introduo Plataforma Microsoft .NET

ASP .NET
Web Services
Servios disponibilizados via WWW com base em
padres e especificaes estabelecidos (SOAP,
WSDL, UDDI, etc.), de forma independente de
linguagem de programao.

Foco em facilidade de desenvolvimento


Identificados por uma nica palavra-chave
Mecanismos built-in de converso entre SOAP/XML
e o ambiente orientado a objetos

Introduo Plataforma Microsoft .NET

Web Services
WebMethods Framework
Fornecido por ASP .NET
Extensvel
Mapeia mensagens SOAP em chamadas/retorno de
mtodos

Introduo Plataforma Microsoft .NET

Web Service Exemplo


Arquivo .asmx
<%@ WebService class="MathService"%>

Arquivo Fonte (pr-compilado)


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;}
}
Introduo Plataforma Microsoft .NET

Web Services Modelo de Execuo


1.
2.
3.

Requisio HTTP/SOAP recebida e encaminhada ao


arquivo .asmx correspondente
Classe e mtodo so localizados
Processamento realizado e retornado via HTTP/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>

Introduo Plataforma Microsoft .NET

Web Services Mapeamento XML OO


Deserializao SOAP Objetos via Reflexo
Classe

Objetos
Objetos
Objetos

Esquema XML

Objetos
Objetos
Documento XML

Limitada ao padro de esquemas (WSDL, XML


Schemas)
Introduo Plataforma Microsoft .NET

C# X Java Similaridades
Sintaxes praticamente idnticas
Todas as classes descendem de Object
No h funes ou constantes globais
Tudo pertence a uma classe

Falta de suporte a herana mltipla


Suporte a interfaces

Uso de excees
Conceito de espao de nomes (namespaces X
packages)
Comentrio utilizado para documentao
Classes e mtodos com nomes parecidos
Equals(), Finalize(), ToString(), etc.
Introduo Plataforma Microsoft .NET

C# X Java Diferenas
Sentena foreach para iterao por arrays e classes
que implementam IEnumerable
Introduzido no J2SE 5.0

Suporte a propriedades
Enumeraes, estruturas
Mtodos no virtuais por padro
Declarados como virtual e sobrescritos com override

Campos/mtodos e propriedades private por padro


Sobrecarga de operador (inclusive coero)
Documentao em XML
Uso de ponteiros (cdigo marcado como unsafe)

Introduo Plataforma Microsoft .NET

Propriedades Exemplo
public class Pessoa
{
string nome;
public string Nome{
get
{
return nome;
}
set
{
nome = value;
}
}
}

Introduo Plataforma Microsoft .NET

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

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

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

Mobile Developer Center:


http://msdn.microsoft.com/mobility/

C# para Programadores de Java. Brian Bagnall,


Philip Chen, Stephen Golsberg. Alta Books.
Introduo Plataforma Microsoft .NET

Introduo Plataforma
Microsoft .NET
Monique Monteiro

Você também pode gostar