|
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
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
|
|
Message #106877
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
Start with Nant
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 #106981
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
NAnt and deployment
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
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
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
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
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
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?
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
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.
|
|
 |
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:
- Karissa Sin
- sherazam khan
- Mike Liu
- Core Lab
|
Hot threads
Hot threads
Hot threads
|
More hot threads
More hot threads
More hot threads
|
 |
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)
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)
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)
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)
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 »
|
|