30
Visão Geral do Visão Geral do Arcabouço .NET Arcabouço .NET Alexandre Ricardo Nardi [email protected]

Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi [email protected]

Embed Size (px)

Citation preview

Page 1: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

Visão Geral doVisão Geral doArcabouço .NETArcabouço .NET

Alexandre Ricardo [email protected]

Page 2: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

ObjetivoObjetivo

Apresentar os principais componentes do arcabouço, bem como as possibilidades de desenvolvimento de aplicações

Page 3: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 4: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 5: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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.

Page 6: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 7: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 8: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 9: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 10: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 11: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 12: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 13: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 14: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 15: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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”

Page 16: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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)

Page 17: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 18: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

MetadadosMetadados

IL IL (código(código

gerenciado)gerenciado)

RecursosRecursos

MinhaBiblioteca.DLLMinhaBiblioteca.DLL

Common Language RuntimeCommon Language RuntimeAssembliesAssemblies

Page 19: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 20: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 21: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 22: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 23: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 24: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 25: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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)

Page 26: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 27: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 28: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

Middle-TierMiddle-TierCComponentesomponentes

Componentes .NET– Eliminam algumas complexidades dos

componentes COMIntegração com os serviços do COM+

– Transações– Filas

Page 29: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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

Page 30: Visão Geral do Arcabouço.NET Alexandre Ricardo Nardi nardi@ime.usp.br

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