Smartclient – Entendendo e aplicando

Por: Cleber Dantas

Sabemos que existem muitas discussões sobre as interfaces Windows Forms  e Webform, sabemos também que a Internet é sem dúvidas um grande chamativo para as empresas e que o desenvolvimento Web veio pra ficar, agora imaginemos unir o melhor dos dois mundos, o potencial da Internet e a qualidade das aplicações Windows Forms  (ainda muito rica em relação a aplicações Webform). Bom isso é possível e é justamente o tema deste artigo: Smartclient – de uma maneira geral, um aplicativo Smartclient é um Windows Forms distribuído pela Internet/Intranet. Agora vamos a um exemplo de sua utilização:

Cenário

Vamos pensar na seguinte situação: temos uma aplicação Windows Forms que roda nos computadores da empresa onde você trabalha, porém, por uma necessidade da empresa uma nova versão desse software deve ser gerada e instalada em todas as máquinas, mas a sua empresa tem 500 computadores, Pergunta: como fazer isso de forma fácil e rápida? Poderíamos gerar um pacote .MSI e o distribuir pela rede. Isso seria uma boa alternativa, mas ser for necessário que além disso os funcionários de sua empresa precisem acessar essa aplicação Windows Forms pela Internet??? Bom a resposta é Smartclient. Smartclient não é um produto e sim um conceito, ao utilizá-lo você simplifica o processo de instalação do software nos computadores e agora o mesmo será acessado pela Web.

Smartclient – Basicamente um Windows Forms distribuído pela Web

Vamos começar!!!

Para vermos um aplicativo Smartclient (Windows Forms) funcionando devemos primeiramente criar a nossa aplicação Windows Forms, para isso abra o Visual Studio 2003 e clique em File | New | Project, na janela New Project selecione em Project Types a linguagem C# e em Templates selecione Windows Application e de o nome de “ProjetoSmartclient” para o projeto e salve onde você achar melhor no meu caso no drive D e clique em OK.

smartCliente_01.jpg

Figura1
: Projeto Windows Application

No Form1 que é criado automaticamente adicione um Button, agora no Button altere a propriedade Name para “btnOK” e a propriedade Text para “OK” para finalizar altere a propriedade Text do formulário para “Teste Smartclient!!!”.

smartCliente_02.jpg

Figura2: Formulário pronto

Bom como essa é uma aplicação bem simples só para podermos dar o exemplo da utilização de Smartclient de um clique duplo sobre o botão e adicione o seguinte código:

