2011-11-15 82 views
1

我有一個基於3層架構的應用程序,具有超過400個存儲過程的postgres數據庫(npgsql),現在我想用MVC3框架開發相同的應用程序。使用現有的Postgres數據庫訪問MVC3數據庫

我想知道什麼是最好的方式來使用現有的數據庫與這些存儲過程,我遇到過代碼優先的方法(http://weblogs.asp.net/scottgu/archive/2010/08/ 03/using-ef-code-first-with-an-existing-database.aspx),但想知道它是否是最好的解決方案。

另外我讀了剃刀的好處,但我的應用程序有很多DataGridViews和TabContorls,所以我想知道是否容易與剃刀一起去?

回答

0

首先你必須決定什麼級別的重構或者你需要去開發使用MVC3現有應用程序的轉化水平的,因爲你可能會拋出大部分工作

因爲以下幾點:

使用MVC作爲技術涉及到一些如何將DDD作爲OOP設計或正常的OOP,並且在這兩種方法中,主要層都是域模型而不是數據庫,因此您需要將所有存儲過程轉換爲域內的業務邏輯模型本身或以其他方式使用現有的數據庫,在這種情況下,您將失去使用MVC的最大好處之一:

在表示層中使用MVC不考慮使用DataGridViews或TabContorls,因此您也需要拋出它們,並且沒有解決方案來重用它們。

最後,使用MVC的主要好處是,,單元測試和可維護性MVC提供的高水平的能力,因爲該模式和方法本身的性質>

所以,你必須真正想到你想達到什麼樣的水平,以決定你將要保留什麼,以及你會拋棄什麼,但是我的建議是,如果你真的不會重組你的整個項目,不要轉換爲MVC,只要保留項目,只是重構它,並加強現有的方法

+0

非常感謝您的回覆,我真的認爲與三層架構保持合作會很明智,目前我們沒有面臨任何可維護性問題,我們唯一關心的是性能。 – Shobi23

+0

MVC可以幫助您提高性能,因爲它可以讓您更好地控制表示層,不再生成JavaScript,不會產生更多繁重的視圖狀態等,但也需要學習時間才能熟悉並提高工作效率。也可以把一個長期的計劃遷移,最後不要錯過理解我,記得我說的一個主要的好處是可維護性並不是所有的好處都是可維護性。 –

0

我建議你使用類似的東西已經(http://npgsql.projects.postgresql.org/),然後你可以利用你現有的框架/基礎結構(如何從現有的應用程序查詢你的數據庫)。其次,如果您使用的是DataGridViews和TabControls,ASP.NET MVC並不真正與服務器控件一起工作,您必須獲得一個HtmlHelper,它可以爲您提供網格,或者自己構建一個網格。

我認爲需要問的問題是,爲什麼你想要去MVC vs WebForms 4.0?

+0

我們關心的是性能,這就是我們嘗試轉向MVC的原因。 MVC會提供性能方面的幫助嗎? – Shobi23