ASP .NET 4.0 WebForms,
 Novas Funcionalidades
Caio Proiete

•   10 anos de experiência profissional em TI
•   Microsoft Most Valuable Professional
•   Microsoft Certified Trainer @ CICLO
•   Líder da Comunidade NetPonto
ASP .NET 4 WebForms

• Melhoria nos controlos existentes
• Maior controlo do código HTML gerado
• Código HTML mais “limpo”

• Novas Funcionalidades
  • ClientIDMode
  • ViewStateMode
  • URL Routing
File -> New -> Project

Demo
ClientIDMode e ViewStateMode

Parte II / III
ASP .NET <= 3.5: ClientID
    1) Master Page ("Conteudo")          Hierarquia
                                         dos Controlos




• ID dos controlos no HTML (ClientID):
   • ctl00_Conteudo
   • ctl00_Conteudo_Formulario
   • ctl00_Conteudo_Formulario_Nome
ASP .NET <= 3.5: ClientID
    1) Master Page ("Conteudo")          Hierarquia
                                         dos Controlos
    2) UserControl ("Formulario")




• ID dos controlos no HTML (ClientID):
   • ctl00_Conteudo
   • ctl00_Conteudo_Formulario
   • ctl00_Conteudo_Formulario_Nome
ASP .NET <= 3.5: ClientID
    1) Master Page ("Conteudo")          Hierarquia
                                         dos Controlos
    2) UserControl ("Formulario")

        3) TextBox ("Nome")




• ID dos controlos no HTML (ClientID):
   • ctl00_Conteudo
   • ctl00_Conteudo_Formulario
   • ctl00_Conteudo_Formulario_Nome
ASP .NET 4: ClientIDMode

• ClientIDMode permite customizar os IDs
  gerados para os controlos.

• AutoID - Idêntico ao ASP .NET <= 3.5
• Inherit - Herda o valor do container (default)
• Predictable - Concatenação dos nomes dos
  containers sem prefixos e sufixos ctlxxx.
• Static - Mantém o valor definido (não altera)
ASP .NET <= 3.5: EnableViewState

• EnableViewState precisa ser incluído
  invidualmente em cada controlo.

• Se desabilitar ao nível da página, desabilita
  para todos os controlos e ignora a definição
  nos controlos “filhos”.
ASP .NET 4: ViewStateMode

• ViewStateMode permite desabilitar o
  ViewState para toda a página, e habilitar
  apenas nos controlos desejados.

• Disabled - Desabilita o ViewState
• Enabled - Habilita o ViewState
• Inherit - Herda o valor do container
ClientIDMode e ViewStateMode

Demo
URL Routing

Parte III / III
ASP .NET 4: URL Routing

• Permite criar URLs mais legíveis e melhores
  para serem indexadas por mecanismos de
  busca (SEO-friendly).
  Ao invés de:
  /Produtos.aspx?cat=bebidas&subcat=vinhos
  /Produtos.aspx?cat=frescos&subcat=peixaria

  Utilize:
  /produtos/bebidas/vinhos
  /produtos/frescos/peixaria
ASP .NET 4: URL Routing

• Define-se o mapa das rotas no método
  Application_Start do Global.asax
 protected void Application_Start(object sender, EventArgs e)
 {
     RouteTable.Routes.MapPageRoute(
         "rotaProdutos",
         "produtos/{categoria}/{subcategoria}",
         "~/ListaDeProdutos.aspx");
 }
ASP .NET 4: URL Routing

• Define-se o mapa das rotas no método
  Application_Start do Global.asax
  protected void Application_Start(object sender, EventArgs e)
  {
      RouteTable.Routes.MapPageRoute(
          "rotaProdutos",
          "produtos/{categoria}/{subcategoria}",
          "~/ListaDeProdutos.aspx");
  }


Qualquer requisição que coincidir com este padrão, será tratada pela
página ListaDeProdutos.aspx
ASP .NET 4: URL Routing

• Na página, utiliza-se a colecção
  Page.RouteData.Values para obter os
  valores na URL
 protected void Page_Load(object sender, EventArgs e)
 {
     string categoria =
         (string)Page.RouteData.Values["categoria"];
 }
ASP .NET 4: URL Routing

• Para redireccionar para outra rota, utiliza-se
  o Response.RedirectToRoute
 protected void Page_Load(object sender, EventArgs e)
 {
     Response.RedirectToRoute("rotaProdutos",
         new { categoria = "Mercearia" });
 }
URL Routing

Demo
Resumo

• Diversas melhorias no ASP.NET 4 Web Forms
  • Melhorias nos controlos existentes
  • Maior controlo do HTML gerado
  • URLs lógicas e intuitivas com URL Routing


