ASP.NET MVC添加Web服务层

时间:2011-07-21 16:44:50

标签: asp.net-mvc web-services asp.net-mvc-2

我希望得到一些人们关于添加网络服务层的意见。在我的工作中,我们希望开始使用Web服务来处理我们的一些操作。

我们当前的ASP.NET MVC应用程序项目结构:

MVC App(View / Controller / ViewModel / Service Layer) - > BAL(业务访问层) - > DAL(数据访问层)

MVC app,BAL和DAL是单独的程序集。

还有一个在MVC / BAL / DAL层之间共享的域(模型)程序集。

计划是创建一个处理所有安全功能的Web服务。此Web服务将由多个Web应用程序使用。当我们对Security Web服务进行更改时,我们只想在一个地方而不是每个Web应用程序中修改代码。所以我更喜欢MVC项目中没有任何内容与Web服务相关联。

所以我考虑在BAL和DAL层之间添加Web服务层。

这样的事情:

MVC项目(视图/控制器/视图模型/服务层)

呼叫

BAL层(处理缓存/数据库事务)

呼叫

网络服务层

调用

DAL图层

你有什么看法?

2 个答案:

答案 0 :(得分:0)

作为支持应用程序的人,这种应用程序如此可笑。

  • GUI
  • BAL
  • DAL to WebService
  • web服务
  • WebBAL
  • WebDAL

我建议尽可能靠近您的网络服务使用GUI。

答案 1 :(得分:0)

一些想法。

您将Web服务层放在BAL和DAL之间。这意味着一切都需要通过您的Web服务,包括与安全无关的功能。我认为这会增加额外的复杂性。如果多个网站正在使用Web服务,请将其创建为应用程序/服务的站点。然后,您可以根据需要服务的层来从应用程序的不同层调用服务。通常,您将创建一个具有干净界面的Webservice包装器,以便您可以从应用程序的任何层轻松调用Web Service。

为了便于讨论,假设您的Web服务处理了用户登录名和密码的验证。您可以直接在MVC项目中连接到Web服务包装器以查看用户数据是否有效,然后您可以将其登录。稍后,如果用户执行某项功能,并且业务层需要检查用户是否具有权限,则该层可以使用调用api的api包装器来查看用户是否具有权限,等等。

                                      MVC APP
                                      /    \
                                    BAL --> Web Service Wrapper
                                    /        \
                                  DAL        WCF WEB SERVICE