260 likes | 380 Views
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.
E N D
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
Plataforma Microsoft .NET • Plataforma de desenvolvimento multi-linguagem 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#
.NET X J2EE • .NET: “Várias linguagens em um único ambiente” • J2EE • “Uma única linguagem em vários ambientes”
Common Language Infrastructure • Infra-estrutura de execução padronizada pela ECMA • Especificação define: • Common Type System • Metadados • Common Language Specification • Virtual Execution System
2 2 Manifesto Modelo de Compilação 1 Código Fonte Assembly Common Intermediate Language LinguagemX (Compilação Just-In-Time) OU CódigoNativo (Interpretação)
Estruturas • Exemplo de value type (alocadas na pilha) • Exemplo (C#):
Enumerações • Exemplo de value type (alocadas na pilha) • Exemplo (C#):
Delegates • Versão OO e segura de ponteiros para função • Utilizados no modelo de eventos • 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; }
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
.NET – Arquitetura Web Services Web Forms Windows Forms ASP .NET ADO .NET – Dados e XML Biblioteca de Classes Básicas Common Language Runtime
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
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)
Web Forms – Ferramentas • Visual Studio .NET • Web Matrix (gratuita) • Macromedia Dreamweaver MX • Borland C# Builder • Notepad...
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
Web Services • WebMethods Framework • Fornecido por ASP .NET • Extensível • Mapeia mensagens SOAP em chamadas/retorno de métodos
Web Service – Exemplo • Arquivo .asmx • Arquivo Fonte (pré-compilado) <%@ WebService class="MathService"%> 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;} }
Web Services – Modelo de Execução • 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>
Classe Esquema XML Objetos Objetos Objetos Objetos Objetos Documento XML Web Services – Mapeamento XML – OO • Deserialização SOAP → Objetos via Reflexão • Limitada ao padrão de esquemas (WSDL, XML Schemas)
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.
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)
Propriedades – Exemplo public class Pessoa { string nome; public string Nome{ get { return nome; } set { nome = value; } } }
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 Monique Monteiro