Visão Geral do Arcabouço .NET Alexandre Ricardo Nardi [email protected] Objetivo Apresentar os principais componentes do arcabouço, bem como as possibilidades de desenvolvimento de aplicações Roteiro Introdução ao .NET Arcabouço .NET Common language runtime Tipos de Aplicações – – – Interface com o usuário Middle-Tier Acesso a bancos de dados Referências Introdução ao .NET Cenário ~1996 Lógica do Cliente Servidores de Dados Lógica de Negócio Navegadores Aplicações baseadas em HTML, sem interatividade Tecnologias MS: COM, IIS (ASP) e Internet Explorer Serviços de Infra Aplicações empregavam o modelo cliente/servidor, com páginas ASP acessando servidores de dados Introdução ao .NET Cenário ~2000 - Escalabilidade Cliente rico Navegadores Lógica de negócio Serviços básicos Serviços do COM+ para maior confiabilidade e escalabilidade. Internet Explorer fornece D/HTML, melhorando interatividade. Componentes sem estado e gerenciamento de IP favorecem a escalabilidade. SGBD Com estado Sem estado Separação das camadas de dados e negócios aumentam a escalabilidade e a performance de acesso a dados empresariais. Introdução ao .NET Cenário ~2002 - Ubiqüidade Aplicações podem se tornar Web services Outros serviços Clientes “inteligentes” Navegadores padrão Dispositivos “inteligentes” Ferramental mais rico para o usuário Web Services públicos Lógicade de Lógica negócio negócio e Web services Serviços Serviços básicos básicos Protocolos públicos de comunicação (HTTP, SMTP, XML, SOAP) Serviços auxiliares Serviços internos SGBD Potencial para aplicações compostas por web services disponíveis globalmente Introdução ao .NET A Plataforma .NET Visual Studio .NET Sua aplicação e web service Seus serviços internos Aplicações usando seus serviços Arcabouço .NET Serviços COM+ Orquestração Windows CE, 2000, XP, .NET Aplicações para usuário final Protocolos de Internet SOAP, HTTP, SMTP, XML Servidores .NET Serviços básicos .NET Web services de terceiros O Arcabouço .NET O que é? Um conjunto de tecnologias que: – Une aplicações web hoje isoladas – Torna informação disponível a qualquer hora, em qualquer lugar (anytime, anywhere) – Simplifica desenvolvimento e implantação Como o .NET faz isso? – Web services – Informações transitam como ADO.NET DataSets, havendo suporte a XML – Conjunto rico de ferramentas, serviços para execução (runtime services) e implantação baseada em XCOPY O Arcabouço .NET Web Services baseados em XML Ponto focal da arquitetura do .NET Trata-se de um componente de aplicação programável, acessível através de protocolos web padrão Expõe funcionalidade que pode ser acessada a partir de sites – Possui semelhança com programação de componentes para uso na web, porém sem as dificuldades impostas pelo DCOM O Arcabouço .NET Visual Studio .NET Visual Basic® C++ C# JScript® … ASP.NET: Web services e Web Forms Windows Forms ADO.NET: Dados e XML Base class library Common language runtime Visual Studio® .NET Common language specification O Arcabouço .NET Common Language Runtime Simplifica o desenvolvimento Implantação via XCOPY Potencialmente multi-plataforma Múltiplas linguagens (com herança entre linguagens) Aumenta a produtividade O Arcabouço .NET Serviços do Arcabouço ASP.NET – Web Forms – Para desenvolvimento de interfaces para clientes ricos ADO.NET, evolução do ADO – Código gerenciado (mais elegante) Windows Forms – Evolução do ASP (compilado) Novos objetos e maior suporte a trabalho desconectado Suporte a XML Common Language Runtime Common language runtime Arquitetura IL para compiladores de código nativo Suporte a execução Segurança GC, stack walk, code manager Class loader Common Language Runtime Objetivos Desenvolvimento – – – – – – Arcabouço com classes padrão Gerenciamento automático de memória Tratamento de erros consistente Aplicações multi-linguagem Múltiplas plataformas Execução mais segura Implantação – – – Não há dependência do registry Menos problemas de versionamento Fim do “DLL Hell” Common Language Runtime Suporte a Múltiplas Linguagens Os tipos de dados foram unificados – Common Type System (CTS) Outras linguagens e compiladores devem seguir a especificação... – Common Language Specification (CLS) Common Language Runtime Compilação Assembly Código fonte Compilador Csc.exe, Vbc.exe,… C++, C#, Visual Basic ou qualquer outra linguagem .NET DLL ou EXE Common Language Runtime Assemblies MinhaBiblioteca.DLL Metadados IL (código gerenciado) Recursos Common Language Runtime Metadados Informações de tipos – Conjunto mais completo do que a IDL (da MS) – Armazenadas no assembly em formato binário – Descreve cada classe de tipo – Usadas pelo IntelliSense® no Visual Studio .NET Common Language Runtime Metadados em um Assembly Descrições de tipos Classes Classes base Interfaces Implementadas Membros Métodos Assembly Manifest Nome Versão Cultura Outros assemblies Permissões Tipos exportados Common Language Runtime Aplicações Um ou mais assemblies Resolução de assemblies – Usando metadados local (recomendado) Global Assembly Cache (GAC) Aplicações diferentes podem usar diferentes versões de um assembly – Mais fácil de atualizar – Mais fácil de remover Common Language Runtime Modelo de Execução Código Fonte Código Gerenciado Visual Basic C# C++ Compilador Compilador Compilador Assembly Código em IL Assembly Código em IL Assembly Código em IL Common language runtime Compilador JIT Código nativo Serviços básicos do SO Componente não gerenciado Tipos de Aplicações Interface com o usuário – Windows Forms – ASP.NET Web Forms Middle-tier – Serviços – Componentes .NET Remoting Web Services Acesso a dados – ADO.NET Interface com o Usuário Windows Forms Arcabouço para implementação de clientes ricos – – – – – – RAD (rapid application development) Interfaces elaboradas Fácil integração com web services Conjunto extenso de controles Controles data-aware Compatível com ActiveX Interface com o Usuário ASP.NET Web Forms ASP.NET X ASP – – – – – Código isolado de interface Compilado em DLL Escrito em qualquer linguagem que siga a CLS Performance melhorada Mais produtivo Desenvolvimento de interface para Windows Forms e Web Forms no mesmo IDE Manipulação de estado melhor do que no ASP Scripts de execução no cliente em JavaScript ou VBScript Extenso conjunto de controles no servidor, inclusive data-aware Executa independentemente do ASP (pode haver integração, se desejado) Middle-Tier Serviços São aplicações que executam independentemente de um usuário estar “logado” Desenvolvidos em qualquer linguagem que siga a CLS Exemplo: serviço de impressão Middle-Tier Componentes Utilizam-se do .NET Framework ao invés do COM Podem interoperar com componentes COM Podem utilizar os serviços do COM+ Para sistemas distribuídos, existem dois tipos básicos de cenários – Plataforma Homogênea: .NET Remoting – Plataforma Heterogênea: Web Services Middle-Tier .NET Remoting Canais de comunicação podem utilizar um formato binário sobre TCP/IP ou ainda XML sobre HTTP Mensagens que transitam no canal de comunicação são codificadas Assim como no DCOM, existem proxies que remetem as chamadas de métodos ao objeto destino Ativação remota e gerenciamento de tempo de vida – Marshal-by-reference: objetos executam no servidor – Marshal-by-value: objetos executam em cópia realizada no cliente Middle-Tier Web Services São aplicações que disponibilizam funcionalidades acessíveis via Internet – Baseado em SOAP/XML O cliente acessa através de URL Possui semelhanças com o uso de componentes distribuídos via Internet Por seguir padrões abertos, independe de plataforma Acesso a Dados Evolução do ADO para ADO.NET Novos objetos Maior suporte a XML – – – – Melhor isolamento de trabalho conectado ou desconectado Acesso a bases de dados – – – Lê/escreve em arquivos XML Objetos para navegação em XML Permite uso de XSL Componentes sem estado podem devolver informações em XML .NET providers OLEDB providers ODBC Usa os mesmos tipos previstos no CTS Referências http://msdn.microsoft.com http://msdn.microsoft.com/howto http://www.microsoft.com/net http://www.microsoft.com/usa/webcasts http://msdn.microsoft.com/xml msnews.microsoft.com – – microsoft.public.dotnet.general microsoft.public.dotnet.xml