Thanks for your response Gordon,

Let me try and clarify my situation.  
1) You are indeed correct that if only businessportal.dll changes then only
that dll should be rebuilt.
2) If customer.dll changes then customer.dll, customerWS.dll and
businessportal.dll need to be rebuilt.  However with Nant there is no way of
rebuilding only these dll's.  Currently core.dll, customer.dll,
customerWS.dll and businessportal.dll would all have to be rebuilt.  If I
could get Nant to recompile everything downstream from the customer assembly
(ie customer.dll, customerWS.dll and businessportal.dll) then my main
problem would be solved).
3) By rebuilding all the dll's the assembly versions change and hence the
manifest now points to a different version of the assembly.  Therefore all
the assemblies need to be redeployed.

I hope I did a better job of clarifying my problem.
Thanks
Ben

-----Original Message-----
From: Gordon Weakliem [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, 21 January 2003 2:18 PM
To: Ben Singh
Cc: [EMAIL PROTECTED]
Subject: Re: [nant-dev] Building and deploying applications with Nant


I'm not sure I really understand the situation, but I'll take a crack.  

Ben Singh wrote:

>In this example I have a core.dll, customer.dll, customerWS.dll and a
>businessportal.dll.  If something in businessportal.dll changes then as far
>as I know a complete build needs to be performed.
>
I'm confused by this.  If something in an assembly that nothing else 
depends on changes, why would you need to recompile anything besides 
that assembly?  If you change businessportal.dll, I don't see why you'd 
need a complete build.

>  However in theory only
>the businessportal.dll should need to be recompiled.  This means that the
>entire site has to be recompiled (because I am using strong names) and more
>importantly redeployed.  
>
I'd first question whether you need strong names, but that's just me, 
avoiding complexity at all costs :-)

>The scale of the problem becomes a lot larger when
>you have deployments over multiple machines.  Then the deployment scenario
>for a small change becomes a lot more horrendous.  
>Down time is a critical factor in our business and if we don't achieve a
>certain level of uptime then we violate or contractual obligations.  It
>would be good to hear from some other people to see whether they are
>experiencing the same types of problems.  
>
We have load balanced systems where the load balancer (a Cisco Content 
Switch, I think) allows you to shut off a machine and drain traffic off 
of that server.  Once that's been done, you can deploy that server and 
bring it back into rotation.  If you have version problems (what you're 
deploying is totally incompatible with the prior version and can't 
co-exist at all, even for a few minutes), then you'd have to set up a 
stovepiped environment, or install one set of boxes and then work out 
some way to bring the new ones online while simultaneously bringing the 
old ones offline.  Given that uptime is so critical, I'd say that you're 
best off trying to avoid situations where you're deploying stuff that 
breaks what's out there.

In short, it doesn't sound to me like you have a NAnt problem, it sounds 
like you have an architectural problem.  Like I said, I may be totally 
misreading your situation, but that's what it sounds like to me.



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to