Diamondback è il nome in codice della nuova versione di Delphi, con il quale sarà possibile programmare all'interno di un unico ambiente, tutte le piattaforme prima supportate da prodotti diversi (Delphi for Win32, Delphi for .NET e C#). Alla recente Borland Conference, tra le tante cose, sono state presentate alcune feature interessanti (refactoring, unit testing, etc) che ormai, fortunatamente, stanno diventando scontate tanto quanto avere un debugger integrato.
Da un post del blog di <a href="http://excastle.com/blog/archive/2004/09/12/269.aspx" target="_blank">Joe White</a>:
Refactoring:
<ul><li>Rename</li><li>Extract Method
</li><ul><li>Knows when to, and when not to, use var parameters</li> <li>Don't know whether it can do out parameters or function returns</li> </ul> <li>Extract Resource String</li><ul><li>Picks a default name for the resource string</li> <li>If that name already exists, reuses the existing resourcestring</li> </ul> <li>Sync Edit (select a block, hit a button, and it underlines all the duplicated words; click on one and start typing, and it syncs with all the others within the block)</li> <li>Find unit or namespace</li> <li>Declare Field</li> <li>Declare Variable
</li> <ul><li>Right-click on an identifier, select "Declare Variable"</li> <li>Smart — guesses a reasonable data type</li> </ul> <li>Shows a preview of what's going to be changed, and doesn't apply until you say go</li> <li>All of these work in Delphi for Win32 and Delphi for .NET</li> <li>All except Extract Resource String work for C#</li> <li>Unsurfaced Refactoring API, so there will probably be more refactorings in later versions"</li> </ul>Da <a href="http://www.marcocantu.com/Development/borcon2004/kaster_diamondback/EPSN0064_t.jpg" target="_blank">questa foto</a> fatta da Marco Cantù:
<ul><li>NUnit (.NET) support</li> <li>DUnit (Delphi/Win32) support</li> <li>New test case (Delphi & C#)</li> <li>New test project (Delphi & C#)</li> </ul>E ancora da un <a href="http://excastle.com/blog/archive/2004/09/13/280.aspx" target="_blank">altro post di Joe White</a>:
<ul><li>No distributed refactoring in Diamondback, but they have underlying architecture to support it</li> <li>Refactoring works across projects within a project group, even between C# and .NET</li> <li>Based on actual uses list, not just what's in the .dpr</li> <li>Only works within current IFDEFs</li> <li>Sync edit: Can Tab through distinct symbols</li> <li>"Live Templates" (Ctrl+J templates with this Tabbing to fill gaps) won't be in Diamondback but are on the plate</li> </ul>