Desenvolvimento - ASP. NET

ASP.NET 2.0 - Visual Studio 2005 (Whidbey)

Agora no inicio de julho de 2004 a Microsoft disponibilizou publicamente o Beta1 do ASP.NET 2.0 em conjunto com Visual Studio 2005 denominado de 'Whidbey'. Neste artigo vamos nos focar no ASP.NET, porém não podemos deixar passar em branco as funcionalidades do Visual Studio Team System.

por Ramon Durães




O ASP.NET que é a camada de desenvolvimento de aplicações web da plataforma .NET vem agradando em muito os desenvolvedores de todo o mundo desde o seu lançamento em julho de 2000. Logo em seqüência a Microsoft o atualizou para versão 1.1. Para o desenvolvedor realmente foi uma mudança muito radical na maneira de desenvolver pois não tinha nada e ganhou um ambiente completo.

Agora no inicio de julho de 2004 a Microsoft disponibilizou publicamente o Beta1 do ASP.NET 2.0 em conjunto com Visual Studio 2005 denominado de "Whidbey". Neste artigo vamos nos focar no ASP.NET, porém não podemos deixar passar em branco as funcionalidades do Visual Studio Team System, que além das novas facilidades do ASP.NET vai trazer maior suporte para toda equipe de desenvolvimento, integrando mais ainda as etapas de desenvolvimento, incluindo inclusive ferramentas de testes internas da Microsoft e a metodologia de trabalho MSF 4.x (Microsoft Solution Framework). Quem participou do PDC 2004 em São Paulo já viu uma previa do que teremos de novidade. Confira na Figura 1.



Figura 01 - Tela inicial do Visual Studio 2005 (Beta 1)



"A grande promessa desta nova versão está na otimização de muitas tarefas comuns, reduzindo em muito o trabalho com a diminuição da quantidade de linhas de código para executar as tarefas."


SERVIDOR WEB PRÓPRIO
A primeira coisa que você vai observar é que não é mais necessário possuir um servidor web IIS instalado na maquina para realizar os testes da aplicação. O Próprio Visual Studio já traz embutido um servidor que será executado toda vez que você acionar uma aplicação web pelo Visual Studio. Confira na Figura 2.


Figura 2 - Servidor Web próprio.


Funcionalidades Gerais
- Agora não é mais necessário ter arquivos de projetos, basta apontar uma pasta e abrir os arquivos
- Não é mais necessário possuir um única dll por aplicação, pode-se agora modificar uma única pagina, compilar e enviar, similar ao que se fazia com asp 3.0
- O Código html agora é preservado, não sendo mais modificado. (HTML Source Preservation)
- Intellisense sempre disponível (Intellisense Everywhere)
- Você pode navegar pelas tags HTML similar ao #Region (HTML TAG NAVIGATOR)
- Já trás duas aplicações completas de exemplo (Samples)


MASTER PAGE
A herança visual já está disponível nessa versão e é conhecida como "Master Page", consiste na funcionalidade de se criar uma pagina padrão ou modelo, e gerar todas outras paginas apartir dessa, resultando em um reaproveitamento enorme da parte visual, pois você só precisa implementar uma única vez. Confira na Figura 3 e na Figura 4.



Figura 3 - Pagina padrao (Default.Master)



Figura 4 - Fazendo herança visual da pagina Master Passo a Passo (Wizard)
Para quem precisar criar telas de forma que os usuários coloquem os dados e siga avançando, agora já dispõem desse mecanismo. Confira nas Figuras 5 e 6.


Figura 05 - Passo 1

Figura 06 - Passo 2 e finalização

DATA SOURCE
Para facilitar o acesso ao banco de dados foi criado um novo controle "Data Source", que veio para reduzir a zero a quantidade de linhas de código necessárias para acessar um banco de dados. Bastando informar a string de conexão de dados e a query e você já está com seu acesso a dados garantido. Confira na Figura 7. Um exemplo imediato você já pode observar no comando baixo:



Figura 7 - DataSource Control

Outro item importante é para quem gosta de implementar sua própria lógica de acesso a dados. Não se preocupe. Você dispõem do ObjectDataSource que vincula o DataSource a sua classe de dados.

GridView
Esse é o novo "DataGrid" e a principal mudança que você vai observar logo de cara é adicionar ele na pagina, configurar o DataSource, configurar para paginar, ordenar,editar sem adicionar uma única linha de código. E isso tudo quase que em 5 minutos!! Outra grande novidade é ordenar e paginar sem realizar "post" da pagina no servidor. Ele tem suporte a XMLHTTP de forma a realizar essa tarefa transparente para o programador. Outra nova funcionalidade é se ele encontra uma coluna do tipo Boolean, ele automaticamente já coloca um checkbox na tela. Ainda pode ser configurado em conjunto com o controle "DETAILSVIEW" para exibir detalhes de um registro do GridView. Confira a Figura 8 .


