Este é um post disponível para assinantes MVPartigo .net magazine 38 - Desenvolvendo um site como o YouTube
Artigo publicado na Revista .net Magazine - Edição 38.
Clique aqui para ler todos os artigos desta edição
Mão na Massa
Desenvolvendo um site como o YouTube
O que você acha de publicar vídeos na Web? Essa é uma idéia bem interessante e que vem fazendo muito sucesso, ou você nunca ouviu falar do YouTube? Se nunca viu dê uma olhada em www.youtube.com. O YouTube é um site onde podemos publicar vídeos e assistir qualquer vídeo que lá esteja publicado. Como é um site visitado no mundo inteiro, a quantidade de vídeos é enorme.
Será que é muito difícil fazer um site igual a esse? A reposta é não! Com ASP.NET 2.0 e o SQL Server 2005 (versão 2000 e Express também dá) implementaremos passo a passo um site para a publicação e exibição de vídeos.
Onde armazenar os vídeos do site?
Como estamos falando de uma galeria, onde várias pessoas poderão publicar os seus vídeos e também assisti-los, será necessário armazenar as informações sobre os vídeos (Nome do Vídeo, Descrição, Autor etc.) em um banco de dados.
Isso não é problema, mas a questão que surge a seguir é: “Onde armazenaremos os vídeos que serão publicados?”. Temos duas alternativas possíveis:
· File System: Podemos gravar os vídeos em uma pasta do servidor Web onde o Web Site estará publicado. Quando o usuário publicar um vídeo ele estará fazendo um upload para essa pasta. E na tabela, armazenaremos as informações do vídeo, criamos um campo que aponta para onde o vídeo está salvo no disco;
· Banco de dados: Um vídeo, assim como uma imagem ou um documento, é um conjunto de dados binários. Os bancos modernos permitem armazenar dados binários em suas tabelas. No SQL Server 2000 usamos o tipo image e no SQL Server 2005 usamos o varbinary(MAX) para os campos onde armazenamos dados binários.
Mas e aí? Qual das duas formas é a melhor? Geralmente nos meus artigos eu já começo com um exemplo prático, mas antes de começarmos a por a mão na massa, achei importante levantar alguns prós e contras dessas duas formas de armazenamento para então podermos decidir qual das duas utilizar.
Vantagens de armazenar arquivos binários
· Requer menos trabalho: Através dos meios tradicionais, armazenar e recuperar dados binários em bancos envolve um pouco mais de trabalho do que fazer o mesmo
· É mais fácil montar URLs: Para acessarmos dados binários de um banco, precisamos criar uma outra página para recuperar os dados. Para essa página passamos o ID do registro onde está o arquivo, e então o arquivo é recuperado do banco. Teríamos uma URL parecida com essa:
http://localhost/WebVideos/ShowVideo.aspx?ID=1515.
Agora se estivermos armazenando os arquivos
http://localhost/WebVideos/ImageFolder/XVdePiracicaba.avi.
· Performance: Uma vez que os dados estão sendo armazenados no File System do servidor Web, em vez de estarem armazenados no banco, a aplicação está acessando menos dados, reduzindo a demanda e evitando o congestionamento de rede entre o Web Server e o banco de dados.
Vantagens de armazenar arquivos binários no Database
· Melhor gerenciamento dos dados: Uma vez que os dados binários estão armazenados no banco, juntamente com seus metadados (Nome do arquivo, Autor, Descrição etc.), fica muito mais fácil o gerenciamento desses, principalmente em tarefas como: backup, transferência do banco de um servidor para outro, replicação etc.;
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor



1
0
