Hi guys,
 
I would just like to let you know where I think the Addin is at, and where I was trying to get it to. I put it up here specifically so more people could benefit from it and add features, so I'm all for any improvements you guys want to make. If you look at the help files that come with it with your browser in the NAntAddinDocs folder, they explain everything the Addin currently does.
 
A summary would be that for any projects open in the IDE that contain .build files, the addin window shows a tree of these files and allows you to expand them and view the targets/tasks/properties within. You can select any node in a project and edit all of its properties using the Properties window in VS.NET. You can set a target in a project as the "startup target" similar to the "startup project" in a VS.NET project. You can cut/copy/paste between multiple NAnt scripts. You can rename properties and targets, and add new properties/targets/tasks. You can right-click to activate context menus for any of the common commands on a node. Help is integrated with Visual Studio.NET and you can also select a node and hit F1 to bring up topics. They all link to the NAnt help in appropriate locations.
 
Developers write a class that inherits from NAntTaskNode when they want to plug a task into the Addin and then configure it in an XML file - and I've included all the tasks that ship with NAnt releases so far preconfigured. There is a dialog you can use in the Addin to import custom task nodes (.dlls someone writes that define the properties window attributes for a custom task, like the ones in NAntContrib) on the fly, so you can potentially have nodes with unique icons for as many tasks as someone might write for NAnt.
 
When you build a script, the output goes to the VS.NET window - and if an error occurs you can double-click the line number to go to the line in the file the error occurred in. This is cool because I had to write zero code to support it - if your error message is in a .NET exception format the build window knows how to parse the name of the file and load it up in the IDE.
 
I left almost all simple properties of the tasks as strings on purpose - because even many true/false properties of tasks (like "debug") are set using property replacement (${debug) etc.) in many scripts. Tasks that have child XML elements like fileset, NDoc documenter elements etc. can be expanded in the Visual Studio.NET property window to show each member, and edit each property.
 
I went in general for simplicity - whats the minimum code a task developer could write to integrate with the IDE, for the most possible XML data in their task that they could edit. It seems to work pretty good so far, there are definately bugs and I'm hoping more of you will become familiar with the source so you can help out. You can build it using Visual Studio.NET or NAnt - make sure you read the ReadMeFirst!.htm file that is in the root for some special directions either way.
 
Oh by the way, I also wrote that Ant addin for Forte and dontated it to Netbeans ;). Sun has pretty much taken it over at this point and I am switched to .NET, so I figured it was time to write one for Microsoft's IDE instead.
 
-Jayme

Reply via email to