Ideal Dev / Test / QA Environment For Development?
May 26, 2010
I am working to rebuild my company's dev/test/QA environment. We have 10-15 programmers that are involved in a number of projects. They currently all develop locally on their PCs and use the dev environment for testing. We currently do not have a QA environment, so deployments are frequently a pain because bugs are usually found after something has gone live. Here's what I envision:
Doing away with everyone's local admin privileges and making everyone develop on a dev server. Create a QA environment that is identical to our production systems. This will allow them to test deployments. Create a new test environment that is more locked down than the dev server so that proper testing can be done. What are your thoughts? What is the best way to set up an environment like this? We develop ASP .NET applications using MS Visual Studio 2008.
This question is for ASP.NET and SQL Server developers. What are your best practices with respect to setting up your development and test environment? I'm interesting in the following issues: How many tiers do you recommend and what goes on on each tier? Just dev, test, and production or perhaps dev, test, staging, and production? Which types of applications and/or servers should run on actual physical hardware and which can get away with a VM? What are your strategies for loosely coupling users from web sites, web developers from their web/app/DB servers, and DB developers from their DB servers?
How do developers stay "DRY?" What are the pros and cons to putting web, app, and DB servers on their own machines? Does putting servers on separate machines in order to minimize contention for a machine's resources trump any NIC and network latencies that might be introduced by putting them on different machines? How do you configure your web apps to minimize contention for resources (e.g. virtual directories, separate application pools, etc.) How and how often do you refresh your databases on each tier? Do you just refresh the data or both the data and objects?
At our company we are going to develop more for the Windows platform than we have done up until now. As this scale of Windows development is new to us it would be nice with some feedback from experienced developers. Requirements we have: 5 developers from the beginning. 15 developers a year from now. All developers should be able to develop at the same time. Be able to develop solution for ASP.NET and EpiServer 5. Our idea:
A shared server which developers use for development through Terminal Services. SQL Server Express. Start with some free express edition of Visual Studio, upgrade to a commercial version if we need the additional features. Use IIS and not the web server built into Visual Studio. Questions:
Are we on the right track?
In terms of license costs the above should be cheapest, right?
What do you think about multiple developers doing development using a shared TS-server?
Do you know of any company which has a similar development environment?
Are we going to miss some features of the full Visual Studio version immediately? Is using Express version a bad choice? Is IIS the best choice? If use IIS the developers may use the same port for deployment. If we use the built in web server each one has to set their own port as we're sharing a machine.
Comment answer: We are thinking about a shared server as it will most likely decrease the license costs. So it's purely a cost issue. We are using CVS for version control. Our situation is that we develop on Mac and Linux, that's why buying 1 server license + Visual Studio licenses seems to be a cost effective way of starting this type of development.
My dev team and I would like to setup a development environment for our ASP.NET projects. BY development environment i do not mean Visual Studio. I mean, that we have a Database Server, a Application Server and a Web Server in a 'Development Environment'. We want to use this as our integration environment. Where the developers all work on there parts of ASP.NET Applications and then we can push our new changes up to test them as a whole. My Question is , what is the best way to deploy our code together without stepping on our toes?
This is a general question about dealing with URL Rewriting in a development environment. I'm developing a CMS to learn ASP.NET/C#, and I will of course need to implement URL Rewriting. This technique is known to me since I've been using with PHP for several years. However in PHP, you can have a local HTTP server, modify the PHP content directly, refresh the page and see the results. Of course in ASP.NET it's not exactly the same, since you need to compile and then publish the code. The problem I have is that I need to check the URL Rewriting-friendly links my code will generate in my development environment - basically, make the ASP.NET Development Server compatible with URL Rewrite. Or maybe not. My question really is: what is the best solution to do that? Use IIS/Apache2 (w/ Mono) for the development server?
I'm from PHP background. I used to use Apache, MySQL and PHP for web development. I'm just starting asp.net mvc. I've Visual Studio 2008 Pro SP1 & .NET 3.5 SP1 already installed on my computer. So, I installed ASP.NET MVC 1.0 Created a "ASP.NET MVC Web Application" project when I hit F5 it gives error Unable to connect to the ASP.NET Development Server No wonder. In this process I didn't setup the webserver. Can I use apache here? I guess IIS is the default. Where is it? How do I configure it? What is the WebRoot directory for IIS server? Where can I find it? On searching for "Unable to connect to the ASP.NET Development Server" I found this solution:
Step 1: Select the "Tools->External Tools" menu option in VS or Visual Web
Developer. This will allow you to configure and add new menu items to your Tools menu.
Step 2: Click the "Add" button to add a new external tool menu item. Name it "WebServer on Port 8010" (or anything else you want).
Step 3: For the "Command" textbox setting enter this value: C:WINDOWSMicrosoft.NETFrameworkv2.0.50727WebDev.WebServer.EXE (note: this points to the web-server that VS usually automatically runs).
Step 4: For the "Arguments" textbox setting enter this value: /port:8010 /path:$(ProjectDir) (or any port you like)
Step 5: Select the "Use Output Window" checkbox (this will prevent the command-shell window from popping up. Once you hit apply and ok you will now have a new menu item in your "Tools" menu called "WebServer on Port8010". You can now select any web project in your solution and then choose this menu option to launch a web-server that has a root site on port 8010 (or whatever other port you want) for the project. You can then connect to this site in a browser by simply saying [URL] All root based references will work fine.
Step 6: The last step is to configure your web project to automatically reference this web-server when you run or debug a site instead of launching the built-in web-server itself. To-do this, select your web-project in the solution explorer, right click and select "property pages". Select the "start options" setting on the left, and under server change the radio button value from the default (which is use built-in webserver) to instead be "Use custom server". Then set theBase URL value to be: [URL] But there is no C:WINDOWSMicrosoft.NETFrameworkv2.0.50727WebDev.WebServer.EXE such file on my system. Did I forget to install something?
EDIT:
I'm using Windows XP SP2 and logged in as a user with Administrative previlages. from this [URL]
Disable IPv6
Done
Make sure there isnt an edit in the hosts file for localhost There is no single entry in my hosts file (%SystemRoot%system32driversetchosts) with 'localhost' in it. Check firewall/virus settings to allow connections to/from devenv.exe I tried by disabling the firewall/antivirus If you can preview in the browser make sure the URL in the browser uses the same port number as the port number shown in the ASP.NET dev server taskbar icon. No, Actually there is no such dev server taskbar icon. Try setting a fixed, predefined port in project properties Tried it. But no positive result. S
Solution:
After trying everything. I came to conclusion that WebDev.WebServer.exe may be corrupt. So, I've replaced C:Program FilesCommon Filesmicrosoft sharedDevServer9.0WebDev.WebServer.EXE with a fresh copy : [URL]
I have a WCF service than in my development and production environments works without any trouble but in my test environment it will occasionally throw a CommunicationObjectFaultedException. This has been very difficult to track down but it seems to happen only after going a long time with out calling it.client is a web applictaion running on two load balanced servers, the WCF service is hosted in IIS and running on two load balanced servers.There is no difference in the WCF configuration between the three environments so I believe there must be something different in the way the servers are set up. What are some things I can ask my server admins to check? (I don't have proper access to these servers to check stuff myself).
I would like to know the method of setting up sub-domains in the development environment. Don't have any hosting account yet. But would like to test it up internally by simulating a similar setup that would be provided by the hosting company later on.
Im writing unit tests for an asp.net mvc project, I have a config file that I use in my tests, for some reason , the config file has to be in in the bin folder in order to be found , Is there another way to do this as I dont feel it is best practice having config files in bin
I'm in the process of setting up a project's development environment from scratch. My company has used various technologies, but this is the first time we're able to focus on the development environment for a .NET project from the ground up -- and I'm the lucky guy who gets to make it work.
I'm actually very excited to do this, as it has the potential to become a pattern for repeated success across multiple projects.
I'd like your help to assess the build process that I'm using and shout out where I may find myself running into issues.
So, here goes--
Server Side:Windows Server 2008 SQL Server 2008 (relatively small / low traffic DB, wasn't worth devoting a separate VM in dev) VisualSVN for hosting source code (just easier to manage on Windows), Trac hooked into VisualSVN for wiki/bugs/tracking NAnt for automatic builds / running unit tests FxCop (potentially) as another set of tests from CruiseControl to check framework best practices CruiseControl.NET for continuous integration, to automatically call the NAnt build and run NUnit / FxCop tests when new source is committed. Dev Machines / Tools:VS 2010 NUnit CSLA (potentially) to use in developing our business logic layer NHibernate or Entity Framework (potentially) help facilitate OR/M
we're a team of three old c++ developers now developing web apps for the very first time. the web app is in asp.net using vs 2005, the db is sql server 2005. application is on a shared folder on a development server running win server 2003 - no solution or project just a folder structure. developers access this shared folder to develop the pages using xp. after a planned development iteration is finished the test server is updated for test cycles.
for deployment we just copy the web pages over to the production server's virtual dir. pretty primitive i guess :) but its been working that way for a while. after we have taken over we want to know what'd be better way for web dev in team. we also want to get the team using source control. the outfit has an old cvs server so no chances for old or new team foundation.
I am experienced php developer and I have everything setup for design/development/testing etc and I can develop locally on my machine using wamp. My question is, what should I be looking into for setting up a professional local development environment for developing web applications?
I have an Azure application that works perfectly on every one of my colleagues machines. On mine, the web application works, but not the azure project, which runs on the local development fabric.
I'm getting a 403 error, which causes a blank page in Chrome. The application_start method gets fired and sets up the routes, but the actual MVC controller never gets called. Again, this works perfect if I run the web application directly. If I use that same azure project and deploy it online, it also works fine.
I've tried repairing visual studio, reinstalling Azure, rebooting, re-fetching source, you name it.
We currently have a problem whereby on our stage servers, links that exist on certain pages have a full url instead of a relative path, for example they may be on http://stage.host.com/app/webpage1.aspx, and a link may exist to http://www.host.com/app/webpage2.aspx instead of http://stage.host.com/app/webpage2.aspxTo try and solve this problem we added a response filter to strip out the host name for anchor tags, so that they become relative. Although this works well for most situations, there are still some issues where users redirect to full links with server side code e.g. Response.Redirect.I wanted to get your guys ideas about the best way to tackle this problem,
I have a bigger ASP.NET based webapplication, which is structured into subwebs (as described on [URL]How can I share user specific information (user credentials, other informations) between these subwebs? The point is that the subwebs have all their own virtual directories and therefore different sessions. Are there other possibilities besides cookies to have a shared (user/browser session based) memory?
I need to set up a developement environment using msbuild and continuious integration, NUnit etc. I am quite new to this kind of thing as it is normally already set up in most environments ive worked in. I am quite short of time as well and dont have have the time to read huge volumes in order to get an understanding (developement starts Monday next week) so need to get this up and running asap in the shortest possible time. Does anyone have a working sample I can utilise or a short tutorial that breaks this process down?
I have just ported my VS2008 development environment to a new computer running Windows 7. One roadblock I'm having is that when I edit machine.config in VS2008, I cannot save it back to its location - I get an error saying Access Denied. I am logged in as Administrator and have tried to set myself up as owner but the crazy security rules in Windows 7 are frustrating this operation. (I could do this on my previous system - VS2008 running XP.) I set the Administrators permissions to Full Control and made this file's owner Administrators (vs the previous SYSTEM)
I'm using Visual Studio 2010 and working on an ASP.NET 4.0 web application. At the moment, a co-worker and I are tweaking CSS, which means constantly changing and saving CSS files and then refreshing the running page in a web browser.Every few saves, the application restarts, causing a considerable delay while we wait for the app to start up, log in again, and return to the page we were working on. In an IIS production environment a CSS file wouldn't go through the ASP.NET ISAPI, but apparently when running with VS2010 and the developent web server this doesn't matter... or something.
I'm currently developing a website using VS2010 Express/SQL Express 2008, and am using the applications development server to test.
I have created an access layer which effectively takes all my cachable data and creates datasets.
I've also created a system wheras for each dataset, For each dataset I also create a token cached object (a string), which is set to expire before the dataset. The theory behind this is that when my token expires and is removed from cache, it calls a routine to rebuild the dataset, and re-caches the new result, then creates a new token. Think of it as a poor mans SQL dependency.
What this allows me to do is rebuild datasets behind the scenes with little interruption/delay throughout the day. It all works great - for instance when a user updates a table containing 100,000+ records on the site, the dataset rebuilds at hourly intervals reworking and consolidating the data in the background before representing it in a smaller cachable form.
What I would like to know is this. If I was to replace the database during the usable day (only updating the tables that users don't update), lets say adding 50 new records, would it cause the cache to be dropped. The reason I ask is because it the cache remains until its exipry time, I can replace the database and rebuild datasets incorporating new data in the background when the token expires. If the cache is dropped when I update the database, it will mean interuption whilst I reload the datasets and will change my strategy on uploading new data.
I ask the question because I'm currently working on the development server and unable to test in a live server environment at present.
This question is for ASP.NET and SQL Server developers. What are your best practices with respect to setting up your development and test environment? I'm interesting in the following issues:
1. How many tiers do you recommend and what goes on on each tier? Just dev, test, and production or perhaps dev, test, staging, and production?
2. Which types of applications and/or servers should run on actual physical hardware and which can get away with a VM?
3. What are your strategies for loosely coupling users from web sites, web developers from their web/app/DB servers, and DB developers from their DB servers?
4. How do developers stay "DRY?"
5. What are the pros and cons to putting web, app, and DB servers on their own machines? Does putting servers on separate machines in order to minimize contention for a machine's resources trump any NIC and network latencies that might be introduced by putting them on different machines?
6. How do you configure your web apps to minimize contention for resources (e.g. virtual directories, separate application pools, etc.)
7. How and how often do you refresh your databases on each tier? Do you just refresh the data or both the data and objects?
I have a .Net 2 solution with some asp classic pages.I get a specified cast is not valid error when I access the page on my local. Below is the vb function where I get the Error:
Public Function Retrieve(ByVal vntSeqId As String, ByRef vntPart As String, ByRef vntPartKey As String, ByRef vntEntDate As String _ , ByRef vntStatus As String, ByRef vntOrigGblId As String, ByRef vntOrigNetId As String, ByRef vntOrigName As String, ByRef vntOrigPhone As String _ [code]...
At first, I thought the problem is with the source code and we were thinking the source code we have is different with the ones deployed on test and prod servers. But when I tried to upload it on the test server, I don't get the specified cast is not valid error.
I'm still trying to understand and use Use Cases and Test Driven Development, but having a hard time crossing the line. I'm hoping someone can provide a good example of how setting a datasource and/or databinding a gridview could be accomplished using Test Driven Development.reate an aspx page and add the gridview control to it.create a method in the code behind called BindGrid(datacollection,gridview) that passes the collection and gridview to a method in a class outside my website so I can actually write the Unit test for the method, and returns a databound gridview.On the BindGrid method, I right click and select "Create Unit Test" which creates a new test project for me with an outline test for my BindGrid() method.Now I guess there are a number of test I could write, for example:testTrueDataCollectionBindstoGridView() to see if the collection datatype actually binds? I'm not sure the other test to write?This is how I currently understand I would go about TDD and Unit testing my example. It feels very clumsy and I'm hoping for some feedback as to what I'm doing wrong, and ideas for improvement.How would you go about writing a test for a collection binding to a control? For example say I wanted to bind a dictionary to a drop down list. What test should I be writing, and how would I go about writing them?
I created a simple web service in VS2010 (C# - XP Professional SP3 development computer -- running .Net 3.5/4.0) that just does the basic "Hello World" and changes Temperatues from Farenhet to Celcius functions and ran fine in VS2010. I then created a directory in C:Inetpubwwwrootwebsvcvs10a (of the same development computer). In the localhost IIS I converted this to an application directory (properties/create application). I tried to deploy my web service here using the publish wizard of VS2010 but was getting errors stating that the URL was not in the correct format, so I decided to just copy myService1.asmx, Web.Config, and the bin folder (which contains the compiled assembly) directly to C:Inetpubwwwrootwebsvcvs10a. Then from the localhost IIS I tried to browse myService1.asmx and received the following error:
Configuration Error Description:An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive.
Version Information: Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET Version:2.0.50727.3618
--I tried changing the targetFramework to 3.5 in web.config, but that did not fix the problem. I then removed the targetFramework attribute from web.config and then got this error message:
Could not load file or assembly 'myVS2010Websvc' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
Description:An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.BadImageFormatException: Could not load file or assembly 'myVS2010Websvc' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
What can I / should I do to resolve this problem so that I can deploy this web service project to localhost -- don't I already have .Net 4.0 runtime on this machine? It is the same machine that is running VS2010.
I am developing a single web application that will dynamically change its content depending on which domain name is used to reach the site. Multiple domains will point to the same application. I wish to use the following code (or something close) to detect the domain name and perform the customizations:
[code]....
I would like to test the functionality of the above using the ASP.NET development server. I created mappings in the local HOSTS file to map [URL] to 127.0.0.1, and [URL] to 127.0.0.1. I then browse to the application with the browser using [URL] (etc).
When I try to test this code using the ASP.net development server the [URL] always says localhost. It does NOT capture the host entered in the browser, only localhost.
Is there a way to test the URL detection functionality using the development server?