命名UI控件约定以便在代码隐藏中引用的最佳实践?

时间:2020-03-06 14:30:48  来源:igfitidea点击:

在表单和报表上命名UI控件(文本框,下拉列表等)以供隐藏在页面中的代码引用的最佳做法是什么?

我在办公室里准备了很多报告和表格。我有几个Web应用程序,它们提供了从各种数据源(Access,SQL,Oracle)生成的大约80多个"实时"报告。这些报告被认为是"实时"的,因为它们接受来自表单的用户设置参数,然后查询数据库以根据当前可用信息生成报告。

因此,该过程从获取用户设置的值开始,将这些值传递给数据库查询,接收数据集,最后将数据集分配给报表。在某些情况下,需要先从数据集中计算出报表上显示的其他字段,然后才能生成报表。这需要引用报表上的输出控件以分配计算值。

尽管我不太在意在代码中为变量或者成员字段使用前缀,但我确实使用它们来标识UI控件。例如,txtFirstName引用报表控件,以将数据集中的FirstName字段中的数据分配给报表上的显示控件。在表单和报表上命名/引用UI控件是否有更好的做法?

解决方案

我们在这里的回答将非常主观。不同的口味和编程背景会给我们不同的偏好。

从长远来看,也许对我们而言最重要的是所有项目之间的一致性,这样,无论由谁开发代码,我们都可以在阅读时理解它。

我们大量外包,因此一定要与我们的所有项目经理交流我们的命名约定。

以下是一些命名约定的链接:

http://www.irritatedvowel.net/Programming/Standards.aspx

http://msdn.microsoft.com/zh-CN/library/xzf533w0(VS.71).aspx

http://www.visualize.uk.com/resources/asp-net-standards.asp

我也和你一样。当我们拥有大量控件时,一切都会变得混乱,因此我在每个名称前都添加了控件类的大写字母。

例如:

文本框-> tbName

数据网格-> dgName

面板-> pName

这样可以清楚地说明如何处理新控件(即,如何派生前缀)

我在工作的主要产品使用txt_ pnl_等前缀。这确实有效,尽管有时将只是将控件隐藏/显示的内容从tr切换到面板,这有时会有些麻烦,因为我们必须重命名它。

我在新项目中开始做的就是用ui前缀命名UI控件。例如uiName。由于我强烈反对反匈牙利的表示法,并努力编写自我记录的代码,因此此约定非常有效。实际上,如果有的话,它是真正的匈牙利符号(ui是表示用户界面控件的前缀)。

我一直觉得使用前缀的唯一真正原因是可以在同一表单/页面上使用txtFirstName和lblFirstName之类的东西。因为在大多数时候,我实际上只使用实际的字段控件本身,所以我跳过了前缀,而只将前缀用于关联的控件。例如,lblMonth和Month,跳过cbo前缀。

它节省了键入的时间,通常很容易看出我们以这种形式使用了哪种控件。更复杂的控件将获得完整的前缀处理。

我仍然对控件使用匈牙利表示法,但对变量不再使用。

btn Button
cbo ComboBox
chk CheckBox
clb CheckedListBox
grp GroupBox
iml ImageList
lbl Label
lnk Hyperlink
mnu Menu
pbr ProgressBar
pic Picture
pnl Panel
rtb RichTextBox
tmr Timer
tvw TreeView
txt TextBox

对于GUI控件,我在变量名后加上控件名:

  • firstNameTextBox
  • lastNameTextBox
  • SubmitButton

这使得_firstName和firstNameTextBox.Text之间的关系显而易见,并且没有人必须记住什么是匈牙利表示法等效项。在命名变量时,我总是选择简洁而不是简洁。