private void btnOK_Click(object sender, System.EventArgs e)

                {

                        string msg = "Eu estou usando Smartclient";

                        MessageBox.Show(msg, "MS", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }

Esse código simplesmente exibirá uma mensagem para o usuário. Agora clique no menu Build | Build Solution, pronto já foi gerado executável do programa para acessa-lo vá até a pasta do projeto entre na pasta bin e depois entre na pasta Debug o arquivo estará lá. Com isso finalizamos o nosso Windows Forms, agora vamos ter que criar a nossa aplicação Web para que os usuários possam acessar o aplicativo através da Web.

smartCliente_03.jpg

Figura3: Executável do aplicativo

Para criarmos nossa aplicação Web feche a solução aberta e clique em File | New | Project, na janela New Project selecione em Project Types a linguagem C# e em Templates selecione ASP.NET Web Application e em Location coloque http://localhost/Smartclient e clique em OK.

smartCliente_04.jpg

Figura4: Projeto Web Application

Com isso já será gerada uma pasta virtual com o nome de “Smartclient” lá no IIS. Vá até o IIS clicando no menu Iniciar | Configurações | Painel de Controle, abra Ferramentas Administrativas e de um clique duplo sobre Gerenciador do Internet Services.

smartCliente_05.jpg

Figura5: Pasta virtual “Smartclient”

Bom agora você deve copiar o executável da aplicação Windows Forms (ProjetoSmartclient.exe) para dentro da pasta virtual

smartCliente_06.jpg

Figura6: Executável do aplicativo copiado para a pasta virtual

Agora no WebForm1 que é criado automaticamente no projeto adicione um HiperLink e altere a propriedade Text para “Carregar Programa” e a propriedade NavigateUrl para “ProjetoSmartclient.exe”. Clique no menu Build | Build Solution. Agora feche a solução e feche o Visual Studio 2003.

Testando o Smartclient

Abra o Internet Explorer e digite na barra de endereços http://localhost/Smartclient/WebForm1.aspx, agora passe o mouse em cima do link e observe o caminho da Url, ou seja, leva direto ao nosso aplicativo.

smartCliente_07.jpg

Figura6: Url do Link

Agora é só clicar no Link e ver o resultado.

smartCliente_08.jpg

Figura7: Smartclient funcionando

Como é feito o processo

 

1-    O usuário clica no Link do aplicativo .NET

2-    O aplicativo é baixado no GAC

3-    A aplicação é executada

 

GAC?? O que é isso?

GAC é a abreviatura de Global Assembly Cache, é um local específico no Windows onde são baixados os arquivos .EXE e .DLL (Assembly) para que possam ser gerenciados pelo .NET Framework. O .NET Framework gerencia o controle de versão do Assembly além de ser responsável pela performance do aplicativo que acaba sendo executado mais rápido já que esta em cache.

Outra opção

Caso você não queira criar uma aplicação Web no Visual Studio para que seja gerada a pasta virtual automaticamente você pode fazer isso manualmente para isso devemos primeiro criar a pasta onde ficarão os arquivos do nosso site, entre no drive C(no meu caso D) e entre na pasta Inetpub e depois na pasta wwwroot e crie uma pasta com o nome de “Smartclient2”.

smartCliente_09.jpg

Figura8: Criando a pasta Smartclient2 dentro do diretório wwwroot.

Feito isso vá até o IIS, para isso clique no menu Iniciar | Configurações | Painel de Controle, entre em Ferramentas administrativas e depois em Gerenciador do Internet Services. Clique no sinal de + ao lado do nome do computador para expandir as opções, clique novamente no sinal de + só que agora ao lado de Site da Web padrão e observe que a pasta que nós acabamos de criar esta lá. Clique com o botão direito em cima da pasta e selecione propriedades.

smartCliente_10.jpg

Figura9: Pasta Smartclient2

Na janela que se abre clique no botão Criar.

smartCliente_11.jpg

Figura10: Criando a pasta virtual

Com isso foi criada a pasta virtual com o nome de Smartclient2, agora só bastaria você copiar o executável do aplicativo para dentro dela.

Ultimas considerações

Quando você for gerar uma nova versão do aplicativo é só substituir o arquivo lá na pasta virtual e da próxima vez que usuário entrar no link já terá o aplicativo atualizado.

Conclusão

Com este artigo nós vimos como criar e distribuir aplicações Windows Forms utilizando a tecnologia Smartclient, embora ainda não seja muito utilizado pode ter certeza que num futuro bem próximo será. Algumas das vantagens de seu uso diz respeito ao processamento do aplicativo que fica no cliente, se tivéssemos somente uma aplicação Web o processamento ficaria todo no WebServer e além disso é importante salientar que o Smartclient é carregado sob demanda, ou seja, método a método conforme o usuário vai usando o aplicativo vai sendo carregado, isso é muito importante para se ter um bom desempenho.

OBS: para que os usuários possam ter acesso a aplicação Windows Form distribuída pela Internet usando-se a tecnologia Smartclient eles devem ter em seus computadores o .NET Framework instalado, pois como o aplicativo será processado no cliente e a aplicação necessita das classes do .NET Framework o cliente também tem que ter instalado em seu computador.

Espero que com esse artigo você tenha agregado informações interessantes ao seu conhecimento. Entre em contato pelo e-mail cleberwd@hotmail.com.

Até mais!!!

smartCliente_12.jpg

Cleber Dantas, Desenvolvedor .NET Junior(ASP.NET, ADO.NET, Web Services, C# e Visual Basic.NET), estagiário em desenvolvimento de sistemas na Freire Advogados e Associados, membro e colaborador do Codificando.net. Quando não esta programando gosta de sair com os amigos e Jogar Counter-Strike além de não perder um jogo do Corinthians.