Click here to Skip to main content
15,881,172 members
Articles / Web Development / ASP.NET
Tip/Trick

Best practices in developing ASP.NET applications

Rate me:
Please Sign up or sign in to vote.
4.74/5 (28 votes)
19 Jan 2011CPOL2 min read 51K   32   18
Best practices in developing ASP.NET applications
Best practices in developing ASP.NET applications...

  1. Remove unused private fields and functions.
  2. Do not cast unnecessarily. Avoid duplicate casts where possible, since there is a cost associated with them.
  3. Properties that return arrays are prone to code inefficiencies. Consider using a collection or making this a method.
  4. To test for empty strings, check if String.Length is equal to zero. Constructs such as "".Equals(someString) and String.Empty.Equals(someString) are less efficient than testing the string length. Replace these with checks for someString.Length == 0.
  5. Methods in the same type that differ only by return type can be difficult for developers and tools to properly recognize. When extending a type, be sure not to define new methods that differ from base type methods only by type.
  6. Use stringbuilder instead of string types for string manipulation.
  7. Use String.Format instead of concatenating and appending strings.
  8. Use Type.TryParse rather than Convert.ToDestinationType(). For example, use int.TryParse() rather than Convert.ToInt32() which might throw an exception.
  9. Override Equals() method wherever applicable in your classes.
  10. Consider passing base types as parameters - Using base types as parameters to methods improves re-use of these methods if you only use methods & properties from the parameter's base class. E.g. use Stream instead of FileStream as a parameter when only calling Stream.Read(), this makes the method work on all kind of streams instead of just File streams.
  11. Do not catch general exception types - You should not catch Exception or SystemException. Catching generic exception types can hide run-time problems from the library user, and can complicate debugging. You should catch only those exceptions that you can handle gracefully.
  12. Use properties instead of visible instance fields.
  13. Follow the same naming conventions accross the solution.
  14. Remove unwanted commented code, indent code properly.
  15. Use curly braces with in an if statement, even if there is a single statement in the if block. This will provide better readability.
  16. Make sure to refactor your code to move the duplicated code to common reusable functions.
  17. Move one time control settings into the .aspx page rather than having them in the code behind in if(!IsPostback) block.
  18. Use inheritance wherever possible, which enables code reuse and also reduces the amount of code we have to write and test.
  19. Move the reusable JavaScript functions to an external .js file instead of having them on the page.
  20. For controls that are declaratively specified on the page, tie the event handlers to the controls events on the aspx page rather than initializing them in the codebehind. If the controls are built dynamically, then we do not have a choice.
  21. Make sure to check for nulls when using any type retrieved from a session, querystring or a database to avoid NullReferenceExceptions.
  22. Use foreach loop instead of using for loop which may lead to out of boundary run time exceptions.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralReason for my vote of 5 good one!!!! Pin
sagar viradiya1-Feb-12 23:49
sagar viradiya1-Feb-12 23:49 
GeneralReason for my vote of 4 Great article Pin
kulkarni.ajay14-Feb-11 16:37
kulkarni.ajay14-Feb-11 16:37 
GeneralReason for my vote of 5 Good summary of tips for beginner pr... Pin
DuffmanLight7-Feb-11 3:22
DuffmanLight7-Feb-11 3:22 
GeneralThis is rather a confused list - most of the points are abou... Pin
Member 25604727-Feb-11 2:02
Member 25604727-Feb-11 2:02 
GeneralReason for my vote of 1 Not as described by title. Mostly a ... Pin
Member 25604727-Feb-11 1:13
Member 25604727-Feb-11 1:13 
GeneralReason for my vote of 5 nice one Pin
Pranay Rana2-Feb-11 0:03
professionalPranay Rana2-Feb-11 0:03 
GeneralReason My vote of 5 all point is sounds like great Pin
RaviRanjanKr1-Feb-11 0:01
professionalRaviRanjanKr1-Feb-11 0:01 
GeneralReason for my vote of 5 Nice Tricks! My vote of 5 Pin
RaviRanjanKr1-Feb-11 0:00
professionalRaviRanjanKr1-Feb-11 0:00 
GeneralReason for my vote of 4 I like the points. Pin
sendtodilip24-Jan-11 18:43
professionalsendtodilip24-Jan-11 18:43 
General@Murrali...thanks for suggestion, I'll try to do it asap... Pin
Mahendra Vishwakarma17-Jan-11 23:09
Mahendra Vishwakarma17-Jan-11 23:09 
GeneralRe: Hi, correct the typo from the title. 'pactices' instead of '... Pin
thatraja18-Jan-11 5:03
professionalthatraja18-Jan-11 5:03 
General@Chris Hey....thanks for such comment... Here we see how you... Pin
Mahendra Vishwakarma17-Jan-11 22:59
Mahendra Vishwakarma17-Jan-11 22:59 
GeneralRe: but if string is null then the check on string.length will g... Pin
Sumit_Gupta7-Feb-11 17:32
Sumit_Gupta7-Feb-11 17:32 
GeneralThanks for this post. But it will be great and useful if we ... Pin
Murrali from Madras17-Jan-11 22:40
Murrali from Madras17-Jan-11 22:40 
General"To test for empty strings, check if String.Length is equal ... Pin
Chris Hey17-Jan-11 22:01
Chris Hey17-Jan-11 22:01 
GeneralReason for my vote of 2 Seems to be code review comments fro... Pin
Bheemareddy Srinivas17-Jan-11 1:29
Bheemareddy Srinivas17-Jan-11 1:29 
GeneralReason for my vote of 5 thanks for sharing Pin
Pranay Rana17-Jan-11 0:41
professionalPranay Rana17-Jan-11 0:41 
GeneralThis is already posted in several other places. Do we really... Pin
Indivara13-Jan-11 21:50
professionalIndivara13-Jan-11 21:50 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.