簡體   English   中英

ASP.NET MVC 3 准備好用於業務應用了嗎

[英]Is ASP.NET MVC 3 ready for business applications

我必須決定我們將在未來幾年開發的一個新的大型商業應用程序,問題是我們是否應該開始使用 MVC 3 或 web forms。

這已經在 SO 中討論過,但我看到了這個問題: ASP.NET MVC 准備好用於業務應用程序(集成第 3 方控件/組件)了嗎? 在 2008 年被問到,現在很多事情都可以改變。

我主要擔心的是聽說 MVC 適合渲染網格或列表等內容,而不適合數據輸入和用戶交互。

我們的應用程序將有很多控件,用戶可以在其中輸入數據並使用列表和文本框、復選框等。

在 MVC 或經典的 Webforms 中一切都絕對有可能並查看 state model 會更合適嗎?

謝謝。

ASP.NET MVC 3 准備好用於業務應用了嗎

在 MVC 中一切都絕對可能嗎

在我的愚見; 絕對 100% 是的。 事實上,我認為 MVC 框架在功能和生產力方面都領先於 WebForms 光年。

自 1.0 beta 和 MVC 1、2 和 3 以來,我已經使用了每個版本的 WebForms,並且相信 MVC 絕對可以用於生產環境。

您必須考慮到 2 的開發方法是完全不同的:

MVC requires that you learn more low level details of the basic web technologies: HTML, CSS, JS, HTTP, (which I believe you should anyway if they are not in your skill set yet).

WebForms 嘗試將其中的大部分抽象出來,並且可以認為將一些簡單的頁面放在一起更有效率。 但這是一個有漏洞的抽象,隨着您的熟練程度的提高,缺乏控制可能會讓您感到沮喪——如果您是 web 開發的新手,一開始會更容易; 隨着經驗的積累,更難彎曲。 當頁面變得更復雜時,生產力收益開始消失。 抽象更有可能導致性能問題並破壞自動測試頁面的能力(使用 Selenium 或等效工具進行單元和 UI 級別測試)。

示例 1:在 MVC 中,您很可能需要了解如何處理表單字段以在 HTTP 上使用 application/form-url-encoded 編寫 POST,否則您可能會遇到 model 綁定。 在 WebForms 中,您可以構建大型應用程序而無需擔心。

示例 2:在 MVC 中,您需要跨請求管理大部分頁面 state。 在 WebForms 中,框架很容易為您完成。

MVC 應用程序傾向於更多地依賴客戶端 javascript 組件來獲得可重用的小部件,例如綁定 JSON 數據。 WebForms 鼓勵使用服務器端控件,因為它們很好地集成到框架 state 管理設施中。

與其他人不同,我不相信 MVC 比 WebForms 更高效。 不要低估 WebForms 快速交付數據驅動的業務應用程序的能力。 管理過很多人同時使用這兩種方法后,我認為 MVC 需要更多熟練的程序員才能提高工作效率。 但是,如果這是您的情況,您可能會發現 MVC 對那些熟練的人來說是一個更令人愉快和強大的平台。

是的,ASP.NET MVC 3 Razor 絕對適合商業應用。 我正在 MVC 3 Razor C# 中構建一個大型企業級 web 應用程序,並且我在 MVC 和實體框架上投入的復雜性越高,它們處理得越好。 讓我給你一個代碼示例。 假設我們要創建一個動態表,將 HTML 與 Razor C# 代碼和數據混合在一起。 這是使用 web forms 和 ASP.NET ZC6E190B284633C48EZ8 控件的不小的任務

<table>          
    <thead>
        <tr>
            <td>Date</td>
            <td>Name</td>
            <td>Price</td>
            <td>Quantity</td>
            <td>Shipper</td>
        </tr>
    </thead>
    @foreach (eStore.Models.Product p in Model.Products)
    {
        <tr>
            <td>@Html.Hidden("Date", p.Date.ToString())
                @Html.Hidden("productId", p.ProductId)
            <td><input type="submit" name="submitButton" value="@p.Name"/></td>
            <td>@Html.Label("Price", p.Price)</td>
            <td>@Html.Label("Quantity", p.Quantity)</td>
            <td>@Html.Label("Shipper", p.Shipper)</td>
        </tr>
    }
</table>

我創建了一個動態表,其中包含一個帶有按鈕的產品列表,該按鈕可以通過 productId 訪問列表中每個產品的更多信息。 這需要最少的代碼和工作量。 代碼清晰、易懂且易於編輯。 現在想象一下傳統的 web forms 和 web 控件執行相同任務需要什么。

MVC 3 有一個學習曲線,但在我看來這是非常值得的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM