ASP.NET - Dev, Testing and Production - Asked By Naresh Kumar on 03-May-11 05:37 AM

Hi All,

Why we put Dev, Testing and Production servers as separate, can't we have a one server setup for all these three instances.

Can any one provide advantages and disadvantages.

Appreciate your help.
Ravi S replied to Naresh Kumar on 03-May-11 05:40 AM
HI

In fact, I'd suggest using a different configuration file for each environment. This will address the inevitable problem of having multiple settings for each environment, e.g. you might have separate settings for the web service URL and web service port or have some extra settings to deal with https/security.

All that said, make sure you address these potential issues:

If the web service does anything particularly essential to the application you might want to marry the application to web services in each environment (i.e. have a version of your application in each environment). Certainly, any changes to the interface are easier when you do it this way.

Make sure it's obvious to someone which version of the web service you are speaking with.

TSN ... replied to Naresh Kumar on 03-May-11 05:43 AM
hI..

Typical Configuration Differences Between the Development and Production Environments

The Web.config file includes an assortment of configuration information for an ASP.NET application. Some of this configuration information is the same regardless of the environment. For instance, the authentication settings and URL authorization rules spelled out in the Web.config file's <authentication> and <authorization> elements are usually the same regardless of the environment. But other configuration information - such as information about external resources - typically differs depending on the environment.

Database connections strings are a prime example of configuration information that differs based on the environment. When a web application communicates with a database server it must first establish a connection, and that is achieved through a http://www.connectionstrings.com/Articles/Show/what-is-a-connection-string. While it is possible to hard-code the database connection string directly in the web pages or the code that connects to the database, it is best to place it Web.config's http://msdn.microsoft.com/en-us/library/bf7sd233.aspx so that the connection string information is in a single, centralized location. Oftentimes a different database is used during development than is used in production; consequently, the connection string information must be unique for each environment.

The intended behavior of the development and production environments differs substantially. A web application in the development environment is being created, tested, and debugged by a small group of developers. In the production environment that same application is being visited by many different simultaneous users. ASP.NET includes a number of features that help developers in testing and debugging an application, but these features should be disabled for performance and security reasons when in the production environment. Let's look at a few such configuration settings

Jitendra Faye replied to Naresh Kumar on 03-May-11 05:43 AM

Here all have thier own importance-

Production Web Servers

This is the type of web server that most web designers are familiar with. A production server is a web server that hosts web pages and content that is ready for production. In other words, the content on a production web server is live to the internet or is ready to be delivered to the internet.

In a small company, the production server is where all the web pages live. Designers and developers test the pages either on their local machines or in hidden or password protected areas on the live server. When a page is ready to go live it is simply moved into place on the production server, either by FTP from the local hard drive or by moving the files from the hidden directory to the live directory.



Testing Server or QA Server

Testing servers are a useful addition to a website workflow because they provide you with a way to test new pages and designs on a web server that is not visible to customers (and competitors). Testing servers are set up to be identical to the live site and usually have some sort of version control set up on them to make sure that any changes are recorded. Most testing servers are set up behind a corporate firewall so that only employees can see them. But they can also be set up with password protection outside a firewall.




Development Servers

Development servers are very useful for sites that have a large development component, such as complex ecommerce sites and http://webdesign.about.com/web20/g/web-application-definition.htm. Development servers are used by the web development team to work on programming the back end of the website. They almost always have version or source code control systems for multiple team members to use and they provide a server environment for testing new scripts and programs.



For more detail follow this link-

http://webdesign.about.com/od/servers/qt/web-servers-and-workflow.htm
Jitendra Faye replied to Naresh Kumar on 03-May-11 05:48 AM
Development environment:

Typically the developer team will set up a local environment on their machines to develop. Code developed by multiple developers will typically be maintained and synched under some version control system. Please do not ask what a version control system is. Use google.

http://www.javaranch.com/unit-testing.jsp environment:

Code developed by the developer team is combined together and built. These binaries are typically deployed on a test server/s. The QA team will use this as their test environment and run all kinds of test cases in such an environment and identify bugs

Production environment:

 Bugs are identified, fixed, redeployed on the test environment and the cycle continues. Once a stable build has been achieved, it is rolled off for actual use, which would be a production server