Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
937
Assunto : ASP.NET
Titulo: Usando bancos SDF - SQL Server sem pagar por isso

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Um dos grandes problemas de se usar SQL Server em hospedagens é a necessidade de pagar um extra por isso, o que ninguém quer.

No SQL Server 2005 surgiu a possibilidade de inserir o banco .MDF na pasta app_data, mas isso não é nada bom : O servidor ainda é absolutamente necessário e uma instância do servidor será levantada no host, tornando tudo lento. A grande maioria, senão totalidade, dos hosts não permite isso.

Então porque não voltarmos um pouco ao passado ? Os bancos SDF são bancos baseados em arquivo do SQL Server CE, não precisando de um servidor para serem acessados, podendo ser acessados diretamente do data provider. Funciona de forma semelhante aos antigos bancos access, só que muito mais próximo e integrado ao SQL Server.

O maior uso dos bancos SDF é para mobilidade, exatamente onde um servidor não é necessário. Mas quando houver necessidade nada impede de usa-los na web, tendo-se o devido conhecimento de que bancos baseados em arquivo são muito menos escaláveis do que servidores como o SQL Server.

A string de conexão para um banco SDF fica como no exemplo abaixo :

Provider=Microsoft.SqlServerCe.Client.3.5;Data Source=|DataDirectory|\Northwind.sdf;Max Database Size=2047

ou, no web.config :

<connectionStrings>
<add name="winClient.My.MySettings.ClientNorthwindConnectionString"
connectionString="Data Source=|DataDirectory|\Northwind.sdf;Max Database Size=2047"
providerName="Microsoft.SqlServerCe.Client.3.5" />
</connectionStrings>

Porem mesmo com essa string de conexão o acesso ao banco não será permitido e a mensagem de erro explicará que esse banco não foi feito para ser usado na web.

Como assim, então não dá ?

Claro que dá. A Microsoft apenas incluiu um recurso de segurança para ter certeza de que você sabe o que quer, o que está fazendo e tem conhecimento de que bancos baseados em arquivo são menos escaláveis do que um servidor.

Simples: Defina um valor no appdomain e o acesso ao banco será permitido :

appdomain.currentdomain.setdata("sqlservercompacteditionunderwebhosting",true)

Insira essa instrução no global.asax, um session_onstart por segurança, e tudo fica resolvido.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br