Asp.net

ASP.NET 控制項的命名准則是什麼?

  • October 8, 2008

我們正在製定我們希望在我們的開發團隊中使用的設計指南,並在今天就如何命名 ASP.NET 控制項展開討論。我說的是我們的好朋友 Label、TextBox、Button 等。

我們提出了以下三種我們投票的可能性:(範例是輸入/顯示名字的文本框)

  1. 將控制項類型作為後綴添加到控制項 ID:[FirstName _TextBox] 或 [FirstName _tbx]
  2. 將控制項類型作為前綴添加到控制項 ID [tbxFirstName]
  3. 將控制項的 ID 設置為 FirstName 並命名相關欄位(如文本框的標籤或驗證器),如選項 2 [lblTextBox] 中所示。

我們最終決定使用選項 2。它不像選項 1 那樣冗長,我喜歡它在控制項名稱之前指定它是什麼控制項。

我的問題是,Microsoft 是否針對這些前綴發布了任何指南,或者您是否對我們的決定有任何意見。

Visual Studio 在您將“TextBox1”添加到頁面時添加它的原因是因為 Microsoft 無法知道您打算如何使用它。將其命名為“Control1”會太令人困惑,因為它可以是任意數量的控制項。

Microsoft 提供了針對 OO 命名約定的一般指南,但沒有專門針對 UI 控制項的命名。由於 UI 控制項最終是程式碼中使用的變數,因此它們應該遵循與任何其他變數相同的約定——沒有匈牙利符號前綴。

主要原因是…

  • 控制項的類型可能會從文本框更改為列錶框,然後必須修復所有相關程式碼(前面提到過)
  • 你的程式碼應該更關心控制項的內容,而不是它是什麼類型的控制項。當您關心控制項的類型時,您開始依賴某些功能並且破壞了封裝 - 您應該能夠輕鬆地交換控制項而無需更改太多或任何程式碼。(基本OOP原理)
  • 為標準控制項提供前綴相當容易,但每天都在開發新控制項。您可以製作自己的 WebUserControl,也可以購買一套第三方控制項。**您將如何決定自定義控制項使用哪個前綴?**您的程式碼應該關注其中包含哪些資訊,而不是關注控制項的類型。

例子

  • txtFirstName => 名字或名字
  • txtState => 州或州
  • cboState => state 或 State(更改控制項類型的主要範例 lstState 或 rdoState - 它們都應該具有相同的名稱,因為您的程式碼不關心控制項的類型,而是使用者選擇的狀態)
  • ctlBilling => billingAddress 或 BillingAddress(自定義控制項 - 使用匈牙利表示法,它甚至不是很明顯控制項是什麼,但有了一個有意義的名稱,我開始理解其中包含的資訊。即 billingAddress.Street、billingAddress.FullAddress 等)

引用自:https://stackoverflow.com/questions/181597