Design and Development Philosophy
Regardless of the type of .Net application i.e. asp.net, web services, WCF Services, Forms, etc. all of the
heavy-lifting code, most of it organized into business objects, should go into plain old classes.
For instance an asp.net application should do as little as possible in the .aspx code-behind file. This will allow business code to
change shapes in the future and maximize reuse.
The logical database design needs to be as firm as possible before development begins.
This is very analagous to the foundation of a house. Inability to firm up and complete db design
is a symptom that the definition of what a system is supposed to do is not yet known.
Data access and update should be done in Stored Procedures, where possible. Stored Procedures
should never have program logic in them. Not even an 'IF' clause.
Asp.net applications should be controlled as much as possible by Themes. ASPX pages should
not have any style information in them. This allows web apps to change form with little investment
and it allows more effective personalization.
The vast majority of web applications don’t require separate physical tiering beyond
the separation of application code and database. This means that calls between logical
tiers can be simple in-process calls. Good Scalability for these types of applications
can be achieved by web farms and support hundreds of active logged on users.
Super high scalability systems can be achieved by more physical tiering using WCF
services hosted by IIS. WCF also provides flexibility advantages. Although the benefit
of out-of-process design is scalability, ironically, one of the prices is slower
processing on individual transactions.
Keep web pages as brief as possible. So, I won't list any more philosophies.