Code Review and Code Optimization - ASP.NET


HTML clipboard

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.

 


Similar Articles