In general, ALWAYS is rolling out assembly production for production. Debugging will add build weight to your weight and degrade performance.
If you are developing ASP.NET applications, leaving Debug mode in fact, change how / when your pages are compiled by the JIT compiler and significantly degrade performance to add better interactive debugging capabilities.
As for the build for deployment in development ... if you are doing unit tests against development, it would probably be nice to deploy the Debug assembly so that you can get the most debugging information when tests fail or exceptions. Nevertheless, there is, I hope, an additional testing or pre-production environment in which you can conduct your integration tests, and manual tests are carried out there. This test environment / Pre -Prod should DEFINITELY use release builds so that you can see the true performance and compilation issues before moving on to Production.
If you do not have this intermediate level of Testing / Pre-Prod, I would suggest starting the Dev environment with Release. In other words, you must run at least one level before releasing the Release configuration.
For more information on what you can do with configurations, I have a blog post specifically for Silverlight ( http://blog.tonyheupel.com/2009/04/environment-specific-service-references.html ). It has a link to Scott Hanselman for a more general article on build configurations and different environments.
Tony heupel
source share