如何在不同的MVC网站之间共享模型?

时间:2013-06-27 08:16:59

标签: asp.net-mvc

我的ASP.NET MVC 3网站有两个独立的区域 - 管理员(内联网网站)和客户端(互联网网站)。

两个网站都将使用模型(业务和数据访问层)。这些网站将托管在单独的服务器上。因此,该文件夹将不会被共享。 所以,我打算创建模型的DLL并将DLL放在两个网站的Bin文件夹中并使用它。

我希望这会保持我的UI整洁,并减少代码。

现在,我怀疑是:

  1. 我是否需要创建一个类库项目来创建模型的DLL,还是需要使用MVC Web应用程序项目来创建DLL?
  2. 我应该在哪里放置网络配置?希望我在模型和UI中都需要吗?

2 个答案:

答案 0 :(得分:3)

  

我是否需要创建一个类库项目来创建模型的DLL

是的,在2个Web应用程序之间共享一个单独的类库是最好的方法。

  

我是否需要使用MVC Web应用程序项目来创建DLL(寻找最佳方法)?

不,ASP.NET MVC只能包含视图。不要在其他应用程序中引用和重用Web应用程序以用于通用逻辑。

  

我应该在哪里放置网络配置?

每个ASP.NET MVC Web应用程序都应该有自己的web.config。

答案 1 :(得分:2)

是的,您的抽象业务逻辑应该在一个单独的类库项目中。然后,您可以在同一解决方案中从Web应用程序引用此项目,或者编译它并将其作为DLL引用。您的web.config文件仍将存在于您的Web项目中。

要在Web项目中添加类库的设置,请使用配置部分:

<configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <section name="My.Class.Library.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
</configSections>
<applicationSettings>
    <My.Class.Library.Properties.Settings>
        <setting name="SettingName" serializeAs="String">
            <value>SettingValue</value>
        </setting>
    </My.Class.Library.Properties.Settings>
</applicationSettings>