Wednesday, February 16, 2011

Code Review and Code Optimization - ASP.NET

Resource Management
  • Use Close or Dispose on objects that support it using the Using Statement
  • Implement Finalize only if you hold unmanaged resources across client calls, UnManaged code should be removed, since it won't be managed by the CLR
Session Usage
  • Disable session state if you do not use it.
  • Use the ReadOnly attribute wherever required
  • Remove the stored values from the Session
  • Don't store infrequently used values in Session
  • Check if the entire object needs to be stored. If not, store the individual attributes with unique key and fetch them later
  • Don't store the same object multiple times
Page Size
  • Reduction of page size - remove unwanted/hidden columns in grid/list views
  • Reduce the size of the view state, post-back information which is needed
  • Post back information about the labels, controls, JavaScript which have been used for display purpose no need to post back this data
  • In general disable view state on control-by-control basis
Ajax
  • Avoid Unnecessary AJAX Calls
DataReader
  • Code should use drOutput.IsDBNull(index)? Instead of
         drOutput["COL_NAME"]!=Convert.DBNull)
  • Use DataReader methods like (GetString, GetInt64, etc) to read value from Data reader. Instead of using
GetObject
  • Usage of GetOrdinal methods in IDataReader block
ExecuteScalar
  • If only one value is expected from database use ExecuteScalar. Else, use ExecuteReader. Avoid using ExecuteDataset.
Collection Usage
  • Implement strongly typed (Generics) collections to prevent casting overhead
Reflection & Late Binding
  • Prefer early binding and explicit types rather than reflection
Avoid XMLDocument
  • Avoid XMLDocument wherever necessary, Instead use XPathDocument, which is read only.
String Handling
  • If ToLower,ToUpper is encountered change them to Compare function. If string concatenation is done by += and the string is too large then convert it to StringBuilder. When declaring a string use String.Empty rather thatn = "". When comparing empty string compare with Lenth > 0.

No comments:

Post a Comment