Figura 8 - GridView, ativando Paginação,Ordenação...


Interface de Administração
Um grande item que faltava era uma interface de administração, tínhamos que fazer tudo diretamente no arquivo web.config. Agora por meio dessa nova interface conforme Figura 9, Você vai poder realizar configuração de sua aplicação, e as informações serão salvas no web.config. Para chamar essa tela basta executar o arquivo webadmin.axd diretamente pelo browser na pasta de sua aplicação ou chamar pelo Visual Studio. Nesta tela você pode configurar o tipo de autenticação da sua aplicação, definir aonde serão salvos os usuários, e ainda conta com um sistema de estatística, isso mesmo. Vai ter um log de utilização da aplicação, inclusive com suporte a contar automaticamente quantidade de cliques em um determinado botão ou link por exemplo.



Figura 9 - Tela de Administração da aplicação Controles de Autenticação
A administração de usuários agora está automatizada desde a primeira tela de entrada no sistema, ou seja até a tela de login já vem pronta para você utilizar na Autenticação Forms, confira na Figura 10 e 11 os novos controles. Até para o usuário solicitar reenvio de de senha por e-mail já possui uma tela. Disponibilizando ainda um controle para exibir o status se está logado ou não.


Figura 10 - Novos controles de segurança


Figura 11
- Novos controles de segurança





Grupos de Usuários (Roles)
Para utilizar o recurso de Roles durante a autenticação Forms era necessário escrever boa quantidade de código, agora com o novo "Role Mananger" do ASP.NET 2.0 você já tem disponível métodos como : CreateRole,DeleteRole,AddUsertoRole podendo configurar pela interface de administração já citada. Garantindo assim por exemplo que usuários do grupo "Alunos" não acessem recursos de usuários do grupo "Professores". Caso tenha alguma tentativa de acesso indevido o usuário é redirecionado automaticamente para tela de Login.

Personalização
Este é um novo recurso oferecido para salvar informações do usuários, dados que salvamos anteriormente em cookies ou no banco de dados ou em variáveis de sessão. Basta agora criar o campo desejado no web.config e pronto o ASP.NET vai persistir essas informações para você, que vai poder recuperar ou alterar a qualquer momento. Essa informações serão salvas no Access (data\aspnetdb.mdb) ou sqlServer, necessitando de um outro banco de dados você precisar criar um provider. Por padrão o profile somente é armazenado para usuários autenticados, podendo você você configurar para também trabalhar com usuários anônimos. Confira Abaixo:

Web.config:

<profile>
<properties>
<add name="Nome" />
<add name="Quantidade_Visitas" Type="System.Int32" defaultValue="0" />
<properties>
</profile>

Agora no Código:

Profile.Nome="Ramon Durães"
Profile.Quantidade_Visitas=Profile.Quantidade_Visitas+1

Dependência de Cache SQL (SQL Cache Dependencies)
Um ótimo recurso do asp.net 1.x é o cache e objetos, podemos realizar uma consulta a um banco de dados e salvar o retorno no cache para não ter que ficar consultado o banco de dados toda hora. Agora evoluiu de forma que podemos criar uma dependência de cache a uma tabela do banco de dados. Ou seja, o cache somente vai ser invalidado se a tabela do banco de dados for alterada. A mesma dependência agora pode ser configurada também na diretiva de pagina.

Controle de Validação (Validation Groups)
Um grande trabalho do desenvolvedor é escrever código javascript para gerenciar a entrada de dados do usuário, desde a implementação dos controle de validação eles foram muito bem recebidos pela facilidade e pelo bom resultado oferecido. Posteriormente foi observando um pequeno problema. Quando se tinha mais de um botão na tela os mesmos ocasionavam validação de dados. Fato esse resolvido, que você agora pode separar os controles de validação por grupos, resolvendo de vez o problema, sendo que cada botão ficaria associado a um grupo. Outra novidade é a possibilidade de definir um focus para o curso em caso de erro. Podendo colocar o focus numa caixa de texto.

Além do Page.ISVALID foi criado o Page.Validate("Grupo") para verificar se especificamente o grupo foi validado.

Mapeamento de URL (URL Mapping)
Um grande problema dos desenvolvedores web é como lembrar de grandes urls, tais como as da ajuda do msdn, você agora poderá resolver esse problema internamente dentro da sua própria aplicação. Simplesmente adicionando o mapeamento no web.config

<urlMappings enabled="true">
<
add url="~/sair.aspx" mappedUrl="~/login.aspx?Status=Sair" />
</
urlMappings>

