Gerando uma dll com sistema web


por Mauricio Junior em 1/1/2011 0

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

 

        

 

voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:
Comentado por: Reginaldo Jr. - 2/3/2007 12:26:30
Nota 10. No 2003 já era assim. Faltava isso no 2005
Comentado por: Guilherme de Carvalho Carneiro - 6/1/2008 12:05:24
Mas e no caso de já ter iniciado um projeto no modelo antigo, teria como converter para gerar apenas uma dll? Em relação à performace tem diferença?

Parabêns pelo artigo.

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Skyfire - browser mobile
Aprenda com Windows Azure
Evento Brasil DotNet - gratuíto
WebService - Desenvolvimento Parte 1
Dica: SetFocus diferente
Linha do GridView (colorindo ao passar o mouse)
Microsoft AdventureWorks Database
Ajax parte II
DateDiff em C#.NET
Promoções de livros móveis .NET
Agrupar Email no Mail - MacBook
Usando Tooltip
Conecte - Os games
Technet Wiki em Português
Vírus do Serasa por E-mail
Web abrindo aplicações locais
Cache no .NET
Arrumando seu Desktop
Montando Menu Dinâmico com Banco de Dados
Nova versão iCredCard aprovado pela Apple
Join DataTable
Vídeo HTC
Promo Code do Livro CSharp .NET para Web
Vídeo: Série Atlas.NET - Parte I
Entrevista com Bruno PorKaria
Web Administration Tool
GridView Parte III
Registro Encontro .NET (Fotos)
Problemas na acentuação
Montando Menu Dinâmico com Banco de Dados
Inserindo no Sql Server
Criando XML a partir de um DATASET tipado – Parte II
SmartNavigation – 1.0 e 1.1 MaintainScroll PositionOn Postback – 2.0
Windows Forms Application – Alterando Arquivo de Configuração Dinamicamente
TV e Internet, um casamento perfeito