com Visual Studio.NET 2005

 

         Olá pessoal, estou disposto a mostrar como gerar um sistema web com Visual Studio.NET 2005 onde depois de compilar cria apenas uma dll. Isso é bastante interessante, porque usa apenas uma compilação depois que o sistema é acessado a primeira vez, ou seja, ao acessar a primeira vez todo código é compilado demorando um pouco mais, depois disso se torna muito mais rápido acessando a segunda vez.

 

         Nos dias de hoje, desenvolvedores criam suas aplicações do tipo “WebSite” e com isso é gerado inúmeras “DLLs” para a publicação. Todo código desenvolvido é compilado e distribuído entre estas dlls. Isso tudo com o Visual Studio.NET 2005. Na versão 2003 da IDE de desenvolvimento, era gerado apenas uma dll de todo código, basta colocar esta dll e os arquivos .aspx no servidor e tudo estaria funcionando perfeitamente.

 

         No ano de lançamento do Visual Studio.NET 2005, foi mostrado que depois do código desenvolvido e compilado, geraria várias dlls. Mesmo utilizando o PUBLISH cujo é uma opção a mais na ferramenta para gerar o código compilado para publicação, os desenvolvedores não gostaram desta solução. Esta reclamação chegou a dona do desenvolvimento “Microsoft” e isso foi alterado para a versão “SP Service Pack 1”. É importante dizer que são duas maneiras diferentes de publicar um software, serão mostrados aqui neste artigo.

 

Requisito:

O primeiro de tudo instalar a versão do Visual Studio.NET 2005, pode ser a Express (grátis) ou qualquer outra. O segundo passo é instalar o “SP Service Pack 1” na ferramenta, segue os links abaixo para instalação adequada caso você não tenha.

 

Download Visual Studio.NET 2005 (Express):

http://msdn.microsoft.com/vstudio/express/

 

Download Service Pack 1:

Versão Team Suite –

http://www.microsoft.com/downloads/details.aspx?FamilyID=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc&DisplayLang=en

 

Versão Express –

http://www.microsoft.com/downloads/details.aspx?FamilyID=7b0b0339-613a-46e6-ab4d-080d4d4a8c4e&DisplayLang=en

 

         Depois de feito o download e instalado o aplicativo, vamos a prática.

 

A prática

Forma trabalhosa

 

         Hoje é feito de uma maneira simples criar um novo projeto do tipo “WebSite”, cliquei em FILE / NEW / WEB SITE. Criando desta maneira não está errado porém o mesmo irá gerar várias Dlls para a publicação.  (Referência 1.1)

 

        

Referência: 1.1

 

Após escolher criar um novo projeto, outra tela se abriu para escolher o tipo de “templates” e a linguagem para programação. Escolhi a opção “ASP.NET Web Site” e a linguagem “Visual C#”. (Referência 1.2)

 

 

Referência: 1.2

 

 

Cliquei no botão OK e o projeto foi gerado. (Referência 1.3)

 

 

Referência: 1.3

 

 

         Para publicação deste projeto, cliquei em BUILD / PUBLISH WEB SITE. (Referência 1.4)

 

 

Referência: 1.4

 

 

No passo seguinte, uma tela se abriu contento algumas informações como: Local do projeto compilado ou “PrecompiledWeb” como é chamado, permitir que esta pré-compilação do site seja atualizada (já marcada).

 

 

Referência: 1.5

 

 

Cliquei OK e automaticamente foi gerado todos os arquivos necessário para publicação do sistema / site. Acessando a pasta dos arquivos gerados diretamente na “BIN”, notei que várias Dlls apareceram. (Referência 1.6)

 

 

Referência: 1.6

 

Acessei o servidor na internet e fui publicar o sistema / site e por uma falta de atenção deixei que uma das Dlls não fosse enviada ao servidor. Ao acessar foi mostrado um erro na página cujo não fiz qualquer tipo de tratamento, mas isso não vem ao caso agora. Ao notar que uma dll não tinha sido colocada, acessei o ftp e a adicionei. Resultado final funcionou sem qualquer problema.

 

Outro dia, houve uma atualização no sistema / site, acrescentei mais dois métodos na classe DAL para acesso ao banco de dados. Fiz novamente a compilação e gerei a publicação, gerando assim os arquivos. Pensei, colocarei agora só as dlls no servidor e estará pronto, perfeito engano, ocorreu outros erros. “Foram gerados arquivos com outros nomes e outras referências, ou seja, percebi que no arquivo “.aspx”, logo no início, possui uma referência para dll, no atributo “inherits” com o mesmo nome da dll gerada.

Isto vale para todos os arquivos “.aspx” do sistema. (Referência 1.7)

 

Referência: 1.7

 

         Resultado final, toda vez que o sistema / site foi re-compilado, mesmo que não tenha mexido em qualquer parte dos arquivos “.aspx”, terei que enviar ao servidor todos os arquivos novamente, porque a referência das páginas serão de acordo com a nova dll gerada. Querendo ou não, este é um problema enorme para mim ou qualquer desenvolver que utilize este tipo de projeto.

 

 

A prática

Nova forma depois do SP1.

 

         O que muda efetivamente é o início do projeto, ou seja, a escolha do tipo de projeto agora. Criando outro projeto, cliquei em FILE / NEW / PROJECT. Perceba que não foi em WEB SITE. (Referência 1.8)

 

 

Referência: 1.8

 

 

A tela de NEW PROJECT foi aberta com algumas opções de linguagens e tipos de projeto. (Referência 1.9)

 

 

Referência: 1.9

 

         Na tela de “Projects types” escolhi a linguagem Visual C# e em seguida o projeto WEB. Na tela de templates escolhi a opção ASP.NET Web Application. Cliquei OK pronto, o projeto foi gerado.

 

         Os passos seguintes foram: Compilei o projeto e acessei o PUBLISH indo pelo mesmo caminho. Para minha surpresa, foi gerado apenas um arquivo com o nome da aplicação. (Referência 1.10)

 

 

Referência: 1.10

 

         Dentro do arquivo “.aspx” compilado só possui a referência para esta dll e nada muda caso eu re-compilar o projeto. Isto resume um trabalho que não terei, isto é, caso mexa apenas nas classes do projeto, acrescentando ou alterando dados, basta só re-compilar e trocar a dll compilado com o nome da aplicação no servidor, posso deixar todos os “.aspx” sem mexer ou trocar. Todo o código alterado estará dentro da dll e o projeto funcionará perfeitamente e atualizado.

 

         “Caso mude algum arquivo “.aspx” sem mexer no código da linguagem, basta colocar aquele arquivo mexido dentro do servidor. Isto é ótimo para a prática no desenvolvimento de software, poupa tempo e re-trabalho.

 

Bom, fico por aqui. Espero que tenha ajudado a você entender um pouco mais sobre a ferramenta Visual Studio.NET 2005. Qualquer dúvida, favor entrar em contato via e-mail. mauricio@aspneti.com.

 

Mauricio Junior

www.aspneti.com

www.mauriciojunior.org