Depois que escrevi "Escolha entre SQL Server Express Edition e Compact Edition", alguns amigos no jardim perguntaram se o SQL Server Compact Edition (sqlce) oferece suporte a ASP.NET? Eu não tinha certeza na época. Testei sozinho e definitivamente não funcionou, mas achei estranho e não havia razão para não apoiá-lo!
Eu li o blog de Steve Lasker hoje e finalmente descobri!
Como o sqlce não suporta ASP.NET por padrão, muitos usuários fizeram solicitações à MS, reclamaram constantemente e até ameaçaram (se você não permitir que ele suporte, usarei produtos XX). Steve Lasker finalmente não conseguiu ficar parado e veio esclarecer tudo isso.
Na verdade, o posicionamento de mercado do sqlce é muito claro, principalmente para resolver os problemas de armazenamento e sincronização de dados offline de clientes inteligentes. Isso também é esclarecido em "Escolhendo entre SQL Server Express Edition e Compact Edition". Portanto, a Microsoft não otimizou o cenário de uso do sqlce como banco de dados de sites. No ambiente de acesso multiusuário ao site e simultaneidade de dados, o desempenho do sqlce não é ideal e não pode ser comparado ao SQL Server Express. Portanto, é recomendável que o site ainda utilize o banco de dados SQL Server Express ou SQL Server. Você deve saber que o sqlce é um mecanismo de banco de dados incorporado e o SQL Server Express é um serviço de banco de dados. Agora, o Hosting Toolkit SQL Server lançado recentemente pela equipe de desenvolvimento do SQL Server pode ajudá-lo a implantar o SQL Server Express em seu servidor Web.
Então, o ASP.NET pode usar o sqlce como armazenamento de dados? Pode!
Por padrão, o sqlce será bloqueado ao abrir uma conexão de banco de dados sqlce no processo de trabalho do ASP.NET. Você pode remover essa restrição por meio do código a seguir. Esta linha de código será alterada na versão RTM porque o sqlce foi renomeado e não é mais chamado de SQL Server Everywhere:
AppDomain.CurrentDomain.SetData("SQLServerEverywhereUnderWebHosting", true)
deve ser observado que a função de sincronização de dados do sqlce não pode ser usada no ASP.NET.
Resumindo, não importa quão grandes sejam os sapatos, quão grandes sejam os pés. Você não deve usar o sqlce no ASP.NET. Se você insistir em usá-lo, preste atenção nas consequências!
Referência:
SQL Server Compact Edition em ASP.net e IIS
Classe SqlCeConnection (System.Data.SqlServerCe)