Hello, Razor Pages! | Razor Page
依循ASP.NET的發展規劃,WebForm將留在原地,目送ASP.NETCore的車尾燈離去。(延伸閱讀:ASP.NET簡史[1])不過,與MVC相比,WebForm以單一網頁為核心的精神並非一無可取,對一些超小型應用而言,硬要拆分Model、View、Controller反而讓事情複雜化。WebForm的組成單純,靠一個.aspx放HTML/CSS/JavaScript、一個.aspx.cs寫按鈕的Server端事件,兩個檔案搞定網頁完整流程,邏輯集中,維護修改方便,不失為處理簡單情境的良好設計。(但別誤會,中大型專案建議還是該回歸MVC這類嚴謹分割關注點的設計架構,日後擴充維護才不致變成災難。)有個...
依循 ASP.NET 的發展規劃,WebForm 將留在原地,目送 ASP.NET Core 的車尾燈離去。(延伸閱讀:ASP.NET 簡史[1])
不過,與 MVC 相比,WebForm 以單一網頁為核心的精神並非一無可取,對一些超小型應用而言,硬要拆分 Model、View、Controller 反而讓事情複雜化。 WebForm 的組成單純,靠一個 .aspx 放 HTML/CSS/JavaScript、一個 .aspx.cs 寫按鈕的 Server 端事件,兩個檔案搞定網頁完整流程,邏輯集中,維護修改方便, 不失為處理簡單情境的良好設計。(但別誤會,中大型專案建議還是該回歸 MVC 這類嚴謹分割關注點的設計架構,日後擴充維護才不致變成災難。)
有個好消息! WebForm 將逝,但它的簡約精神會由 Razor Pages 接手,在 ASP.NET Core 時代繼續傳承下去。
最近啟動一個 Coding4Fun 專案,我心一橫選了 Razor Page 嚐鮮,寫了兩天感覺還不錯,順手寫篇筆記跟大家介紹 Razor Pages 長什麼樣子。
我用一個簡單的 WebForm 例子來對照,展示 Razor Page 如何在 ASP.NET Core 時代重現 WebForm 的簡約精神。
假設 WebForm 範例長這樣:
Test.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="WebApplication1.Test" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> ...