DevCon -
Report #12
Criado - 9 de Novembro de 2005 – 16:31 p.m. (local time)
Atualizado – 9 de Novembro de 2005 – 18:26 p.m. (local time)
Nesta palestra de Jim Tierney da Borland, vimos um pouco do que está previsto para o Delphi “Highlander” relativo ao suporte ao ASP.NET 2.0 (acredito que o nome oficial do Highlander vai ser naturalmente Delphi 2007). Como sabemos, o Delphi 2006 suporta a versão 1.1 do .NET Framework, o suporte para o .NET Framework 2.0 (lançado oficialmente essa semana pela Microsoft) será lançado na próxima versão do Delphi (acredito que no final de 2006). Vamos a uma breve descrição dos recursos que serão suportados, conforme apresentados por Jim (vale ressaltar que a maioria dos recursos já estão disponíveis no .NET Framework 2.0, porém não possuem ainda o suporte na IDE).
Master Pages
Esse novo recurso permite que você crie uma página “padrão”, com elementos que serão comuns a todas as páginas ASPX do projeto. A partir da Master Page, você pode “herdar” (não é herança da POO) as características visuais da página mestre. O ASP.NET faz o “merge” do conteúdo da página mestre com a página que usa seu conteúdo.
Vejamos um exemplo de como ficaria um ASPX Master Page e uma páginas ASP.NET usando a Master Page. Abaixo uma Master Page (observe a diretiva “Master” no ASPX), o contentplaceholder indica a área na qual as páginas “descendentes” colocarão controles específicos.
Conteúdo da Página Padrão
E aqui está a página ASPX usando a MasterPage. Observe o atributo MasterPageFile na diretiva Page.
<%@ Page Language="X"
MasterPageFile="~/MasterPage.master"
AutoEventWireup="true" CodeFile="Default.aspx.pas" Inherits="_Default"
Title="Untitled Page" %>
Runat="Server">
Página usando Master Page
Themes e Skins
Esse recurso permite que especifique temas para sua aplicação ASP.NET de forma muito semelhante a funcionalidade de temas do Windows XP. Dentro de um diretório você vai colocar arquivos que definem o estilo de controles, semelhante ao que acontece com CSS, e a partir daí, todos os controles ligados ao Skin passam a ter o mesmo layout / aspecto.
Um exemplo:
<% @Page ... Theme="MeuTema" %>
DataSources
Os DataSources do .NET 2.0 são novas estruturas que centralizam toda a manipulação e acesso a dados, e substituem as classes DataAdapter, Connection, DataTable etc. (na verdade elas passam agora a ser utilizadas internamente pelos DataSources). De forma semelhante ao que já existe no 2.0 nativo (SqlDataSource, XmlDataSource etc.), a Borland vai criar o BdpDataSource. Dentro dessa estrutura, estarão comandos de Insert, Delete, Update, Select, informações de conexão etc. Controles de tela (como o novo GridView) vão fazer DataBind diretamente para DataSources, em tempo de design.
Acredito que a definição de um BdpDataSource vai ser semelhante a seguir (adaptei a partir de um SQLDataSource), um “draft” só para dar uma idéia:
ID="BdpDataSource1" runat="server"
ConnectionString="CaminhoBanco"
SelectCommand="SELECT * FROM EMPLOYEE”>
E aqui como um GridView faria referência a esse BdpDataSource:
ID="GridView1" runat="server"
AutoGenerateColumns="False"
DataSourceID="BdpDataSource1"
AllowPaging="True"
CellPadding="4"
ForeColor="#333333"
GridLines="None"
PageSize="5">
…
GridViews e DataSources
Code-Beside
Esse é um novo recurso do ASP.NET, teremos o Code-Beside, que é semelhante ao Code-Behind. O Code-Behind permite hoje que você separe o código de design e apresentação (ASPX) da lógica e eventos da aplicação (.PAS). Isso fica compilado em um Assembly .NET. A vantagem é que o Code-Beside é recompilado pelo ASP.NET no mesmo momento da compilação do ASPX, e não mais antes do deploy.
Abaixo um exemplo de página usando um Code-Beside (note o atributo CodeFile):
<%@ Page Language="X"
AutoEventWireup="true"
CodeFile="Default2.aspx.pas" Inherits="Default2" %>
Além disso, a linguagem Delphi vai suportar o recurso de classes “parciais” (fragmentos de classes) , ou seja, poderemos ter código de uma mesma classe separado em várias units/arquivos.
Diretórios Especiais
Alguns diretórios de aplicações ASP.NET 2.0 possuem funcionalidades especiais, de forma semelhante ao que o BIN é para o ASP.NET 1.1.
Novos diretórios:
·App_Code – Código .PAS para Code-Beside;
·App_WebReferences – Arquivos WSDL e DISCO;
·App_Data – Arquivos de dados, como XML e MDF;
·App_Themes – temas da aplicação (skins);
Suporte a diretórios
Não teremos mais arquivos BDSPROJ ou DPR (será opcional, dependendo do tipo de projeto). O Delphi Highlander vai considerar todos os arquivos do diretório corrente como parte do projeto. Para adicionar um arquivo ao projeto, basta copiar para o diretório ou pasta especial (nada de Add to Project). Com isso, teremos o menu File>Open Web Site que vai permitir que você escolha um diretório ao invés de um BDSPROJ/DPR, claro.
Segundo Tim, aplicações construídos no Visual Studio .NET vão poder ser abertas no BDS sem modificação, e vice-versa.
Precompilação
Esse recurso vai permitir que você precompile todo um projeto ASP.NET e faça o deploy do mesmo para um servidor. Veja que o termo precompile aqui significa que arquivos PAS e também ASPX serão precompilados (atualmente o ASPX é compilado no momento do primeiro acesso pelo browser). Isso vai permitir um startup mais rápido da aplicação, além de proteger a propriedade intelectual, visto que é muito simples hoje fazer engenharia-reversa de código MSIL.
Providers
Vai permitir que aplicações Delphi ASP.NET armazenem informações customizadas para cada usuário, como por exemplo, layout preferido (ex.: a cor de fundo), e-mail, login, senha, funções (roles), a partir do Web.Config e Machine.Config. Uma página de administração predefinida do ASP.NET 2.0 vai permitir a edição de usuário, roles etc.
Migração
Ao abrir um projeto do Delphi 2005/2006 no Highlander, a IDE vai fazer algumas conversões, como por exemplo, mover arquivos para diretórios especiais (citados anteriormente), converter code-behind para code-beside, remover declarações de controles do código etc.
Minha opinião
O ASP.NET 2.0 tem inúmeros outros recursos adicionais que não foram citados aqui e vários novos componentes. A Microsoft estima que o aumento de produtividade do ASP.NET 1.1 para o 2.0 é de 70%, então, vale a pena começar a conhecer as novas classes e o framwork, aguardando a próxima versão do Delphi para começar a praticar. Acredito que não vai levar muito tempo para a Borland lançar um “preview” que possa ser usado no Delphi 2006, suportando o .NET Framework 2.0.
Guinther Pauli
Editor Geral Revista ClubeDelphi