Você está na página 1de 39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial
Search ASP.NET Entrar | Join

Casa

Comear

Download

Pginas da Web

Web Forms

MVC

Solues

Comunidade

Fruns

Incio / Whitepapers / ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web


Este documento fornece uma viso geral de muitos dos novos recursos para ASP.NET que esto includos no the.NET Quadro 4 e no Visual Studio 2010. Download Whitepaper

Contedo Servios Bsicos de Web.config arquivo Refactoring Extensible cache de sada Aplicativos Auto-Start Web permanentemente Redirecionando uma pgina de encolhimento do Estado da Sesso ampliando o leque de URLs admissvel Extensible Pedido de Validao de Cache de Objeto e Objeto Cache extensibilidade Extensible HTML, URL, e cabealho HTTP Encoding Monitoramento de Desempenho Individual para aplicaes em um nico processo de trabalho Multi-Targeting Ajax jQuery Includo com Web Forms e MVC Content Delivery Rede Suporte Scripts ScriptManager Explcitos Web Forms Definir Meta Tags com as Page.MetaKeywords e propriedades Page.MetaDescription Ativando o estado de exibio para controles individuais Alteraes recursos do navegador de roteamento em ASP.NET 4 IDs configurao do cliente Persistncia de seleo de linha em controles de dados ASP.NET Chart Control Filtrando dados com o QueryExtender Controle de cdigo HTML codificado Expresses alteraes de projeto de modelo CSS Melhorias ocultando elementos div Cerca de Campos Escondidos render uma tabela externa para Templated controles ListView Controle Melhorias CheckBoxList e RadioButtonList Controle Melhoramentos do Menu de Controle Melhorias Assistente e CreateUserWizard Controles 56 ASP.NET MVC reas de Suporte Data-Anotao de Suporte Validao Atributo Ajudantes Templated Dados dinmicos permitindo que os dados dinmicos para projetos existentes declarativas DynamicDataManager Controle de sintaxe de entidade Modelos Novos modelos de campo para URLs e endereos de email de criao de ligaes com o Controle DynamicHyperLink suporte para a herana no modelo de dados Suporte para muitos-para-muitos (Entity Framework Only) Atributos de seu controle Enumeraes Display e Suporte Suporte avanado para Filtros Visual Studio 2010 Melhorias Desenvolvimento Web melhorada CSS Compatibilidade

www.asp.net/whitepapers/aspnet4

1/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

HTML e JavaScript trechos JavaScript IntelliSense Melhorias Implantao de Aplicativos Web com o Visual 2010 Estdio Web Embalagem Web.config Transformao implantao de banco One-Clique em Publicar para Aplicaes Web Resources Renncia

Servios Bsicos de
ASP.NET 4 introduz uma srie de caractersticas que melhoram os servios principais do ASP.NET, como o cache de sada e de estado de sesso de armazenamento.

Refactoring arquivo Web.config


O W b c n i arquivo que contm a configurao para um aplicativo da Web tem crescido e.ofg consideravelmente ao longo dos ltimos lanamentos de poucos. NET Framework como novos recursos foram adicionados, como Ajax, roteamento e integrao com o IIS 7. Isso tornou mais difcil para configurar ou iniciar novos aplicativos da Web sem uma ferramenta como o Visual Studio. Em. O NET Framework 4, os elementos de configurao importantes foram movidos para o m c i e c n i ahn.ofg arquivo, e as aplicaes agora herdam estas configuraes. Isso permite que o W b c n i arquivo e.ofg no ASP.NET 4 aplicaes, quer estar vazio ou conter apenas as seguintes linhas, que especificam para o Visual Studio qual a verso do quadro da aplicao tem como alvo: < xl ? m

Cache de Sada Extensvel


Desde o tempo que o ASP.NET 1.0 foi lanado, o cache de sada permitiu que os desenvolvedores para armazenar a sada gerada de pginas, controles e respostas HTTP na memria. Em solicitaes da Web subseqentes, o ASP.NET pode servir contedo mais rapidamente, recuperando a sada gerada a partir da memria, em vez de regenerar a sada do zero. No entanto, esta abordagem tem uma limitao - contedo gerado sempre tem que ser armazenados na memria, e em servidores que esto enfrentando o trfego pesado, a memria consumida pelo cache de sada pode competir com as demandas de memria de outras partes de um aplicativo da Web. ASP.NET 4 acrescenta um ponto de extensibilidade para o cache de sada que permite que voc configure um ou mais personalizadas de cache de sada fornecedores. Cache de sada provedores podem usar qualquer mecanismo de armazenamento para manter o contedo HTML. Isto torna possvel criar personalizados de cache de sada para os prestadores de diversos mecanismos de persistncia, que podem incluir discos locais ou remotos, de armazenamento em nuvem, e os motores de cache distribudo. Voc cria um provedor de cache de sada personalizado como uma classe que deriva da nova System.Web.Caching.OutputCacheProvider tipo. Voc pode ento configurar o provedor no W b c n i e.ofg arquivo usando o novo provedores de subseo da outputCache elemento, como mostrado no exemplo a seguir:

DsCcervdr"/ ikahPoie > < poies / rvdr> < otuCce / uptah> <ah / cce >

Por padro, no ASP.NET 4, todas as respostas HTTP, pginas prestados e controles de usar o cache de sada na memria, como mostrado no exemplo anterior, onde o defaultProvider atributo definido para AspNetInternalProvider. Voc pode alterar o provedor padro de sada de cache utilizado para uma aplicao Web, especificando um nome de provedor diferente para defaultProvider . Alm disso, voc pode selecionar diferentes de cache de sada por prestadores de controle e por pedido. A maneira mais fcil de escolher um fornecedor de cache de sada diferente para diferentes controles de usurio Web est a faz-lo declarativamente usando o novo providerName atributo em uma diretiva de controle, como mostrado no exemplo a seguir:

www.asp.net/whitepapers/aspnet4

2/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

< @OtuCceDrto ="0 VrBPrm="oe poieNm ="ikah"> % uptah uain 6" ayyaa Nn" rvdrae DsCce%

Especificando um provedor de cache sada diferente para uma solicitao HTTP requer um pouco mais trabalho. Em vez de declarativamente especificar o provedor, voc substituir o novo GetOuputCacheProviderName mtodo no G o a . s xarquivo para especificar programaticamente o lblaa fornecedor a utilizar para uma solicitao especfica. O exemplo a seguir mostra como fazer isso. pbi oerd srn GtuptahPoieNm(tpotx cnet ulc vrie tig eOtuCcervdraeHtCnet otx) { i (otx.eus.ahEdWt(Avne.sx) f cnetRqetPt.nsih"dacdap") rtr "ikah" eun DsCce; es le rtr bs.eOtuCcervdraecnet; eun aeGtuptahPoieNm(otx) }

Com a adio de sada cache-extensibilidade provedor para ASP.NET 4, agora voc pode buscar mais agressivos e mais inteligentes de sada de cache de estratgias para os seus sites. Por exemplo, agora possvel armazenar em cache os "Top 10" pginas de um site na memria, enquanto o cache de pginas que recebem menor trfego no disco. Alternativamente, voc pode armazenar em cache todas as combinaes variam por uma pgina processada, mas usar um cache distribudo de modo que o consumo de memria descarregado a partir de servidores Web front-end.

Auto-Start Aplicaes Web


Alguns aplicativos da Web precisa carregar grandes quantidades de dados ou executar o processamento de inicializao caro antes de servir o primeiro pedido. Em verses anteriores do ASP.NET, para essas situaes que voc teve de elaborar abordagens personalizadas para "acordar" um aplicativo ASP.NET e, em seguida, executar o cdigo de inicializao durante o Application_Load mtodo no G o a . s xarquivo. lblaa Um recurso de escalabilidade novo chamado auto-estrela t que diretamente enderea este cenrio est disponvel quando ASP.NET 4 roda em IIS 7.5 no Windows Server 2008 R2. O recurso de incio automtico fornece uma abordagem controlada para a inicializao de um pool de aplicativos, inicializao de uma aplicao ASP.NET, e depois de aceitar pedidos HTTP.

Aplicativos do IIS Mdulo Warm-Up para IIS 7.5 A equipe do IIS lanou a primeira verso do teste beta do aplicativo Mdulo Warm-Up para o IIS 7.5. Isto faz aquecer suas aplicaes ainda mais fcil do que o anteriormente descrito. Em vez de escrever cdigo personalizado, voc pode especificar as URLs de recursos para a execuo antes da aplicao Web aceita solicitaes de rede. Este aquecimento ocorre durante a inicializao do servio IIS (se voc configurou o pool de aplicativos IIS como AlwaysRunning ) e quando um processo de trabalho IIS recicla. Durante a reciclagem, o processo de trabalho IIS velho continua a executar os pedidos at o processo de trabalho recm-gerado est totalmente aquecido, para que os aplicativos no tm quaisquer interrupes ou outros problemas devido a caches no condicionadas. Note-se que este mdulo funciona com qualquer verso do ASP.NET, comeando com a verso 2.0. Para mais informaes, consulte Aplicao Warm-Up no site da IIS.net. Para uma explicao passo a passo que mostra como usar o recurso de warm-up, consulte Introduo ao mdulo de 7,5 Aplicao IIS Warm-Up no site da IIS.net.

Para usar o recurso de auto-start, um administrador do IIS define um pool de aplicativos no IIS 7.5 para ser iniciado automaticamente usando a seguinte configurao no a p i a i n o t c n i plctoHs.ofg arquivo: <plctopos apiainol> <d nm ="yplctoPo" Satoe="lasunn" / ad ae MApiainol trMd AwyRnig > < apiainol> / plctopos

Porque uma piscina nica aplicao pode conter mltiplas aplicaes, voc especificar aplicaes individuais a serem iniciados automaticamente usando a seguinte configurao no a p i a i n o t c n i arquivo: plctoHs.ofg

Ocned aiinloto dcoa > < apiain / plcto>

www.asp.net/whitepapers/aspnet4

3/39

06/05/12
< st> / ie < st> / ie

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

< -Cned aiinl! oto dcoa > <evcatsatrvdr> srieuotrpoies <d nm ="rwrMCce ad ae Peamyah" tp ="yaepc.utmntaiaineMLbay / io MNmsaeCsoIiilzto yirr" > < srieuotrpoies> / evcatsatrvdr

Quando um servidor IIS 7.5 frio iniciado ou quando um pool de aplicativos indivduo reciclado, o IIS 7.5 usa as informaes no a p i a i n o t c n i arquivo para determinar quais aplicativos plctoHs.ofg Web precisa ser iniciado automaticamente. Para cada aplicativo que est marcado para incio automtico, IIS7.5 envia uma solicitao para ASP.NET 4 para iniciar o aplicativo em um estado em que o pedido temporariamente no aceita solicitaes HTTP. Quando se est neste estado, o ASP.NET instancia do tipo definido pelo serviceAutoStartProvider atributo (como mostrado no exemplo anterior) e pe em seu ponto de entrada do pblico. possvel criar um tipo de gesto de arranque automtico com o ponto de entrada necessrio atravs da aplicao do IProcessHostPreloadClient interface, como mostrado no seguinte exemplo:

Eeua aiiilzo xctr ncaia. } }

Aps o seu cdigo de inicializao executado no Preload mtodo e retorna o mtodo, o aplicativo ASP.NET est pronto para processar solicitaes. Com a adio de auto-start para o IIS 0,5 e ASP.NET 4, agora voc tem uma abordagem bem definida para a realizao de inicializao do aplicativo caro, antes de processar a solicitao HTTP em primeiro lugar. Por exemplo, voc pode usar o recurso de auto-arranque novo para inicializar um aplicativo e, em seguida, sinalizar um balanceador de carga que o aplicativo foi inicializado e est pronto para aceitar o trfego HTTP.

Permanentemente Redirecionando uma pgina


prtica comum em aplicaes Web para mover pginas e contedo contrrio ao longo do tempo, o que pode levar a uma acumulao de links obsoletos em motores de busca. No ASP.NET, os desenvolvedores tm tradicionalmente tratado solicitaes para URLs antigas usando usando o Response.Redirect mtodo para encaminhar uma solicitao para a nova URL. No entanto, o redirecionamento questes um mtodo HTTP 302 encontrados (temporria redirecionamento) resposta, o que resulta em uma viagem extra rodada HTTP quando os usurios tentam acessar as URLs antigas. ASP.NET 4 acrescenta um novo RedirectPermanent mtodo auxiliar que facilita a emisso de HTTP 301 Moved Permanently respostas, como no exemplo a seguir: RdrcPraet(" nwah/frlcnetap") eietemnn / ept oodotn.sx ;

Os motores de busca e outros agentes de utilizador que reconhecem redirecionamentos permanentes ir armazenar o novo URL que est associado com o contedo, o que elimina a viagem desnecessria rodada feita pelo navegador para redirecionamentos temporrios.

Reduzindo o estado da sesso


ASP.NET oferece duas opes de padro para armazenamento de estado da sesso atravs de uma Web farm: um provedor de estado da sesso que invoca um fora-de-servidor de estado da sesso, e um provedor de estado da sesso que armazena dados em um banco de dados Microsoft SQL Server. Porque ambas as opes envolvem informaes de estado fora do processo armazenar um aplicativo da Web do trabalhador, o estado da sesso deve ser serializado antes de ser enviado para armazenamento remoto. Dependendo da quantidade de informao, um programador salva no estado da sesso, o tamanho dos dados em srie pode crescer muito grande. ASP.NET 4 introduz uma nova opo de compresso para ambos os tipos de fora de processosesso-estado provedores. Quando o compressionEnabled opo de configurao mostrado no exemplo a seguir definido como verdadeiro , o ASP.NET ir comprimir (e descomprimir) o estado da sesso serializado usando o. NET Framework System.IO.Compression.GZipStream classe. <esoSae Ssintt md ="qSre" oo Slevr

www.asp.net/whitepapers/aspnet4

4/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

sloncintig="aasuc =dsre;IiilCtlg=apesae qCnetoSrn dt ore bevr nta aao snttt" alwutmqDtbs ="re loCsoSlaaae tu" cmrsinnbe ="re opesoEald tu" / >

Com a simples adio do atributo novo para o W b c n i de arquivos, aplicaes com ciclos de CPU e.ofg de reposio de servidores da Web podem realizar redues substanciais no tamanho dos seriados de estado de sesso de dados.

Alargar o leque de URLs admissvel


ASP.NET 4 introduz novas opes para expandir o tamanho de URLs aplicao. As verses anteriores do ASP.NET constrangido comprimentos caminho de URL para 260 caracteres, com base no limite NTFS file-path. Em ASP.NET 4, voc tem a opo de aumentar (ou diminuir) este limite, conforme apropriado para as suas aplicaes, utilizando dois novos HttpRuntime atributos de configurao. O exemplo a seguir mostra esses novos atributos. <tputm mxrLnt ="6" mxurSrnLnt ="08 / HtRnie aUlegh 20 aQeytigegh 24" >

Para permitir que os caminhos mais longos ou mais curtos (a parte do URL que no inclui protocolo, nome do servidor e de seqncia de consulta), modificar o maxUrlLength atributo. Para permitir que seqncias de consulta mais ou menos longos, modificar o valor da maxQueryStringLength atributo. ASP.NET 4 tambm permite que voc configure os caracteres que so usados seleo carter pela URL. Quando o ASP.NET encontra um caractere invlido na poro do caminho de uma URL, que rejeita o pedido e emite um erro HTTP 400. Nas verses anteriores do ASP.NET, as verificaes de caracteres de URL foram limitados a um conjunto fixo de caracteres. Em ASP.NET 4, voc pode personalizar o conjunto de caracteres vlidos usando o novo requestPathInvalidChars atributo do httpRuntime elemento de configurao, como mostrado no exemplo a seguir: <tputm rqetahnaiCas=",,*% &: \ HtRnie eusPtIvldhr <> ,, ,, " / >

Por padro, o requestPathInvalidChars atributo define oito caracteres como invlido. (Na cadeia que atribudo a requestPathInvalidChars por padro , a menos que (<), maior que (>) e comercial (&) caracteres so codificados, porque o W b c n i arquivo um arquivo XML.) Voc pode personalizar e.ofg o conjunto de caracteres invlidos, conforme necessrio.

