Rules to Better Windows Forms Applications
- Do you know why you choose Windows Forms?
- Do you use code generators?
- Do you use red and yellow colours to distinguish elements in the designer?
- Do your applications support XP themes?
- Do you use inherited forms for consistent behaviour?
- Do you display consistent information?
- Do you encapsulate (aka lock) values of forms?
- Do you know when to use User Controls?
- Do you know how to design a user friendly search system?
- Do you use Validator controls?
- Do you use DataSets or create your own business objects?
- Do your Windows Forms have a StatusBar that shows the time to load?
- Do you not cache lookup data in your Windows Forms application?
- Do you use the designer for all visual elements?
- Do you always use the Visual Studio designer for data binding where possible?
- Do you avoid using MDI forms?
- Do you have a correctly structured common code assembly?
- Are your Data Access Layers compatible with Web Services?
- Do you log all errors (with SSW Exception Manager)?
- Do you implement trace logging (with Log4Net)?
- Do you make a strongly-typed wrapper for app.config?
- Do you keep the standard .NET DataGrid?
- Do you replace the standard .NET Date Time Picker?
- Do you avoid 3rd party menus & toolbars?
- Do your List Views support multiple selection and copying?
- Do you use an image button for opening a web page taking action?
- Do you use "OK" instead of "Ok"?
- Do your forms have Accept and Cancel buttons?
- Do you label buttons to be an action, like "Save, "Open", etc?
- Do you make "Enter" go to the next line when you have a multi-line textbox rather than hit the OK button?
- Do you make common controls with consistent widths?
- Do you support URLs on Windows Forms applications?
- Do you include "Back" and "Undo" buttons on every form?
- Do you use NUnit to write Unit Tests?
- Do you save user settings and reuse them by default?
- Do you have a ResetDefault() function to handle messed up user settings?
- Do you use Threading to make your user interfaces more responsive?
- Do you display file name in the text box in full?
- Do you use Status Control?
- Do you prevent users from running two instances of your application?
- Do you add a "(customized)" column in grid if there are default values?
- Do you have a standard menu item "Check for Updates"?
- Do you use Web Service to send emails?
- Do you have colons beside labels on input controls (Textbox, Combobox, Datetime, etc.)?
- Do you always use GridView instead of ListBox?
- Do you know how to make .NET wrapper work on both x64 and x86 platforms?
- Do you set the ScrollBars property if the TextBox is Multiline?
- Do you know how to run write application to run with UAC turn on?
- Do you use AutoWaitCursor on Windows applications?
- Do you make your add/delete buttons crystal clear?
- Do you always set FirstDayOfWeek to Monday on a MonthCalendar?
- Do you always set ShowToday or ShowTodayCircle to true on a MonthCalendar?
- Do you set PasswordChar to "*" on a TextBox on sensitive data?
- Do you use Anchoring and Docking (full) for multiline textboxes?
- Anchoring and Docking - Do you use Anchoring and Docking (horizontal only) with single line textboxes?
- Do you know TextAlign should be TopLeft or MiddleLeft?