66366 members! Sign up to stay informed.

Sponsored Links


Resources

.NET Research Library
Get .NET related white papers, case studies and webcasts

ASP.NET and the Web ASP.NET and the Web ASP.NET and the Web Messages: 11 Messages: 11 Messages: 11 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

Deployment/Building of Web Applications

Posted by: Michael Smith on January 13, 2004 DIGG
Hi, i'm very curious as to what best practices people have adopted for building/deploying their web applications. Our company has just started creating and deploying web applications and we have yet to wrap our heads around the best way to do the building/deployment. Basically, when i build a web application and a new .dll is created, i'd like to know exactly which code behinds have changed from the previous build so that i know which pages to test. Are there any third party tools or build scripts that people have used in the past that seem to accomplish this?

Thanks,
Mike

Threaded replies

·  Deployment/Building of Web Applications by Michael Smith on Tue Jan 13 17:07:26 EST 2004
  ·  Start with Nant by Justin Gehtland on Tue Jan 13 18:09:10 EST 2004
    ·  And what about deploying? by Ben Richardson on Wed Jan 14 06:11:10 EST 2004
      ·  NAnt and deployment by Justin Gehtland on Wed Jan 14 10:21:13 EST 2004
        ·  Two things by Craig Andera on Wed Jan 14 11:24:47 EST 2004
          ·  Draco.NET by Justin Gehtland on Wed Jan 14 16:24:46 EST 2004
            ·  Using MSI's for deploying by Frank on Fri Jan 16 23:11:02 EST 2004
            ·  CruiseControl.Net by Dan Lukinykh on Sat Jan 17 09:04:13 EST 2004
              ·  CCNet, + test everything, every time by Mike Roberts on Sun Jan 18 10:39:51 EST 2004
        ·  NAnt and FTP...any documentation? by Ben Richardson on Mon Jun 21 22:16:42 EDT 2004
          ·  nant ftp by rick vogel on Fri Jun 08 19:42:06 EDT 2007
            ·  Re: nant ftp by abe rodriguez on Wed Nov 21 11:17:24 EST 2007
  Message #106877 Post reply Post reply Post reply Go to top Go to top Go to top

Start with Nant

Posted by: Justin Gehtland on January 13, 2004 in response to Message #106864
I can't more strongly recommend founding your build strategy on Nant. Using the built-in tasks, you can pretty quickly create a build model that automatically notifies you of which files have changed since the last build, since almost all Nant tasks are artifact-aware (they can decide whether or not to act on a file based on whether it has changed).

In addition, you can use your build file to strip out all the non-essential files prior to deployment to the server (all the .cs or .vb files, etc).

  Message #106953 Post reply Post reply Post reply Go to top Go to top Go to top

And what about deploying?

Posted by: Ben Richardson on January 14, 2004 in response to Message #106877
Can you use Nant to help to deploy your app to your server?

  Message #106981 Post reply Post reply Post reply Go to top Go to top Go to top

NAnt and deployment

Posted by: Justin Gehtland on January 14, 2004 in response to Message #106953
Absolutely. NAnt comes with a standard set of tasks for moving files, like <copy> if you are moving them around on a local machine or LAN, and <ftp> if you have an ftp drop. The NAntContrib package, which is a collection of third-party tasks, also includes <scp> if you use secure copy.

When I have worked on a project that requires an FTP drop of the deployment files, we have used two separate NAnt build files. One on the staging server to build the deployment package and ftp it to the deployment server, and a second one that lives on the deployment server that runs every night. It looks in the ftp drop to see if a new deployment package is sitting there and puts the files where they need to go (and cleans out the drop folder). The beauty of this process is that it works automatically, but if I desperately need the deployment to run immediately, I can log into the deployment server and fire off the NAnt build manually.

  Message #107001 Post reply Post reply Post reply Go to top Go to top Go to top

Two things

Posted by: Craig Andera on January 14, 2004 in response to Message #106981
1) Check out Draco.NET at http://draconet.sourceforge.net. It watches a source control repository for changes and invokes a nant build target when something changes.

2) Check out ftpsync at http://workspaces.gotdotnet.com/ftpsync. This is a little tool written by me to do an incremental upload via FTP of files that have changed.

I've used both of them in conjunction with NAnt in several projects, and have used SCP as well. It's been nice.

  Message #107060 Post reply Post reply Post reply Go to top Go to top Go to top

Draco.NET

Posted by: Justin Gehtland on January 14, 2004 in response to Message #107001
Draco's really cool; this combo will work really well as long as the deployment server is on the same network as the source control repository OR you allow direct FTP to the final deployment directories on the deployment server. If both of those are not true (which has usually been the case for me) you have to go with the localized NAnt build.

Oh, and, Hi, Craig!

  Message #107381 Post reply Post reply Post reply Go to top Go to top Go to top

Using MSI's for deploying

Posted by: Frank on January 16, 2004 in response to Message #107060
I used MSI's to deploy my web applications. Works great, except on the mono platiform.

  Message #107412 Post reply Post reply Post reply Go to top Go to top Go to top

CruiseControl.Net

Posted by: Dan Lukinykh on January 17, 2004 in response to Message #107060
I didn't use Draco yet, but i will..

Does anyone have an experience with CruiseControl.Net, the port of popular *continuous integration* java framework?

Please share your knowledge.

  Message #107450 Post reply Post reply Post reply Go to top Go to top Go to top

CCNet, + test everything, every time

Posted by: Mike Roberts on January 18, 2004 in response to Message #107412
Just to be open, I'm one of the project leads on CruiseControl.NET (CCNet) so anything I say about it may be biased. :)

