Visão Geral doVisão Geral doArcabouço .NETArcabouço .NET
Alexandre Ricardo [email protected]
ObjetivoObjetivo
Apresentar os principais componentes do arcabouço, bem como as possibilidades de desenvolvimento de aplicações
RoteiroRoteiro 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
Serviços deServiços deInfraInfra
Tecnologias MS:Tecnologias MS:COM, IIS (ASP) e Internet ExplorerCOM, IIS (ASP) e Internet Explorer
Introdução ao .NETIntrodução ao .NETCenário ~1996Cenário ~1996
Aplicações empregavam o Aplicações empregavam o modelo cliente/servidor, com modelo cliente/servidor, com páginas ASP acessando páginas ASP acessando servidores de dadosservidores de dados
NavegadoresNavegadores
Aplicações baseadas em Aplicações baseadas em HTML, sem interatividadeHTML, sem interatividade
ServidoresServidoresde Dadosde Dados
LógicaLógicado Clientedo Cliente
Lógica Lógica de Negóciode Negócio
Componentes sem estado e gerenciamento de IP favorecem a escalabilidade.
Com estadoCom estadoSem estadoSem estado
Cliente ricoCliente rico
Introdução ao .NET Introdução ao .NET Cenário ~2000Cenário ~2000 - Escalabilidade - Escalabilidade
SSGBDGBD
Serviços Serviços básicosbásicos
Lógica de Lógica de negócionegócio
NavegadoresNavegadores
Separação das camadas de dados e negócios aumentam a escalabilidade e a performance de acesso a dados empresariais.
Serviços do COM+ para maior confiabilidade e escalabilidade. Internet Explorer fornece D/HTML, melhorando interatividade.
Introdução ao .NET Introdução ao .NET Cenário ~2002 - UbiqüidadeCenário ~2002 - Ubiqüidade
NavegadoresNavegadorespadrãopadrão
ClientesClientes““inteligentes”inteligentes”
DispositivosDispositivos““inteligentes”inteligentes” Protocolos públicosProtocolos públicos
de comunicaçãode comunicação (HTTP, SMTP, XML, SOAP) (HTTP, SMTP, XML, SOAP) Ferramental maisFerramental mais
rico para orico para ousuáriousuário
Potencial para Potencial para aplicações compostas aplicações compostas
por web services por web services disponíveis globalmentedisponíveis globalmente
Aplicações podem se tornar Aplicações podem se tornar Web servicesWeb services
ServiçosServiçosbásicosbásicos
Lógica deLógica denegócionegócioLógica de Lógica de negócio enegócio e
Web serviceWeb servicess
ServiçosServiçosbásicosbásicos
WWebeb ServicesServicespúblicospúblicos
ServiçosServiçosauxiliaresauxiliares
ServiçosServiçosinternosinternos
XMLXML
XMLXML
XMLXML
SGBDSGBDXMLXML
Outros Outros serviçosserviços
XMLXML
XMLXML
XMLXML
HTMLHTML
Protocolos de InternetProtocolos de InternetSOAPSOAP,,
HTTP, SMTP, XMLHTTP, SMTP, XML
Introdução ao .NET Introdução ao .NET A Plataforma .NETA Plataforma .NET
ArcabouçoArcabouço..NNETET
Windows Windows CE, 2000, CE, 2000, XP, .NETXP, .NET
Serv
iços
Se
rviç
os
CO
M+
CO
M+
OrquestraçãoOrquestração
AplicaçõesAplicaçõesusando seususando seus
serviçosserviços
AplicaçõesAplicaçõesparapara
usuário finalusuário final
Servidores Servidores .NET.NET
Serviços Serviços básicos básicos .NET .NET
Web servicesWeb servicesde terceirosde terceiros
Seus serviçosSeus serviçosinternosinternos
Visual Visual Studio .NEStudio .NE
TTSua aplicaçãoSua aplicaçãoe e webweb service service
O Arcabouço .NETO Arcabouço .NETO que é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 .NETO Arcabouço .NETWeb ServicesWeb Services baseados em XML 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
ClienteCliente
WebWebserviceservice WebWeb
serviceservice
WebWebserviceservice WebWeb
serviceservice
ClienteClienteXMLXML
XMLXML
XMLXML
XMLXML
XMLXML
XMLXML
HTMLHTML
O Arcabouço .NETO Arcabouço .NET Web ServicesWeb Services baseados em XML baseados em XML
O Arcabouço .NETO Arcabouço .NETVisual Studio .NETVisual Studio .NET
Base class libraryBase class library
Common language specificationCommon language specification
Common language runtimeCommon language runtime
ADO.NET: ADO.NET: Dados eDados e XML XML
Visual Basic®Visual Basic® C++C++ C#C#Visual Studio
® .NET
Visual Studio
® .NET
ASP.NET: Web servicesASP.NET: Web servicesee Web Forms Web Forms
JScript®JScript® ……
WindowsWindowsFormsForms
O Arcabouço .NETO Arcabouço .NET Common Language RuntimeCommon 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 .NETO Arcabouço .NET ServiServiçoçoss do Arcabouço 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
Common Language RuntimeCommon Language RuntimeArquiteturaArquitetura
Com
mon
lang
uage
runt
ime
Com
mon
lang
uage
runt
ime
Class loaderClass loader
IL IL paraparacompiladorescompiladores
de códigode códigonativonativo
GC, GC, stack walk, code managerstack walk, code manager
SegurançaSegurançaSuporte a Suporte a execuçãoexecução
Common Language RuntimeCommon Language RuntimeObjetivosObjetivos
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 RuntimeCommon Language RuntimeSuporte a Múltiplas LinguagensSuporte 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)
Código fonteCódigo fonte
C++, C#, Visual C++, C#, Visual Basic ou Basic ou qualquer outra qualquer outra linguagem .NETlinguagem .NET
Csc.exe, Vbc.exe,…Csc.exe, Vbc.exe,…CompiladorCompilador
AssemblyAssembly
DLL ou EXEDLL ou EXE
Common Language RuntimeCommon Language RuntimeCompilaCompilaçãoção
MetadadosMetadados
IL IL (código(código
gerenciado)gerenciado)
RecursosRecursos
MinhaBiblioteca.DLLMinhaBiblioteca.DLL
Common Language RuntimeCommon Language RuntimeAssembliesAssemblies
Common Language RuntimeCommon Language RuntimeMetadaMetadadosdos
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
Descrições de tiposDescrições de tiposClassesClassesClasses baseClasses baseInterfaces ImplementadasInterfaces ImplementadasMembrosMembrosMétodosMétodos
NomeNomeVersãoVersãoCulturaCultura
Assembly ManifestAssembly Manifest
Outros Outros assembliesassembliesPermissõesPermissõesTipos exportadosTipos exportados
Common Language RuntimeCommon Language RuntimeMetadaMetadados em um dos em um AssemblyAssembly
Common Language RuntimeCommon Language RuntimeAplicaçõesAplicaçõ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
Visual BasicVisual BasicCódigo Código FonteFonte
CompilCompiladoadorr
C++C++C#C#
CompilCompiladoadorrCompilCompiladoadorr
AssemblyAssemblyCódigo em Código em ILIL
Serviços básicos do SOServiços básicos do SO
Common language runtimeCommon language runtime
Compilador JITCompilador JIT
Código nativoCódigo nativo
CódigoCódigoGerenciadoGerenciado
ComponenteComponentenãonão
gerenciadogerenciado
Common Language RuntimeCommon Language RuntimeModelo de ExecuçãoModelo de Execução
AssemblyAssemblyCódigo em Código em ILIL
AssemblyAssemblyCódigo em Código em ILIL
Tipos de AplicaçõesTipos de Aplicações
Interface com o usuário– Windows Forms– ASP.NET Web Forms
Middle-tier– Serviços– Web Services– Componentes
Acesso a dados– ADO.NET
Interface com o UsuárioInterface com o UsuárioWindows FormsWindows 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árioInterface com o Usuário ASP.NET ASP.NET Web FormsWeb 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-TierMiddle-TierServiServiçoçoss
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-TierMiddle-TierWeb ServicesWeb 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
Middle-TierMiddle-TierCComponentesomponentes
Componentes .NET– Eliminam algumas complexidades dos
componentes COMIntegração com os serviços do COM+
– Transações– Filas
Acesso a DadosAcesso a DadosEvoluEvolução do ção do ADO ADO parapara ADO.NET 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
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
ReferênciasReferências