2011-07-26 3 views
12

J'ai un client qui gère une petite entreprise. Ils ont besoin d'une solution de base de données personnalisée et je suis à la recherche de diverses options. Mon expérience est limitée à .NET en utilisant des serveurs SQL locaux (pas de ASP.NET), cependant, ce client n'est pas technique et aurait avantage à pouvoir externaliser les tâches DBA. Je suis un client Azure complet, je viens de scanner les tutoriels et ils semblent tous ciblés sur le développement de solutions ASP MVC. Le client n'a pas besoin d'une solution basée sur un navigateur. Un gros client de bureau utilisé à partir de différents bureaux géographiques serait l'option la moins chère que je puisse offrir. J'essaie juste de gagner du temps à parcourir tous les didacticiels et docs pour découvrir que ce n'est pas ce que SQL Azure est censé faire. En effet, mes questions se résument à:SQL Azure est-il adapté aux applications client de bureau?

  1. Puis-je développer un C#/NET application de bureau utilisant WPF Entity Framework 4 et l'ont frappé SQL Azure à la place d'un serveur SQL local.?

  2. Y a-t-il des pièges connus avec EF4 et SQL Azure? Y a-t-il d'autres coûts/complications de développement cachés lors de l'utilisation de SQL-Azure au lieu d'un SQL Server local?

  3. L'outil de base est-il le même? Un exemple spécifique auquel je peux penser; puis-je obtenir un outil de profilage SQL pour le dépannage? La dernière question est liée à la sécurité et je ne suis pas assez sophistiqué pour poser une bonne question, mais frappe un SQL Azure db de cette façon considéré comme une sécurité non non?

Répondre

7
  1. Oui, vous pouvez, mais une approche plus appropriée serait d'utiliser WCF Data Services ou une autre forme de services Web (.asmx ou WCF) en tant que couche de services pour votre application. J'aime cette approche pour les applications métier. Je déteste les applications Web pour le secteur d'activité et en utilisant une application de bureau WPF connectée aux services, vous bénéficiez des avantages de l'exécution dans le cloud et d'une offre cloud sans avoir besoin d'être basé sur HTML. SQL Azure a un support complet pour EF ces jours-ci. Dans le passé, il y avait quelques problèmes, mais je n'en ai rencontré aucun ces jours-ci. En termes de coûts de développement et de complications - l'environnement hébergé de bureau Azure est un peu un PITA du point de vue du développement, mais je n'ai pas eu de problèmes majeurs. Vous perdez la possibilité de partager un serveur DEV SQL Server local à moins que vous n'utilisiez une instance hébergée ... bien sûr, il y a un coût de développement car vous devez payer pour l'utilisation.

  2. Bon point! SQL Azure ne fournit pas de support SQL Profiler pour le moment. Personnellement, j'utilise le support de traçage EF intégré pour cette fonctionnalité.

  3. L'exposition directe d'une base de données SQL Azure n'est pas une bonne idée du point de vue de la sécurité. Voilà pourquoi je suggère de frapper un point final au point 1.

+0

Je ne suis pas sûr de ce que vous voulez dire de ne pas être en mesure de partager un développement local SQL Server? Il n'y a rien pour vous empêcher d'utiliser un SQL Server local ou SQL Express pour le développement (en fait, cela a beaucoup de sens), juste en changeant la chaîne de connexion. Peux-tu expliquer? –

+0

Merci pour la réponse détaillée. J'ai de l'expérience WCF (LAN seulement) donc c'est probablement la voie à suivre. J'aurais dû mentionner que je suis nouveau à EF (bien que j'ai quelques Linq à SQL exp.). En regardant un peu de formation sur EF, j'ai été séduit par certaines fonctions de glisser-déposer de RAD, mais je peux voir comment, à long terme, je suis mieux avec une couche de service. Une chose que je trouve encore confuse à propos de WCF est tous les choix de liaison (en particulier toutes les saveurs ws *). Dans mes projets, j'ai seulement utilisé net.tcp mais ce n'est probablement pas approprié ici. Aucune suggestion? – Tod

+0

Je voulais dire exécuter une machine virtuelle Azure et avoir un "vrai" environnement azur auquel les autres peuvent se connecter. Je suppose que vous pourriez et fournir une chaîne de connexion à cela ... mais je suis généralement allé comme vous l'avez suggéré et exécuter un serveur SQL régulier. – Jeff

5

Vous pouvez développer une application de bureau ou sur site qui utilise SQL Azure pour votre base de données WCF Data Services (ou d'autres services Web).

Vous devez prendre les précautions standard d'Azure (en supposant que des échecs de connexion surviendront) et que votre application dispose d'une nouvelle logique de restauration.Notez également que SQL Azure met fin à toutes les opérations qui durent plus d'une minute, afin de préserver le service pour les autres utilisateurs. Si vous avez beaucoup de données et quelques requêtes désagréables, cela pourrait être pertinent.

EF fonctionne correctement avec SQL Azure. Il existe certaines limitations à SQL Azure, que vous pouvez consulter à partir de la documentation sur le site Web de Microsoft. Si vous concevez votre base de données pour Azure, cela fonctionnera correctement sur SQL Server ou SQL Express (mais pas nécessairement l'inverse).

En plus des frais mensuels pour la base de données, vous paierez pour les données qui quittent le centre de données. Concevez votre application avec soin pour minimiser la quantité de données extraites de la base de données. Vous n'avez plus à payer pour les données entrant dans le centre de données, ce qui aide.

Vous pouvez toujours utiliser SQL Management Studio et Data Connections dans Visual Studio. Pas de profileur SQL, cependant. Il y a quelques choses irritantes que vous ne pouvez pas faire avec Management Studio, mais rien d'insurmontable.

Vous devrez ouvrir des règles de pare-feu pour accéder à la base de données, mais nous espérons qu'elles seront limitées. L'authentification est effectuée par les informations d'identification SQL Server et non par l'authentification intégrée.

Je n'aurais pas tendance à le faire de cette façon, mais cela fonctionne.

+0

Merci d'avoir souligné "les précautions standard Azure" depuis que je suis nouveau à ce sujet, il est bon d'avoir une tête à ce sujet pendant que je me familiarise avec les docs. Votre commentaire sur le paiement des données qui quittent le centre de données m'a pris par surprise. Avant de poster, j'ai bien compris les coûts mensuels [de la section de tarification et de mesure] (http://www.microsoft.com/windowsazure/features/database/). Avez-vous un lien pour afficher les frais de données supplémentaires? – Tod

+1

Voir http://www.microsoft.com/windowsazure/pricing/ - la section intitulée "Transferts de données mesurés en Go (transmissions vers et depuis le centre de données Windows Azure)". –

Questions connexes