CCNet (http://ccnet.thoughtworks.com/), Draco and Hippo (http://hipponet.sourceforge.net/) are all good Continuous Integration (CI) tools (see http://martinfowler.com/articles/continuousIntegration.html for the original automated continuous integration article). When combined with NAnt they are a good way of getting feedback on changes developers have committed to source control.

My key desire for Web App deployment is automation, especially when I want to plug it into a CI process. As such I prefer zipfile + xcopy deployment over MSI's since it is easier to drive from the command line, and so from an automated script.

It is important with such a script to clearly define any application state you may be storing since the easiest way of correctly deploying a web app is to delete the old one and put the new one in its place. Without such a process you can end up with deleted pages still deployed on the actual server. If you don't track what application state you are storing in your web folder though, you'll be losing state on deployment (its probably a good practice *not* to store state in the web app folder anyway - web.config is probably the only thing which should vary between environments)

In terms of your original question I see 2 possible solutions:
1 - Test everything, every time
2 - On each build, update an ongoing list of changes

(2) to me is hard, so I prefer (1). (1) also gives you a lot of confidence as to the correctness of your application. To do this, you really need automated acceptance tests happening (which you can also drive from your NAnt script and CI process), using a tool like NUnitASP (http://nunitasp.sourceforge.net/)

Adding such a process to test your deployed application can also be used during development to to aid your developers test changes on their own machine.

  Message #126853 Post reply Post reply Post reply Go to top Go to top Go to top

NAnt and FTP...any documentation?

Posted by: Ben Richardson on June 21, 2004 in response to Message #106981
I have been trying to deploy my application and have been using NAnt with the copy task successfully, but now need to use FTP. Is there any documentation out there on this? I can't find it anywhere in either the NAnt or NAntContrib documentation.

  Message #234247 Post reply Post reply Post reply Go to top Go to top Go to top

nant ftp

Posted by: rick vogel on June 08, 2007 in response to Message #126853
After struggling with FTPTask's put (http://www.spinthemoose.com/~ftptask/), not being able to wait for nant to include ftp (version 0.9), and being too lazy to write my own FTPTask or fix spinthemoose.com's version, I chose to use ftp via an nant exec task.

Add the following to your nant build file:
<target name="ftpTask">
<exec command="ftp -i -s:ftpcmd.txt YOUR_SERVER_HERE" />
</target>

Create a file named ftpcmd.txt with contents:

YOUR_USERNAME_HERE
YOUR_PASSWORD_HERE
bin
cd /YOUR_PROJECT_HERE/InstallCD/LatestBuild
mput WebAppSetup.msi
mput YourZipFile.zip
quit

While this isn't as slick as some might like, it gets the job done.

  Message #242897 Post reply Post reply Post reply Go to top Go to top Go to top

Re: nant ftp

Posted by: abe rodriguez on November 21, 2007 in response to Message #234247
Check this out, it might help you - http://blog.aelogic.net/archive/2007/11/19/NAntbased-FTP-deployment-task.aspx

Recent active threads Recent active threads Recent active threads More More More
Exclude Sound While Converting FLV File to SWF Using Aspose.Flsh
Nextel i876 flip, Nextel i877 lcd flip
www.berrynextel.com i776 FLEX CABLE, i9 FLEX CABLE i877 FLEX
www.berrynextel.com Nextel I856 FLEX CABLE
Nextel i860 flex cable, i850 FLEX CABLE , i560 FLEX CABLE
www.berrynextel.com I580 FLIP, i570 FLIP, i576 FLIP, i776 FLIP
www.berrynextel.com Nextel i776w flips,Nextel i776 lcd flip
Nextel i877 lcd flip
More active threads »
Top posters of the weekTop posters of the weekTop posters of the week
This list contains the members who have made the most posts in all forums over the last 7 days:
  1. Karissa Sin
  2. sherazam khan
  3. Mike Liu
  4. Core Lab
Hot threads Hot threads Hot threads More hot threads More hot threads More hot threads

Eclipse vs. Visual Studio at EclipseCon 2006

Speaking at EclipseCon 2006, Java developer and independent consultant Madhu Siddalingaiah compared Microsoft's Visual Studio IDE to the open source development environment of Eclipse.
(33 comments, last posted March 09, 2010)

Tech Talk: Peter Provost on CAB and Agile development

In this tech talk, Microsoft's Peter Provost talks about the design of the Composite UI Application Block and how the p&p team has led Microsoft in the adoption of Agile methodologies.
(0 comments, last posted April 17, 2006)

Book excerpt: Framework Design Guidelines

Chapter 4 of Framework Design Guidelines, titled "Type Design Guidelines," presents patterns that describe when and how to design classes, constructs and interfaces. In this chapter, Abrams and Cwalina divide types into four groups and discuss the do's and don'ts of type design.
(2 comments, last posted July 07, 2006)

Q&A: Miguel "Mono Man" De Icaza

Paul Ferrill caught up with prime open-source .NET applications driver Miguel De Icaza at Novell's BrainShare conference last week. They discussed the status of Windows Forms for Mono (it's coming along) and VB.NET for Mono (it looks like it's out).
(5 comments, last posted March 30, 2006)

Tech Talk: Jack Greenfield on software factories and DSLs

In this tech talk, Microsoft Visual Studio architect Jack Greenfield discusses the company's approach to Domain-Specific Languages, or DSLs, and the part they play in software factories.
(0 comments, last posted March 15, 2006)
More hot threads »

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
All Content Copyright ©2007 TheServerSide Privacy Policy      Powered by JIVE
Site Map