ASP.net 4.0 Avancado Versao Final

download ASP.net 4.0 Avancado Versao Final

of 166

Transcript of ASP.net 4.0 Avancado Versao Final

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    1/166

    TMSASP35AV

    Novembro/2010

    Apostila desenvolvida especialmente para a Target Informtica Ltda.Sua cpia ou reprodu!o " e#pressamente proi$ida.

    %ovem$ro&'()(

    ASP.NET 4.0

    Avanado

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    2/166

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    3/166

    ASP.%*T 3.5 Avanado

    Sumrio

    1. Segurana................................................................................1+$,etivos.............................................................................................................'-onceitos de Segurana......................................................................................3a$ilitando o site para utili/ar o gerenciamento de segurana do Asp.%et 0.(..5

    *ntendendo o gerenciamento da segurana.................................................1-riando 2surios e e#plorando a estrutura criada.........................................Validando usurios com o Login..................................................................))2tili/ando o -4angePassord para trocar as sen4as...................................)'*ntendendo e utili/ando os controles LoginStatus6 Login%ame e LoginVie....................................................................................................................)3

    7erenciamento Manual de usurios..................................................................)8-lasses Mem$ers4ip e Mem$ers4ip2ser.....................................................)2tili/ando 7rupos........................................................................................)9

    *#erc:cios..........................................................................................................'3*spao para Anota;es................................................................................'0

    2. Globalizao e Localizao.......................................................25+$,etivos...........................................................................................................'1+

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    4/166

    ASP.%*T 3.5 AvanadoLI%C to SCL.......................................................................................................8

    *ntendendo o >ata-onte#t..........................................................................82tili/ando LI%C to SCL em nossa aplica!o.................................................89

    2tili/ando LI%C to SCL em 3 camadas..............................................................1*#erc:cios..........................................................................................................98

    *spao para Anota;es................................................................................9

    *. ,anuteno de $!tado.............................................................++Session............................................................................................................)()iddenField......................................................................................................)(0

    VieState...................................................................................................)(0Cuer?String...............................................................................................)(5-ooGies......................................................................................................)(1Application.................................................................................................)(1

    *#erc:cios........................................................................................................)(9*spao para Anota;es..............................................................................))(

    -. 'eb Service!........................................................................111+$,etivos.........................................................................................................))'e$ Services...................................................................................................))3-riando e utili/ando um e$ Service..............................................................))5-4amando um HML e$ Service por TTP.....................................................))82tili/ando um e$Service e#terno..................................................................))9*#erc:cios........................................................................................................)'3

    *spao para Anota;es..............................................................................)'0

    . Utilizando "" no "S#.N$%....................................................125+$,etivos.........................................................................................................)'1+

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    5/166

    ASP.%*T 3.5 Avanado+ tipo Assem$l?%ame...............................................................................)0+ tipo Module............................................................................................)09

    Tra$al4ando com Tipos....................................................................................)5(ecuperando um o$,eto T?pe....................................................................)5(

    2tili/ando eJection em nossa aplica!o........................................................)5)*spao para anota;es...................................................................................)51

    10. 3i!tribuindo !ua "licao.....................................................15-+$,etivos.........................................................................................................)5>istri$uindo sua Aplica!o ASP.%*T................................................................)59

    Pu$licando sua aplica!o...........................................................................)1(*spao para Anota;es...................................................................................)1'

    T@rgetTrust Treinamento & Tecnologia III

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    6/166

    ASP.%*T 3.5 Avanado

    ).). SeguranaSegurana

    T@rgetTrust Treinamento & Tecnologia 1

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    7/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ;b

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    8/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Conceito! de Segurana

    7arantir a segurana de sites " uma

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    9/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Forms Aut4entication Provider.

    A autentica!o $aseada no indos Aut4entication Provider utili/a ousurio indos corrente no IIS como o usurio autenticado em uma aplica!oAsp.net. *la " $em utili/ada para aplicativos asp.net do tipo Intranet para

    aproveitar as credencias do usurio para ter permiss!o em determinadosdiretrios.

    A autentica!o $aseada no Forms Aut4entication Provider permiteautenticar usurios usando seu prprio cdigo e depois manter um toGen deautenti!o em um cooGie ou no 2L da pgina.

    Para usar a autentica!o $aseada em formulrios voc@ cria uma pagina delogin

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    10/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    6abilitando o !ite ara utilizar ogerenciamento de !egurana do "!.Net &.0

    Ao criarmos um pro,eto no Visual Stuido '()( podemos utili/ar o templateRAsp.%et e$ Application. *sse template ir criar uma aplica!o asp.net comas pginas responsveis por implementar a segurana dentro da pastac4amada Account. + pro,eto , estar conKgurado para utili/armos ogerenciamento de segurana do asp.net.

    Mas para entendermos como implementar de uma forma eKciente aautentica!o $aseada em formulrios6 a aplica!o $ase de nosso curso "$aseada no template RAsp.%et *mpt? e$ Application

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    11/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    *ssa conKgura!o deve ser inserida dentro da Tag s?stem.e$U do

    ar

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    12/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    2m e#emplo prtico seria um sistema de um frum onde para ter acesso ousurio deve ser cadastrar no sistema. >essa forma a pgina de cria!o deusurios teria livre acesso e as pginas do frum s seriam acessadas porusurios logados.

    %a montagem das pginas de nossa aplica!o ns deKnimos uma pginaresponsvel por criar novos usurios c4amada R%e2ser.asp#. VamosconKgurar em nossa aplica!o

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    13/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Agora vamos rodar nosso sistema com a pgina >efault.asp# setada comopgina inicial de nossa aplica!o. Poderemos ver

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    14/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps ter inserido esse cdigo no %e2ser.asp#6 colo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    15/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps termos criado o usurio vamos voltar em nossa aplica!o e vamose#plorar a estrutura criada pelo asp.net para gerenciamento dos dadosreferentes aos usurios do sistema.

    Para e#plorarmos a estrutura criada devemos ir ao Solution *#plorer e

    e#pandir a pasta AppZ>ata6 note M.M>F. >entro deste $anco estar!o as ta$elasresponsveis por arma/enar todos os usurios e informa;es relacionadas segurana em nossa aplica!o.

    Ao darmos um duplo cliata$ase *#plorer. >essa forma poderemos analisar toda a estrutura deta$elas de nosso $anco de dados. Visuali/e os dados da ta$ela aspnetZ2sers eperce$a

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    16/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    2ma das grandes limita;es de tra$al4ar com o modelo de gerenciamentode segurana do asp.net " D.M>F e muitas ve/es efault.asp#6 caso digitemos usurio ou sen4aerrado6 Kcaremos trancados na tela de login.

    -om esse controle o asp.net gerencia todo o controle de acesso ao nossosistema e n!o precisamos programar nen4uma lin4a.

    T@rgetTrust Treinamento & Tecnologia 11

    http://msdn.microsoft.com/en-us/library/6tc47t75.aspxhttp://msdn.microsoft.com/en-us/library/6tc47t75.aspx
  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    17/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    2tili/ando o -4angePassord para trocar as sen4as

    +utra funcionalidade importante

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    18/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps termos reali/ado a altera!o de uma sen4a o controle deveapresentar uma mensagem informando

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    19/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    +utra funcionalidade importante em aplica;es e$ " apresentar o nomedo usurio

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    20/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    + controle " formado por dois templates Anon?mous e Loggedin. %otemplate Anon?mous colocaremos o contedo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    21/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    T@rgetTrust Treinamento & Tecnologia 16

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    22/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Gerenciamento ,anual de u!u=rio!

    Vimos at" agora como podemos implementar segurana em nossasaplica;es asp.net utili/ando os controles disponi$ili/ados pelo asp.net. +scontroles encapsulam todas as regras de negcio e funcionam de uma formapr"deKnida em seu desenvolvimento.

    Muitos programadores simplesmente n!o gostam de dei#ar ogerenciamento de uma funcionalidade t!o importante6 como a segurana dosite6 ao cargo de controles em uncionalidade

    Mem$ers4ip esponsvel por validar credenciais deusurios e gerenciar conKgura;es de

    usurios.

    Mem$ers4ip-reate2ser*#ception Arma/ena os poss:veis erros ao criarnovos usurios.

    Mem$ers4ipPassord*#ception Arma/ena os poss:veis erros refentes asen4as dos usurios.

    Mem$ers4ipProvider >eKne os contratos de implementa!odo mem$ers4ip provider do asp.netcom providers customi/ados.

    Mem$ers4ip2ser esponsvel por $uscar e atuali/arinforma;es do usurio na $ase dedados.

    oles 7erencia a participa!o do usurio emgrupos de fun;es.

    *m fun!o de possuirmos muitas classes nesse namespace estamoscitando apenas algumas classes. Para um estudo mais aprofundado de todas

    as op;es acesse 4ttp&&msdn.microsoft.com&enus&li$rar?&Gt5ssstG.asp#

    T@rgetTrust Treinamento & Tecnologia 17

    http://msdn.microsoft.com/en-us/library/kt5ssstk.aspxhttp://msdn.microsoft.com/en-us/library/kt5ssstk.aspx
  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    23/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    -lasses Mem$ers4ip e Mem$ers4ip2ser

    *ssas duas classes podem ser consideradas as mais importantes

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    24/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    2tili/ando 7rupos

    *studamos os m"todos de gerenciamentos de usurios implementados comcontroles e com o au#ilio de classes manuais6 mas ainda falta entendermoscomo funcionam os 7ruposNrolesO dos usurios.

    7rupos servem para deKnir perKs dos usurios

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    25/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Cuando renderi/armos nossa pgina ela deve Kcar com o seguinteaspecto.

    + pr#imo passo " carregarmos a listDo# de usurios com todos osusurios dispon:veis e gerarmos um m"todo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    26/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Vamos inserir o seguinte cdigo na pgina cad7rupos.asp#.

    %ote ata$ind para

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    27/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    %este cdigo " pego o nome do usurio

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    28/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    $9erc8cio!

    ). -rie uma aplica!o e$

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    29/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    *spao para Anota;es

    T@rgetTrust Treinamento & Tecnologia 24

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    30/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    '.'. 7lo$ali/a!o e7lo$ali/a!o eLocali/a!oLocali/a!o

    T@rgetTrust Treinamento & Tecnologia 25

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    31/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ;b

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    32/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ; ?ue @ globalizao e localizaoA

    7lo$ali/a!o " o processo de criar uma aplica!o

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    33/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Localizando valore! em uma alicaoa!.Net

    Para etectar automaticamente a cultura do usurio]

    >etectar automaticamente a cultura do usurio e caso n!o gerenciea cultura corrente utili/ar uma cultura padr!o]

    Forar a utili/a!o de uma determinada cultura.

    Agora para alcanarmos um entendimento da utili/a!o de culturas6vamos conKgurar nossa aplica!o para tra$al4ar com culturas.

    -omo nossa aplica!o tra$al4a com Master.Pages vamos colocar umcontrole na master efault.asp#. Vamos colocar em dois lugares diferentes para

    acompan4armos os cuidados

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    34/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    + pr#imo passo " inserirmos o seguinte cdigo na pagina de cdigos doMain.master.

    -om estas altera;es sempre

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    35/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Vamos deKnir a l:ngua americana para ser o idioma default do $roser evamos rodar nossa aplica!o. Podemos ver

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    36/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    programadores. Image a seguinte situa!o Temos uma aplica!o asp.net

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    37/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    %raduzindo interBace! do u!u=rio com oa!.net

    2m aspecto fundamental para efault.asp# e su$stituir oste#tos digitados na pgina por la$els. + asp# da pgina deve Kcar conforme aKgura a$ai#o.

    Agora nossa pgina possui duas la$els Nl$lDemVindo e l$lIntro-ursoO

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    38/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    %a tradu!o por pgina devemos vincular um ar

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    39/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    >entro do arefault.asp# do nosso e#emplo. + ar

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    40/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    + pr#imo passo " alterar nossa pagina para

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    41/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    vantagem da tradu!o glo$al do sistema "

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    42/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    >iferentemente da tradu!o por pgina em

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    43/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    $9erc8cio!

    ). Implementa a tradu!o6 por pgina6 na pgina de login.'. Faa com

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    44/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    *spao para Anota;es

    T@rgetTrust Treinamento & Tecnologia 39

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    45/166

    ASP.%*T 3.5 Avanado

    3.3. 2tili/ando -omponentes2tili/ando -omponentesno ASP.%*Tno ASP.%*T

    T@rgetTrust Treinamento & Tecnologia 40

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    46/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ;blls e#ternas

    Instanciar classes de outros assem$l?s

    T@rgetTrust Treinamento & Tecnologia 41

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    47/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ; ?ue !o comonente!A

    >esde as primeiras vers;es das ferramentas de desenvolvimentoMicrosoft6 umas das caracter:sticas mais marcantes nestas ferramentas " acapacidade de utili/armos recursos para reutili/a!o de cdigo. %as aplica;esASP.%*T isto n!o " diferente. Cuando constru:mos uma aplica!o em ASP.%*T6o ideal " tentarmos dividir a aplica!o em mdulos menores6 a Km de tornar ogerenciamento e a manuten!o da aplica!o mais facilitada.

    Para criarmos uma aplica!o mais modulari/ada podemos fa/er uso decomponentes no ASP.%*T. +s componentes s!o $locos de cdigo compiladosem um assem$l? N>LLO

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    48/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    2tili/ando uma >LL e#terna

    Para entendermos a utili/a!o de >lls e#ternas6 vamos implementar afuncionalidade do 7oogle maps em nossa aplica!o.

    Pege a >LL 7Maps no site N 4ttp&&googlemaps.su$gurim.net&descargar.asp#O e adicione referencia em nosso pro,eto da >ll gmaps.dll.

    >epois disso6 adiciona em sua e$.conKg um AppSettingsU e uma Ge?U

    + pr#imo passo " criarmos um novo e$ form em nossa aplica!oc4amado RMapa. Aps criarmos o formulrio vamos adicionar um item nomenu principal6 para

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    49/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Ao e#ecutar nossa aplica!o6 no campo latitude colo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    50/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    -om esse e#erc:cio podemos ver como " simples e fcil a utili/a!o de >llse#ternas em nossas aplica;es .net6 onde aps inserirmos a refer@ncia6 da dlle#terna6 em nosso pro,eto podemos comear a utili/ar suas classes e seuso$,etos livremente6 da mesma forma

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    51/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    #rivate "!!embl7! e Sared "!!embl7!

    Se voc@ estiver construindo um componente para um pro,eto do tipo e$Site6 note

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    52/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Se tentarmos incluir um componente da a$a R.%*T ao inv"s da a$aPro,ect ou Drose6 iremos perce$er um comportamento diferente para estescomponente. Se adicionarmos ao Pro,ect o componente S?stem.Transactionspor e#emplo6 ao compilarmos o pro,eto6 podemos perce$er LL deste

    componente n!o " adicionada a pasta DI% do pro,eto. Isto ocorre por

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    53/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    *spao para Anota;es

    T@rgetTrust Treinamento & Tecnologia 48

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    54/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    T@rgetTrust Treinamento & Tecnologia 49

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    55/166

    ASP.%*T 3.5 Avanado

    0.0. e$ Partse$ Parts

    T@rgetTrust Treinamento & Tecnologia 50

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    56/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ;b

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    57/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ; ?ue !o :eb art! A

    2m dos grandes aspectos $uscados por aplica;es e$ s!o umainteratividade maior com o usurio6 onde o usurio possa deKnir aspectos decustomi/a!o pessoais6 atingindo dessa forma uma gama maior de poss:veisusurios. As customi/a;es

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    58/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    capacidade de reutili/a!o de cdigo e de inser!o de novas funcionalidadescom um custo menor de esforo.

    A ar

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    59/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    As /onas de e$ Parts gerenciam o la?out de um grupo de controles.Pronto para o uso6 o ASP.%*T inclui

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    60/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Al"m de incluir vrias /onas predeKnidas o ASP.%*T fornece algunscontroles e'+art. Alguns s!o para gerenciar catlogos6 en

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    61/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ' [ %a pgina >efault.asp# insira um controle e$PartManager6 logoa$ai#o do pargrafo onde est a la$el Rl$lMsgTeste. *ste e$PartManagerser responsvel por gerenciar todas as e$Parts de nossa pgina.

    3 [ Insira uma div eKna o autoFormat da primeirae$PartBone para Professional e o da segunda para -olorFul.

    5 [ >entro da tag BoneTemplate de cada e$PartBone vamos inseriralguns 4?perlinGs. %a primeira adicione dois 4?perlinGs6 um apontando para o

    site da Target Trust e o outro apontado para o site da Microsoft. %a segundae$PartBone adicione mais dois 4?perlinGs6 desta ve/ um apontando para osite da MS>% e o outro apontando para o site do Asp.%et. + cdigo asp#resultante do passo 0 e do passo 5 pode ser visuali/ado na Kgura a$ai#o.

    T@rgetTrust Treinamento & Tecnologia 56

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    62/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    1 [ Agora vamos e#ecutar nossa aplica!o e poderemos ver

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    63/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    8 [ + pr#imo passo " implementarmos uma forma em rop>onList. A drop serresponsvel por alterar os modos de e#i$i!o da pgina. + drop deve serc4amado de R>rop>onList>ispla?Modes. + cdigo asp# pode ser visuali/adona imagem a$ai#o.

    As e$ parts do ASP.%*T d!o suporte a cinco modos de e#i$i!o

    Dro:!e3i!la7,ode *sse " o modo normal. %!odisponi$ili/a personali/a!o ou edi!o.

    3e!ign3i!la7,ode Ativa a personali/a!o de la?outarrastar e soltar.

    $dit3i!la7,odeAtiva a personali/a!o de propriedadese'+arte permite ao usurio e#cluir as e$ Parts.

    Connect3i!la7,odePermite conectar as e$ Parts emtempo de e#ecu!o.

    Catalog3i!la7,odePermite adicionar as e$ Parts emuma e'+art,oneem tempo de e#ecu!o.

    [ Agora vamos atuali/ar o cdigo de nossa pgina >efault.asp#. +

    cdigo deve Kcar igual ao cdigo a$ai#o. %o cdigo a seguir " adicionado ummem$ro e'+art)anagerdenominado Z#)anager classe para arma/enar ainstancia do e'+art)anager atual da pgina. X atuali/ado o m"todo

    T@rgetTrust Treinamento & Tecnologia 58

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    64/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    +ageZInitpara ane#ar um manipulador de eventos ao evento InitCom#letedapgina. + cdigo e#amina detal4adamente o e'+art)anageratual em $uscados modos de e#i$i!o rop>onList. + cdigo ser responsvel por atuali/ar o modo de e#i$i!o doe$PartManager.

    T@rgetTrust Treinamento & Tecnologia 59

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    65/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    )( [ + pr#imo passo " su$stituir o m"todo Preender da pgina6 paraon apresente omodo de e#i$i!o atual do e$PartManager.

    )) *#ecute o site e note

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    66/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Agora vamos e#ecutar nossa aplica!o e voc@ poder ver rop>onList. Ao selecional ser4a$iltiado em cada e$ part a op!o de edi!o. Cuando utili/armos a edi!o ocontrole *ditorBone e o Appearance*ditorPart ser!o apresentados para

    intera!o.)3 Aps termos utili/ado o *ditorBone6

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    67/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Agora vamos e#ecutar a pgina novamente. Alterne para -atalog Mode6maressa forma podemos ver como " poss:vel adicionar emtempo de e#ecu!o novos controles e$Parts a nossa pgina. A Seguir iremos

    criar uma e$ Part e iremos utili/ar essa estrutura para ll em nossa solu!o e c4amal dee$PartLi$. >entro dessa >ll iremos colocar nossa e$Part. Vamos adicionar

    T@rgetTrust Treinamento & Tecnologia 62

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    68/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    uma classe c4amada ?perLinGe$Part a nossa >ll. *ssa classe ser a nossae$Part. Aps termos e#ecutado essas a;es nosso Solution *#plorer deveestar conforme a imagem a$ai#o.

    ' [ >evemos colocar refer@ncia ao S?stem.e$ em nossa >ll. Isso "

    necessrio porll.

    3 [ + pr#imo passo " adicionarmos os using na classe ?perLinGe$Parte implementarmos a 4erana das e$Parts na classe. + cdigo deve Kcarconforme a Kgura a$ai#o.

    T@rgetTrust Treinamento & Tecnologia 63

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    69/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    0 [ A seguir vamos inserir duas variveis privadas6 do tipo string na classe?perLinGe$Part6 uma para representar o nome de e#i$i!o da e$ Part e aoutra para representar o 2L real. Am$a ser!o iniciali/adas com valores>efaults. Aps inserirmos essas duas variveis vamos inserir outra varivelprivada6 do tipo ?perLinG6

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    70/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps o ll e adicionar a refer@ncia entre os pro,etos.

    Aps termos adicionado a refer@ncia entre os pro,etos note

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    71/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    + pr#imo passo agora " utili/armos nossa e$ part. Para isso vamos emnossa pgina >efault.asp# e colo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    72/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    -om esses e#erc:cios pudemos ver como utili/ar e$ parts6 suas /onas ecomo " fcil criarmos nossas prprias e$ parts. Vimos tam$"m

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    73/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    $9erc8cio!

    ). Adicione uma terceira coluna nossa aplica!o e insira alguns controlespara tra$al4arem como e$ part.

    '. -rie uma e$ part onde o usurio digite uma categoria e a e$ partapresenta o nome do departamento

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    74/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    *spao para Anota;es

    T@rgetTrust Treinamento & Tecnologia 69

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    75/166

    ASP.%*T 3.5 Avanado

    5.5. LI%CLI%C

    T@rgetTrust Treinamento & Tecnologia 70

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    76/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ;b

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    77/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ; ?ue @ o L(N)

    LI%C NLanguage Integrated Cuer?O " uma funcionalidade6 inclu:da no

    frameorG 3.56

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    78/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    -onsulta A consulta especiKca

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    79/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    L(N) %; ;D$C%S

    A deKni!o de Lin< to +$,ects referese a utili/ar consultas Lin< com

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    80/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    A solution e#plorer deve Kcar conforme a imagem a$ai#o.

    ' [ Agora vamos inserir um item no menu de nossa aplica!o6

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    81/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Inserir refer@ncia a S?stem.Te#t

    >eclarar um arra? de int6 c4amado %meros6 com um taman4o de 5posi;es e iniciali/e o arra? com os valores 96 9(6 )6 '3 e )1. + arra?deve ser protected e deve ser vis:vel em

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    82/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    A palavra var signiKca

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    83/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps termos inseridos esses cdigos6 vamos salvar nossa aplica!o erodar o sistema. Poderemos ver

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    84/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    L(N) to S)L

    LI%C to SCL " uma implementa!o do LI%C +.%*T mantendo o conceito de orienta!o a o$,etos= 7eralmente efetuamosa representa!o das ta$elas em classes em forma ataeader.

    '. eali/ando o mapeamento o$,etorelacional usando >ataSets e oacesso de dados atrav"s de >ataAdapters ou Ta$leAdapters.

    + o$,etivo do LI%C to SCL " reunir o mel4or das duas op;es de forma

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    85/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    + >ata-onte#t possui diversos m"todos ata-onte#t para mapear stored procedures e fun;es de forma escritor de +$,eto elacional pode ser feita gerenciando o cdigo do>ata-onte#t6 mas os gan4os em tempo esigner nos fornece aca$afa/endo com

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    86/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps termos adicionado o item o >escritor de +$,eto elacional N+&>esignerO ser apresentado e o arata.

    A interface va/ia corresponde ao >ata-onte#t esigner apresenta dois paneis. + primeiro e#i$e as classes deentidades e o segundo e#i$e os m"todos do >ata-onte#t. A Kgura a$ai#oapresenta o >ata-onte#t va/io.

    T@rgetTrust Treinamento & Tecnologia 81

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    87/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    0 [ + pr#imo passo " criarmos as classes LI%C to SCL ata$ase *#plorer6 as ta$elas

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    88/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    5 [ Aps termos preparado nosso >ata -onte#t estamos pronto parautili/ar as classes geradas pelo conte#to em nossa aplica!o. Para isso vamosadicionar uma classe c4amada -ategorias dentro da pasta >ata e vamos criaro m"todo get-ategorias. + cdigo do m"todo pode ser visto a$ai#o.

    Ao analisarmos o m"todo perce$emos

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    89/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    interface I*numera$le " um resultado Linata-onte#t.

    * o retorno " uma consulta LI%C

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    90/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Ao analisarmos o cdigo podemos visuali/ar a utili/a!o do ,oin6 do 4eree do order$?.

    A se!o ,oin fa/ a uni!o entre o$,etos a partir de campos c4aves6 no nossom"todo estamos ,untando o o$,eto Products com o o$,eto Product-ategories de cada o$,eto se,am iguais.

    A se!o 4ere Kltra os dados a partir de uma e#press!o6 em nossoe#erc:cio estamos Kltrando o o$,eto -ategories onde o -ategor?I> se,a igual aoidcategoria informado na c4amada do nosso m"todo.

    A se!o order$? orderna os dados da consulta6 no nosso caso estamosordenando a consulta pelo campo ProductI>.

    9 [ + pr#imo passo " adicionar um gridvie a nossa pgina6 vamosc4amar o gridvie de grdLivros e vamos atri$uir algum formato ao autoformatdo grid.

    )( [ Vamos adicionar um >ata Source ao nosso grid. + data source deveutili/ar o$,etos como fonte de dados e no select do datasource vamosselecionar o m"todo getProdutosPor-ategoria ataSource ir nos perguntar

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    91/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    )' [ -rie uma op!o no menu para acessar a pgina.Vamos rodar nossa aplica!o e note

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    92/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Utilizando L(N) to S)L em E camada!

    X comum termos dvidas referentes a utili/a!o de 3 camadas. Mas aKnalo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    93/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    con4ecimento de nosso $anco6 o m#imo AL6 criandomais uma a$stra!o at" o $anco de dados e gerenciando todo o acesso e a

    persist@ncia dos dados ,unto com o $anco.

    Agora vamos passar da teoria para a prtica preparando nossa aplica!opara tra$al4ar em 3 camadas e implementando um formulrio de cadastro deprodutos em 3 camadas e utili/ando LI%C to SCL como o responsvel pelacamada de dados.

    Vamos seguir os seguintes passos para e#ecutar essa implementa!o

    ) [ Adicione uma nova -lass Li$ra? em nossa aplica!o c4amada>ALZDalloon6 dentro desta >LL iremos implementar a camada de dados.

    ' [ Adicione uma nova -lass Li$rar? em nossa aplica!o c4amadaDLLZDalloon6 dentro desta >LL iremos implementar a camada de negcio.

    3 [ + pr#imo passo " montar as refer@ncias entre os pro,etos. %o nossosite vamos adicionar refer@ncia a dll DLLZDalloon e na dll DLLZDalloon vamosadicionar refer@ncia a dll >ALZDalloon.

    0 [ >evemos inserir refer@ncia ao S?stem.>ata.Lin< nos pro,etosDLLZDalloon e >ALZDalloon.

    5 [ Aps termos reali/ados as conKgura;es iniciais vamos montar anossa camada de dados. -rie um >ata-onte#t na >ALZDalloon6 c4amado deRd$Z>AL.d$ml e adicione todas as ta$elas do $anco Dalloon ao >ata-onte#tfa/endo com ata-onte#t deve Kcar conforme a imagem a$ai#o.

    T@rgetTrust Treinamento & Tecnologia 88

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    94/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps termos atuali/ado o >ata-onte#t aca$amos de terminar toda acamada de dados de nossa aplica!o. %ote como a utili/a!o do LI%C to SCLfacilita6 e muito6 a integra!o com $anco de dados. Se fosse utili/ado A>+.%*Tter:amos ll DLLZDalloon uma classe de negocio c4amadaRProdutos.

    8 [ Insira dentro da classe produtos um using para a >ll da camada dedados6 >ALZDalloon6 e insira as seguinte propriedades.

    ProductI> [ int]

    %ame [ String]

    >escription [ String]

    T@rgetTrust Treinamento & Tecnologia 89

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    95/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Price [ decimal]

    +n-atalogPromotion [$ool]

    +n>epartmentPromotion [ $ool]

    A classe produtos deve Kcar conforme a imagem a$ai#o aps inserirmosas propriedades.

    [ %a se

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    96/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    9 [ Aps ter criado o m"todo compile a DLL.

    )( [ + pr#imo passo " ir at" o e$ site e criar uma pgina e$ ata`e?%ames com a c4aveRProductI> Na c4ave primria da ta$ela de produtos.

    )' [ Aps termos inserido o grid vamos programar os m"todos paradisparar o >ataDind do gridvie. + cdigo deve ser inserido conforme a$ai#o.

    T@rgetTrust Treinamento & Tecnologia 91

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    97/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    )3 [ + pr#imo passo " montarmos os campos da interface6 parapodermos inserir e alterar registros na tela de cadastro de produtos. Acima dogridVie insira uma Tag 'U e colo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    98/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    + m"todo do $ot!o novo limpa todos os campos e marca o productI> com

    R( N/eroO. 2tili/aremos essa informa!o na implementa!o de nossa lgica6dentro da interface.

    )5 [ Agora vamos comear a gerar os m"todos de -2> dentro da nossacamada de negcio. + primeiro m"todo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    99/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    %a se " /ero. Sefor /ero ent!o " um registro para ser inserido6 sen!o ir ser um registro paraser alterado Na c4amada do m"todo Alteraregistro ser criada posteriormentenesse e#erc:cioO. Ao c4amarmos o m"todo inserir registro6 criamos um o$,etode negcio6 preenc4emos as propriedades dele com os valores de nossosacontroles de tela e c4amamos o m"todo inserir de nossa camada de negocio.

    )8 [ Aps os m"todos de inclus!o terem sido criados vamos criar umm"todo na classe de negcio responsvel pela altera!o de registros. + cdigo

    do m"todo pode ser visto a$ai#o.

    T@rgetTrust Treinamento & Tecnologia 94

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    100/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ) [ *m se

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    101/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    '( [ Agora

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    102/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    X importante salientar

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    103/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    $9erc8cio!

    ) [ 7ere um arra? de 5( numeros e implemente Kltros de pes

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    104/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    *spao para Anota;es

    T@rgetTrust Treinamento & Tecnologia 99

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    105/166

    ASP.%*T 3.5 Avanado

    1.1. Manuten!o de *stadoManuten!o de *stado

    T@rgetTrust Treinamento & Tecnologia 100

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    106/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    2ma das caracter:sticas das aplica;es e$ "

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    107/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Se!!ion

    2ma das formas mais simples de manuten!o de estado " atrav"s devariveis de sess!o. -ada varivel esta associada ao cooGie de identiKca!o dousurio. Por padr!o6 estas informa;es est!o arma/enadas no prprio processodo ASP.%*T. 2ma novidade da era .%*T foi a possi$ilidade de arma/enamentode informa;es de sess!o em um processo separado Num servidor de estadoOou at" mesmo em um S7D>. Isto trou#e novos 4ori/ontes ao desenvolvimentode aplica;es e$ em ASP.%*T6 pois simpliKcou a cria!o dos c4amados e$Forms6 termo

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    108/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    ' [ Insira uma la$el na pagFinal.asp#6 o nome da la$el deve serRl$lesultadoSession. + cdigo asp# da pagFinal pode ser visto a$ai#o.

    3 [ >@ dois cli

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    109/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps termos e#ecutado esse e#erc:cio6 rode o sistema6 navegue at" apagInicial e envie os dados para o outro formulrio. %ote

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    110/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    6idden>ield

    2ma das formas mais simples e antigas de manter estado dentro de umamesma pgina " atrav"s de campos ocultos. + valor atri$u:do ao controle "mantido na propriedade value entre post $acGs6 por"m n!o " renderi/ado napgina. Image um idenField como uma te#tDo# invis:vel

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    111/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Cuer?String

    +utro modelo clssico de manuten!o de estado " o atrav"s do uso de

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    112/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Aps ter inserido os cdigo rode a aplica!o6 navegue at" a pagInicial6

    escreva algum te#to na te#t$o# Rt#tCue?String6 cli

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    113/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    uma la$el dentro da pagInicial6 para mostrar

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    114/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    Voc@ pode ser perguntar como foi poss:vel recuperar o valor ,

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    115/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    $9erc8cio!

    ) [ 2tili/e sess;es para arma/enar o >ataSource de um gridvie ecarregue o grid vie com o data source a cada re

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    116/166

    $rror4 U!e te 6ome tab to al7 %8tulo 1 to te te9t tat 7ou :antto aear ere.

    *spao para Anota;es

    T@rgetTrust Treinamento & Tecnologia 111

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    117/166

    ASP.%*T 3.5 Avanado

    8.8. e$ Servicese$ Services

    TbrgetTrust Treinamento Tecnologia 112

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    118/166

    e$ Services

    ;b

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    119/166

    e$ Services

    'eb Service!

    ; ?ue @ um 'eb !erviceA

    2m e$ service " um componente utili/ado na integra!o de sistemas deplataformas diferentes. +s e$ services fornecem uma facilidade para clientese fornecedores e podem ser vistos como um componente de alcance glo$al.

    +s e$ services usam o protocolo padr!o TTP N?perte#t TransferProtocolO para transmitir dados e um formato de dados portvel

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    120/166

    e$ Servicesservice e um ar

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    121/166

    e$ Services

    Criando e utilizando um 'eb Service

    Vamos implementar em nossa aplica!o um e$ service local. Para isso

    vamos seguir os passos a$ai#o.) [ Insira duas pastas em nosso e$ site. 2ma pasta c4amada

    Pagese$Service6 onde Kcar!o as pginas

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    122/166

    e$ Servicesum Dutton. 2tili/e o cdigo a$ai#o para montar seu asp#. + o$,etivo do e$form " apresentar duas te#t$o# para

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    123/166

    e$ Services

    Camando um ,L 'eb Service or 6%%#

    + processo de c4amar um e$ Service por TTP6 tam$"m c4amado de

    acesso direto6 " tipicamente usado por desenvolvedores em tempo dedesenvolvimento para identiKcar e testar e$ Services. + acesso diretopermite

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    124/166

    e$ Services

    A especiKca!o do 2>>I deKne uma maneira de pu$licar e procurar

    informa;es a respeito de um e$ Service e a respectiva empresa

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    125/166

    e$ Services

    Utilizando um 'ebService e9terno

    Vamos implementar em nossa aplica!o a utili/a!o de um e$Service

    e#terno. Siga os passos a$ai#o para e#ecutar este e#erc:cio.) [ Insira um e$ form6 na pasta Pagese$Service6 c4amado

    2tili/andoS*#terno.asp#.

    ' [ -li

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    126/166

    e$ Services0 [ >ando se

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    127/166

    e$ Services

    %ote

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    128/166

    e$ Services

    [ >@ dois cli

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    129/166

    e$ Services

    $9erc8cio!

    *stes e#erc:cios vis!o revisar o contedo visto ao longo deste cap:tulo

    so$re HML e$ Services.). +nde devese procurar informa;es so$re e$ Services dispon:veis=

    '. -omo poderia se testar um e$ Service rapidamente para ver osm"todos e parQmetros esenvolva um e$ service

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    130/166

    e$ Services

    *spao para Anota;es

    T@rgetTrust Treinamento & Tecnologia 125

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    131/166

    ASP.%*T 3.5 Avanado

    .. 2tili/ando AEAH no ASP.%*T2tili/ando AEAH no ASP.%*T

    TbrgetTrust Treinamento Tecnologia 126

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    132/166

    2tili/ando AEAH no ASP.%*T

    ;b

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    133/166

    2tili/ando AEAH no ASP.%*T

    ; ?ue @ "" A

    Por AEAH entendemos Ass?nc4ronous EavaScript And HML6

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    134/166

    2tili/ando AEAH no ASP.%*T' [ Adicione um e$ form c4amado pagA,a#7eral.asp# dentro da pasta

    criadaY

    3 [ Adicione um item no menu da aplica!o uas la$els6 umate#tDo# e um Dutton. + o$,etivo " digitar um te#to6 dar uma pausa noprocessamento e apresentar o te#to digitado na la$el de resultado6 dessaforma poderemos ver a pgina sendo carregada de forma normal e a pginasendo carregada pelo A,a#. 2tili/e o cdigo a$ai#o como $ase para montar oasp#.

    5 [ >@ dois cli

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    135/166

    2tili/ando AEAH no ASP.%*T

    + controle ScriptManager

    Toda a pgina

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    136/166

    2tili/ando AEAH no ASP.%*T

    + controle 2pdatePanel

    2ma das grandes vantagens dos controles AEAH do ASP.%*T "

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    137/166

    2tili/ando AEAH no ASP.%*TAps ter e#ecutado essa a!o rode o sistema6 digite algo e cli

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    138/166

    2tili/ando AEAH no ASP.%*T+ controle de Timer pode ser utili/ado em aplica;es de tr@s cenrios.

    Atuali/ar periodicamente o contedo de um 2pdatePanel sematuali/ar a pgina inteira

    *#ecutar uma determinada fun!o de post$acG no servidor a cada

    intervalo deKnido no Timer

    Postar a pgina para o servidor de maneira s:ncrona6 fa/endo com

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    139/166

    2tili/ando AEAH no ASP.%*T

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    140/166

    2tili/ando AEAH no ASP.%*T+ m"todo utili/ado " o egister-lientScriptDlocG6 @ dois cliepois rode a aplica!o6cli

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    141/166

    2tili/ando AEAH no ASP.%*T

    "" Control %oolFit

    + AEAH -ontrol ToolGit " um pacote adicional

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    142/166

    2tili/ando AEAH no ASP.%*T

    T@rgetTrust Treinamento & Tecnologia 137

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    143/166

    2tili/ando AEAH no ASP.%*T

    Utilizando controle! do "entro do ToolGit temos diversos controles6 mas para apresentarmos a

    facilidades de utili/a!o desses controles6 vamos aprender a utili/ar 3controles6 o Validator-allout*#tender6 o -ollapsi$lePanel*#tender e oPopup-ontrol*#tender.

    Para utili/ar os outros controles pertencentes ao A,a# -ontrol ToolGit6consulte a documenta!o

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    144/166

    2tili/ando AEAH no ASP.%*T

    %ote @ dois cli

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    145/166

    2tili/ando AEAH no ASP.%*T

    -ollapsi$lePanel*#tender

    + controle -ollapsi$lePanel*#tender tem a funcionalidade de Kcarvinculado com pain"is Nou com

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    146/166

    2tili/ando AEAH no ASP.%*T*stamos utili/ando isso em nosso e#erc:cio para destacar as informa;es

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    147/166

    2tili/ando AEAH no ASP.%*T

    %ote

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    148/166

    2tili/ando AEAH no ASP.%*T

    T@rgetTrust Treinamento & Tecnologia 143

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    149/166

    2tili/ando AEAH no ASP.%*T

    $!ao ara anotae!

    9.9. eJectioneJection

    T@rgetTrust Treinamento & Tecnologia 144

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    150/166

    2tili/ando AEAH no ASP.%*T

    ;b

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    151/166

    2tili/ando AEAH no ASP.%*T

    ; ?ue @ eectionA

    eJection " um con,unto de classes

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    152/166

    2tili/ando AEAH no ASP.%*TVeriK

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    153/166

    2tili/ando AEAH no ASP.%*T

    T@rgetTrust Treinamento & Tecnologia 148

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    154/166

    2tili/ando AEAH no ASP.%*T

    %rabalando com %io!

    A classe S?stem.T?pe " central para todas as a;es de reJe#!o. *la

    representa um tipo gerenciado6 um conceito

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    155/166

    2tili/ando AEAH no ASP.%*T

    Utilizando eection em no!!a alicao

    At" agora vimos $astante teorias so$re a utili/a!o de reJe#!o6 seus

    o$,etos e seus gan4os6 agora vamos implementar o uso de reJection em nossaaplica!o.

    A implementa!o ser a utili/a!o de reJection para preenc4er oscontroles da tela6 genericamente6 a partir de um arra?

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    156/166

    2tili/ando AEAH no ASP.%*T

    3 [ Insira os m"todos de reJe#!o na classe DasePaginas6 o o$,etivo dessesm"todos " rece$er um o$,eto e preenc4er gen"ricamente6 utili/ando reJe#!o6os controles te#tDo#6 da tela6

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    157/166

    2tili/ando AEAH no ASP.%*T

    0 [ -rie uma pasta na aplica!o c4amada eJection e dentro desta pastainsira um e$ form c4amado pageJection.asp#.

    5 [ Adicione o segundo cdigo no evento PageZLoad da pgina. *stecdigo ir criar uma fonte de dados faGe para o nosso e#erc:cio.

    T@rgetTrust Treinamento & Tecnologia 152

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    158/166

    2tili/ando AEAH no ASP.%*T

    1 [ Arrume a 4erana do e$ form6 agora ao inv"s dele 4erdar deS?stem.e$.2I.Page ele ir 4erdar de DasePaginas.

    8 [ Insira os controles a$ai#o no asp# da pgina.

    T@rgetTrust Treinamento & Tecnologia 153

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    159/166

    2tili/ando AEAH no ASP.%*T

    [ >@ dois cli

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    160/166

    2tili/ando AEAH no ASP.%*T

    $!ao ara anotae!

    T@rgetTrust Treinamento & Tecnologia 155

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    161/166

    2tili/ando AEAH no ASP.%*T

    )(.)(. >istri$uindo sua>istri$uindo suaAplica!oAplica!o

    T@rgetTrust Treinamento & Tecnologia 156

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    162/166

    2tili/ando AEAH no ASP.%*T

    ;b

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    163/166

    2tili/ando AEAH no ASP.%*T

    3i!tribuindo !ua "licao "S#.N$%

    %ormalmente todo o softare6 depois de Knali/ado6 deve ser distri$u:do.

    Aplica;es convencionais na sua maioria s!o distri$u:das atrav"s deinstaladores espec:Kcos6 o

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    164/166

    2tili/ando AEAH no ASP.%*T

    Pu$licando sua aplica!o

    A ferramenta de pu$lica!o cria uma cpia pr"compilada de seu e$ site.Para acionlo $asta clicar com o $ot!o direito no e$ site e selecionar a op!oRPu$lis4... conforme a imagem a$ai#o.

    Ser apresentada uma ,anela onde iremos selecionar a op!o depu$lica!o

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    165/166

    2tili/ando AEAH no ASP.%*T

    -ada op!o ter suas respectivas conKgura;es e aps devemos clicar emPu$lis4 e o Visual Studio Kcar encarregado de reali/ar o resto do processo.

    T@rgetTrust Treinamento & Tecnologia 160

  • 8/10/2019 ASP.net 4.0 Avancado Versao Final

    166/166

    2tili/ando AEAH no ASP.%*T

    $!ao ara "notae!