2011-07-26 74 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數據中心爲單位進行傳輸」的數據傳輸)。 –

相關問題