Hi Conor,

I was planning on doing some work to the solution task to incorporate
the compiler tasks (i.e. <csc/>, <vbc/>) in order to make the solution
task more Mono friendly.  I did a little "proof of concept" awhile back
and the initial piece of work is going to be quite benign, but I have
been holding off until after the 0.85 release.

I can't speak for everyone in the team but the changes you suggest below
seem like they would increase the maintainability of the code.  If there
is agreement maybe we could start a branch and work on the compiler
changes, refactoring and unit tests :-) in there?  



Clayton


> -----Original Message-----
> From: Conor MacNeill [mailto:[EMAIL PROTECTED] 
> Sent: September 13, 2004 10:56 PM
> To: [EMAIL PROTECTED]
> Subject: [nant-dev] Making the Solution Task extensible
> 
> 
> 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
> 


-------------------------------------------------------
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

Reply via email to