2016-07-11 72 views
2

首先我知道这是当今非常流行的话题,而且这个问题被问了很多次。ASP.net Web窗体和Asp.net MVC安全

但是在这里我并不是问哪个更好,因为很明显asp.net MVC比Web表单更好。

这里的问题是,如何处理我们已经写好的asp.net web表单,它既不小也不大,我们可以称之为中等大小。

是否真的值得用asp.net MVC彻底改写这样的应用程序? 我们主要关注的是安全。

因此,如果MVC比性能方面的表现要好一点,那就不是什么大问题。但是,如果它在安全性方面比网络表单更好,那么即使是一点点,它对我们来说也是非常重要的。

所以这就是我想知道的:浪费大量时间和金钱重写已编写的带有MVC的Web窗体应用程序的安全优势是什么?

+1

什么类型的安全?为了记录,您可以将ASP.NET Identity添加到WebForms应用程序:http://www.asp.net/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing- web-forms-project –

+1

WebForms安全模型本身并不是一个MVC安全模型,它的所有asp.net都可以将安全原则引入其中(例如基于声明的身份验证,会员提供商,oauth等)。 )。 这可能有助于https://msdn.microsoft.com/en-us/library/330a99hc.aspx – LDJ

回答

1

如果我们留下MVC对网络表单的许多优势以及您对应用程序的控制权并讨论业务部分。这个问题应该改为这两个:

  1. 你想要一个未来证明的应用程序,使用更稳定的框架,开发人员可以完全控制?
  2. 你想让这个应用程序运行到可以运行吗?

,如果你的应用程序要发展,将有新的版本,功能等。然后是如果有不会有大的变化(也许一些小的升级和bug修复)静态应用程序,你应该 但是随后投资不值得。

安全性不是问题,因为两种技术都可以实现相同的安全性。

2

在MVC中重写良好的Web表单代码时,浪费“大量时间和金钱”是毫无意义的。要重写任何代码,您需要一个令人信服的理由。

谁说MVC“显然比网页表单更好”?它在性能和安全方面都不是更好。思想更好,就是设计。

MVC的设计鼓励开发人员将业务逻辑从演示文稿中排除。虽然您也可以将逻辑从Web表单中移出,但其设计并不鼓励,因为它需要付出更多的努力。另一种方式也是如此,有些开发人员仍然在MVC中添加逻辑来破坏目的。另一个问题是MVC没有做任何事情来鼓励业务和数据层的分离,完全由开发人员来完成,所以一些开发人员保留了控制器中的所有逻辑。

从演示文稿中分离逻辑使得代码更易于测试,并且更易于在UI设计人员和应用程序开发人员之间进行划分。

所有这些对大多数项目来说都非常重要,但没有足够的理由来重写代码,这样做没有任何重大问题。对于新项目,这绝对值得考虑。

MVC还有其他一些优点,但在我看来,以上两点是最重要的。此外,Web表单还有一些优势,它们可以更快地开发某些应用程序,所以我们不能说MVC绝对比Web表单更好,尽管MVC的优势超过了大多数项目(不是全部)的Web表单的优势, , 我的想法是。

+0

(谁说MVC“显然比Web表单更好”?它在性能和安全性方面都不是更好。更好的思想,就是设计)。......太多的文章......尤其是这篇文章解释了它在响应时间和带宽消耗方面更好:http://www.codeproject.com/articles/866143/Learn -MVC-project-in-days-Day – user6218508

+0

仅仅因为它在那篇文章或其他文章中提到过,没有必要说明它的真实性。该文章提到了使Web表单性能变慢的原因,主要是由服务器控件和'viewstate'生成的有时冗长的HTML。不过,优秀的开发人员应该知道何时使用服务器控件,并且只在需要时才使用'viewstate'。如果使用得当,MVC和Web表单几乎没有区别。 MVC拥有非常基本的“服务器控件”,因此那些吸取HTML/CSS的开发人员编写的代码非常糟糕,最终比web表单更糟糕。 –