Hi,
If you don't already know, we have been shipping NAnt tasks with Clover.NET to allow NAnt users to easily use Clover.NET for their projects (see http://www.cenqua.com/clover.net/).
These tasks integrate into NAnt by replacing the standard <csc> task with a new version, which extends the CSCTask and provides coverage instrumentation of the source code prior to compilation. This all works really well.
The <solution> task, however is another story. It does not provide enough extensibility points to allow the operation of a solution build to be modified. It is currently not supported by Clover.NET.
I'd like to submit a few patches to provide more extensibility points. The changes would be roughly as follows:
1. Change the ProjectFactory from a set of static methods, (effectively a singleton) to an instance based class used to create Project instances. Replacing the ProjectFactory instance would allow a task to change the operation of the solution task.
2. Move operations out of the Solution object constructors. Doing a lot of work in the constructor makes it more difficult to customize the operation of the Solution object.
3. Create a ProjectUtils class to house the utility methods currently found in ProjectFactory (e.g. IsURL)
4. Create an interface (IProjectFactory?) to be used by the SolutionTask and friends in place of the ProjectFactory singleton. This interface would provide methods to create Project instances.
I'd appreciate any feedback on these proposed changes. Would they be interesting to the NAnt project? Are any other changes to the solution task pending? If the NAnt project is interested and once it's all working, I will submit the patches and you can check the changes out in more detail.
Thanks Conor
-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
