You are on page 1of 26

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

J# Introdução à Plataforma Microsoft .Plataforma Microsoft .NET.NET) Service Oriented Architecture (Web Services) Computação Distribuída (.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 Remoting) • Principais linguagens: C#. VB .NET .

NET J2EE Struts.NET JDBC Suporte por meio de APIs RMI..NET: “Várias linguagens em um único ambiente” • J2EE – “Uma única linguagem em vários ambientes” Web Banco de Dados Web Services Distribuição Introdução à Plataforma Microsoft . JSF.NET ASP .NET Suporte embutido e simplificado .NET X J2EE • . EJB ADO . Laszlo .NET Remoting .

NET .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 .

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 Tipo Por Valor (“Value Types”) Por Por Referência Referência (“Reference (“Reference Types”) Types”) Definidos Definidos pelo pelo Usuário Usuário Pré-definidos Pré-definidos Auto-descritos Auto-descritos Inteiros Inteiros Enumerações Enumerações (“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 Introdução à Plataforma Microsoft .NET Pré-definidos .

Estruturas • Exemplo de value type (alocadas na pilha) • Exemplo (C#): Introdução à Plataforma Microsoft .NET .

NET .Enumerações • Exemplo de value type (alocadas na pilha) • Exemplo (C#): Introdução à Plataforma Microsoft .

40).. 20). object>. Function function1 = new Function(Sum).Subtract). } . int y) { return x . . int Subtract(int a.. int .Delegates • • • Versão OO e segura de ponteiros para função Utilizados no modelo de eventos Exemplo: public delegate int Function(int x.NET y). + y. Function function2 = new Function(<some int result1 = function1(10.. static int Sum(int x. } y.. int b) { return x – Introdução à Plataforma Microsoft . int result2 = function2(30...

Windows. Mac OS X.CLI – Principais Implementações • Common Language Runtime (Microsoft .NET .NET) • Shared Source CLI (Rotor) – “Subconjunto” da CLR para fins de pesquisa • Mono – Plataformas: Linux. Solaris. Unix Introdução à Plataforma Microsoft .

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 – Dados e XML Biblioteca de Classes Básicas Common Language Runtime Introdução à Plataforma Microsoft .NET .NET Windows Forms ADO ..NET – Arquitetura Web Services Web Forms ASP .

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 .ASP .NET • Tecnologia para criação de aplicações Web baseada no Framework .NET .

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 .ASP .NET • Web Forms – Páginas ASP .

NET Web Matrix (gratuita) Macromedia Dreamweaver MX Borland C# Builder Notepad..Web Forms – Ferramentas • • • • • Visual Studio . Introdução à Plataforma Microsoft .NET ..

etc. WSDL. de forma independente de linguagem de programação.ASP . UDDI.NET .).” • 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 “Serviços disponibilizados via WWW com base em padrões e especificações estabelecidos (SOAP.

Web Services • WebMethods Framework – Fornecido por ASP .NET – Extensível – Mapeia mensagens SOAP em chamadas/retorno de métodos Introdução à Plataforma Microsoft .NET .

double y) { return x / y.Services. double y) { return x – y. double y) { return x + y.Web.NET .} public double Mul(double x. public class MathService { [WebMethod] public double Add(double x.asmx <%@ WebService class="MathService"%> • Arquivo Fonte (pré-compilado) using System.Web Service – Exemplo • Arquivo . double y) { return x * y.} } Introdução à Plataforma Microsoft .} [WebMethod] public double Sub(double x.} public double Div(double x.

xmlsoap.org/math"> <x>33</x> <y>66</y> </Subtract> </soap:Body> </soap:Envelope> Introdução à Plataforma Microsoft . Requisição HTTP/SOAP é recebida e encaminhada ao arquivo .org/soap/envelope/"> <soap:Body> <Subtract xmlns="http://example. 3.asmx correspondente Classe e método são localizados Processamento é realizado e retornado via HTTP/SOAP POST /math/math.NET .Web Services – Modelo de Execução 1.asmx HTTP/1. 2.1 … SOAPAction: "urn:math:subtract" <soap:Envelope xmlns:soap="http://schemas.

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.NET . XML Schemas) Introdução à Plataforma Microsoft .

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(). Introdução à Plataforma Microsoft . etc. ToString().NET .

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 .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.

} } } Introdução à Plataforma Microsoft . public string Nome{ get { return nome. } set { nome = value.Propriedades – Exemplo public class Pessoa { string nome.NET .

com/mobility/ • C# para Programadores de Java. Brian Bagnall.NET .com/webservices/ • Mobile Developer Center: – http://msdn. Philip Chen. Introdução à Plataforma Microsoft .microsoft.microsoft.NET/ – http://www.microsoft.Referências • . Stephen Golsberg.microsoft.asp.com/ASP.NET: – http://msdn.net/whidbey/ • Web Services: – http://msdn.NET Framework Developer Cente – http://msdn. Alta Books.com/netframework/ • ASP .

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