Tornar objeto ativo (FOCUS)
Quantos vezes precisamos colocar o focus em um determinada caixa de texto, ou definir qual botão da pagina é o padrão.

<Form defaultfocus="txtNome" DefaultButton="button1" runat="Server" >

Acesso ao Help online
Uma modificação bem observada no Visual Studio é o fato de você poder fazer a consulta diretamente na base do MSDN Online e em segundo plano na sua maquina local. Com isso você poderá sempre consultar a versão da Libary mais atualizada. É notório o numero de pessoas conectadas em tempo real e usando banda larga, portanto esse será um bom recurso.


Figura 12 - Configurando ajuda para consulta on-line WEB PARTS
Esse recurso é bem interessante, e já vem sendo utilizado com sucesso na solução Share Point. Tem o objetivo de dar ao usuário o poder de modificar a aparência e customizar a visualização de partes do site. No asp.net essa customização já fica salva automaticamente no profile do usuário. Pense numa situação que você coloca um calendário em um local da tela. E em determinado momento um certo usuário não quer o mesmo naquele local. Com esse recurso o usuário pode move para outra webparts ou mesmo ocultar. Confira os controles na Figura 13.


Figura 13 - Web Parts


Figura 14 - Nova aba no IIS com novas opções de configuração.

Temas (Skins)
Outra grande novidade é você preparar sua aplicação para ter suporte a esse tipo de recurso, de forma que apenas trocando o skin você mude completamente a aparecencia do seu site. Um recurso parecido já foi implementado no ASP.NET Start Kit Community.


Novos controles
Existes outros controles novos que não citei, como Menu, Upload, Treeview, DynamicImage, ImageMap, Sitemap, DetailsView e certamente mais alguns outros que nem vi ainda ou que ainda não estão presentes nessa versão.

Projetos modelos (Start Kits)
Um novo conceito adotado dentro do Visual Studio é a questão de soluções iniciais, para que com pequenos ajustes você já comece a montar sua aplicação e uma delas já disponível em fase inicial é o Personal Web Site Starter Kit, confira na Figura 15.


Figura 15 - Modelo de site pronto

Posicionador de janelas
Uma das coisas que eu mais reclamava era quando uma janela saia da ordenação para coloca-la em um local tínhamos a maior dificuldade. Agora todos problemas estão solucionados. Ao arrastar aparece na tela o botão de posicionamento. Confira um exemplo na Figura 16 em que estou movendo a janela Soluction
Explorer de um local para outro.


Figura 16 - Nova material de organizar as janelas.

Referências

- http://msdn.microsoft.com
- http://www.msdnbrasil.com.br/msdnmag (Brasil) - Ano 01 - Ed. 08
- Msdn Magazine - Junho/2004
- http://www.aspallianse.com

Finalizando


Recetemente me perguntaram se não era novo para já ter uma nova versão. Eu respondi que isso indica uma preocupação constante da Microsoft em manter a evolução do produto de forma a oferecer ao desenvolvedor sempre uma ferramenta atualizada e com mais recursos para facilitar o trabalho de implementação. Isso foi isso realmente que tenho observado desde essa versão (beta1). E já estou confiante que a Microsoft continua acertando e muito nesse seguimento. Pela qualidade que está esse produto no primeira beta, já poderemos pensar em adotar logo depois do beta 2.

"Use .NET não é mais necessário reinventar a roda..."
O que você gostaria saber?
Aguardo seu comentário! Ele é muito importante. Participe!!! Até próximo artigo!

Você é de Salvador Bahia, então participe do grupo de usuários .NET http://www.mutex.com.br

Ramon Durães

Ramon Durães - Especialista em desenvolvimento de software e Microsoft Most Valuable Professional (MVP) em Visual Studio Team System. Realiza treinamentos de .NET Framework em empresas, consultoria em arquitetura de software e implantação de Visual Studio Team System. Palestrante nos principais eventos da Microsoft no Brasil (Tech-Ed 2005, Tech-Ed 2006, Tech-Ed 2007, Tech-Ed 2008, Tech-ED 2009), Microsoft Innovation Days 2007 (Salvador, Brasília, Recife, Goiânia, Natal, Maringá), Microsoft Innovation Days 2009 (Salvador) , Campus Party Brasil 2009 e eventos regionais relacionados a grupos de usuários e universidades. Conhecido autor de artigos para os principais portais de conteúdo e autor de 10 publicações eletrônicas em CD (Video-Aula) pela editora Linha de Código além dos livros "Desenvolvendo para web usando o Visual Studio 2008" e "Gerenciando projetos de software usando Visual Studio Team System" pela editora Brasport. Pode ser encontrado em seu blog http://www.ramonduraes.net e @ramonduraes no Twitter.