Le migliori pratiche per la convenzione di denominazione dei controlli UI per il riferimento in code-behind?

StackOverflow https://stackoverflow.com/questions/111812

  •  02-07-2019
  •  | 
  •  

Domanda

Qual è la migliore pratica per nominare i controlli dell'interfaccia utente (caselle di testo, menu a discesa, ecc.) su moduli e report come riferimento nelle pagine code-behind?

Sviluppo molti rapporti e moduli nel mio ufficio. Ho diverse applicazioni web che forniscono circa 80+ "live" rapporti generati da varie e molteplici origini dati (Access, SQL, Oracle). Questi rapporti sono considerati "in tempo reale". perché accettano i parametri impostati dall'utente da un modulo, quindi interrogano il database per produrre un rapporto basato sulle informazioni correnti disponibili.

Quindi, il processo inizia con l'ottenimento dei valori impostati dall'utente, passandoli alla query del database, ricevendo il set di dati e infine assegnando il set di dati al report. In alcuni casi, i campi aggiuntivi visualizzati nel report devono essere calcolati dal set di dati prima di poter generare il report. Ciò richiede il riferimento ai controlli di output nel report per assegnare il valore calcolato.

Anche se non mi interessa davvero utilizzare i prefissi nel mio codice per variabili o campi dei membri, li utilizzo per identificare i controlli dell'interfaccia utente. Ad esempio, txtFirstName per fare riferimento al controllo report per assegnare i dati dal campo FirstName nel set di dati al controllo di visualizzazione sul report. Esiste una pratica migliore per nominare / fare riferimento ai controlli dell'interfaccia utente su moduli e report?

È stato utile?

Soluzione

Il prodotto principale su cui lavoro al lavoro usa i prefissi txt_ pnl_ etc. Questo funziona, anche se a volte è un po 'una seccatura quando si cambia qualcosa che nasconde / mostra i controlli da dire, un tr a un pannello perché è necessario rinominarlo.

Quello che ho iniziato a fare in nuovi progetti, è nominare i miei controlli UI con un prefisso ui; ad esempio, uiName. Poiché sono fortemente contrario alla notazione anti-ungherese , e lottare per codice di auto-documentazione , questo la convenzione funziona bene. In effetti, semmai, è reale notazione ungherese (essendo il prefisso che significa controllo dell'interfaccia utente).

Altri suggerimenti

Uso ancora la notazione ungherese per i controlli ma non più per le variabili.

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

Per i controlli della GUI, suffisso il nome della variabile con il nome del controllo:

  • firstNameTextBox
  • lastNameTextBox
  • submitButton

Questo rende evidente la relazione tra ad esempio _firstName e firstNameTextBox.Text, e nessuno deve ricordare quale sia l'equivalente della notazione ungherese. Sceglierei sempre la chiarezza sulla brevità delle variabili di denominazione.

Le tue risposte qui saranno molto soggettive. Diversi gusti e background di programmazione ti daranno preferenze diverse.

Forse ciò che sarà più importante per te nel lungo periodo è la coerenza tra tutti i tuoi progetti, in modo che, indipendentemente da chi ha sviluppato il codice, sarai in grado di capirlo durante la lettura.

Esternalizziamo molto, quindi assicurati di comunicare le nostre convenzioni di denominazione a tutti i nostri project manager.

Ecco alcuni link alle convenzioni di denominazione:

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

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

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

Faccio in modo simile a te. Quando hai tonnellate di controlli tutto diventa disordinato, quindi prefisso ogni nome con le maiuscole della classe di controllo.

Ad esempio:

TextBox - > tbName

DataGrid - > dgName

Pannello - > pName

Ciò chiarisce come gestire i nuovi controlli (ovvero come derivare il prefisso)

Ho sempre pensato che l'unica vera ragione per i prefissi fosse quella di poter avere cose come txtFirstName e lblFirstName sullo stesso modulo / pagina. Da allora, nella stragrande maggioranza delle volte, sto davvero lavorando solo con il controllo di campo vero e proprio, salto il prefisso per quello e uso solo i prefissi per i controlli associati. Ad esempio, lblMonth & amp; Mese, saltando il prefisso cbo.

Salva la digitazione e sarà generalmente ovvio che tipo di controllo stai usando in tali moduli. Controlli più complessi otterranno il trattamento con prefisso completo.

Prefissi a 2 caratteri per i componenti dell'interfaccia utente iOS che preferisco:

bt_ : UIButton
lb_ : UILabel
tx_ : UITextField
tv_ : UITextView
vw_ : UIView
im_ : UIImageView
sc_ : UIScrollView
tb_ : UITableView
cl_ : UICollectionView
st_ : UIStackView
pk_ : UIPickerView
pr_ : UIProgressView
ai_ : UIActivityIndicatorView
wb_ : UIWebView / WKWebView
mp_ : MKMapView
gr_ : UIGestureRecognizer
sw_ : UISwitch
sl_ : UISlider
sp_ : UIStepper
sg_ : UISegmentedControl
pg_ : UIPageControl
dp_ : UIDatePicker

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top