Utilisation de l'édition SQL Server Express au lieu de l'édition Compact en tant que cache de database locale?

Par défaut, lorsque vous créez un cache de database local à l'aide de l'assistant fourni par Visual Studio 2008, vous créez une database SQL Server Compact Edition et vous fournissez une capacité de synchronisation entre le cache et SQL Server distant avec Sync Framework (1.0). Cela nous permet de fournir la fonctionnalité hors ligne dans notre application basée sur le server client.

Ma question est, au lieu d'utiliser SQL Server Compact Edition, est-il possible d'utiliser l'édition SQL Server Express afin que nous puissions utiliser des procédures stockées? Tous les clients sont des ordinateurs portables costaud fonctionnant sur Core 2 Duo, donc la puissance de traitement n'est pas un problème du tout. Pour notre user, le mode hors connection est la fonctionnalité la plus précieuse.

De plus, il nous faudra procéder à une réécriture majeure pour convertir tout le code de procédure stockée en code C # intermédiaire en utilisant LINQ. Enfin et surtout, notre patron veut que la logique métier soit dans des procédures stockées. SQL Server CE ne va tout simplement pas le couper.

est-il possible d'utiliser l'édition SQL Server EXPRESS pour pouvoir utiliser la procédure stockée?

Oui.

Vous pouvez simplifier l'installation et le deployment en utilisant Click Once.

Si nécessaire, vous pouvez limiter la quantité de memory utilisée par SQL Express en émettant les commands de configuration appropriées.

Étant donné que vos clients utilisent des ordinateurs portables, vous pouvez envisager d'arrêter et de démarrer SQL Express à partir de votre application, plutôt que de démarrer automatiquement en tant que service.

PS Si vous utilisez des SP, vous n'avez pas besoin de LINQ. ADO.NET peut générer un code beaucoup plus performant, en particulier si vous pouvez exploiter des fonctionnalités telles que le traitement par lot de commands, les requêtes asynchronouss, plusieurs jeux de résultats, etc., qui ne sont pas possibles avec LINQ.

Oui, vous pouvez le faire. Vous pouvez requestr au programme d'installation d'installer SQL Server Express sur leurs ordinateurs.

La seule chose que je préviens est que SQL Server peut prendre de la RAM supplémentaire (200 à 500 Mo) et il ne sera pas toujours évident pour vos users pourquoi leur ordinateur consum autant de RAM tout le time. Si tous ont beaucoup de RAM, ce n'est pas un problème, mais n'importe qui avec des ordinateurs avec less de 2 concerts peut remarquer cela.

Vous seriez en mesure d'écrire des procédures stockées dans SQL Server Express. J'ai utilisé SQL Server Express pour certains produits et il est parfait pour la plupart des bases de données dont j'ai besoin pour build car ils n'atteignent jamais les limites.

Cet article indique que Sync Framework 1.0 ne prend pas en charge SQL Server Express en tant que client. Sync Framework 2.0 peut prendre en charge Express en tant que client.

Dans Sync Framework 1.0 –

Nous avions 2 fournisseurs de synchronisation de database disponibles, à savoir SqlCeClientSyncProvider et DbServerSyncProvider. Ces fournisseurs prennent en charge les scénarios hors ligne (ou en écanvas). Par conséquent, seul le SGBD client que nous pouvions utiliser était SQL Server Compact Edition. Côté server, nous pouvions utiliser SQL Server ou tout autre SGBD compatible ADO .net.

Dans Sync Framework 2.0 –

En plus des fournisseurs plus anciens, nous avons également 3 nouveaux fournisseurs de synchronisation de database, à savoir SqlSyncProvider, SqlCeSyncProvider et DbSyncProvider. Ces nouveaux fournisseurs peuvent être utilisés avec des scénarios de collaboration et hors ligne, ce qui permet à toute database compatible ADO .net de participer en tant que client ou server dans des scénarios hors ligne ou en tant que pair dans des scénarios de collaboration.

Commentez la réponse de Tim ci-dessus. J'ai en fait plus ou less la même question que la question initiale ci-dessus. Je me bats actuellement pour faire mon path à travers ces puzzles de version de Sync Framework, Sync Services, versions de SQL Server, etc etc et ce que l'on peut utiliser avec quelle version.

Je trouve qu'il y a une contradiction dans l'article auquel Tim fait reference (ci-dessus):

Selon la réponse à la question # 13 dans cet article, il semble que SQL Compact est le seul qui peut être utilisé avec SF 1.0. Dommage pour tous ceux qui développent sur ASP.NET et qui sont bloqués avec SF 1.0, car on obtient une exception en essayant de marier SQL Compact avec ASP.NET (je l'ai moi-même). Sauf si on a SQL CE v4 peut-être?

"SQL Server Compact n'est pas conçu pour le développement ASP.NET."

Par exemple:

http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/b8763568-c7b0-4e4a-bdf3-14969a0f67a0/

Selon la réponse à la question # 3 du même article, SF 1.0 est installé par défaut avec SQL Server 2008 et SQL Server Express 2008. Je peux en attester, je ne l'ai pas demandé et il était là quand j'ai installé mes affaires sur le client Express.

C'est l'une des nombreuses choses qui ajoutent à la confusion: Comment diable pouvons-nous facilement comprendre ce qu'il faut utiliser ou ce que nous pouvons utiliser dans chaque scénario / configuration?

Si cela peut aider à répondre à la question initiale, après une semaine de searchs intensives et de luttes en C # liées à la synchronisation dans le scénario le plus simple possible, voici mes conclusions: Puisque SF 1.0 est installé avec SQL Express 2008, on peut conclure set. FAUX. J'ai tout essayé. J'ai trouvé très peu d'informations sur Internet sur le fait de marier les deux et, par conséquent, ils ne sont pas utilisables set. Ne perds pas ton time. Oui, vous pouvez utiliser SQL Express, mais avec Sync Framework 2.0 uniquement. C'est ma conclusion personnelle. Maintenant que je le sais, je suis sur le point d'installer Sync Framework 2.0 sur les clients (malgré le process de RFC et d'approbation compliqué qui m'empêche d'installer quelque chose du côté server). Je crois en un model centralisé (les clients se connectent à un server central mais ne se connectent pas set et le server lui-même ne dispose pas de l'application web / IIS), l'utilisation de Sync Framework est exclusivement réservée au client. Avoir du sens?

Quoi qu'il en soit, merci à Tim de partager cela. J'avais déjà lu la FAQ, mais en la voyant, je suis allé la relire et j'ai réalisé que je devrais vraiment installer 2.0 😉

Meilleures salutations,

Zyxy

La génération automatique de code par LocalDataCache ne prend en charge SQLCE qu'à ma connaissance. Il est techniquement possible de synchroniser SQL2008 Express vers SQL Server, mais il semble exiger beaucoup de code et est maintenant aussi simple que le support élégant de SQLCE dans VS2008.