Title: Vis
1Visão Geral do Arcabouço .NET
Alexandre Ricardo Nardi nardi_at_ime.usp.br
2Objetivo
- Apresentar os principais componentes do
arcabouço, bem como as possibilidades de
desenvolvimento de aplicações
3Roteiro
- 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
4Introdução ao .NETCenário 1996
Servidores de Dados
Lógica do Cliente
Lógica de Negócio
Serviços de Infra
Tecnologias MS COM, IIS (ASP) e Internet Explorer
5Introdução ao .NET Cenário 2000 - Escalabilidade
SGBD
Cliente rico
Navegadores
6Introdução ao .NET Cenário 2002 - Ubiqüidade
Aplicações podem se tornar Web services
Navegadores padrão
Protocolos públicos de comunicação (HTTP, SMTP,
XML, SOAP)
Ferramental mais rico para o usuário
Potencial para aplicações compostas por web
services disponíveis globalmente
7Introdução ao .NET A Plataforma .NET
Protocolos de Internet SOAP, HTTP, SMTP, XML
8O Arcabouço .NETO 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
9O Arcabouço .NETWeb 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
10O Arcabouço .NETVisual Studio .NET
Visual Basic
C
C
Visual Studio .NET
JScript
Common language specification
ASP.NET Web services e Web Forms
WindowsForms
ADO.NET Dados e XML
Base class library
Common language runtime
11O 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
12O Arcabouço .NET Serviços do Arcabouço
- ASP.NET
- Evolução do ASP (compilado)
- Web Forms
- Código gerenciado (mais elegante)
- Windows Forms
- Para desenvolvimento de interfaces para clientes
ricos - ADO.NET, evolução do ADO
- Novos objetos e maior suporte a trabalho
desconectado - Suporte a XML
13Common Language RuntimeArquitetura
Common language runtime
IL para compiladores de código nativo
Segurança
Suporte a execução
GC, stack walk, code manager
Class loader
14Common Language RuntimeObjetivos
- 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
15Common Language RuntimeSuporte 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)
16Common Language RuntimeCompilação
Código fonte
C, C, Visual Basic ou qualquer outra linguagem
.NET
17Common Language RuntimeAssemblies
MinhaBiblioteca.DLL
Metadados
IL (código gerenciado)
Recursos
18Common Language RuntimeMetadados
- 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
19Common Language RuntimeMetadados 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
20Common Language RuntimeAplicaçõ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
21Common Language RuntimeModelo de Execução
Código Fonte
Visual Basic
C
C
Componente não gerenciado
Compilador
Compilador
Compilador
Código Gerenciado
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
22Tipos 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
23Interface com o UsuárioWindows 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
24Interface 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)
25Middle-TierServiç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
26Middle-TierComponentes
- 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
27Middle-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
28Middle-TierWeb 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
29Acesso a DadosEvolução do ADO para ADO.NET
- Novos objetos
- Maior suporte a XML
- Lê/escreve em arquivos XML
- Objetos para navegação em XML
- Permite uso de XSL
- Componentes sem estado podem devolver informações
em XML - Melhor isolamento de trabalho conectado ou
desconectado - Acesso a bases de dados
- .NET providers
- OLEDB providers
- ODBC
- Usa os mesmos tipos previstos no CTS
30Referê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