Hi,
* Troy Laurin wrote on 13.07.2004 (09:24):
> Sascha Andres wrote:

Added above line. Deleted too much, and don't wanted to use
undo after I wrote all of the text ;)

> > can be accessed from all tasks. The last function adds a protected 
> > object to the store only readable from a task of the same type. The 
> > protected Load operations would work analog to this.
> 
> The idea of protected data items sounds interesting, but could it be
> implemented without extending Project, just through static properties in
> the task class?  What do public data items offer that can't be done with
> properties?  Would it be better (or is it equivalent?) to implement
> references, similar to Ant?

Just short, cause I'm on my way to work: I think there
should be a difference between public data and properties.
Public data would be part of the communication, the other is
generally part of the build file, used to control how the
build is done. The risk overwriting a user property and what
may result (broken build, hard build file debugging) led me
to propose public data seperated from properties. 
 
> > A few words to persistence. Imagine two more overloads, that indicate 
> > using a boolean variable if an object should be persistent. When a 
> > data store property on the project is set, a datastore with all 
> > variables marked persistent will be saved to the given file (and 
> > loaded at the beginning of the next run).
> 
> Just a comment on overloads:  They're generally evil.  If two methods do
> different things, they should have different names.  Compile errors are
> preferable to strange program behaviour if you call a method
> incorrectly.

I agreee that there is potential for wrong calls. I don't
have a problem splitting it into Save, SaveProtected,
SavePersistent and the respective Load methods. Perhaps
something like

Protected.Save
Public.Save
Persistent.Save
 
> Whether storing xml or storing objects, I'm a little wary about the idea
> of adding "magic" communication to a build system.  It feels too much
> like accessing the internal API of a system.  If one task relies on the
> output of another task to be in a particular format, then there's
> usually a good chance that the task will break if the other task changes
> its output format.

You're right on this point. But using a tasks output is a
risk. And changing a tasks output should occur only in beta
and / or a major release change. A communication system
would be most helpful when there is a large number of user
defined tasks - where you could use public and/or protected
information.

The magic may be useful for debugging issues (a crash in the
csc task that occurs only from time to time).

-sa

-- 
sa at programmers-world dot com http://www.livingit.de
Internet sites:
  http://www.not2long.net - Make long links short
  Boomarks online: http://www.mobile-bookmarks.info


-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to