2011-07-26 141 views
12

我有一个运行小型企业的客户端。他们需要一个自定义的数据库解决方案,我正在研究各种选项。我的经验仅限于使用本地SQL Server(无ASP.NET)的.NET,但是,此客户端是非技术性的,并且可以从DBA任务外包中受益。我是一个完整的Azure noob,我只是浏览了这些教程,他们都是针对开发MVC ASP解决方案。客户端不需要基于浏览器的解决方案。从不同地区办事处使用的胖桌面客户端将是我可以提供的最便宜的选项。我只是想通过所有的教程和文档节省一些时间,只是为了发现这不是SQL Azure打算做的。实际上我的问题归结为:SQL Azure适用于桌面客户端应用程序

  1. 我可以开发一个C#/。NET WPF桌面使用实体框架4应用程序并创下SQL Azure的,而不是本地的SQL Server?

  2. 是否有与EF4和SQL Azure的任何已知的陷阱?

  3. 是否有其他隐藏的开发成本/使用SQL-Azure的,而不是本地SQL Server的并发症。

  4. 基本工具支持是否一样?我可以想到一个具体的例子;如何获得用于故障排除的SQL分析器工具?

  5. 的最后一个问题是安全性相关的,我没那么复杂的问一个很好的问题,但创下了SQL Azure的数据库这种方式被认为是安全的,不,不?

回答

7
  1. 是的,你可以,但一个更合适的方法是使用WCF数据服务或Web服务的另一种形式(ASMX或WCF)作为一个服务层为应用程序。我喜欢这种业务应用程序的方法。我讨厌网络应用程序的业务线,并通过使用服务连接的WPF桌面应用程序,您可以享受在云中运行的好处,并且无需基于HTML即可提供云服务。

  2. SQL Azure现在已经完全支持EF。过去有一些问题,但我现在还没有遇到过。

  3. 在开发成本和并发症方面 - 在Azure托管桌面环境是从发展的角度有点PITA,但我还没有大的问题。除非您使用托管实例,否则您将失去共享本地DEV SQL Server的能力......当然,由于您必须为使用付费,所以开发成本也是如此。

  4. 好点! SQL Azure目前不提供SQL Profiler支持。我个人使用内置的EF跟踪支持这个功能。

  5. 露出了SQL Azure的数据库并不能直接从安全角度来看是个好主意。这就是为什么我建议打一个WCF数据服务(或其他Web服务)的端点在点1

+0

我不确定你的意思是不能共享本地开发SQL Server?没有什么可以阻止你使用本地SQL Server或SQL Express作为开发(实际上,这很有意义),只需更改连接字符串即可。你可以解释吗? –

+0

感谢您的详细回复。我有一些WCF的经验(只有局域网),所以这可能是要走的路线。我应该提到我是EF新手(虽然我有一些Linq to SQL exp)。观看一些关于EF的培训,我被一些拖放RAD功能所迷惑,但我可以看到从长远来看,我最好用服务层。我仍然对WCF感到困惑的一件事是所有的绑定选择(尤其是所有的ws *风格)。在我的项目中,我只使用了net.tcp,但在这里可能不合适。有什么建议么? – Tod

+0

我的意思是运行一个Azure虚拟机,并有一个其他人可以连接到的“真实”天蓝色环境。我想你可以并提供一个连接字符串......但我通常按照你建议的方式去运行常规的SQL服务器。 – Jeff

5

您可以开发使用SQL Azure的为您的数据库在桌面或内部部署的应用程序。

你需要采取标准预防措施天青 - 假定连接失败会发生,并确保您的应用程序重试逻辑,以恢复运行。另请注意,SQL Azure将终止超过一分钟的任何操作,以保留其他用户的服务。如果你有很多数据和一些讨厌的查询,那可能是相关的。

EF适用于SQL Azure。 SQL Azure本身有一些限制,您可以从Microsoft网站上的文档中阅读这些限制。如果您为Azure设计数据库,它将在SQL Server或SQL Express上正常工作(但不一定是相反)。

除了数据库的每月费用外,您还需支付离开数据中心的数据。仔细设计您的应用程序以最大限度地减少从数据库中检索的数据量。您不再需要为进入数据中心的数据付费,这有所帮助。

您仍然可以在Visual Studio中使用SQL Management Studio和Data Connections。不过,没有SQL Profiler。管理工作室无法做到一些令人恼火的事情,但没有什么是不可逾越的。

您必须打开防火墙规则才能访问数据库,但希望它们会受到限制。身份验证是通过SQL Server凭据,而不是集成身份验证。

我不倾向于这样做,但它的工作原理。

+0

感谢您指出“标准的Azure预防措施”,因为我刚刚接触到这一点,所以在加快处理文档的时候有一点要注意。您关于支付离开数据中心的数据的评论让我感到意外。在发布之前,我虽然了解每月费用[来自定价和计量部分](http://www.microsoft.com/windowsazure/features/database/)。你有链接,以显示额外的数据费用? – Tod

+1

请参阅http://www.microsoft.com/windowsazure/pricing/ - 标题为“以GB(以Windows Azure数据中心为单位进行传输”的数据传输)。 –

相关问题