• E muito mais...
Q&A
A sua opinião é importante!
Complete o questionário de
avaliação e devolva-o à saida.
ASP .NET 4.0 WebForms, Novas funcionalidades
ASP .NET 4.0 WebForms, Novas funcionalidades

ASP .NET 4.0 WebForms, Novas funcionalidades

  • 1.
    ASP .NET 4.0WebForms, Novas Funcionalidades
  • 2.
    Caio Proiete • 10 anos de experiência profissional em TI • Microsoft Most Valuable Professional • Microsoft Certified Trainer @ CICLO • Líder da Comunidade NetPonto
  • 3.
    ASP .NET 4WebForms • Melhoria nos controlos existentes • Maior controlo do código HTML gerado • Código HTML mais “limpo” • Novas Funcionalidades • ClientIDMode • ViewStateMode • URL Routing
  • 4.
    File -> New-> Project Demo
  • 5.
  • 6.
    ASP .NET <=3.5: ClientID 1) Master Page ("Conteudo") Hierarquia dos Controlos • ID dos controlos no HTML (ClientID): • ctl00_Conteudo • ctl00_Conteudo_Formulario • ctl00_Conteudo_Formulario_Nome
  • 7.
    ASP .NET <=3.5: ClientID 1) Master Page ("Conteudo") Hierarquia dos Controlos 2) UserControl ("Formulario") • ID dos controlos no HTML (ClientID): • ctl00_Conteudo • ctl00_Conteudo_Formulario • ctl00_Conteudo_Formulario_Nome
  • 8.
    ASP .NET <=3.5: ClientID 1) Master Page ("Conteudo") Hierarquia dos Controlos 2) UserControl ("Formulario") 3) TextBox ("Nome") • ID dos controlos no HTML (ClientID): • ctl00_Conteudo • ctl00_Conteudo_Formulario • ctl00_Conteudo_Formulario_Nome
  • 9.
    ASP .NET 4:ClientIDMode • ClientIDMode permite customizar os IDs gerados para os controlos. • AutoID - Idêntico ao ASP .NET <= 3.5 • Inherit - Herda o valor do container (default) • Predictable - Concatenação dos nomes dos containers sem prefixos e sufixos ctlxxx. • Static - Mantém o valor definido (não altera)
  • 10.
    ASP .NET <=3.5: EnableViewState • EnableViewState precisa ser incluído invidualmente em cada controlo. • Se desabilitar ao nível da página, desabilita para todos os controlos e ignora a definição nos controlos “filhos”.
  • 11.
    ASP .NET 4:ViewStateMode • ViewStateMode permite desabilitar o ViewState para toda a página, e habilitar apenas nos controlos desejados. • Disabled - Desabilita o ViewState • Enabled - Habilita o ViewState • Inherit - Herda o valor do container
  • 12.
  • 13.
  • 14.
    ASP .NET 4:URL Routing • Permite criar URLs mais legíveis e melhores para serem indexadas por mecanismos de busca (SEO-friendly). Ao invés de: /Produtos.aspx?cat=bebidas&subcat=vinhos /Produtos.aspx?cat=frescos&subcat=peixaria Utilize: /produtos/bebidas/vinhos /produtos/frescos/peixaria
  • 15.
    ASP .NET 4:URL Routing • Define-se o mapa das rotas no método Application_Start do Global.asax protected void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapPageRoute( "rotaProdutos", "produtos/{categoria}/{subcategoria}", "~/ListaDeProdutos.aspx"); }
  • 16.
    ASP .NET 4:URL Routing • Define-se o mapa das rotas no método Application_Start do Global.asax protected void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapPageRoute( "rotaProdutos", "produtos/{categoria}/{subcategoria}", "~/ListaDeProdutos.aspx"); } Qualquer requisição que coincidir com este padrão, será tratada pela página ListaDeProdutos.aspx
  • 17.
    ASP .NET 4:URL Routing • Na página, utiliza-se a colecção Page.RouteData.Values para obter os valores na URL protected void Page_Load(object sender, EventArgs e) { string categoria = (string)Page.RouteData.Values["categoria"]; }
  • 18.
    ASP .NET 4:URL Routing • Para redireccionar para outra rota, utiliza-se o Response.RedirectToRoute protected void Page_Load(object sender, EventArgs e) { Response.RedirectToRoute("rotaProdutos", new { categoria = "Mercearia" }); }
  • 19.
  • 20.
    Resumo • Diversas melhoriasno ASP.NET 4 Web Forms • Melhorias nos controlos existentes • Maior controlo do HTML gerado • URLs lógicas e intuitivas com URL Routing • E muito mais...
  • 21.
  • 22.
    A sua opiniãoé importante! Complete o questionário de avaliação e devolva-o à saida.