为了清楚地在我的问题中提到层次,我指的是物理层(即用于表示、应用程序和数据库的不同服务器)。
我的公司有一个面向公众的网站,目前作为一个典型的2层系统(web服务器和数据库服务器)构建。
不久,一个项目将开始,其中我们将重写整个网站。我们需要将项目划分为3个物理层。实际上,当您考虑浏览器时,您可以考虑它的4个物理层。
根据我的经验,大多数asp.net应用程序都是构建在2层之上的。web应用程序本身可能有几个层,但实际上它被部署到两个服务器(web和DB)上。
我已经寻找了例子,但似乎层和层被混淆了。我看到了很多多层的例子,但没有多层的例子。
简而言之,web应用程序似乎对使用ADO (或L2S或EF)将数据发送到数据库的应用层进行web服务或WCF调用。
ASP.MVC是否有助于实现这一目标?它会让事情变得更简单还是与众不同?
在某个地方有很好的参考资料或例子吗?
发布于 2009-09-18 06:51:14
Gday Rick
我在一家公司工作,由于安全原因,公司有着相同的多层政策。
我在一个层上有一个ASP.NET MVC web应用程序,它连接到web服务所处的应用程序层,基本上是数据库和大型机的外观。和你的设计差不多。
ASP.NET MVC使这个设置非常好使用,因为您可以在您的ASP.NET MVC应用程序中轻松地构建一个经过验证的对象模型。一旦对象通过了所有的顶层验证,您就可以轻松地通过web服务将其传输到应用层。
我想用一个经典的ASP.NET应用程序可以很容易地做到这一点,但是我认为MVC让事情变得更容易了!
看看我的博客是如何在发送到应用服务器之前验证我的模型的示例。
干杯,迈克尔
发布于 2009-09-18 07:50:03
我不认为添加另一层会增加安全性,但这肯定会降低性能,并显著增加开发成本和复杂性。
最后,您可以使用您想要的附加层来对应用程序进行分区。如果是我,如果我被赋予了这个“有趣”的要求,我可能会创建最愚蠢的通过层。
事实上,围绕另一层管理安全性意味着安全漏洞意外暴露的机会显著增加。
ASP.NET MVC不应该产生任何影响,但是您可能最终会使用类似WCF的东西。对于来回编组数据,您可能希望使用不绑定到任何特定数据库或ORM的DTO。
我不想在这种情况下找到自己。复杂性的增加并不会增加安全。
发布于 2009-09-18 06:50:47
在我看来,ASP.NET MVC不会有帮助,也不会阻碍这种场景。基本上,您将不会将模型公开为Linq2Sql、实体框架或任何其他ORM,而是从中间层公开,可能是通过WCF。
这带来了通常围绕身份验证和授权的挑战--即验证如何在层间流动。但这是MVC特有的,WebForms解决方案将有相同的症结--您也将失去ORM可能提供的模型验证位元,并且必须自己在web服务存储库中提供验证,但这只是实现正确接口的问题。
https://stackoverflow.com/questions/1442828
复制相似问题