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
Download

Transparências - IME-USP