使用现有的Postgres数据库访问MVC3数据库

时间:2011-11-15 07:34:45

标签: asp.net-mvc asp.net-mvc-3 postgresql razor npgsql

我有一个基于3层架构的应用程序,postgres数据库(npgsql)有超过400个存储过程,现在我想使用MVC3 Framework开发相同的应用程序。

我想知道最好的方法是使用现有数据库和那些存储过程,我遇到了代码第一种方法(http://weblogs.asp.net/scottgu/archive/2010/08/03 /using-ef-code-first-with-an-existing-database.aspx)但想知道它是否是最佳解决方案。

我也读到了Razor的好处,但是我的应用程序有很多DataGridViews和TabContorls所以我想知道Razor会很容易吗?

2 个答案:

答案 0 :(得分:0)

我建议您使用类似已经存在的东西(http://npgsql.projects.postgresql.org/),然后您可以利用现有的框架/基础架构(如何从现有应用程序查询数据库)。 / p>

其次,如果您正在使用DataGridViews和TabControls,ASP.NET MVC实际上不能与服务器控件一起使用,您将需要获得一个HtmlHelper来为您提供网格,或者自己构建一个网格。

我认为需要问的问题是,你为什么要去MVC vs WebForms 4.0?

答案 1 :(得分:0)

首先,您必须决定使用MVC3开发现有应用程序所需的重构级别或转换级别,因为您可能会抛出大部分工作

由于以下原因:

使用MVC作为技术与DDD如OOP设计或普通OOP有关,在这两种方法中,主要层是域模型而不是DB,因此您需要将所有存储过程转换为业务逻辑域模型本身或以其他方式使用现有数据库,在这种情况下,您将失去使用MVC的一大好处

在表示层中使用MVC不考虑使用DataGridViews或TabContorls,因此您也需要抛出它们,并且没有解决方案可以重复使用它们。

最后,使用MVC的主要好处是单元测试的能力和MVC提供的高级可维护性,因为模式的性质和方法本身>

所以你必须真正想到你想要达到什么级别的变换才能决定你将要保留什么以及你将要抛弃什么,但我建议你,如果你真的不会重组你的整个项目不要改变对MVC来说,只需将项目保持原样,然后重构它并增强现有方法