2016-07-11 114 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表單更糟糕。 –