Introdução à Plataforma
Microsoft .NET
Monique Monteiro
Agenda
• Plataforma Microsoft .NET
• .NET X J2EE
• Common Language Infrastructure
– Modelo de Compilação
– Common Type System
– CLI – Principais Implementações
•
•
•
•
•
•
CLR X JVM
.NET – Arquitetura
ASP .NET
Web Services
C# X Java
Referências
Introdução à Plataforma Microsoft .NET
Plataforma Microsoft .NET
• Plataforma de desenvolvimento multilinguagem e multi-paradigma
• Ambiente de execução gerenciado:
– Máquina virtual
– Compilação just-in-time
– Gerenciamento automático de memória
• Integração de serviços para:
– Desenvolvimento Web (ASP .NET)
– Service Oriented Architecture (Web Services)
– Computação Distribuída (.NET Remoting)
• Principais linguagens: C#, VB .NET, J#
Introdução à Plataforma Microsoft .NET
.NET X J2EE
• .NET:
“Várias linguagens em um único ambiente”
• J2EE
– “Uma única linguagem em vários ambientes”
Web
J2EE
Struts, JSF, Laszlo
Banco de Dados JDBC
Web Services
Suporte por meio
de APIs
Distribuição
RMI, EJB
Introdução à Plataforma Microsoft .NET
.NET
ASP .NET
ADO .NET
Suporte embutido
e simplificado
.NET Remoting
Common Language Infrastructure
• Infra-estrutura de execução padronizada pela
ECMA
• Especificação define:
–
–
–
–
Common Type System
Metadados
Common Language Specification
Virtual Execution System
Introdução à Plataforma Microsoft .NET
Modelo de Compilação
Manifesto
1
Código Fonte
Assembly
Common Intermediate Language
Linguagem X
2
(Compilação Just-In-Time)
OU
2
(Interpretação)
Introdução à Plataforma Microsoft .NET
Código Nativo
Common Type System
Tipo
Por Valor
(“Value Types”)
Por Referência
(“Reference Types”)
Definidos pelo
Usuário
Pré-definidos
Auto-descritos
Inteiros
Enumerações
(“Enums”)
Ponto Flutuante
Estruturas
Interface
Ponteiro
Equivalentes
por Nome
String
Delegates
Object
“Boxed
Value Types”
“Boxed Enums”
Equivalentes
Estruturais
Arrays
Introdução à Plataforma Microsoft .NET
Pré-definidos
Estruturas
• Exemplo de value type (alocadas na pilha)
• Exemplo (C#):
Introdução à Plataforma Microsoft .NET
Enumerações
• Exemplo de value type (alocadas na pilha)
• Exemplo (C#):
Introdução à Plataforma Microsoft .NET
Delegates
• Versão OO e segura de ponteiros para função
• 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 –
Introdução à Plataforma Microsoft .NET
y);
object>.Subtract);
+ y; }
y; }
CLI – Principais Implementações
• 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
Introdução à Plataforma Microsoft .NET
CLR X JVM
CLR
JVM
Suporte a Generics
Nativo
Sintático
Boxing/Unboxing
Nativo
Sintático
Enumerações
Nativo
Sintático
Multi-paradigma
Específico
para Java
Sistema de Tipos
Introdução à Plataforma Microsoft .NET
.NET – Arquitetura
Web Services
Web Forms
ASP .NET
Windows Forms
ADO .NET – Dados e XML
Biblioteca de Classes Básicas
Common Language Runtime
Introdução à Plataforma Microsoft .NET
ASP .NET
• Tecnologia para criação de aplicações Web
baseada no Framework .NET
• Reformulação total da tecnologia ASP
• Compatível com qualquer linguagem .NET
• Gerenciamento automático de sessões em
Web Farms
Introdução à Plataforma Microsoft .NET
ASP .NET
• Web Forms
– Páginas ASP .NET compiladas dinamicamente
– Correspondente ao Java Server Pages do J2EE
– Componentes semelhantes aos encontrados em
ferramentas RAD para desktop
– Modelo declarativo
– Suporte automático a validação
– Portáveis entre diferentes navegadores (incluindo
dispositivos móveis)
Introdução à Plataforma Microsoft .NET
Web Forms – Ferramentas
•
•
•
•
•
Visual Studio .NET
Web Matrix (gratuita)
Macromedia Dreamweaver MX
Borland C# Builder
Notepad...
Introdução à Plataforma Microsoft .NET
ASP .NET
• Web Services
“Serviços disponibilizados via WWW com base em
padrões e especificações estabelecidos (SOAP,
WSDL, UDDI, etc.), de forma independente de
linguagem de programação.”
• Foco em facilidade de desenvolvimento
– Identificados por uma única palavra-chave
– Mecanismos built-in de conversão entre SOAP/XML
e o ambiente orientado a objetos
Introdução à Plataforma Microsoft .NET
Web Services
• WebMethods Framework
– Fornecido por ASP .NET
– Extensível
– Mapeia mensagens SOAP em chamadas/retorno de
métodos
Introdução à 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;}
}
Introdução à Plataforma Microsoft .NET
Web Services – Modelo de Execução
1.
2.
3.
Requisição HTTP/SOAP é recebida e encaminhada ao arquivo
.asmx correspondente
Classe e método são 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>
Introdução à Plataforma Microsoft .NET
Web Services – Mapeamento XML – OO
• Deserialização SOAP → Objetos via Reflexão
Classe
Objetos
Objetos
Objetos
Esquema XML
Objetos
Objetos
Documento XML
• Limitada ao padrão de esquemas (WSDL, XML
Schemas)
Introdução à Plataforma Microsoft .NET
C# X Java – Similaridades
• Sintaxes praticamente idênticas
• Todas as classes descendem de Object
• Não há funções ou constantes globais
– Tudo pertence a uma classe
• Falta de suporte a herança múltipla
– Suporte a interfaces
• Uso de exceções
• Conceito de espaço de nomes (namespaces X
packages)
• Comentário utilizado para documentação
• Classes e métodos com nomes parecidos
– Equals(), Finalize(), ToString(), etc.
Introdução à Plataforma Microsoft .NET
C# X Java – Diferenças
• Sentença foreach para iteração por arrays e classes
que implementam IEnumerable
– Introduzido no J2SE 5.0
• Suporte a propriedades
• Enumerações, estruturas
• Métodos não virtuais por padrão
– Declarados como virtual e sobrescritos com override
•
•
•
•
Campos/métodos e propriedades private por padrão
Sobrecarga de operador (inclusive coerção)
Documentação em XML
Uso de ponteiros (código marcado como unsafe)
Introdução à Plataforma Microsoft .NET
Propriedades – Exemplo
public class Pessoa
{
string nome;
public string Nome{
get
{
return nome;
}
set
{
nome = value;
}
}
}
Introdução à Plataforma Microsoft .NET
Referências
• .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.
Introdução à Plataforma Microsoft .NET
Introdução à Plataforma
Microsoft .NET
Monique Monteiro
Download

Introdução à Plataforma .NET