Nota ASP.NET 4 sempre rejeita caminhos de URL que contenham caracteres no intervalo ASCII de 0x00 a 0x1F, pois so personagens URL invlidos, conforme definido na RFC 2396 do IETF ( http://www.ietf.org/rfc/rfc2396. txt ). Em verses do Windows Server que executam o IIS 6 ou superior, o driver de dispositivo http.sys protocolo rejeita automaticamente URLs com esses personagens.

Validao de solicitao Extensible


ASP.NET validao de solicitao de entrada de dados procura solicitao HTTP para cordas que so comumente usados cross-site scripting (XSS). Se as seqncias de XSS potenciais so encontrados, em a validao de solicitao sinaliza a cadeia suspeito e retorna um erro. A validao de solicitao builtin retorna um erro apenas quando encontra as cordas mais comuns usados ataques XSS. As em tentativas anteriores de fazer a validao XSS mais agressiva resultou em muitos falsos positivos. No entanto, os clientes podem querer a validao de solicitao que mais agressivo, ou, inversamente, pode querer intencionalmente simplificar os controlos de XSS para pginas especficas ou para determinados tipos de solicitaes. No ASP.NET 4, o recurso de validao de solicitao foi feita extensvel para que voc pode usar a lgica pedido de validao personalizado. Para estender a validao de solicitao, voc cria uma classe que deriva da nova System.Web.Util.RequestValidator tipo, e voc configurar o aplicativo (no httpRuntime seo do W b c n i arquivo) para usar o tipo personalizado. O exemplo a seguir e.ofg mostra como configurar uma classe de pedido de validao de costume: <tputm rqetaiainye="ape.yaiao,Smls / HtRnie eusVldtoTp SmlsMVldtr ape" >

O novo requestValidationType atributo requer um padro. NET Framework seqncia identificador do tipo que especifica a classe que fornece a validao de solicitao personalizado. Para cada solicitao, o ASP.NET chama o tipo personalizado para processar cada pedao de dados da solicitao HTTP de entrada. A URL de entrada, todos os cabealhos HTTP (cookies e cabealhos personalizados), e o corpo da entidade esto disponveis para inspeo por uma classe personalizada

www.asp.net/whitepapers/aspnet4

5/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

pedido de validao como mostrado no exemplo a seguir: pbi casCsoRqetaiain:Rqetaiao ulc ls utmeusVldto eusVldtr { poetdoerd bo IVldeusSrn( rtce vrie ol saiRqettig HtCnetcnet srn vle tpotx otx, tig au, Rqetaiainorerqetaiainore eusVldtoSuc eusVldtoSuc, srn cletoKy tig olcine, otitvldtoFiuene) u n aiainalrIdx {.} .. }

Para os casos onde voc no quer para inspecionar um pedao de dados HTTP de entrada, a classe de pedido de validao pode cair para trs para deixar o padro ASP.NET execuo de validao de solicitao simplesmente chamando base.IsValidRequestString.

Cache de objetos e extensibilidade cache de objetos


Desde sua primeira verso, o ASP.NET inclui um cache de objeto poderosa na memria ( System.Web.Caching.Cache ). A implementao de cache tem sido to popular que tem sido utilizado em aplicaes no-Web. No entanto, estranho para um aplicativo Windows Forms ou WPF para incluir uma referncia S s e . e . l apenas para ser capaz de usar o cache do objeto ASP.NET. ytmWbdl Para fazer cache disponveis para todas as aplicaes, o. NET Framework 4 introduz um novo conjunto, um novo namespace, alguns tipos de base, e uma implementao de cache de concreto. O novo S s e . u t m . a h n . l montagem contm uma API de cache novo na System.Runtime.Caching ytmRnieCcigdl namespace. O namespace contm dois conjuntos principais de classes: Tipos abstratos que fornecem a base para a construo de qualquer tipo de implementao de cache personalizado. Um concreto na memria implementao de cache objeto (o System.Runtime.Caching.MemoryCache classe). O novo MemoryCache classe modelada de perto o cache do ASP.NET, e compartilha muito da lgica interna mecanismo de cache com o ASP.NET. Embora as APIs de cache pblico em System.Runtime.Caching foram atualizados para apoiar o desenvolvimento de caches personalizados, se voc tiver usado o ASP.NET Cache objeto, voc encontrar conceitos familiares em novas APIs. Uma discusso em profundidade do novo MemoryCache classe e APIs base de apoio exigiria um documento inteiro. No entanto, o exemplo a seguir d uma idia de como a API novo cache funciona. O exemplo foi escrito para uma aplicao Windows Forms, sem qualquer dependncia Sse.e.l . ytmWbdl piaa vzobne_lc (ojt rmtne, Eetrse) rvd ai tGtCik beo eeet vnAg { //Otruarfrni pr aiscaMmrCcepd. be m eeca aa ntni eoyah aro //Nt qevc pd cirMmrCcemlil ()dnr oe u o oe ra eoyah tpa s eto //d u ioalctv. e m nc piaio OjcCced cce= MmrCce.pd ; betah e ah eoyah aro //Nseeepo occeamznrocned d uasrn d aqio et xml, ah raea oto e m tig e ruv flCnet =Cce["ieotns ] cm cdi ; ieotns ah flCnet" oo aea //S ocned d aqionoetoaulet n cce e sgia e oto o ruv s tamne o ah, m eud, //o cnedssoldsd dsoeclcd e occe s oto io o ic ooao m ah. s (flCnet = nl ) e ieotns = uo { //U ojt Ccetmoiydtmtdsa psd cce m beo ahIePlc e oa s ea e ah /dpnca/emtddsd eprod ccerlcoaoauaia eedni eaao e xia e ah eaind m nc etaa/cce/ nrd ah . Ccetmoiypltc = nv Ccetmoiy(; ahIePlc oia oo ahIePlc ) //Cnturaifra ncsi pr ciruadpncad aqio osri nomo eesra aa ra m eedni e ruv. //Nsecs,peiao aea ocmnod aqion dso et ao rcsms pns aih o ruv o ic. Lsaflpts= nv Lsa(; it ieah oa it ) flpts.Aiinr(":\\dt.x") ieah dcoa c aatt ; //N AInv cce a dpnca socaao "oioe mdr. a P oo ah, s eednis hmds mntrs ua" //Pr et eepoqeeo aetaad ccepr sratmtcmneepru aa se xml urms nrd e ah aa e uoaiaet xio //s ocned sbeamdnad dso AHsFlCagMntrfree e oto or ua e ic. otiehneoio onc //es fninldd. sa ucoaiae pltc .CagMntr .Aiinr(nv HsFlCagMntr(flpts); oia hneoios dcoa oo otiehneoio ieah ) //bsa oaqiod cned ucr ruv o oto flCnet = Aqio.RaAlet(":\\dt.x") ieotns ruv edlTx c aatt ;

www.asp.net/whitepapers/aspnet4

6/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial
//Eetoamznrocned d aqiod n cce n raea oto o ruv e o ah d cce.St("ieotns ,flCnet ,pltc ) e ah e flCnet" ieotns oia ; } Msaeo .Msrr(flCnet ) esgBx ota ieotns ;

Extensible HTML, URL e HTTP Encoding cabealho


Em ASP.NET 4, voc pode criar rotinas de codificao personalizados para os seguintes comuns texto de codificao-tarefas: Codificao de HTML. Codificao de URL. Codificao atributo HTML. Codificao cabealhos HTTP de sada. Voc pode criar um codificador personalizado, decorrentes da nova System.Web.Util.HttpEncoder tipo e em seguida, configurar o ASP.NET para usar o tipo personalizado no httpRuntime seo do W b c n i arquivo, como mostrado no exemplo a seguir: e.ofg <tputm ecdrye="ape.yutmnoe,Smls / HtRnie noeTp SmlsMCsoEcdr ape" >

Depois de um codificador personalizado foi configurado, o ASP.NET automaticamente chama a implementao de codificao personalizado sempre que mtodos de codificao pblicas dos System.Web.HttpUtility ou System.Web.HttpServerUtility classes so chamados. Isso permite que uma parte de uma equipe de desenvolvimento Web criar um codificador personalizado que implementa codificao de carter agressivo, enquanto o resto da equipe de desenvolvimento Web continua a utilizar o ASP.NET pblico codificao APIs. Por centralmente a configurao de um codificador personalizado na httpRuntime elemento, voc est garantido que todas as chamadas de codificao de texto por parte do pblico ASP.NET codificao APIs so encaminhados atravs do codificador personalizado.

Monitoramento de desempenho para aplicativos individuais em um nico processo de trabalho


A fim de aumentar o nmero de sites que podem ser hospedados em um nico servidor, muitos hosters executar vrios aplicativos ASP.NET em um processo nico trabalhador. No entanto, se vrios aplicativos usam um processo nico trabalhador comum, difcil para os administradores do servidor para identificar uma aplicao individual, que est com problemas. ASP.NET 4 utiliza a funcionalidade de recursos de monitoramento novo introduzido pela CLR. Para habilitar essa funcionalidade, voc pode adicionar o trecho seguinte configurao XML para o a p e . o f garquivo de configurao. sntcni < xl ? m

Nota O a p e . o f garquivo est no diretrio onde o. NET Framework est sntcni instalado. No o W b c n i arquivo. e.ofg

Quando o appDomainResourceMonitoring recurso foi habilitado, dois novos contadores de desempenho esto disponveis na categoria performance "ASP.NET Applications": % Processor Time Gerenciado e gerenciado memria usada . Ambos os contadores de desempenho utilizar o novo domnio do aplicativo CLR recurso de gerenciamento de recursos para controlar o tempo de CPU estimados e gerenciados a utilizao da memria de aplicaes ASP.NET individuais. Como resultado, com ASP.NET 4, os administradores tm agora uma viso mais granular para o consumo de recursos de aplicativos individuais em execuo em um processo nico trabalhador.

Multi-Targeting
www.asp.net/whitepapers/aspnet4 7/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

Voc pode criar um aplicativo que tem como alvo uma verso especfica do. NET Framework. No ASP.NET 4, um novo atributo na compilao elemento do W b c n i arquivo permite que voc e.ofg direcione o. NET Framework 4 e posterior. Se voc explicitamente alvo. NET Framework 4, e se voc incluir elementos opcionais no W b c n i arquivo, como as entradas para System.CodeDom , esses e.ofg elementos devem estar corretas para o. NET Framework 4. (Se voc no visam explicitamente. NET Framework 4, a estrutura de destino inferida a partir da falta de uma entrada no W b c n i e.ofg arquivo.) O exemplo seguinte mostra a utilizao do targetFramework atributo na compilao elemento do W b c n i arquivo. e.ofg <oplo treFaeok="."/ Cmia agtrmwr 40 >

Observe o seguinte sobre a segmentao de uma verso especfica do Framework.: Em uma piscina NET Framework. Aplicao 4, o sistema de compilao ASP.NET assume. NET Framework 4, como um alvo se o W b c n i arquivo no inclui o targetFramework atributo ou se e.ofg o W b c n i arquivo est faltando. (Voc pode ter que fazer alteraes de codificao para o e.ofg aplicativo para torn-lo executado sob o. NET Framework 4.) Se voc incluir o targetFramework atributo, e se o System.CodeDom elemento definido no W b c n i arquivo, esse arquivo deve conter as entradas corretas para o. NET Framework 4. e.ofg Se voc estiver usando o aspnet_compiler comando para pr-compilar seu aplicativo (como em um ambiente de construo), voc deve usar a verso correta do aspnet_compiler comando para o quadro de destino. Use o compilador que acompanha o. NET Framework 2.0 (% WINDIR% \ Microsoft.NET \ Framework \ v2.0.50727) para compilar para o. NET Framework 3.5 e verses anteriores. Use o compilador que vem com o. NET Framework 4 para compilar as aplicaes criadas usando esse quadro ou utilizar verses mais recentes. Em tempo de execuo, o compilador usa os mdulos mais recentes de enquadramento que so instalados no computador (e, portanto, no GAC). Se uma atualizao feita mais tarde para o quadro (por exemplo, uma hipottica verso 4.1 est instalado), voc ser capaz de usar recursos da nova verso do quadro, embora o targetFramework atributo tem como alvo uma verso inferior (por exemplo, 4,0). (No entanto, em tempo de design no Visual Studio 2010 ou quando voc usa o aspnet_compiler comando, usando os recursos mais recentes do quadro ir causar erros de compilao).

Ajax
jQuery Includo com Web Forms e MVC
Os modelos do Visual Studio para formulrios da Web e MVC incluir a biblioteca jQuery open-source. Quando voc cria um novo site ou projeto, uma pasta Scripts contendo os seguintes 3 arquivos criado: jQuery-1.4.1.js - A legvel verso, unminified da biblioteca jQuery. jQuery-14.1.min.js - A verso minified da biblioteca jQuery. jQuery 1.4.1--vsdoc.js - O arquivo de documentao Intellisense para a biblioteca jQuery. Incluir a verso do jQuery unminified durante o desenvolvimento de um aplicativo. Incluir a verso minified do jQuery para aplicaes de produo. Por exemplo, a seguinte pgina de Web Forms ilustra como voc pode usar jQuery para mudar a cor de fundo dos controles ASP.NET TextBox para amarelo quando possuem foco. < @Pg Lnug =" # AtEetiep=CdFl "re ="hwQeyap.s Ihrt ="hwQey% % ae agae C " uovnWru oeie tu" Sojur.sxc" neis Sojur"> <OTP hm PBI " //WC//DDXTL10Tastoa //E" DCYE tl ULC 3 T HM . rniinl N

www.asp.net/whitepapers/aspnet4

8/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

Contedo de Apoio Rede de Entrega


A Microsoft Ajax Content Delivery Network (CDN) permite que voc facilmente adicionar ASP.NET Ajax e scripts jQuery para suas aplicaes web. Por exemplo, voc pode comear a utilizar a biblioteca jQuery simplesmente adicionando um < c i t tag sua pgina que aponta para Ajax.microsoft.com srp> assim: <cit sc="tp/aa.irsf.o/jxjur/qey142j" tp ="et/jvsrp">< srp> Srp r ht:/jxmcootcmaa/qeyjur-...s io tx aacit / cit

Tirando proveito da Microsoft Ajax CDN, voc pode melhorar significativamente o desempenho de seus aplicativos Ajax. O contedo do Microsoft Ajax CDN so armazenadas em servidores localizados em todo o mundo. Alm disso, o Microsoft Ajax CDN permite que navegadores para reutilizar os arquivos JavaScript em cache para sites que esto localizados em diferentes domnios. A Microsoft Ajax Content Delivery Network suporta SSL (HTTPS) em caso de necessidade de atender a uma pgina web usando o Secure Sockets Layer. Para saber mais sobre o Ajax Microsoft CDN, visite o seguinte site: http://www.asp.net/ajaxlibrary/CDN.ashx O ScriptManager ASP.NET suporta o Microsoft Ajax CDN. Simplesmente definindo uma propriedade, a propriedade EnableCdn, voc pode recuperar todos os arquivos do ASP.NET framework JavaScript do CDN: <s:SrpMngr I ="M" EalCn="re rnt="evr / Ap citaae D S1 nbed tu" ua sre" >

Depois de definir a propriedade EnableCdn para o verdadeiro valor, a estrutura do ASP.NET vai recuperar todos os arquivos do ASP.NET framework JavaScript do CDN, incluindo todos os arquivos JavaScript utilizados para validao e UpdatePanel. A definio dessa propriedade pode ter um impacto dramtico sobre o desempenho de sua aplicao web. Voc pode definir o caminho do CDN para seus prprios arquivos JavaScript usando o atributo WebResource. A propriedade CdnPath novo especifica o caminho para o CDN usado quando voc definir a propriedade EnableCdn ao valor verdadeiro: [asml : Wbeore("o.s , "plcto /xjvsrp", Cnah = "tp/focmfobrfoj") seby eRsuc foj" apiain -aacit dPt ht:/o.o/o/a/o.s ]

Scripts ScriptManager Explcitos


No passado, se voc usou o ScriptManger ASP.NET ento foram obrigados a carregar todo o monoltico ASP.NET Biblioteca Ajax. Tirando proveito da propriedade ScriptManager.AjaxFrameworkMode novo, voc pode controlar exatamente quais os componentes do Ajax ASP.NET Biblioteca so carregados e carregar apenas os componentes do Ajax ASP.NET Biblioteca que voc precisa. A propriedade ScriptManager.AjaxFrameworkMode pode ser definido com os seguintes valores: Habilitado - Especifica que o controle ScriptManager inclui automaticamente o arquivo de script MicrosoftAjax.js, que um arquivo de script combinado de todos os scripts quadro principal (comportamento herdado). Desativado - Especifica que todos os recursos do Microsoft script Ajax est desativado e que o controle ScriptManager no faz referncia a todos os scripts automaticamente. Explcita - Especifica que voc vai incluir explicitamente referncias de script para cada arquivo de script framework que sua pgina requer, e que voc vai incluir referncias s dependncias de que cada arquivo de script requer. Por exemplo, se voc definir a propriedade AjaxFrameworkMode ao valor explcito, ento voc pode especificar os scripts de componentes especficos do ASP.NET Ajax que voc precisa: <s:citaae I=s1 AaFaeokoe"xlct rnt"evr> apSrpMngr D"m" jxrmwrMd=Epii" ua=sre" <cit> Srps <s:citeeec Nm=Mcootjxoej"/ apSrpRfrne ae"irsfAaCr.s > <s:citeeec Nm=McootjxopnnMdlj"/ apSrpRfrne ae"irsfAaCmoetoe.s > <s:citeeec Nm=Mcootjxeilzto.s / apSrpRfrne ae"irsfAaSraiainj" > <s:citeeec Nm=Mcootjxewr.s / apSrpRfrne ae"irsfAaNtokj" >

www.asp.net/whitepapers/aspnet4

9/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

<Srps /cit> <apSrpMngr /s:citaae>

Web Forms
Web Forms tem sido uma caracterstica fundamental do ASP.NET desde o lanamento do ASP.NET 1.0. Muitas melhorias foram nesta rea para ASP.NET 4, incluindo o seguinte: A capacidade de definir meta tags. Mais controle sobre o estado de exibio. Maneiras mais fceis de trabalhar com recursos do navegador. Suporte para a utilizao de roteamento ASP.NET com Web Forms. Mais controle sobre IDs gerados. A capacidade de persistir linhas selecionadas em controles de dados. Mais controle sobre HTML processado nos FormView e ListView controles. Suporte de filtragem para controles de fonte de dados.

Definir Meta Tags com as Page.MetaKeywords e propriedades Page.MetaDescription


ASP.NET 4 adiciona duas propriedades para os Pgina de classe, MetaKeywords e MetaDescription . Essas duas propriedades representam correspondentes meta tags em sua pgina, como mostrado no exemplo a seguir: <aea i ="uo" rnt="evr > Cb d Ttl1 ua sre" <il>Utte Pg < tte tte nild ae / il> <ea nm ="ewrs cnet="se so o mu,plva-hv" / mt ae kyod" otn Ets , s es aarscae > <ea nm ="ecito" cnet="saadsrod mnapgn" / mt ae dsrpin otn Et eci a ih ia > cb <> aea /

Essas duas propriedades funcionam da mesma maneira que a pgina do ttulo de propriedade faz. Eles seguem as seguintes regras: 1. Se no h meta tags na cabea elemento que coincidem com os nomes de propriedade (ou seja, name = "keywords" para Page.MetaKeywords e name = "description" para Page.MetaDescription , o que significa que essas propriedades no foram definidas), o meta tags ser adicionado pgina quando ela processada. 2. Se j existem meta tags com esses nomes, essas propriedades funcionam como mtodos get e set para o contedo das tags existentes. Voc pode definir essas propriedades em tempo de execuo, que lhe permite obter o contedo de um banco de dados ou outra fonte, e que permite definir dinamicamente as tags para descrever o que uma determinada pgina para. Voc tambm pode definir as Palavras-chave e descrio propriedades na @ Page diretiva na parte superior da pgina de Web Forms de marcao, como no exemplo a seguir: < @Pg Lnug =" # AtEetiep="re % ae agae C " uovnWru tu" CdFl ="eal.sxc" oeie Dfutap.s Ihrt ="Dfut neis _eal" kyod ="se,so mu plva-hv" ewrs Ets , e, aarscae Dsrpin="sauadsro% ecito Et m eci">

Isso ir substituir os metadados contedo da tag (se houver) j declarados na pgina. O contedo da descrio meta tag so usadas para melhorar previews listagem de pesquisa no Google. (Para detalhes, consulte Melhorar trechos com um makeover descrio meta no Google Webmaster Central Blog.) Google e Windows Live Search no usar o contedo das palavras-chave para qualquer coisa, mas outros motores de busca pode. Para mais informaes, consulte Conselhos Keywords Meta na Pesquisa Web site Mecanismo de Guia. Estas novas propriedades so um recurso simples, mas salv-lo da obrigao de adicion-los manualmente ou de escrever seu prprio cdigo para criar as meta tags.

Ativando o estado de exibio para controles individuais


Por padro, o estado de exibio est habilitada para a pgina, com o resultado que cada controle na pgina potencialmente armazena o estado de exibio, mesmo que no necessrio para a aplicao. Ver os dados do estado includo na marcao que uma pgina gera e aumenta a quantidade de tempo que leva para enviar uma pgina para o cliente e post-lo de volta. Armazenar estado mais vista do que o necessrio pode causar degradao significativa no desempenho. Em verses anteriores do ASP.NET, os desenvolvedores podem desativar estado de exibio para controles individuais, a fim de reduzir o tamanho da pgina, mas teve que faz-lo explicitamente para controles individuais. No ASP.NET 4, controles de servidor Web incluem um ViewStateMode propriedade que

www.asp.net/whitepapers/aspnet4

10/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

permite que voc desabilite o estado de exibio por padro e, em seguida, ativ-lo somente para os controles que exigem-lo na pgina. O ViewStateMode propriedade tem uma enumerao que tem trs valores: Ativado , desativado , e Herdar . habilitado permite que o estado de exibio para o controle e os controles filho que esto definidos para Herdar ou que tem um conjunto nada. Deficientes desativa estado de exibio, e Herdar especifica que o controle usa o ViewStateMode configurao do controle pai. O exemplo a seguir mostra como o ViewStateMode propriedade funciona. A marcao e cdigo para os controles na pgina seguinte inclui os valores para o ViewStateMode propriedade:

au -% qi >

Como voc pode ver, os desativa estado de exibio de cdigo para o controle PLACEHOLDER1. O controle label1 filho herda o valor da propriedade ( Herdar o valor padro para ViewStateMode para controles.) e, portanto, no poupa o estado de exibio. No controle PLACEHOLDER2, ViewStateMode est definido como Ativado , assim Label2 herda essa propriedade e salva o estado de exibio. Quando a pgina carregada pela primeira vez, o texto de propriedade de ambas as etiquetas controles definida como a string "[DynamicValue]". O efeito desses ajustes que quando a pgina carregada pela primeira vez, a seguinte sada exibida no navegador: Desativado : [ y a i V l e Dnmcau] Ativado: [ y a i V l e Dnmcau] Depois de uma nova postagem, no entanto, a seguinte sada exibida: Desativado : [ e l r d a u ] DcaeVle Ativado: [ y a i V l e Dnmcau] O controle label1 (cujo ViewStateMode valor definido como Desativado ) no tem preservado o valor que foi definido no cdigo. No entanto, o controle label2 (cujo ViewStateMode valor definido como Ativado ) tem preservado seu estado. Voc tambm pode definir ViewStateMode no @ Page directiva, como no exemplo a seguir: < @Pg Lnug =" # % ae agae C " % >

A Pgina classe apenas um outro controle, que atua como o controle pai para todos os outros controles na pgina. O valor padro de ViewStateMode ativado para instncias de pgina . Como padro controles para Herdar , controles herdaro o Ativado valor da propriedade, a menos que voc definir ViewStateMode no nvel da pgina ou controle. O valor da ViewStateMode propriedade determina se estado de exibio mantido somente se o EnableViewState propriedade definida como verdadeira . Se o EnableViewState propriedade definida como falsa , o estado de exibio no ser mantida mesmo se ViewStateMode est definido como Ativado . Um bom uso para este recurso com ContentPlaceHolder controles em pginas mestras, onde voc pode definir ViewStateMode para pessoas com mobilidade condicionada para a pgina principal e, em

www.asp.net/whitepapers/aspnet4

11/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

seguida, ativ-lo individualmente para ContentPlaceHolder controles que por sua vez, contm controles que exigem estado de exibio.

Alteraes recursos do navegador


ASP.NET determina os recursos do navegador que o usurio est usando para navegar no site usando um recurso chamado capacidades do navegador . Os recursos do navegador so representados pela HttpBrowserCapabilities objeto (exposto pelo Request.Browser propriedade). Por exemplo, voc pode usar os HttpBrowserCapabilities objeto para determinar se o tipo ea verso do navegador atual suporta uma determinada verso de JavaScript. Ou, voc pode usar o HttpBrowserCapabilities objeto para determinar se a solicitao foi originada a partir de um dispositivo mvel. O HttpBrowserCapabilities objeto impulsionado por um conjunto de arquivos de definio de navegador. Esses arquivos contm informaes sobre as capacidades de determinados navegadores. Em ASP.NET 4, esses arquivos de definio do navegador foram atualizadas para conter informaes sobre navegadores e dispositivos recentemente introduzidas, como o Google Chrome, Research in Motion smartphones BlackBerry, iPhone e Apple. A lista a seguir mostra novos arquivos de definio do navegador: blackberry.browser chrome.browser Default.browser firefox.browser gateway.browser generic.browser ie.browser iemobile.browser iphone.browser opera.browser safari.browser

Usando Provedores de Recursos do Navegador

No ASP.NET verso 3.5 Service Pack 1, voc pode definir as capacidades que um navegador tem das seguintes maneiras: No nvel do computador, voc criar ou atualizar um b o s r arquivo XML na seguinte pasta: rwe. \oWnos\Mcoot.NT\Faeok\v .0577\CNI \Bosr idw irsf E rmwr 2 .02 OFG rwes

Depois de definir a capacidade do navegador, voc execute o seguinte comando a partir do Visual Studio Command Prompt, a fim de reconstruir o navegador montagem capacidades e adicion-lo no GAC: ape_ebosr .ee-Ic sntrgrwes x

Para uma aplicao individual, voc cria um . n v g d rde arquivos no aplicativo A p B o s r aeao p_rwes pasta. Essas abordagens requerem que voc alterar os arquivos XML, e para o computador em nvel de alteraes, voc deve reiniciar o aplicativo depois de executar o processo Aspnet_regbrowsers.exe. ASP.NET 4 inclui um recurso chamado de provedores de recursos do navegador . Como o nome sugere, este permite que voc construa um provedor que, por sua vez permite que voc use seu prprio cdigo para determinar as capacidades do navegador. Na prtica, os desenvolvedores geralmente no definem os recursos do navegador personalizado. Arquivos do navegador so difceis de atualizar, o processo de atualiz-los bastante complicada, ea sintaxe XML para . n v g d rde arquivos pode ser complexo de usar e definir. O que faria este aeao processo muito mais fcil se houvesse uma sintaxe de definio comum do browser, ou um banco de dados que continha definies up-to-date do navegador, ou mesmo um servio Web para essa base de dados. O novo navegador capacidades caracterstica faz com que esses prestadores de cenrios possvel e prtico para desenvolvedores de terceiros. Existem duas abordagens principais para usar o novo recurso de ASP.NET 4 navegador provedor capacidades: estender a funcionalidade do navegador ASP.NET definio capacidades, ou substitu-lo totalmente. As sees seguintes descrevem primeiro como para substituir a funcionalidade, e depois como estend-lo.

Substituio do navegador ASP.NET funcionalidade Capacidades

Para substituir o browser funcionalidade ASP.NET definio capacidades completamente, siga estes passos:

www.asp.net/whitepapers/aspnet4

12/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

1. Criar uma classe de provedor que deriva HttpCapabilitiesProvider e que substitui o GetBrowserCapabilities mtodo, como no exemplo a seguir: pbi casCsoPoie :HtCpbltePoie ulc ls utmrvdr tpaaiiisrvdr { pbi oerd HtBosraaiiis ulc vrie tprweCpblte GtrweCpblte(tpeus rqet eBosraaiiisHtRqet eus) { HtBosraaiiisbosras=nwHtBosraaiiis) tprweCpblte rweCp e tprweCpblte(; Hstbevle =nwHstbe10 SrnCmae.riaInrCs) ahal aus e ahal(8, tigoprrOdnlgoeae; vle[tigEpy =rqetUeAet ausSrn.mt] eus.srgn; vle[bosr]="yutmrwe" aus"rwe" MCsoBosr; bosrasCpblte =vle; rweCp.aaiiis aus rtr bosras eun rweCp; } }

O cdigo neste exemplo cria um novo HttpBrowserCapabilities objeto, especificando apenas a capacidade do chamado ajuste navegador e que capacidade de MyCustomBrowser. 1. Registre o provedor com a aplicao. Para usar um provedor com uma aplicao, voc deve adicionar o provedor de atributo para o browserCaps seo nos W b c n i ou M c i e c n i arquivos. (Voc tambm pode definir os e.ofg ahn.ofg atributos de um provedor local . elemento para diretrios especficos na aplicao, como em uma pasta para um dispositivo mvel especfico) O exemplo a seguir mostra como definir o provedor de atributo em um arquivo de configurao: <itm .wb> Ssea e <rweCp poeo ="lsLbay.utmrvdr Casirr2 bosras rvdr Casirr2CsoPoie, lsLbay, Vrin=1000 Clua=nurl" / eso ..., utr eta > < ssea.wb> / itm e

Outra forma de registar a definio nova capacidade navegador a utilizao de cdigo, como mostrado no seguinte exemplo:

.. . }

Este cdigo deve ser executado no Application_Start evento do G o a . s xarquivo. Qualquer lblaa alterao ao BrowserCapabilitiesProvider classe deve ocorrer antes de qualquer cdigo no aplicativo executado, a fim de se certificar de que o cache permanece em um estado vlido para o resolvido HttpCapabilitiesBase objeto.

Cache o objeto HttpBrowserCapabilities

O exemplo anterior tem um problema, o que que o cdigo seria executado cada vez que o provedor personalizado invocado, a fim de obter o HttpBrowserCapabilities objeto. Isto pode acontecer vrias vezes durante cada solicitao. No exemplo, o cdigo para o provedor no faz muita coisa. No entanto, se o cdigo em seu provedor personalizado realiza um trabalho significativo, a fim de obter o HttpBrowserCapabilities objeto, isso pode afetar o desempenho. Para evitar que isso acontea, voc pode armazenar em cache o HttpBrowserCapabilities objeto. Siga estes passos: 1. Criar uma classe que deriva de HttpCapabilitiesProvider , tal como a um no exemplo seguinte: pbi casCsoPoie :HtCpbltePoie ulc ls utmrvdr tpaaiiisrvdr { pbi oerd HtBosraaiiis ulc vrie tprweCpblte GtrweCpblte(tpeus rqet eBosraaiiisHtRqet eus) { srn ccee =BidahKy) tig ahKy ulCcee(; itcceie=GtahTm(; n ahTm eCceie) HtBosraaiiisbosras= tprweCpblte rweCp HtCnetCretCceccee]a tpotx.urn.ah[ahKy s HtBosraaiiis tprweCpblte; i (rweCp = nl) f bosras = ul { HtBosraaiiisbosras=nw tprweCpblte rweCp e HtBosraaiiis) tprweCpblte(; Hstbevle =nwHstbe10 ahal aus e ahal(8,

www.asp.net/whitepapers/aspnet4

13/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial
SrnCmae.riaInrCs) tigoprrOdnlgoeae; vle[tigEpy =rqetUeAet ausSrn.mt] eus.srgn; vle[bosr]="yutmrwe" aus"rwe" MCsoBosr; bosrasCpblte =vle; rweCp.aaiiis aus HtCnetCretCceIsr(ahKy tpotx.urn.ah.netccee, bosras nl,DtTm.aVle rweCp, ul aeieMxau, TmSa.rmeod(ahTm); iepnFoScnscceie) } rtr bosras eun rweCp; }

No exemplo, o cdigo gera uma chave de cache chamando um mtodo BuildCacheKey costume, e fica o tempo para o cache chamando um mtodo GetCacheTime personalizado. O cdigo, em seguida, adiciona os resolvidas HttpBrowserCapabilities opor-se cache. O objeto pode ser recuperado a partir do cache e reutilizado em solicitaes subseqentes que fazem uso do provedor personalizado. 1. Registar o fornecedor da aplicao, tal como descrito no procedimento anterior.

Estendendo Navegador ASP.NET funcionalidade Capacidades

A seo anterior descreve como criar um novo HttpBrowserCapabilities objeto em ASP.NET 4. Voc tambm pode estender a funcionalidade do navegador ASP.NET capacidades adicionando capacidades definies novo navegador para aqueles que j esto em ASP.NET. Voc pode fazer isso sem usar as definies do navegador XML. O procedimento a seguir mostra como. 1. Criar uma classe que deriva de HttpCapabilitiesEvaluator e que substitui a GetBrowserCapabilities mtodo, como mostrado no seguinte exemplo: pbi casCsoPoie :HtCpblteEautr ulc ls utmrvdr tpaaiiisvlao { pbi oerd HtBosraaiiis ulc vrie tprweCpblte GtrweCpblte(tpeus rqet eBosraaiiisHtRqet eus) { HtBosraaiiisbosras= tprweCpblte rweCp bs.eHtBosraaiiisrqet; aeGttprweCpblte(eus) i (rweCp.rwe = "nnw" f bosrasBosr = Ukon) { bosras=MBosraaiiisvuao(eus) rweCp yrweCpblteEaltrrqet; } rtr bosras eun rweCp; } }

Esse cdigo primeiro usa o navegador ASP.NET funcionalidade capacidades para tentar identificar o navegador. No entanto, se nenhum navegador identificado com base nas informaes definidas no pedido (isto , se o navegador propriedade do HttpBrowserCapabilities objeto a seqncia de "Desconhecido"), o cdigo chama o provedor personalizado (MyBrowserCapabilitiesEvaluator) para identificar o browser. 1. Registar o fornecedor da aplicao, tal como descrito no exemplo anterior.

Ampliar a funcionalidade do navegador por Capacidades adicionando novas capacidades de definies existentes Capacidades

Alm de criar um provedor personalizado definio do navegador e criar dinamicamente novas definies do navegador, voc pode estender as definies do browser existentes com recursos adicionais. Isso permite usar uma definio que se aproxima do que voc quer, mas falta apenas algumas capacidades. Para fazer isso, use as seguintes etapas. 1. Criar uma classe que deriva de HttpCapabilitiesEvaluator e que substitui a GetBrowserCapabilities mtodo, como mostrado no seguinte exemplo: pbi casCsoPoie :HtCpblteEautr ulc ls utmrvdr tpaaiiisvlao { pbi oerd HtBosraaiiis ulc vrie tprweCpblte GtrweCpblte(tpeus rqet eBosraaiiisHtRqet eus) { HtBosraaiiisbosras= tprweCpblte rweCp bs.eHtBosraaiiisrqet; aeGttprweCpblte(eus) i (rweCp.rwe = "nnw" f bosrasBosr = Ukon) { bosras=MBosraaiiisvuao(eus) rweCp yrweCpblteEaltrrqet; } rtr bosras eun rweCp; }

www.asp.net/whitepapers/aspnet4

14/39

06/05/12
}

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

O cdigo de exemplo estende o ASP.NET existente HttpCapabilitiesEvaluator classe e recebe o HttpBrowserCapabilities objeto que coincide com a definio de solicitao atual, usando o seguinte cdigo: HtBosraaiiisbosras= tprweCpblte rweCp bs d .GttprweCpblte (pdd ) ae e eHtBosraaiiis eio ;

O cdigo pode, ento, adicionar ou modificar uma potencialidade para este browser. H duas maneiras de especificar uma capacidade novo navegador: Adicione um par chave / valor para o IDictionary objeto que exposto pelo Capacidades propriedade do HttpCapabilitiesBase objeto. No exemplo anterior, o cdigo adiciona uma capacidade de chamada MultiTouch com um valor de verdade . Defina as propriedades existentes do HttpCapabilitiesBase objeto. No exemplo anterior, o cdigo define a Frames propriedade a verdade . Esta propriedade simplesmente um assessor para o IDictionary objeto que exposto pelo Capacidades propriedade.

Observao: Este modelo se aplica a qualquer propriedade de HttpBrowserCapabilities , incluindo adaptadores de controle.

1. Registar o fornecedor da aplicao, tal como descrito no procedimento anterior.

Roteamento em ASP.NET 4
ASP.NET 4 acrescenta suporte embutido para usar o roteamento com Web Forms. Roteamento permite que voc configure uma aplicao para aceitar URLs de solicitao que no so mapeadas para arquivos fsicos. Em vez disso, voc pode usar roteamento para definir URLs que so significativos para os usurios e que pode ajudar com o motor de busca optimization (SEO) para sua aplicao. Por exemplo, o URL para uma pgina que exibe categorias de produtos em um aplicativo existente pode parecer com o seguinte exemplo: ht :?/st //Pout.sxctgri =1 tp ie rdcsap aeoyd 2

Ao utilizar o roteamento, voc pode configurar o aplicativo para aceitar a seguinte URL para exibir a mesma informao: ht :/st //pouo /sfwr tp ie rdts otae

Roteamento est disponvel comeando com ASP.NET 3.5 SP1. (Para um exemplo de como usar roteamento em ASP.NET 3.5 SP1, consulte a entrada Usando Routing com WebForms no blog do Phil Haack.) No entanto, ASP.NET 4 inclui algumas caractersticas que o tornam mais fcil de usar roteamento, incluindo o seguinte: O PageRouteHandler classe, que um manipulador de HTTP simples que voc usa quando voc definir rotas. A classe passa os dados para a pgina que o pedido encaminhado para. A nova propriedades HttpRequest.RequestContext e Page.RouteData (que uma proxy para o HttpRequest.RequestContext.RouteData objeto). Estas propriedades tornam mais fcil o acesso a informao que transmitida a partir do percurso. Os seguintes novos construtores de expresso, que so definidos RouteUrl , que fornece uma maneira simples de criar uma URL que corresponde a uma URL rota dentro de um controle de servidor ASP.NET. RouteValue , que fornece uma maneira simples de extrair informaes do RouteContext objeto. O RouteParameter classe, o que torna mais fcil de passar os dados contidos em um RouteContext objeto de uma consulta para um controle da fonte de dados (semelhante ao FormParameter ).

Encaminhamento para pginas de Web Forms

O exemplo a seguir mostra como definir uma rota Web Forms usando o novo MapPageRoute mtodo da Rota de classe: pbi casGoa :Sse.e.tpplcto ulc ls lbl ytmWbHtApiain { vi ApiainSatojc sne,Eetrse od plcto_tr(bet edr vnAg ) { Rueal.otsMpaeot(SacRue, otTbeRue.aPgRue"erhot" "erh{erhem" "/erhap"; sac/sactr}, ~sac.sx) Rueal.otsMpaeot(UeRue, otTbeRue.aPgRue"srot" "sr/uenm},"/sr.sx) ues{srae" ~uesap";

www.asp.net/whitepapers/aspnet4

15/39

06/05/12
} }

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

ASP.NET 4 introduz o MapPageRoute mtodo. O exemplo seguinte equivalente definio SearchRoute mostrado no exemplo anterior, mas utiliza a PageRouteHandler classe. Rueal.otsAd"erhot" nwRue"erh{erhem" otTbeRue.d(SacRue, e ot(sac/sactr}, nwPgRueade(~sac.sx)) e aeotHnlr"/erhap");

O cdigo no exemplo mapeia a rota para uma pgina fsica (no primeiro percurso, a ~ S a c . s x erhap /). A definio primeiro percurso tambm especifica que o parmetro chamado searchterm deve ser extrado a partir do URL e passado para a pgina. O MapPageRoute mtodo suporta as sobrecargas do mtodo a seguir: MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess) MapPageRoute (string routeName, string routeUrl, string physicalFile, checkPhysicalUrlAccess bool, o padro RouteValueDictionary) MapPageRoute (string routeName, string routeUrl, string physicalFile, checkPhysicalUrlAccess bool, o padro RouteValueDictionary, restries RouteValueDictionary) O checkPhysicalUrlAccess parmetro especifica se a rota deve verificar as permisses de segurana para a pgina fsica que est sendo encaminhado para (neste caso Search.aspx) e as permisses na URL de entrada (neste caso, pesquisa / {} searchterm). Se o valor da checkPhysicalUrlAccess falsa , apenas as permisses do URL de entrada ser verificada. Essas permisses so definidas no W b c n i arquivo usando as configuraes como as seguintes: e.ofg <ofgrto> cniuain <oainpt=sac.sx> lcto ah"erhap" <ytmwb sse.e> <uhrzto> atoiain <lo rls"di"> alw oe=amn/ <eyues""> dn sr=*/ <atoiain /uhrzto> <sse.e> /ytmwb <lcto> /oain <oainpt=sac" lcto ah"erh> <ytmwb sse.e> <uhrzto> atoiain <lo ues""> alw sr=*/ <atoiain /uhrzto> <sse.e> /ytmwb <lcto> /oain <cniuain /ofgrto>

Na configurao de exemplo, o acesso negado pgina fsica S a c . s xpara todos os usurios, erhap exceto aqueles que esto no papel de administrador. Quando o checkPhysicalUrlAccess parmetro definido como verdadeiro (que o valor padro), somente os usurios de administrador tm permisso para acessar a URL / search / {} searchterm, porque o Search.aspx pgina fsica restrito a usurios nesse papel. Se checkPhysicalUrlAccess definido como falso eo site configurado como mostrado no exemplo anterior, todos os usurios autenticados tm permisso para acessar a URL / search / {} searchterm.

Leitura Routing Information em uma pgina de formulrios da Web

No cdigo da pgina Web Forms fsico, voc pode acessar as informaes de roteamento que foi extrado da URL (ou outras informaes que um outro objeto foi adicionado ao RouteData objeto) usando duas novas propriedades: HttpRequest.RequestContext e Page.RouteData . ( Page.RouteData envolve HttpRequest.RequestContext.RouteData .) O exemplo a seguir mostra como usar Page.RouteData . poetdvi Pg_odojc sne,Eetrse rtce od aeLa(bet edr vnAg ) { srn sactr =Pg.otDt.aus"erhem]a srn; tig erhem aeRueaaVle[sactr" s tig lbl.et=sactr; ae1Tx erhem }

O cdigo extrai o valor que foi passado para o parmetro searchterm, tal como definido na rota exemplo anterior. Considere o URL seguinte pedido: ht ://lclot/sac /sot/ tp oahs erh ct

www.asp.net/whitepapers/aspnet4

16/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

Quando esse pedido for feito, a palavra "scott" seria processado na S a c . s xpgina. erhap

Acessando informaes de roteamento em Marcao

O mtodo descrito na seo anterior mostra como obter dados de rota no cdigo em uma pgina Web Forms. Voc tambm pode usar expresses na marcao que lhe do acesso mesma informao. Construtores de expresso so uma maneira poderosa e elegante para trabalhar com cdigo declarativo. (Para mais informaes, consulte a entrada de Express Yourself com os construtores expresso personalizada no blog do Phil Haack.) ASP.NET 4 inclui dois construtores de expresso novos para Web Forms de roteamento. O exemplo a seguir mostra como us-los. <s:HprikI ="yeLn1 rnt="evr Ap yeLn D Hprik" ua sre" NvgtUl="< $Ruer :SacTr =sot>" BsaprSot< ap Hprik aiaer % otUl erhem ct% > uc o ct / s: yeLn>

No exemplo, o RouteUrl expresso usada para definir um URL que baseada em um parmetro de rota. Isso evita que voc tenha de hard-code a URL completa para a marcao, e permite alterar a estrutura de URL mais tarde sem necessidade de qualquer alterao a este link. Com base no percurso definido anteriormente, esta marcao gera o seguinte URL: ht ://lclot/sac /sot tp oahs erh ct

ASP.NET funciona automaticamente para fora do percurso correcto (isto , que gera o URL correcto) com base nos parmetros de entrada. Voc tambm pode incluir um nome de rota na expresso, o que permite que voc especifique um caminho para usar. O exemplo seguinte mostra como utilizar o RouteValue expresso. <s:LblI ="ae1 rnt="evr Tx ="< $Rueau :SacTr % "> Ap ae D Lbl" ua sre" et % otVle erhem > /

Quando a pgina que contm este controle executado, o valor "scott" exibido no rtulo. O RouteValue expresso torna simples de usar dados de rota na marcao, e evita ter que trabalhar com o Page.RouteData mais complexo ["x"] sintaxe na marcao.

Usando dados de Rota para dados parmetros de controle de origem

O RouteParameter classe permite que voc especifique encaminhar os dados como um valor de parmetro para consultas em um controle da fonte de dados. funciona como a classe, como mostrado no seguinte exemplo: <s:SlaaoreI ="qDtSuc1 rnt="evr Ap qDtSuc D Slaaore" ua sre" CnetoSrn ="< R$CnetoSrns:MNrhid% " oncintig % oncintig yotwn > SlcCmad="opnNm SLC,CdgDTasotdr predstasotdrs eetomn Cmayae EET ioarnpraoa at o rnpraoe

Neste caso, o valor do parmetro searchterm percurso ir ser utilizado para o parmetro @ companyname no Select declarao.

Configurando IDs do cliente


O novo ClientIDMode propriedade aborda um problema de longa data no ASP.NET, ou seja, como os controles de criar o ID de atributo para os elementos que eles prestam. Sabendo o ID de atributo para os elementos prestados importante se o seu aplicativo incluir script de cliente que faz referncia a esses elementos. O ID de atributo em HTML que processada para controles de servidor Web gerado com base no ClientID propriedade do controle. At ASP.NET 4, o algoritmo para gerar o ID de atributo do ClientID propriedade tem sido a de concatenar o recipiente de nomenclatura (se houver) com o ID, e, no caso dos controlos repetidas (como em controles de dados), para adicionar um prefixo e um nmero sequencial. Embora isso tenha sempre garantido que os IDs dos controles na pgina so nicas, o algoritmo resultou em identificaes de controle que no eram previsveis, e, portanto, difcil de referncia no script de cliente. O novo ClientIDMode propriedade permite que voc especifique mais precisamente como a

www.asp.net/whitepapers/aspnet4

17/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

identificao do cliente gerado para controles. Voc pode definir o ClientIDMode propriedade de qualquer controle, inclusive para a pgina. Configuraes possveis so as seguintes: AutoID - Isto equivalente ao algoritmo para gerar ClientID valores de propriedade que foi usado em verses anteriores do ASP.NET. Esttica - Isto especifica que a ClientID valor ser o mesmo que o ID sem concatenar os IDs de recipientes de nomenclatura pai. Isto pode ser til no controlo de utilizador Web. Como um controle de usurio da Web pode ser localizado em diferentes pginas e controles de recipiente diferentes, pode ser difcil de escrever script de cliente para controles que usam o AutoID algoritmo porque voc no pode prever o que os valores de identificao ser. Previsvel - Esta opo principalmente para uso em controles de dados que usam modelos de repetio. Concatena as propriedades de identificao de contentores de nomeao do controle, mas gerou ClientID valores no contm strings como "ctlxxx". Esta configurao funciona em conjunto com o ClientIDRowSuffix propriedade do controle. definir o ClientIDRowSuffix propriedade para o nome de um campo de dados, eo valor do campo utilizada como o sufixo para o gerado ClientID valor. Normalmente voc usaria a chave primria de um registro de dados como o ClientIDRowSuffix valor. Herdar - Esta definio o comportamento padro dos controles, que especifica que a gerao de um controle de identificao o mesmo como seu pai. Voc pode definir o ClientIDMode propriedade no nvel da pgina. Isso define o padro ClientIDMode valor para todos os controles na pgina atual. O padro ClientIDMode valor no nvel da pgina AutoID eo padro ClientIDMode valor no nvel de controle Herdar . Como resultado, se voc no definir essa propriedade em qualquer lugar no seu cdigo, todos os controles padro ser o AutoID algoritmo. Voc define o valor em nvel de pgina na @ Page directiva, como mostrado no exemplo a seguir: < @Pg Lnug =" # AtEetiep="re % ae agae C " uovnWru tu" CdFl ="eal.sxc" oeie Dfutap.s Ihrt ="Dfut neis _eal" CinIMd = "rdcal" letDoe % Peitbe>

Voc tambm pode definir o ClientIDMode valor no arquivo de configurao, quer no computador (mquina) nvel ou em nvel de aplicativo. Isso define o padro ClientIDMode configurao para todos os controles em todas as pginas do aplicativo. Se voc definir o valor no nvel do computador, ele define o padro ClientIDMode configurao para todos os sites da Web no computador. O exemplo a seguir mostra o ClientIDMode configurao no arquivo de configurao: <itm .wb> Ssea e <ia CinIMd ="rdcal">< pgs pgns letDoe Peitbe / ae> < ssea.wb> / itm e

Como notado anteriormente, o valor da ClientID propriedade derivado a partir do recipiente de nomenclatura para me de um controle. Em algumas situaes, como quando voc estiver usando pginas mestras, controles podem acabar com IDs como os da seguinte prestados HTML: <i i=cl0CnetlcHle1PrnPnl> dv d"t0_otnPaeodr_aetae" <i i=cl0CnetlcHle1PrnPnlNmnPnl" dv d"t0_otnPaeodr_aetae_aigae1> <nu nm=cl0CnetlcHle1PrnPnlNmnPnl$eto1 ipt ae"t0$otnPaeodr$aetae$aigae1TxBx" tp=tx"vle"el! ye"et au=Hlo" i=cl0CnetlcHle1PrnPnlNmnPnl_eto1 / d"t0_otnPaeodr_aetae_aigae1TxBx" > <dv /i>

Mesmo que a entrada elemento mostrado na marcao (de um TextBox controle) de apenas dois recipientes de nomenclatura profundas na pgina (as aninhadas ContentPlaceholder controles), por causa da forma como as pginas mestras so processados, o resultado final um ID de controle como a seguinte : cl0CnetlcHle1PrnPnlNmnPnl_eto1 t0_otnPaeodr_aetae_aigae1TxBx

Essa identificao a garantia de ser nico na pgina, mas desnecessariamente longo para a maioria dos propsitos. Imagine que voc deseja reduzir o comprimento do ID prestados, e para ter mais controle sobre como o ID gerado. (Por exemplo, voc quer eliminar "ctlxxx" prefixos.) A maneira mais fcil de conseguir isso atravs da criao do ClientIDMode propriedade como mostrado no exemplo a seguir: <cNmnPnlrnt"evr I=PrnPnl CinIMd=Sai" t:aigae ua=sre" D"aetae" letDoe"ttc> <cNmnPnlrnt"evr I=NmnPnl"CinIMd=Peitbe> t:aigae ua=sre" D"aigae1 letDoe"rdcal" <s:eto I=TxBx"rnt"evr Tx=Hlo"<apTxBx apTxBx D"eto1 ua=sre" et"el!>/s:eto>

www.asp.net/whitepapers/aspnet4

18/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial
<t:aigae> /cNmnPnl

<t:aigae> /cNmnPnl

Nesta amostra, o ClientIDMode propriedade definida como esttica para o exterior NamingPanel elemento, e definida como previsvel para o interior NamingControl elemento. Estes resultados configuraes na marcao seguinte (o resto da pgina e pgina-mestre assumido como sendo o mesmo que no exemplo anterior): <i i=PrnPnl> dv d"aetae" <i i=PrnPnlNmnPnl" dv d"aetae_aigae1> <nu nm=cl0CnetlcHle1PrnPnlNmnPnl$eto1 ipt ae"t0$otnPaeodr$aetae$aigae1TxBx" tp=tx"vle"el! i=PrnPnlNmnPnl_eto1 / ye"et au=Hlo" d"aetae_aigae1TxBx" > <dv /i>

A esttica configurao tem o efeito de repor a hierarquia de nomenclatura para os controles dentro do exterior NamingPanel elemento, e de eliminar o ContentPlaceHolder e MasterPage IDs do ID gerado. (O nome de atributo de elementos processados afetado, de modo a funcionalidade ASP.NET no normal mantida para eventos, estado de exibio, e assim por diante.) Um efeito colateral de redefinir a hierarquia de nomes que, mesmo se voc mover a marcao para os NamingPanel elementos para um diferente ContentPlaceholder controlo, as identificaes de cliente fundidas permanecer o mesmo.

Observao: at voc para se certificar de que as identificaes de controle prestados so nicos. Se no forem, pode quebrar qualquer funcionalidade que requer IDs nicos para cada elementos HTML, tais como o cliente document.getElementById funo.

Criando IDs de cliente previsveis em controles ligados a dados

Os ClientID valores que so gerados para controles em um controle de lista ligado a dados pelo algoritmo de legado pode ser longo e no so realmente previsvel. O ClientIDMode funcionalidade pode ajudar voc a ter mais controle sobre como esses IDs so gerados. A marcao no exemplo a seguir inclui um ListView controle: <s:itiwI=LsVe1 rnt"evr DtSucI=Slaaore" apLsVe D"itiw" ua=sre" aaoreD"qDtSuc1 OSlceIdxhne=LsVe1SlceIdxhne" neetdneCagd"itiw_eetdneCagd CinIMd=Peitbe letDoe"rdcal" RwletDoSfi=PoutD> oCinIRwufx"rdcI" <apLsVe> /s:itiw

No exemplo anterior, os ClientIDMode e RowClientIDRowSuffix propriedades so definidas na marcao. O ClientIDRowSuffix propriedade pode ser usada somente em controles ligados a dados, e seu comportamento diferente dependendo de qual controle voc est usando. As diferenas so as seguintes: GridView controle - Voc pode especificar o nome de uma ou mais colunas na fonte de dados, que so combinados em tempo de execuo para criar os IDs do cliente. Por exemplo, se voc definir RowClientIDRowSuffix para "ProductName, ProductId", IDs de controle para elementos prestados ter um formato semelhante ao seguinte: roPnlGiVe1Poutaeae_hi1 otae_rdiw_rdcNmLblCa_

ListView controle - Voc pode especificar uma nica coluna na fonte de dados que anexado identificao do cliente. Por exemplo, se voc definir ClientIDRowSuffix para "ProductName", os IDs de controle prestados ter um formato semelhante ao seguinte: roPnlLsVe1Poutaeae_ otae_itiw_rdcNmLbl1

Neste caso, a uma fuga derivado do ID de produto do item de dados actual. Repeater controle Este controle no suporta a ClientIDRowSuffix propriedade. Em um repetidor de controlo, o ndice da linha corrente utilizado. Quando voc usa ClientIDMode = "Predictable", com um Repeater controle, IDs so gerados cliente que tem o seguinte formato: Rpae1Poutaeae_ eetr_rdcNmLbl0

O 0 direita o ndice da linha atual.

www.asp.net/whitepapers/aspnet4

19/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

O FormView e DetailsView controles no exibir vrias linhas, para que eles no suportam o ClientIDRowSuffix propriedade.

Persistindo a seleo de linha em controles de dados


Os GridView e ListView controles podem permitir que os usurios selecionar uma linha. Nas verses anteriores do ASP.NET, a seleo foi baseada no ndice de linha na pgina. Por exemplo, se voc selecionar o terceiro item na pgina 1 e depois passar para a pgina 2, o terceiro item em que a pgina est marcada. Seleo persistiu foi inicialmente apoiado apenas em projetos de dados dinmicos no. NET Framework 3.5 SP1. Quando esse recurso est ativado, o item selecionado atual baseada na chave de dados para o item. Isto significa que se voc selecionar a terceira fila na pgina 1 e ir para a pgina 2, nada est selecionado na pgina 2. Quando voc voltar para a pgina 1, a terceira linha ainda est selecionada. Seleco persistiu agora suportado para os GridView e ListView controlos em todos os projectos usando o EnablePersistedSelection propriedade, como mostrado no seguinte exemplo: <s:GiVe I ="rdiw" rnt="evr EalPritdeeto ="re > Ap rdiw D GiVe2 ua sre" nbeesseSlcin tu" < ap GiVe> / s: rdiw

ASP.NET Carta de Controle


O ASP.NET Chart controle se expande as ofertas de visualizao de dados-no. NET Framework. Usando o grfico de controle, voc pode criar pginas ASP.NET que tm grficos intuitivos e visualmente atraente para anlise estatstica ou financeira complexa. O ASP.NET Grfico de controle foi introduzido como um add-on para a verso. NET Framework verso 3.5 SP1 e faz parte do NET Framework 4. lanamento. O controle inclui os seguintes recursos: 35 diferentes tipos de grficos. Um nmero ilimitado de reas de grfico, ttulos, legendas e anotaes. Uma grande variedade de configuraes de aparncia para todos os elementos de grfico. 3-D suporte para a maioria dos tipos de grfico. Inteligentes rtulos de dados que pode automaticamente se encaixam em torno de pontos de dados. Linhas de tiras, quebras de escala e de escala logartmica. Mais de 50 frmulas financeiras e estatsticas para anlise de dados e transformao. Ligao simples e manipulao de dados do grfico. Suporte para formatos de dados comuns, tais como datas, horrios e moeda. Suporte para personalizao e interatividade orientada a eventos, incluindo eventos clique cliente usando Ajax. Gesto do Estado. Streaming de binrios. As figuras a seguir mostram exemplos de grficos financeiros que so produzidos pelo controle de grfico ASP.NET.

Figura 2: Exemplos de controle ASP.NET Grfico Para mais exemplos de como usar o controle de grfico ASP.NET, baixar o cdigo de exemplo sobre

www.asp.net/whitepapers/aspnet4

20/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

o Ambiente Grfico amostras para a Microsoft controla pgina no site do MSDN. Voc pode encontrar mais amostras de contedo da comunidade no Frum de Controle Grfico .

Adicionando o controle de grfico para uma pgina ASP.NET

O exemplo a seguir mostra como adicionar um grfico de controle para uma pgina ASP.NET usando marcao. No exemplo, o grfico de controle produz um grfico de colunas para os pontos de dados estticos.

A" Yaus"4"/ Vle = 35 > <s:DtPit AiLbl="rdt B Yaus"5"/ ap aaon xsae Pouo " Vle = 46 > <s:DtPit AiLbl="rdt C Yaus"2"/ ap aaon xsae Pouo " Vle = 15 > <s:DtPit AiLbl="pouo ap aaon xsae rdt

Vna " / eds > < Lgns / eed> < ap Cat / s: hr>

Usando grficos 3-D

O Grfico de controle contm um ChartAreas coleo, que pode conter ChartArea objetos que definem as caractersticas de reas de grfico. Por exemplo, para usar em 3-D para uma rea do grfico, utilizar o Area3DStyle propriedade como no exemplo seguinte:

au -% qi > < ap Catra / s: hrAe>

A figura abaixo mostra um grfico 3-D com quatro sries do Bar tipo de grfico.

Figura 3: 3-D Grfico de Barras

Usando quebras de escala e Escalas Logartmicas

Quebras de escala e escalas logartmicas so duas maneiras adicionais para adicionar sofisticao ao grfico. Estas caractersticas so especficas para cada eixo, em uma rea do grfico. Por exemplo, para utilizar esses recursos no eixo Y primrio de uma rea do grfico, utilize os AxisY.IsLogarithmic e ScaleBreakStyle propriedades em um ChartArea objeto. O trecho a seguir mostra como usar quebras de escala no eixo Y primrio.

www.asp.net/whitepapers/aspnet4

21/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

au -% qi > < ap Catra / s: hrAe>

A figura abaixo mostra o eixo Y com quebras de escala habilitados.

Figura 4: quebras de escala

Filtragem de dados com o controle QueryExtender


Uma tarefa muito comum para desenvolvedores que criam pginas baseadas em dados da Web para filtrar dados. Este tem sido tradicionalmente realizada atravs da construo de Onde clusulas nos controles de fonte de dados. Esta abordagem pode ser complicado e, em alguns casos, o caso . sintaxe no deix-lo aproveitar a funcionalidade completa do banco de dados subjacente Para tornar mais fcil filtrar, um novo QueryExtender controle foi adicionado em ASP.NET 4. Esse controle pode ser adicionado ao EntityDataSource ou LinqDataSource os controles, a fim de filtrar os dados retornados por estes controles. Porque o QueryExtender controlo depende LINQ, o filtro aplicado sobre o banco de dados antes de os dados so enviados para a pgina, o que resulta em operaes muito eficientes. O QueryExtender controle suporta uma variedade de opes de filtros. As seguintes sees descrevem essas opes e fornecer exemplos de como us-los.

Pesquisar

Para a opo de pesquisa, o QueryExtender controle realiza uma pesquisa em campos especficos. No exemplo a seguir, o controle usa o texto que inserido no controle TextBoxSearch e procura por seu contedo nos P o u t a ee S p l e . o p n N m colunas nos dados que so retornados da rdcNm upirCmayae LinqDataSource controle. <s:iqaaoreI=dtSuc"rnt"evr>Tbeae"rdcs> apLnDtSuc D"aaore ua=sre" alNm=Pout" <apLnDtSuc> /s:iqaaore <s:urEtne TreCnrlD"aaore rnt"evr> apQeyxedr agtotoI=dtSuc" ua=sre" <s:erhxrsinDtFed=Poutae Sple.opnNm" apSacEpeso aails"rdcNm, upirCmayae SacTp=SatWt" erhye"trsih> <s:otoPrmtrCnrlD"etoSac"/ apCnrlaaee otoI=TxBxerh > <apSacEpeso> /s:erhxrsin <apQeyxedr /s:urEtne>

Srie

A opo de intervalo semelhante opo de busca, mas especifica um par de valores para definir o intervalo. No exemplo a seguir, o QueryExtender controle procura o U i P i ecoluna nos dados ntrc retornados do LinqDataSource controle. A gama lido a partir dos controles TextBoxFrom e TextBoxTo na pgina. <s:iqaaoreI=dtSuc"rnt"evr>Tbeae"rdcs> apLnDtSuc D"aaore ua=sre" alNm=Pout" <apLnDtSuc> /s:iqaaore <s:urEtne TreCnrlD"aaore rnt"evr> apQeyxedr agtotoI=dtSuc" ua=sre" <s:agEpeso DtFed"ntrc"Mnye"nlsv" apRnexrsin aail=UiPie iTp=Icuie Mxye"nlsv" aTp=Icuie> <s:otoPrmtrCnrlD"etoFo"/ apCnrlaaee otoI=TxBxrm > <s:otoPrmtrCnrlD"eBxo / apCnrlaaee otoI=TxoT" >

www.asp.net/whitepapers/aspnet4

22/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial
<apRnexrsin /s:agEpeso>

<apQeyxedr /s:urEtne>

PropertyExpression

A opo de expresso de propriedade permite que voc defina uma comparao com um valor de propriedade. Se a expresso for avaliada como verdadeira , os dados que est a ser examinado retornado. No exemplo seguinte, o QueryExtender controlo filtra dados por comparao dos dados no D s o t n a ocoluna para o valor do controle CheckBoxDiscontinued na pgina. ecniud <s:iqaaoreI=dtSuc"rnt"evr Tbeae"rdcs> apLnDtSuc D"aaore ua=sre" alNm=Pout" <apLnDtSuc> /s:iqaaore <s:urEtne TreCnrlD"aaore rnt"evr> apQeyxedr agtotoI=dtSuc" ua=sre" <s:rpryxrsin apPoetEpeso> <s:otoPrmtrCnrlD"hcBxicniud Nm=Dsotne"/ apCnrlaaee otoI=CekoDsotne" ae"icniud > <apPoetEpeso> /s:rpryxrsin <apQeyxedr /s:urEtne>

CustomExpression

Finalmente, voc pode especificar uma expresso personalizada para usar com o QueryExtender controle. Esta opo permite que voc chamar uma funo na pgina que define a lgica filtro personalizado. O exemplo a seguir mostra como especificar declarativamente uma expresso personalizada no QueryExtender controle. <s:iqaaoreI=dtSuc"rnt"evr Tbeae"rdcs> apLnDtSuc D"aaore ua=sre" alNm=Pout" <apLnDtSuc> /s:iqaaore <s:urEtne TreCnrlD"aaore rnt"evr> apQeyxedr agtotoI=dtSuc" ua=sre" <s:utmxrsinOQeyn=FlePout"/ apCsoEpeso nurig"itrrdcs > <apQeyxedr /s:urEtne>

O exemplo a seguir mostra o personalizado funo que invocada pela QueryExtender controle. Neste caso, em vez de usar uma consulta de dados, que inclui um Onde clusula, o cdigo usa uma consulta LINQ para filtrar os dados. poetdvi FlePout(betsne,CsoEpesoEetrse rtce od itrrdcsojc edr utmxrsinvnAg ) { eQey=fo pi eQeyCs( .ur rm n .ur.at) weepUiPie> 1 hr .ntrc = 0 slc p eet ; }

Estes exemplos mostram apenas uma expresso a ser utilizado no QueryExtender controlo de cada vez. No entanto, voc pode incluir vrias expresses dentro do QueryExtender controle.

Cdigo HTML codificado Expresses


Alguns sites do ASP.NET (especialmente com ASP.NET MVC) dependem fortemente de usar < = % e p e s o >sintaxe (muitas vezes chamada de "cdigo nuggets") para escrever algum texto para a xrs% resposta. Quando voc usa expresses de cdigo, fcil esquecer de HTML-codificar o texto, se o texto vem da entrada do usurio, ele pode deixar as pginas abertas para um XSS (Cross Site Scripting) ataque. ASP.NET 4 introduz a seguinte sintaxe nova para expresses de cdigo: <:epeso> % xrs%

Esta sintaxe usa a codificao HTML por padro quando se escreve para a resposta. Esta nova expresso traduz efectivamente para o seguinte: < = HtUiiy.HmEcd (epeso)% % tptlt tlnoe xrs >

Por exemplo, <%: Request ["userinput"]%> executa codificao HTML no valor de Request ["userinput"] . O objetivo desse recurso para torn-lo possvel substituir todas as instncias da sintaxe antiga com a nova sintaxe para que voc no obrigado a decidir em cada etapa qual usar. No entanto, h casos em que a sada de texto sendo se destina a ser HTML ou j est codificado, caso em que isto poderia conduzir a uma dupla codificao. Para esses casos, ASP.NET 4 introduz uma nova interface, IHtmlString , juntamente com uma

www.asp.net/whitepapers/aspnet4

23/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

implementao concreta, HtmlString . As instncias desses tipos permitem que voc indicar que o valor de retorno j est devidamente codificado (ou outro tipo de exame) para exibir como HTML, e que, portanto, o valor no deve ser codificado em HTML novamente. Por exemplo, o seguinte no deve ser (e no ) HTML codificado: <: nv HmSrn ("TL<tog qenoet cdfcd < srn> )% % oo tltig HM srn> u s oiiao / tog" >

ASP.NET MVC 2 mtodos auxiliares foram atualizados para trabalhar com esta nova sintaxe para que eles no valem o dobro codificado, mas s quando voc estiver executando o ASP.NET 4. Esta nova sintaxe no funciona quando voc executar um aplicativo usando ASP.NET 3.5 SP1. Tenha em mente que isso no garante a proteo contra ataques XSS. Por exemplo, o HTML que usa valores de atributos que no esto entre aspas pode conter a entrada do usurio que ainda suscetvel. Observe que a sada de controles do ASP.NET e ASP.NET MVC ajudantes sempre inclui os valores dos atributos entre aspas, que a abordagem recomendada. Do mesmo modo, esta sintaxe no executa JavaScript de codificao, como quando voc criar uma seqncia de JavaScript com base na entrada do usurio.

Alteraes de modelo de projeto


Em verses anteriores do ASP.NET, quando voc usar o Visual Studio para criar um novo projeto de site da Web ou projeto de aplicativo da Web, os projetos resultantes contm apenas uma pgina Default.aspx, um padro W b c n i arquivo, eo A p D t pasta, como mostrado na ilustrao a e.ofg p_aa seguir:

Visual Studio tambm suporta um vazio Web tipo de projeto do site, que no contm arquivos em tudo, como mostrado na figura a seguir:

O resultado que para o iniciante, h muito pouca orientao sobre como construir uma aplicao Web de produo. Portanto, ASP.NET 4 apresenta trs novos modelos, um para um projeto vazio de aplicativo da Web, e cada um para um aplicativo da Web e projeto Web Site.

Modelo de Aplicativo da Web vazio

Como o nome sugere, o modelo de aplicativo da Web vazio um despojado Web Application. Voc seleciona este modelo de projeto da caixa de dilogo Visual Estdio New Project, como mostrado na figura a seguir:

( Clique para ver a imagem no tamanho completo ) Quando voc cria um vazio aplicativo da Web ASP.NET, Visual Studio cria o layout seguinte pasta:

www.asp.net/whitepapers/aspnet4

24/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

Isto semelhante ao layout Vazio Web Site a partir de verses anteriores do ASP.NET, com uma exceo. No Visual Studio 2010, Web Application Vazio e projetos Web site vazio conter o seguinte mnima W b c n i arquivo que contm informaes usadas pelo Visual Studio para identificar o e.ofg quadro que o projeto tem como alvo:

Sem esta targetFramework propriedade, o padro do Visual Studio para direcionamento do. NET Framework 2.0, a fim de preservar a compatibilidade ao abrir aplicativos mais antigos.

Aplicativo da Web e Modelos de projeto de site da Web

Os outros dois novos modelos de projeto que so fornecidos com o Visual Studio 2010 contm grandes mudanas. A figura a seguir mostra o layout do projeto que criado quando voc cria um novo projeto de aplicativo da Web. (O layout de um projeto de site da Web virtualmente idntico.)

O projeto inclui uma srie de arquivos que no foram criados em verses anteriores. Alm disso, o novo projeto de aplicativo da Web est configurado com a funcionalidade de nvel bsico, que permite que voc rapidamente comear a proteger o acesso para a nova aplicao. Devido a essa incluso, o W b c n i de arquivo para o novo projeto inclui entradas que so usados e.ofg para configurar membros, papis e perfis. O exemplo a seguir mostra o W b c n i de arquivo para um e.ofg novo projeto Web Application. (Neste caso, roleManager est desativado.)

www.asp.net/whitepapers/aspnet4

25/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

( Clique para ver a imagem no tamanho completo ) O projeto tambm contm um segundo W b c n i arquivo na c n ado diretrio. O segundo e.ofg ot arquivo de configurao fornece uma maneira de garantir o acesso pgina ChangePassword.aspx para no-usurios logados. O exemplo seguinte mostra o contedo do segundo W b c n i arquivo. e.ofg

As pginas criadas por padro nos novos modelos de projeto tambm contm mais contedo do que nas verses anteriores. O projeto contm uma pgina mestra padro e arquivo CSS, ea pgina padro (Default.aspx) configurado para usar a pgina mestra por padro. O resultado que quando voc executar o aplicativo da Web ou Web site pela primeira vez, a pgina (home) j funcional. Na verdade, semelhante pgina padro que voc v quando voc iniciar um aplicativo MVC novo.

( Clique para ver a imagem no tamanho completo ) A inteno dessas mudanas para os modelos de projeto fornecer orientaes sobre como comear a construir um novo aplicativo da Web. Com semanticamente correcta, rigorosa XHTML, marcao 1,0compatvel e com layout que especificado usando CSS, as pginas dos modelos representam as melhores prticas para a construo de aplicaes Web ASP.NET 4. As pginas padro tambm tem um layout de duas colunas que voc pode personalizar facilmente. Por exemplo, imagine que, para um novo aplicativo da Web que voc quer mudar algumas das cores e inserir o logotipo da empresa no lugar do logotipo do meu aplicativo ASP.NET. Para fazer isso, voc cria um novo diretrio em C n e d para guardar a sua imagem do logotipo: oto

Para adicionar a imagem da pgina, voc abra o S t . a t rarquivo, encontrar onde o meu texto ieMse do aplicativo ASP.NET definido, e substitu-lo com uma imagem de elemento cujo src atributo definido como a imagem do logotipo novo, como no seguindo o exemplo:

( Clique para ver a imagem no tamanho completo ) Em seguida, pode ir para o arquivo Site.css e modificar as definies de classe CSS para mudar a cor de fundo da pgina, bem como a do cabealho, como no exemplo seguinte:

O resultado dessas mudanas que voc pode exibir uma pgina inicial personalizada com muito

www.asp.net/whitepapers/aspnet4

26/39

06/05/12
pouco esforo:

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

( Clique para ver a imagem no tamanho completo )

Melhorias CSS
Uma das principais reas de trabalho em ASP.NET 4 tem sido ajudar a renderizao HTML que compatvel com os ltimos padres HTML. Isso inclui mudanas na maneira como controles de servidor Web ASP.NET usar estilos CSS.

Configurao de Compatibilidade para renderizao

Por padro, quando um aplicativo da Web ou Web site tem como alvo o. NET Framework 4, o controlRenderingCompatibilityVersion atributo do pginas elemento definido como "4.0". Este elemento definido no nvel da mquina W b c n i arquivo e por padro aplica-se a todos os 4 do ASP.NET e.ofg aplicaes: <itm .wb> Ssea e <ia cnrledrnCmaiiiyeso =", |40 / pgns otoRneigoptbltVrin 35 ," > < ssea.wb> / itm e

O valor para controlRenderingCompatibility uma string, que permite que os potenciais definies de novas verses em verses futuras. Na verso atual, os seguintes valores so suportados para este imvel: "3.5". Essa configurao indica renderizao de herana e de marcao. Marcao processada por controles 100% compatvel, ea definio do xhtmlConformance propriedade honrado. "4.0". Se a propriedade tiver essa configurao, os controles de servidor Web do ASP.NET fazer o seguinte: O xhtmlConformance propriedade sempre tratado como "Strict". Como resultado, controles processam marcao XHTML 1.0 Strict. A desativao no controla a entrada j no torna invlidos estilos. div elementos em torno de campos ocultos so agora estilo para que eles no interfiram com o usurio criado regras CSS. Menu controles processam a marcao que semanticamente correto e em conformidade com as directrizes de acessibilidade. Controles de validao no renderizam estilos inline. Controles que fazem fronteira anteriormente prestado = "0" (controles que derivam do ASP.NET Tabela de controle, eo ASP.NET Imagem de controle) no tornam este atributo.

Controles incapacitantes

No ASP.NET 3.5 SP1 e verses anteriores, o quadro torna a deficientes atributo na marcao HTML para qualquer controle cujo Ativado propriedade definida como false . No entanto, de acordo com a especificao do HTML 4.01, somente de entrada elementos devem ter este atributo. No ASP.NET 4, voc pode definir o controlRenderingCompatabilityVersion propriedade de "3,5", como no exemplo a seguir: <itm .wb> Ssea e <ia cnrledrnCmaiiiyeso ="."/ pgns otoRneigoptbltVrin 35 > < ssea.wb> / itm e

Voc pode criar uma marcao de uma etiqueta de controle como a seguinte, que desativa o controle: <s:Lbl I ="ae" rnt="evr Txo="et" Hbltd ="as"> Ap ae D Lbl ua sre" et Tse aiiao fle

www.asp.net/whitepapers/aspnet4

27/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

A etiqueta de controle tornaria o HTML seguinte: <pn i ="ae1 dstvd ="iald >tse< sa> Sa d Lbl" eaiao dsbe" et / pn

No ASP.NET 4, voc pode definir o controlRenderingCompatabilityVersion para "4.0". Nesse caso, somente os controles que tornam entrada elementos vo render uma deficincia atributo quando o controle ativado propriedade definida como false . Controles que no prestam HTML de entrada de elementos em vez tornar uma classe atributo que faz referncia a uma classe CSS que voc pode usar para definir um visual com deficincia para o controle. Por exemplo, a etiqueta de controlo representado no exemplo anterior geraria a marcao a seguir: <pn i ="pn" cas ="sntiald >tse< sa> Sa d Sa1 lse apedsbe" et / pn

O valor padro para a classe que o especificado para este controle "aspNetDisabled". No entanto, voc pode alterar este valor padro definindo a esttica DisabledCssClass propriedade esttica da WebControl classe. Para desenvolvedores de controle, o comportamento a ser usado para um controle especfico tambm pode ser definida usando o SupportsDisabledAttribute propriedade.

Ocultando elementos div Cerca de Campos Escondidos


ASP.NET 2.0 e verses posteriores tornar especficos do sistema campos ocultos (como o oculto elemento usado para armazenar informaes de estado de exibio) no interior div elemento a fim de cumprir com o padro XHTML. No entanto, isso pode causar um problema quando uma regra CSS afeta div elementos em uma pgina. Por exemplo, pode resultar em uma linha de um pixel que aparece na pgina em torno ocultos div elementos. No ASP.NET 4, div elementos que envolvem os campos ocultos gerados pelo ASP.NET adicionar uma referncia de classe CSS como no exemplo a seguir: <i cas="sNtidn >..< dv Dv ls apeHde" . / i>

Voc pode, ento, definir uma classe CSS que se aplica apenas s escondidas elementos que so geradas pelo ASP.NET, como no exemplo a seguir: <sio tp ="et/cs > Etl io tx s" DV#apeHde {fotia:0; I sNtidn rner } < sye / tl>

Renderizando uma tabela externa para controles Templated


Por padro, o seguinte ASP.NET controles de servidor Web que os modelos de apoio esto automaticamente envolto em uma tabela externa que usado para aplicar estilos inline: FormView Login PasswordRecovery ChangePassword Feiticeiro CreateUserWizard Uma nova propriedade chamada RenderOuterTable foi adicionado a estes controlos que permite que a tabela externa a ser removido a partir da marcao. Por exemplo, considere o seguinte exemplo de um FormView controle: <s:FrVe I ="omiw" rnt="evr > Ap omiw D FrVe1 ua sre" <tmepae IeTmlt> Cned oto < IeTmlt> / tmepae < ap FrVe> / s: omiw

Essa marcao deixa o seguinte resultado para a pgina, que inclui uma tabela de HTML: <al clsaig""bre=0 i=Tbe"sye"odrclas:olpe" tbe elpcn=0 odr"" d"al1 tl=bre-olpeclas;> <r t> <dclpn"" t osa=2> Cnet otn <t> /d <t> /r

www.asp.net/whitepapers/aspnet4

28/39

06/05/12
<tbe /al>

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

Para impedir que a tabela que est sendo processado, voc pode definir o FormView controle RenderOuterTable propriedade, como no exemplo a seguir: <s:FrVe I ="omiw" rnt="evr RneOtral ="as"> Ap omiw D FrVe1 ua sre" edrueTbe fle

O exemplo anterior torna a sada seguinte, sem a tabela , tr , e td elementos: Contedo Este aprimoramento pode tornar mais fcil ao estilo do contedo do controle com a CSS, porque nenhuma tag inesperados so prestados pelo controle.

Observao Essa alterao desativa o suporte para a funo de auto-format no Visual Studio designer 2010, porque no h mais uma tabela elemento que pode hospedar os atributos de estilo que so gerados pela opo de auto-formatao.

ListView controle Melhorias


O ListView controle tem sido feito mais fcil de usar em ASP.NET 4. A verso anterior do controle necessrio que voc especificar um modelo de layout que continha um controle de servidor com um ID conhecido. A marcao a seguir mostra um exemplo tpico de como usar o ListView controle no ASP.NET 3.5. <s:itiwI=LsVe1 rnt"evr> apLsVe D"itiw" ua=sre" <aotepae LyuTmlt> <s:lcHle I=IePaeodr rnt"evr>/s:lcHle> apPaeodr D"tmlcHle" ua=sre"<apPaeodr <LyuTmlt> /aotepae <tmepae IeTmlt> < Ea(LsNm"% % vl"atae)> <IeTmlt> /tmepae <apLsVe> /s:itiw

No ASP.NET 4, o ListView controle no exige um modelo de layout. A marcao mostrado no exemplo anterior pode ser substitudo com a seguinte marcao: <s:itiwI=LsVe1 rnt"evr> apLsVe D"itiw" ua=sre" <tmepae IeTmlt> < Ea(LsNm"% % vl"atae)> <IeTmlt> /tmepae <apLsVe> /s:itiw

CheckBoxList e RadioButtonList Controle de Melhorias


No ASP.NET 3.5, voc pode especificar o layout para o CheckBoxList e RadioButtonList usando as duas seguintes definies: Fluxo . O controle processa abrangem elementos para conter seu contedo. Tabela . O controle processa uma tabela elemento para conter o seu contedo. O exemplo seguinte mostra marcao para cada um destes controlos. <s:hcBxitI=CekoLs1 rnt"evr RpaLyu=Fo" apCekoLs D"hcBxit" ua=sre" eetaot"lw> <s:ittmTx=CekoLs"Vle"b"/ apLsIe et"hcBxit au=cl > <apCekoLs> /s:hcBxit <s:aiBtoLs rnt"evr RpaLyu=Tbe> apRdoutnit ua=sre" eetaot"al" <s:ittmTx=Rdoutnit Vle"b"/ apLsIe et"aiBtoLs" au=rl > <apRdoutnit /s:aiBtoLs>

Por padro, os controles processam HTML semelhante seguinte: <pni=Sa2>ipti=CekoLs10 tp=ceko" sa d"pn"<nu d"hcBxit_" ye"hcbx nm=CekoLs10 /<ae fr"hcBxit_"CekoLs<lbl<sa> ae"hcBxit$" >lbl o=CekoLs10>hcBxit/ae>/pn <al i=Rdoutnit"bre=0> tbe d"aiBtoLs1 odr"" <r t> <d<nu i=Rdoutnit_"tp=rdo nm=Rdoutnit"vle"b"/<ae fr"aiBtoLs10>aiBtoLs t>ipt d"aiBtoLs10 ye"ai" ae"aiBtoLs1 au=rl >lbl o=Rdoutnit_"Rdoutnit

www.asp.net/whitepapers/aspnet4

29/39

06/05/12
<t> /r <tbe /al>

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

Porque esses controles contm listas de itens, para processar HTML semanticamente correto, eles devem tornar seus contedos utilizando HTML lista ( li ) elementos. Isto torna mais fcil para os usurios que lem pginas da Web usando tecnologia assistiva, e faz com que os controles mais fceis de estilo usando CSS. No ASP.NET 4, os CheckBoxList e RadioButtonList controles suportam os seguintes valores novos para a RepeatLayout propriedade: ListaOrdenada - O contedo apresentado como li elementos dentro de uma ol elemento. UnorderedList - O contedo apresentado como li elementos dentro de um ul elemento. O exemplo a seguir mostra como usar esses novos valores.

<s:hcBxitI=CekoLs1 rnt"evr apCekoLs D"hcBxit" ua=sre" RpaLyu=Odrdit> eetaot"reeLs" <s:ittmTx=CekoLs"Vle"b"/ apLsIe et"hcBxit au=cl > <apCekoLs> /s:hcBxit

<s:aiBtoLs I=Rdoutnit"rnt"evr apRdoutnit D"aiBtoLs1 ua=sre" RpaLyu=Uodrdit> eetaot"nreeLs" <s:ittmTx=Rdoutnit Vle"b"/ apLsIe et"aiBtoLs" au=rl > <apRdoutnit /s:aiBtoLs>

A marcao anterior gera o seguinte HTML:

<li=CekoLs1> o d"hcBxit" <i<nu i=CekoLs10 tp=ceko"nm=CekoLs10 vle"b"/<ae fr"hcBxit_"CekoLs<lbl<l> l>ipt d"hcBxit_" ye"hcbx ae"hcBxit$" au=cl >lbl o=CekoLs10>hcBxit/ae>/i <o> /l

<li=Rdoutnit" u d"aiBtoLs1> <i<nu i=Rdoutnit_"tp=rdo nm=Rdoutnit"vle"b"/<ae fr"aiBtoLs10>aiBtoLs<lbl< l>ipt d"aiBtoLs10 ye"ai" ae"aiBtoLs1 au=rl >lbl o=Rdoutnit_"Rdoutnit/ae> <u> /l

Observao Se voc definir RepeatLayout para listaOrdenada ou UnorderedList , o RepeatDirection propriedade no pode mais ser usado e vai lanar uma exceo em tempo de execuo se a propriedade tiver sido definida dentro de sua marcao ou cdigo. A propriedade no teria valor porque o layout visual desses controles definida utilizando CSS ao invs.

Melhorias de Controle do Menu


Antes de ASP.NET 4, o Menu de controle processado uma srie de tabelas HTML. Isso tornou mais difcil de aplicar estilos CSS fora da definio de propriedades em linha e tambm no era compatvel com as normas de acessibilidade. Em ASP.NET 4, o controle agora renderiza HTML usando marcao semntica que consiste de uma lista sem ordem e os elementos da lista. O exemplo a seguir mostra a marcao em uma pgina ASP.NET para o Menu de controle.

<s:euI=Mn1 rnt"evr> apMn D"eu" ua=sre" <tm><s:eutmTx=Hm"Vle"oe / Ies apMnIe et"oe au=Hm" > <s:eutmTx=Aot Vle"bu"/ apMnIe et"bu" au=Aot > <Ies /tm> <apMn> /s:eu

Quando a pgina processa, o controlo produz o seguinte HTML (o onclick cdigo foi omitida para maior clareza):

www.asp.net/whitepapers/aspnet4

30/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

<i i=Mn1> dv d"eu" <l u> <i< he=# ocik"."Hm<a<l> l>a rf"" nlc=..>oe/>/i <i< he=# ocik"."Aot/>/i l>a rf"" nlc=..>bu<a<l> <u> /l <dv /i> <cittp=tx/aacit> srp ye"etjvsrp" nwSsWbom.eu'eu'; e y.eFrsMn(Mn1) <srp> /cit

Alm de melhorias de renderizao, navegao pelo teclado do menu foi melhorada usando o gerenciamento de foco. Quando o Menu de controle recebe o foco, voc pode usar as setas do teclado para navegar elementos. O menu de controle tambm agora atribui Accessible Rich Internet Applications (ARIA) papis e atributos Follo ala para a melhoria da acessibilidade. Estilos para o controle de menu so processados um bloco de estilo no topo da pgina, ao invs em de em linha com os elementos prestados HTML. Se voc quiser assumir o controle total sobre o estilo para o controle, voc pode definir o novo IncludeStyleBlock propriedade para false , caso em que o bloco de estilo no emitida. Uma forma de usar essa propriedade usar o recurso de auto-format no designer do Visual Studio para definir a aparncia do menu. Voc pode ento executar a pgina, abrir o cdigo fonte da pgina e copie o bloco de estilo prestado a um arquivo CSS externo. No Visual Studio, desfazer o estilo e definir IncludeStyleBlock para falso . O resultado que o aparecimento de menu definida utilizando estilos em uma folha de estilo externa.

Controles do assistente e CreateUserWizard


O ASP.NET Assistente e CreateUserWizard controles suportam modelos que permitem definir o cdigo HTML que eles prestam. ( CreateUserWizard deriva de Assistente ). O exemplo a seguir mostra a marcao para um totalmente templated CreateUserWizard controle:

<s:raesriadI=CetUeWzr1 rnt"evr AtvSeIdx"" apCetUeWzr D"raesriad" ua=sre" cietpne=0> <edrepae HaeTmlt> <HaeTmlt> /edrepae <ieaTmlt> SdBrepae <SdBrepae /ieaTmlt> <tpaiainepae SeNvgtoTmlt> <SeNvgtoTmlt> /tpaiainepae <trNvgtoTmlt> Sataiainepae <Sataiainepae /trNvgtoTmlt> <iihaiainepae FnsNvgtoTmlt> <FnsNvgtoTmlt> /iihaiainepae <iadtp> WzrSes <s:raesriadtpI=CetUeWzrSe1 rnt"evr> apCetUeWzrSe D"raesriadtp" ua=sre" <otnTmlt> Cnetepae <Cnetepae /otnTmlt>

<utmaiainepae CsoNvgtoTmlt> <CsoNvgtoTmlt> /utmaiainepae <apCetUeWzrSe> /s:raesriadtp <s:opeeiadtpI=CmltWzrSe1 rnt"evr> apCmltWzrSe D"opeeiadtp" ua=sre" <otnTmlt> Cnetepae <Cnetepae /otnTmlt> <apCmltWzrSe> /s:opeeiadtp <WzrSes /iadtp> <apCetUeWzr> /s:raesriad

O controle processa HTML semelhante que se segue:

<al clsaig""clpdig""bre=0 i=CetUeWzr1 sye"odrclas:olpe" tbe elpcn=0 eladn=0 odr"" d"raesriad" tl=bre-olpeclas;> <r t> <dHae<t> t>edr/d <t> /r

www.asp.net/whitepapers/aspnet4

31/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial
<rsye"egt10;> t tl=hih:0%" <d t> <al clsaig""clpdig""bre=0 sye"egt10;it:0%bre-olpeclas;> tbe elpcn=0 eladn=0 odr"" tl=hih:0%wdh10;odrclas:olpe" <r t> <dsye"egt10;it:0%"<t> t tl=hih:0%wdh10;>/d <t> /r <tbe /al> <t> /d <t> /r <r t> <dain"ih"<t> t lg=rgt>/d <t> /r

<tbe /al>

No ASP.NET 3.5 SP1, embora voc possa alterar o contedo do modelo, voc ainda tem controle limitado sobre a sada do Assistente de controle. No ASP.NET 4, voc pode criar um LayoutTemplate modelo e inserir PlaceHolder controles (usando nomes reservados) para especificar como voc deseja que o controle Wizard para renderizar. O exemplo a seguir mostra isso:

<s:raesriadI=CetUeWzr1 rnt"evr AtvSeIdx"" apCetUeWzr D"raesriad" ua=sre" cietpne=1> <aotepae LyuTmlt> <s:lcHle I=haePaeodr rnt"evr / apPaeodr D"edrlchle" ua=sre" > <s:lcHle I=sdBrlchle"rnt"evr / apPaeodr D"ieaPaeodr ua=sre" > <s:lcHle i=wzrSePaeodr rnt"evr / apPaeodr d"iadtplchle" ua=sre" > <s:lcHle i=nvgtoPaeodr rnt"evr / apPaeodr d"aiainlchle" ua=sre" > <LyuTmlt> /aotepae <edrepae HaeTmlt> Hae edr <HaeTmlt> /edrepae <iadtp> WzrSes <s:raesriadtprnt"evr> apCetUeWzrSe ua=sre" <otnTmlt> Cnetepae <Cnetepae /otnTmlt> <apCetUeWzrSe> /s:raesriadtp <s:opeeiadtprnt"evr> apCmltWzrSe ua=sre" <otnTmlt> Cnetepae <Cnetepae /otnTmlt> <apCetUeWzrSe> /s:raesriadtp <WzrSes /iadtp> <apCetUeWzr> /s:raesriad

O exemplo contm os seguintes espaos reservados nomeados no LayoutTemplate elemento: headerPlaceholder - tempo de execuo, este substitudo por o contedo do HeaderTemplate elemento. sideBarPlaceholder - tempo de execuo, este substitudo por o contedo do SideBarTemplate elemento. wizardStepPlaceHolder - tempo de execuo, este substitudo por o contedo do WizardStepTemplate elemento. navigationPlaceholder - Em tempo de execuo, este substitudo por outros modelos de navegao que voc definiu. A marcao no exemplo que usa espaos reservados processa o HTML a seguir (sem o contedo realmente definida nos modelos): <pn sa> < sa> / pn

O HTML s que agora no definida pelo usurio uma extenso do elemento. (Prevemos que em verses futuras, at mesmo o perodo de elemento no ser processado.) Isto agora d-lhe total controle sobre praticamente todo o contedo que gerado pelo Assistente de controle.

ASP.NET MVC
ASP.NET MVC foi introduzido como um quadro add-on para ASP.NET 3.5 SP1 em maro de 2009. Visual Studio 2010 inclui ASP.NET MVC 2, que inclui novos recursos e capacidades.

reas de Apoio
reas de deix-lo controladores do grupo e vistas em sees de uma grande aplicao em relativo

www.asp.net/whitepapers/aspnet4

32/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

isolamento de outras sees. Cada rea pode ser implementado como um projeto separado MVC ASP.NET que pode ser referenciado pela aplicao principal. Isso ajuda a gerenciar a complexidade, quando voc constri um aplicativo grande e torna mais fcil para vrias equipes para trabalhar juntos em um nico aplicativo.

Dados Anotao Suporte Validao Atributo


DataAnnotations atributos deixar voc anexar a lgica de validao de um modelo usando atributos de metadados. DataAnnotations atributos foram introduzidos no ASP.NET Dynamic Data em ASP.NET 3.5 SP1. Estes atributos foram integrados no modelo de fichrio padro e fornecer um meio de metadados orientados para validar a entrada do usurio.

Ajudantes Templated
Ajudantes Templated deix-lo associar automaticamente editar e exibir os modelos com tipos de dados. Por exemplo, voc pode usar um ajudante modelo para especificar que um selecionador de data-elemento da interface do usurio processada automaticamente para um System.DateTime valor. Isso semelhante a modelos de campo em ASP.NET Dynamic Data. Os Html.EditorFor e Html.DisplayFor mtodos auxiliares tm suporte incorporado para prestao de tipos de dados padro, bem como objetos complexos com mltiplas propriedades. Eles tambm personalizar a renderizao, permitindo que voc aplica dados de anotao atributos como DisplayName e ScaffoldColumn ao ViewModel objeto. Muitas vezes voc quiser personalizar a sada de ajudantes de interface do usurio ainda mais longe e tem controle total sobre o que gerado. O Html.EditorFor e Html.DisplayFor mtodos auxiliares apoiar esta usando um mecanismo de modelagem que permite definir modelos externos que podem substituir e controlar a sada processada. Os modelos podem ser processados individualmente para uma classe.

Dynamic Data
Dados dinmicos foi introduzido na NET Framework 3.5. Lanamento do SP1 em meados de 2008. Este recurso fornece muitas melhorias para a criao de aplicaes orientadas a dados, incluindo o seguinte: Uma experincia de RAD para criar rapidamente um site orientado por dados. Validao automtica que baseado em restries definidas no modelo de dados. A capacidade de alterar facilmente a marcao que gerada para os campos do GridView e DetailsView controles usando modelos de campo que fazem parte de seu projeto de dados dinmicos.

Observao Para obter mais informaes, consulte a documentao de dados dinmicos na MSDN Library.

Para ASP.NET 4, dados dinmicos foi aprimorado para oferecer aos desenvolvedores ainda mais poder para a rpida construo de sites orientados a dados da Web.

Permitindo que os dados dinmicos para projetos existentes


Dinmicas caractersticas de dados que enviados na NET Framework 3.5 SP1 trouxe novas funcionalidades, tais como as seguintes.: Modelos de campo - Estes dados fornecem modelos-tipo baseados para controles ligados a dados. Modelos de campo fornecem uma maneira mais simples de personalizar a aparncia de controles de dados do que o uso de campos de modelo para cada campo. Validao - Dynamic Data permite que voc use atributos em classes de dados para especificar a validao de cenrios comuns, como campos obrigatrios, verificao de gama, verificao de tipo, padro correspondente usando expresses regulares, e validao personalizada. Validao exigida pelos controles de dados. No entanto, estas caractersticas tiveram os seguintes requisitos: A camada de acesso a dados tiveram que ser baseado em Entity Framework ou LINQ to SQL. Os controles de dados nica fonte de suporte para esses recursos foram o EntityDataSource ou LinqDataSource os controles. As caractersticas exigidas de um projeto da Web que havia sido criado com os dados dinmicos ou entidades dinmicas modelos de dados, a fim de ter todos os arquivos que foram necessrios para suportar o recurso. O principal objetivo do apoio de dados dinmicos em ASP.NET 4 para ativar a nova funcionalidade de dados dinmicos para qualquer aplicao ASP.NET. O exemplo a seguir mostra a marcao para controles que podem tirar proveito da funcionalidade de dados dinmicos em uma pgina existente.

www.asp.net/whitepapers/aspnet4

33/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

<s:rdiwI=GiVe1 rnt"evr AtGnrtClms"re apGiVe D"rdiw" ua=sre" uoeeaeoun=Tu" DtKyae=PoutD DtSucI=LnDtSuc1> aaeNms"rdcI" aaoreD"iqaaore" <apGiVe> /s:rdiw <s:iqaaoreI=LnDtSuc1 rnt"evr apLnDtSuc D"iqaaore" ua=sre" Cnetyeae"aalseDtCnet EalDlt=Tu"EalIsr=Tu" otxTpNm=DtCassaaotx" nbeeee"re nbenet"re EalUdt=Tu"Tbeae"rdcs> nbepae"re alNm=Pout" <apLnDtSuc> /s:iqaaore

No cdigo da pgina, o seguinte cdigo deve ser adicionado para habilitar o suporte de dados dinmicos para esses controles: GiVe1.EalDnmcaa(tpo (pouo); rdiw nbeyaiDt yef rdt )

Quando o GridView controle estiver no modo de edio, dados dinmicos valida automaticamente que os dados inseridos no formato adequado. Se no , uma mensagem de erro exibida. Essa funcionalidade tambm proporciona outros benefcios, tais como ser capaz de especificar valores padro para o modo de insero. Sem dados dinmicos, para implementar um valor padro para um campo, voc deve anexar a um evento, localize o controle (usando FindControl ), e definir seu valor. No ASP.NET 4, o EnableDynamicData chamada suporta um segundo parmetro que permite a passagem de valores padro para qualquer campo no objeto, como mostrado neste exemplo: Dtisiw .EalDnmcaa(tpo (pouo) nv { Poutae = "ealNm" }; ealVe1 nbeyaiDt yef rdt , oo rdcNm Dfutae )

Sintaxe de Controle declarativa DynamicDataManager


O DynamicDataManager controle foi aprimorado para que voc possa configur-lo declarativamente, como acontece com a maioria dos controles em ASP.NET, ao invs de apenas no cdigo. A marcao para o DynamicDataManager controle se parece com o seguinte exemplo:

i ="rdiw"rnt="evr d GiVe1 ua sre" < ap GiVe> / s: rdiw

Essa marcao permite um comportamento dinmico de dados para o controle GridView1 que referenciado no DataControls seo do DynamicDataManager controle.

Modelos de entidade
Modelos de entidade oferecem uma nova maneira de personalizar o layout dos dados sem a necessidade de criar uma pgina personalizada. Modelos de pgina usar o FormView controle (em vez do DetailsView controle, como usado em modelos de pgina em verses anteriores do Dynamic Data) eo DynamicEntity controle para processar modelos de entidade. Isso lhe d mais controle sobre a marcao que processado por dados dinmicos. A lista a seguir mostra o novo layout de diretrio do projeto que contm modelos de entidade: \yaiDt\niyepae DnmcaaEttTmlts \yaiDt\niyepae\eal.sx DnmcaaEttTmltsDfutac \yaiDt\niyepae\eal_dtac DnmcaaEttTmltsDfutEi.sx \yaiDt\niyepae\eal_netac DnmcaaEttTmltsDfutIsr.sx

O E t t T m l t diretrio contm os modelos para como exibir os objetos do modelo de dados. niyepae Por padro, os objetos so processados usando o D f u t a c modelo, que prev a marcao que eal.sx se parece com a marcao criada pelo DetailsView controle usado por dados dinmicos em ASP.NET 3.5 SP1. O exemplo a seguir mostra a marcao para o D f u t a c controle: eal.sx

<s:niyepaernt"evr I=TmltCnanr" apEttTmlt ua=sre" D"epaeotie1> <tmepae IeTmlt> <r t <d t>

www.asp.net/whitepapers/aspnet4

34/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial
<s:ae I=Lbl"rnt"evr OIi=LblIi"/ apLbl D"ae1 ua=sre" nnt"ae_nt > <t> /d <d t> <s:yaiCnrlrnt"evr OIi=Dnmcoto_nt / apDnmcoto ua=sre" nnt"yaiCnrlIi" > <t> /d <t> /r <IeTmlt> /tmepae

<apEttTmlt> /s:niyepae

Os modelos padro pode ser editado para alterar o look and feel para o site inteiro. H modelos para exibio, editar e inserir operaes. Novos modelos podem ser adicionados com base no nome do objeto de dados a fim de mudar a aparncia de apenas um tipo de objeto. Por exemplo, voc pode adicionar o seguinte modelo: \Dnmcaa\EttTmlts\Pout .ap yaiDt niyepae rdcs sx

O modelo pode conter a seguinte marcao:

<r t> <dNm<t> t>ae/d <d<s:yaiCnrlrnt"evr DtFed"rdcNm"/<t> t>apDnmcoto ua=sre" aail=Poutae >/d <dCtgr<t> t>aeoy/d <d<s:yaiCnrlrnt"evr DtFed"aeoy /<t> t>apDnmcoto ua=sre" aail=Ctgr" >/d <t> /r

Os modelos novos so entidades exibido em uma pgina usando o novo DynamicEntity controle. No tempo de execuo, este controlo substitudo com o contedo do modelo de entidade. A marcao a seguir mostra o FormView controle no D t i . s xmodelo de pgina que usa o modelo de ealap entidade. Observe o DynamicEntity elemento na marcao.

?Tmcread qedsj ecuret ie ") " e etz e u eea xli se tm ; Txo="eee / et Dlt" > < t> / d < t> / r < tbe / al> < IeTmlt> / tmepae < ap FrVe> / s: omiw

Novos modelos de campo para URLs e endereos de correio electrnico


ASP.NET 4 apresenta dois novos modelos internos de campo, E a l d r s . s xe U l a c . Esses miAdesac r.sx modelos so utilizados para campos que so marcados como EmailAddress ou Url com o DataType atributo. Para EmailAddress objetos, o campo exibido como um hiperlink que criado usando o mailto: protocolo. Quando os usurios clicam no link, ele abre o cliente do usurio de e-mail e cria uma mensagem de esqueleto. Objetos digitados como Url so exibidos como hiperlinks comuns. O exemplo a seguir mostra como os campos sero marcados.

[aayeDtTp.miAdes] DtTp(aayeEaldrs) pbi ojc HmEal{gt st } ulc bet oemi e; e; [aayeDtTp.r) DtTp(aayeUl] pbi ojc Wbie{gt st } ulc bet est e; e;

www.asp.net/whitepapers/aspnet4

35/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

Criando links com o controle DynamicHyperLink


Dados dinmicos usa o recurso de nova rota que foi adicionado nos. NET Framework 3.5 SP1 para controlar as URLs que os usurios finais vem quando acessar o site. O novo DynamicHyperLink controle torna fcil criar links para pginas em um site dinmico de dados. O exemplo seguinte mostra como utilizar o DynamicHyperLink controlo:

<s:DnmcyeLn I ="ityeLn" rnt="evr Ap yaiHprik D LsHprik ua sre" A ="it" Tbeae="rdts > o Lsa alNm Pouo" Msrrtdso pouo ota oo s rdts < ap DnmcyeLn> / s: yaiHprik

Esta marcao cria um link que aponta para a pgina Lista de P o u o tabela baseada em rotas que rdts so definidas no G o a . s xarquivo. O controle usa automaticamente o nome da tabela padro que lblaa a pgina dinmica de dados se baseia.

Suporte para Herana no Modelo de Dados


Tanto o quadro da Entidade e LINQ to SQL herana apoio em seus modelos de dados. Um exemplo disto pode ser uma base de dados que tem uma I s r n e o i ytabela. Ele tambm pode conter nuacPlc C r o i ye H u e o i ytabelas que possuem os mesmos campos I s r n e o i ye em seguida, aPlc osPlc nuacPlc adicione mais campos. Dados dinmicos foi modificado para compreender objectos herdadas no modelo de dados e para suportar andaime para as tabelas herdadas.

Suporte para muitos-para-muitos (Entity Framework Only)


O Entity Framework tem suporte rico para muitos-para-muitos entre tabelas, que implementado, expondo a relao como uma coleo de uma Entidade objeto. Nova M n T M n . s xe ayoayac M n T M n _ d t a c modelos de campo foram adicionadas para fornecer suporte para a exibio ayoayEi.sx e edio de dados que esto envolvidos em muitos-para-muitos.

Atributos de seu controle Enumeraes Display e Suporte


O DisplayAttribute foi adicionada para lhe dar mais controle sobre como os campos so exibidos. O DisplayName atributo em verses anteriores do Dynamic Data permitiu-lhe alterar o nome que usado como uma legenda para um campo. O novo DisplayAttribute classe permite especificar mais opes para a exibio de um campo, tal como a ordem em que um campo exibido e se um campo ser utilizado como um filtro. O atributo tambm proporciona um controlo independente do nome usado para as etiquetas em um GridView controle, o nome usado em um DetailsView controle, o texto de ajuda para o campo, ea marca de gua usado para o campo (se o campo aceita a entrada de texto). O EnumDataTypeAttribute classe foi adicionada para permitir que voc mapear campos para enumeraes. Quando voc aplicar esse atributo para um campo, voc pode especificar um tipo de enumerao. Dados dinmicos usa o novo E u e a i n a c modelo de campo para criar interface nmrto.sx do usurio para exibir e editar valores de enumerao. O modelo mapeia os valores do banco de dados com os nomes na enumerao.

Suporte avanado para Filtros


Dynamic Data 1,0 enviado com built-in filtros para colunas booleanas e de chave externa colunas. Os filtros no permitem que voc especifique se eles foram exibidos ou em que ordem eles foram exibidos. O novo DisplayAttribute atributo aborda ambas as questes, dando-lhe controle sobre se uma coluna exibido como um filtro e em que ordem sero exibidos. Um aumento adicional que o suporte de filtragem foi est escrito para usar o novo recurso de Web Forms. Isso permite que voc criar filtros sem a necessidade de conhecimento do controle da fonte de dados que os filtros sero utilizados com. Junto com essas extenses, filtros tambm foram transformados em controles de modelo, que permite que voc adicione novos. Finalmente, o DisplayAttribute classe mencionado anteriormente, permite que o padro de filtro a ser substitudo, da mesma maneira que UIHint permite que o modelo de campo padro para uma coluna para ser substitudo.

Visual Studio 2010 Melhorias Desenvolvimento Web


Desenvolvimento Web em Visual Studio 2010 foi aprimorado para maior compatibilidade CSS, o aumento da produtividade atravs de HTML e de marcao ASP.NET trechos e nova dinmica IntelliSense JavaScript.

Compatibilidade CSS melhorada


O designer Visual Web Developer no Visual Studio 2010 foi atualizado para melhorar a compatibilidade com os padres CSS 2.1. O designer melhor preserva a integridade da fonte de HTML e mais robusto do que em verses anteriores do Visual Studio. Sob o cap, melhorias de arquitetura tambm foram feitas, que vai permitir futuras melhorias na renderizao, layout e facilidade de manuteno.

HTML e JavaScript trechos


www.asp.net/whitepapers/aspnet4 36/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

No editor de HTML, o IntelliSense auto-completar nomes de marcas. O recurso do IntelliSense trechos de auto-completar tags inteiras e muito mais. No Visual Studio 2010, IntelliSense trechos so suportados por JavaScript, juntamente com C # e Visual Basic, que foram apoiadas em verses anteriores do Visual Studio. Visual Studio 2010 inclui mais de 200 trechos que ajudam voc a auto-completar comuns etiquetas ASP.NET e HTML, incluindo atributos necessrios (como runat = "server") e atributos comuns especficos de um tag (como ID , DataSourceID , ControlToValidate e Texto ). Voc pode baixar trechos adicionais, ou voc pode escrever seus prprios trechos que encapsulam os blocos de marcao que voc ou sua equipe usam para tarefas comuns.

JavaScript IntelliSense Melhorias


No Visual 2010, JavaScript IntelliSense foi redesenhado para proporcionar uma experincia de edio ainda mais rico. IntelliSense agora reconhece objectos que foram geradas dinamicamente por mtodos tais como registerNamespace e por tcnicas similares utilizados por outras estruturas JavaScript. Desempenho foi melhorado para analisar grandes bibliotecas de script e para exibir IntelliSense com pouco ou nenhum atraso de processamento. A compatibilidade tem sido drasticamente aumentada para suportar quase todas as bibliotecas de terceiros e apoiar diversos estilos de codificao. Comentrios de documentao so agora analisados medida que escreve e so imediatamente aproveitados pelo IntelliSense.

Implantao de Aplicativos Web com Visual Studio 2010


Quando os desenvolvedores de ASP.NET implantar um aplicativo da Web, eles muitas vezes acham que se deparam com questes como as seguintes: Implantando em um site de hospedagem compartilhada exige tecnologias como o FTP, o que pode ser lenta. Alm disso, voc deve manualmente executar tarefas como a execuo de scripts SQL para configurar um banco de dados e voc deve alterar as configuraes do IIS, como configurar uma pasta do diretrio virtual como um aplicativo. Em um ambiente corporativo, alm de implantar os arquivos de aplicativos da Web, os administradores freqentemente necessrio modificar arquivos de configurao do ASP.NET e as configuraes do IIS. Administradores de banco de dados deve executar uma srie de scripts de SQL para obter o funcionamento do banco de dados da aplicao. Essas instalaes so de trabalho intensivo, muitas vezes, demorar horas para ser concludo, e deve ser cuidadosamente documentados. Visual Studio 2010 inclui tecnologias que tratam estas questes e que lhe permitem facilmente implementar aplicaes web. Uma dessas tecnologias o IIS Web Deployment Tool (MsDeploy.exe). Recursos da Web de implantao em Visual Studio 2010 inclui as seguintes reas principais: Embalagem Web Transformao Web.config Implantao de banco de dados Um clique publicar para aplicativos da Web As sees a seguir fornecem detalhes sobre esses recursos.

Embalagem Web
Visual Studio 2010 usa a ferramenta MSDeploy para criar um arquivo compactado (. Zip) para sua aplicao, que referido como um pacote da Web . O arquivo de pacote contm metadados sobre a sua aplicao, mais o seguinte contedo: IIS configuraes, que inclui as configuraes do pool de aplicativos, configuraes de pgina de erro, e assim por diante. O contedo da Web real, que inclui pginas da Web, controles de usurio, contedo esttico (imagens e arquivos HTML), e assim por diante. SQL Server esquemas de banco de dados e dados. Certificados de segurana, componentes a serem instalados no GAC, configuraes do registro, e assim por diante. Um pacote Web pode ser copiado para qualquer servidor e, em seguida, instalado manualmente usando o Gerenciador do IIS. Alternativamente, para implantao automatizada, o pacote pode ser instalado usando o comando de linha de comando ou usando APIs de implantao. Visual Studio 2010 oferece construdo em tarefas do MSBuild e metas para criar pacotes de web. Para mais informaes, consulte ASP.NET Web Application Viso geral de implantao do projeto no site da MSDN e 10 + 20 motivos porque voc deve criar um pacote Web no blog Vishal Joshi.

Transformao Web.config
Para a implantao de aplicativos Web, Visual Studio 2010 apresenta documento XML Transform (XDT) , que um recurso que permite transformar um W b c n i arquivo de configuraes de e.ofg

www.asp.net/whitepapers/aspnet4

37/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

desenvolvimento para ambientes de produo. Configuraes de transformao so especificadas em arquivos de transformao nomeados w b d b g c n i , w b r l a e c n i , e assim por diante. e.eu.ofg e.ees.ofg (Os nomes desses arquivos corresponder as configuraes do MSBuild.) Um arquivo de transformao inclui apenas as mudanas que voc precisa fazer para uma implantado W b c n i e.ofg arquivo. Voc especificar as alteraes usando a sintaxe simples. O exemplo a seguir mostra uma parte de um w b r l a e c n i arquivo que pode ser produzido e.ees.ofg para a implantao de sua configurao de lanamento. Substituir a palavra-chave no exemplo especifica que durante a implantao da connectionString n no W b c n i arquivo ser substituda e.ofg com os valores que esto listados no exemplo.

<oncintig xt Tasom="usiur > CnetoSrns d: rnfr Sbtti" <d nm ="lgB CnetoSrn ="eah sqcad cnxo" / ad ae BoD" oncintig dtle eni e oe] > < cnetoSrns / oncintig>

Para mais informaes, consulte Sintaxe de Transformao Web.config para Web do projeto de implantao de aplicativos no MSDN Web site e de implantao da Web: Transformao Web.Config no blog Vishal Joshi.

Implantao de banco de dados


Um pacote de implantao do Visual Studio 2010 pode incluir dependncias de bancos de dados SQL Server. Como parte da definio do pacote, voc fornece a seqncia de conexo para seu banco de origem. Quando voc criar o pacote da Web, o Visual Studio 2010 cria scripts de SQL para o esquema de banco de dados e, opcionalmente, para os dados e, em seguida adiciona-os para o pacote. Voc tambm pode fornecer scripts personalizados SQL e especificar a seqncia em que devem executar no servidor. No momento da implantao, voc fornece uma seqncia de conexo que apropriado para o servidor de destino, o processo de implantao, em seguida, usa essa seqncia de conexo para executar os scripts que criam o esquema de banco de dados e adicionar os dados. Alm disso, usando um clique publicar, voc pode configurar a implantao para publicar seu banco de dados diretamente quando o aplicativo publicado em um site remoto compartilhado de hospedagem. Para mais informaes, consulte Como: Implantar um banco de dados com um projeto de aplicativo da Web no site da MSDN e implantao de banco de dados com o VS 2010 no blog Vishal Joshi.

Um-Clique em Publicar para Aplicaes Web


Visual Studio 2010 tambm permite que voc use o servio IIS gerenciamento remoto para publicar um aplicativo da Web para um servidor remoto. Voc pode criar um perfil de publicao para a sua conta de hospedagem ou para testar servidores ou servidores de teste. Cada perfil pode salvar as credenciais apropriadas de forma segura. Voc pode implantar em qualquer um dos servidores de destino com um clique usando a Web com um clique publicar barra de ferramentas. Com o Visual Studio 2010, voc tambm pode publicar usando a linha de comando MSBuild. Isso permite que voc configure sua equipe construir ambiente para incluir a publicao de um modelo de integrao contnua. Para mais informaes, consulte Como: Implantar um projeto de aplicativo da Web usando um clique publicar e implantar Web no site da MSDN e Web 1-Clique em Publicar com o VS 2010 no blog Vishal Joshi. Para visualizar apresentaes de vdeo sobre a implantao do aplicativo da Web no Visual Studio 2010, consulte o VS 2010 para Web Developer Previews no blog Vishal Joshi.

Recursos
Os seguintes sites fornecem informaes adicionais sobre ASP.NET 4 e Visual Studio 2010. ASP.NET 4 - A documentao oficial para ASP.NET 4 no site da MSDN. http://www.asp.net/ - O site da equipe ASP.NET da Web prprio. http://www.asp.net/dynamicdata/ e ASP.NET Dynamic Mapa contedo dos dados - Os recursos on-line no site da equipe ASP.NET e na documentao oficial para ASP.NET Dynamic Data. http://www.asp.net/ajax/ - O recurso da Web principal para desenvolvimento ASP.NET Ajax. http://blogs.msdn.com/webdevtools/ - O Visual Web Blog do Team Developer, que inclui informaes sobre recursos no Visual Studio 2010. http://www.codeplex.com/aspnet - O recurso da Web principal para verses prvias do ASP.NET.

Renncia
Este um documento preliminar e pode ser alterado substancialmente antes do lanamento comercial final do software aqui descrito. As informaes contidas neste documento representam a viso atual da Microsoft Corporation sobre os assuntos discutidos at a data da publicao. Como a Microsoft deve responder s condies de mercado, no deve ser interpretado como um compromisso por parte da Microsoft, ea Microsoft no pode garantir a preciso de qualquer informao apresentada aps a data de publicao.

www.asp.net/whitepapers/aspnet4

38/39

06/05/12

ASP.NET 4 e Visual Studio 2010 Viso geral sobre Desenvolvimento Web: Microsoft Site Oficial

Este White Paper apenas para fins informativos. MICROSOFT NO D GARANTIA, EXPRESSA OU IMPLCITA, EM RELAO S INFORMAES CONTIDAS NESTE DOCUMENTO. Obedecer s leis de direitos autorais aplicveis responsabilidade do usurio. Sem limitar os direitos autorais, nenhuma parte deste documento pode ser reproduzida, armazenada ou introduzida em um sistema de recuperao, ou transmitida por qualquer forma ou por qualquer meio (eletrnico, mecnico, fotocpia, gravao ou outro), ou para qualquer finalidade, sem a permisso expressa por escrito da Microsoft Corporation. A Microsoft pode ter patentes, aplicaes patentes, marcas comerciais, direitos autorais ou outros direitos de propriedade intelectual sobre o assunto neste documento. Exceto quando expressamente fornecido em qualquer contrato de licena escrito da Microsoft, o fornecimento deste documento no lhe confere qualquer licena a essas patentes, marcas comerciais, direitos autorais ou outra propriedade intelectual. Salvo disposio em contrrio, os exemplos de empresas, organizaes, produtos, nomes de domnio, endereos de email, logotipos, pessoas, lugares e eventos aqui mencionados so fictcios e nenhuma associao com qualquer empresa, organizao, produto, nome de domnio, endereo de e-mail, logotipo, pessoa, lugar ou evento intencional ou deve ser inferida. 2009 Microsoft Corporation. Todos os direitos reservados. Microsoft e Windows so marcas registradas ou marcas comerciais da Microsoft Corporation nos Estados Unidos e / ou outros pases. Os nomes de empresas e produtos reais aqui mencionados podem ser marcas comerciais de seus respectivos proprietrios.

Desenvolvido por

e Umbraco

Siga-nos em: Twitter | Facebook

Poltica de Privacidade | Termos de Servio | Retorno do Site | Anuncie Aqui Comentrios sobre ASP.NET | Problemas de arquivo

www.asp.net/whitepapers/aspnet4

39/39