簡體   English   中英

ASP.NET MVC應用程序的數據庫和邏輯層

[英]Database and logic layer for ASP.NET MVC application

我將開始一個新項目,該項目最初規模不大,但隨着時間的推移可能會擴大。 我堅信我將使用ASP.NET MVC和jQuery for UI。 由於某些原因,我想將MySQL用作數據庫,但擔心的是幾件事。

我對Linq完全陌生,但是一旦您熟悉它,它似乎更易於使用。

第一件事是訪問數據應該很容易。 因此,我認為我應該在Linq上使用MySQL,但是我讀到某個地方它沒有直接支持,但MySQL .NET連接器增加了對EntityFramework的支持。 我不知道它的優點和缺點。 我也聽到了DbLinq。 我希望能實現存儲庫模式,因為它允許在邏輯層而不是數據訪問層中應用過濾器。 如果使用實體框架,是否有可能?

我也很擔心表現。 有人告訴我,如果使用實體框架,它將獲取大量數據,然后進行過濾。 那正確嗎?

所以問題基本上是-

  1. MySQL可以用於Linq嗎? 如果是,我在哪里可以獲得更多詳細信息?
  2. 在MySQL上使用EntityFramework或DbLinq的優缺點?
  3. 使用EntityFramework或DbLinq和MySQL來訪問數據是否容易?
  4. 我將能夠實現允許在邏輯層而不是數據訪問層中應用過濾器的存儲庫模式(當我將EntityFramework與MySQL一起使用時)
  5. 它是否從數據庫中獲取大量數據,然后對其應用過濾器?

如果在這種情況下在我這邊聽起來有太多問題,如果您可以讓我知道在這種情況下作為該領域的有經驗的人您將做的事情(有充分的理由),那應該回答我的問題。

因為我是ALT.NET的粉絲,所以我建議您將NHibernate用於您的項目而不是EntityFramework,您可以在Google上尋求它的優點,我相信您會選擇它。

基於您提到的觀點,然后我將認真考慮最初使用MS SQL而不是MySQL並實現LINQ-to-SQL而不是Entity Framework,這是為什么:

  1. 您最初預計會有大量流量這一事實告訴我,您需要考慮打算在哪里結束而不是從哪里開始。 與使用MySQL相比,我在MS SQL方面的經驗要豐富得多,但是如果您要談論的是從MySQL的社區版本開始並在以后進行升級,則無論如何,企業版本都將產生大量費用。
  2. 我聽說有一個支持MySQL的LINQ版本,但是,除非最近有所變化,否則它仍處於beta版。 我正在完成一個為期18個月的基於Web的項目,該項目使用了ASP.NET MVC 1.0,LINQ-to-SQL,JavaScript,jQuery,AJAX和MS SQL。 我使用WatiN實現了存儲庫模式,視圖模型,界面,單元測試和集成測試。 技術的組合對我來說非常有效,並且我計划將相同的組合用於我正在開發的個人項目。
  3. 使用托管計划獲取MS SQL時,通常可以從該單個實例創建多個數據庫。 看起來它們為您提供了更多的存儲空間,因為它們為您提供了多個MySQL數據庫,但這僅僅是因為該體系結構僅支持為每個實例創建一個數據庫。
  4. 我不會在ASP.NET MVC項目中使用實體框架,因為首先我並不對ADO.NET感到瘋狂。 我不需要打開連接,創建命令對象,填充參數集合,發出execute方法,然后遍歷單向讀取器對象來獲取我的數據。 一旦您了解了LINQ-to-SQL如何簡化了這一過程,就不會再回頭了。 在我前面提到的項目中,數據庫中有60多個表,其中包含約200個外鍵關系。 因為我在數據層中將LINQ-to-SQL與存儲庫模式一起使用,所以我能夠使用單個存儲過程來構建應用程序。 LINQ-to-SQL自動防御SQL注入攻擊,並支持樂觀和悲觀的並發檢查。

我不知道您的項目是什么,但是您不希望遇到以后無法擴展應用程序的情況。 為最終結果而不是起點編寫代碼,以后您將省去很多麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM