在MVC3 Web应用程序中集成C#SQL CLR数据库项目?

时间:2012-07-25 15:38:21

标签: c# clr

后台:我已经编写了一个CLR数据库项目,它包含了我正在创建的数据存储的所有业务逻辑。它部署在我的SQL Server上,由各种CLR StoredProcedures引用它来处理数据导入。 现在我正在开发Web前端,并为此目的开始编写MVC3项目。 由于我已经拥有完整的业务逻辑(对象定义,质量检查),我想使用我的MVC应用程序中的代码。

我认为最好的方法是将BusinessLogic CLR项目添加到我的MVC解决方案并在MVC项目中引用它。这工作正常,我可以使用该代码。有了一些耐心,我遇到了大多数困难。

的问题:

1)当我想调试MVC解决方案时,Visual Studio总是希望部署CLR程序集。我通过在调试之前卸载MVC解决方案中的CLR项目来解决这个问题。

2)从我的SQLServer获取UserDefinedType Reference似乎也是一个问题:

3)我在服务器上两次部署相同的代码,一次使用SQL程序集,一次使用我的MVC前端。

问题:

  • 在SQL Server程序集和前端项目中使用相同的代码是否有最佳实践?也许是一种在SQL Server上引用已部署的BusinessLogic程序集的方法?业务逻辑中的任何更改都应该可以访问前端代码以及SQL Server上的DataImport内容。当前的解决方案感觉不对,因为我必须在我的服务器上部署相同的代码2x,一次使用SQL程序集,一次使用我的MVC前端。

任何部分答案(即有意义的闪烁)都将受到赞赏。我非常喜欢这个。

1 个答案:

答案 0 :(得分:2)

业务逻辑代码可以在它自己的类库和项目中。

然后CLR数据库解决方案包含此BL项目,MVC解决方案还包括BL项目。但是这两种解决方案是分开的。这似乎解决了当前的问题 - 尽管如果你改变了BL代码,那么你必须进行2次部署......

可能只是这个BL层没有生活在正确的地方。如果这个BL住在某个地方的服务中会很好,并且CLR procs和MVC项目都在这个地方访问它。