2009-10-18 53 views
2

我有4年左右的SQL Server(只有Web表單)的經驗。我對Ruby on Rails有一些瞭解,並在我的工作中開發了一個非常小的,在ASP.NET MVC中的2-3頁的應用程序。現在我和我的一位朋友(和我一樣的經歷)願意獲得更多的ASP.NET MVC經驗。爲此,我們考慮在ASP.NET MVC中開發一個開源應用程序。它可以是博客系統或論壇或其他任何內容,以便社區也可以從中受益。但是我們無法爲MySQL和SQL Server之間的應用程序決定後端數據庫。你會在以下方面提出什麼建議 -ASP.NET MVC開源應用程序。 MySQL或SQL Server?

  1. 社區會提供哪些支持或要求?
  2. 如果我們使用MySQL,它會是一個艱難的道路嗎?
  3. 是否有機會通過使用ORM支持(我沒有使用任何ORM的經驗)
  4. 有沒有其他建議?

在此先感謝。

回答

3

這將是更多的支持或社會需要?

對於大多數業務用戶和大多數專用ASP託管提供商,它將是Microsoft SQL Server恕我直言。令人驚訝的是跨版本號。我看到很多SQL Server 2008,2005年很多,而且很多2000年也是如此。

對於小型「我們很便宜,它是免費的嗎?」企業和個人,我也會在Windows上看到一些MySQL。我想,在我曾與之合作過的公司的小圈子中,您提到的兩個數據庫中有2/3是MSSQL和1/3 MySQL。

如果我們使用MySQL,它會是一個艱難的道路嗎?

在開發難度方面?是和不是; LINQ to SQL或多或少只適用於MSSQL,許多人發現它是一種簡單而自然的技術。如果您的計劃是使用LINQ to SQL作爲您選擇的ORM,那麼「是」。正如elder_george所說,其他好的ORM如nHibernate在兩個數據庫上都能很好地工作。

是否有通過使用ORM,同時支持任何機會(我沒有與任何ORM的工作經驗)

當然,F.X.與nHibernate和一些額外的XML配置nHibernate和一些更廣泛的安裝文檔,SQL腳本等等用戶。

還有其他建議嗎?

由於這是第一個應用程序,玩的設計首先使用mocksups &原型,UML或別的東西你所選擇的。看看你是否可以讓一些有經驗的MVC開發人員對你的設計進行批評,但不要把他們的批評當作福音,還有不止一種方法是正確的。

肯定考慮tvanfosson建議使用IRepository來提供存儲層的靈活性。

考慮從一開始就使用單元測試和依賴注入;這兩個都是恕我直言,非常重要,並在長期運行中有幫助。不利的一面是,如果您以前沒有這方面的經驗,那將會是很多新技術。

4

如果您不能決定將哪個作爲後端使用,那麼我有一個建議是爲數據層定義一個接口,對此接口使用IRepository模式,並簡單地選擇一個並寫入數據的實現該選擇的層。在一個(成功的)開源項目中,每個想要使用它的人都不太可能對於哪些數據庫能爲他們工作有相同的想法。在這種情況下,設計一個合適的接口實現,以便它可以使用任何數據庫,這是一個明智之舉。使用像nHibernate這樣已經支持許多不同數據庫的東西,如果你不介意對其他庫有依賴關係,那麼它可能就是你想要去的路線。

+0

你推薦nHibernate + IRepository或其中的任何一個?對不起,但都是新來的,所以只想確認一下。 – 2009-10-27 18:20:35

+0

nHibernate可能是我會選擇的ORM。如果你使用nHibernate,你可能會也可能不想在它之上使用IRepository模式。 – tvanfosson 2009-10-27 21:54:03

3
  • MS SQL更容易與.NET結合使用。 .NET包括LINQ to SQL ORM開箱即用,因此不需要安裝任何東西。

  • MS SQL有一個免費的Express版,但它是由你來決定是否它的能力(4GB爲DB,只等1個CPU)就足夠了您的應用程序(恕我直言,他們會=))

  • 有ORM允許在DBMS之間切換:NHibernate,SubSonic,DbLinq。 NHibernate是最強大的野獸,如果你正在尋找來自RoR的熟悉概念,那麼它就會生成一個active record實現。

0

tvanfosson和elder_george給出了很好的評論。除了ASP.NET MVC外,它更多的是MySQL vs MSSQL。我已經開發了使用兩者的web項目,並從發展的角度相對看好它們。 ORM我用過的是NHibernate。

從部署/生產的角度來看,假設你不會爲此付出代價,你將受到MSSQL Express版本的限制。你可能想在這方面花點心思。

0

幾個月前,我的情況與此類似。現在我最新的ASP.Net MVC項目已基本完成。這裏是我選擇的集合

--ASP.Net MVC + MySQL。沒有ORM .--

我決定用MySQL代替MS SQL,因爲MySQL是免費的,MS SQL非常昂貴。如果你正在開發一個開源應用程序,你必須認真思考這個問題。如果您的目標是廣泛採用您的應用程序,這將成爲一個主要問題。

起初我試圖通過ORM - 企業框架(EF)使用MySQL。這是有史以來最糟糕的決定。企業框架完全喪失了性能。這是坑的坑。我相信nHibernate更好,但我不知道多好。

有了我自己的SQL代碼,事情就足夠快了。

我的網站的第一次迭代將在本週公開測試,然後會有幾次迭代。

它走得相當好,所以我推薦我輕鬆選擇的套裝。

+0

MS SQL Server Express是免費的。它在其限制範圍內表現良好。所以,除非您超出Express版本,否則這不是成本問題。 – 2009-10-18 16:49:49

+0

MS SQL Express將僅支持1 GB的最大內存和最大4 GB的數據庫大小。你可能比你意識到的更快地超越它們。特別是如果您設置了多個數據庫(如果您在服務器上設置了多個站點,則可能會有這些數據庫)。 – 2009-10-19 07:09:22

+0

企業框架或實體框架? – 2009-10-27 18:13:53