When Microsoft’s Office 12 appears, towards the end of this year, it is going to present developers with a new set of challenges as users seek to exploit added functionality in the revised applications. That is where Cypress comes into play.
Think of "Cypress" and you think of `tree’ - quite a good code name for an application development tool set, what with all those branches and stuff. But such subtlety lay not behind Microsoft’s choice of name for an interim version of Visual Studio Tools for Office (VSTO) specifically geared to Office 12. Instead it came from the current source of such code names, islands to be found in Washington State’s Puget Sound. Cypress is, apparently, a very small island. Ahh well, back to the story…….
Mike Hernandez, VSTO product manager, and Steven Goulet, group product manager, are now on a post-TechEd tour formally introducing Cypress to developers, including those at Microsoft's London-based Devcon.
One of the key notions the company wants to get across is an on-going move towards what the pair called 'no code' development. In practice, of course, they acknowledge that this will probably never be fully achieved, but it is increasingly possible for tools to be developed that can create as much of the background `glue’ code as possible. Developers, so the theory goes, are then more free to use their skills to actually solve development issues, while IT managements get shorter development cycle times and, hopefully in the long term, lower maintenance costs. Cypress takes up the notion of providing add-ins that can be incorporated into their work by developers, first used with VSTO 2005, and extends it a good bit. Not only are there more choices of add-in across a wider range of Office applications, but they are also richer in that they now integrate at the application level rather than the document level. The most obvious advantage for developers here is that the add-ins automatically generate the underpinning code needed to integrate the add-in functionality to the Microsoft applications. Initiating a new add-in automatically calls up a swathe of set-up files which generate this code, which Goulet artistically entitles `communications gooo’.
Examples of what is now possible include the ability to add custom task panes at the applications level so that tasks can be added into Microsoft applications, such as Excel, as independent entities. Ribbon customisation allows task-specific functionality to be incorporated into an application so it can be called, for example from a button.
The pair indicated that add-ins can do “anything”, such as create their own independent Windows or communicate directly with databases. They are also able to configure and manipulate elements of an Office document. They also acknowledged that this capability had obvious operational and security implications, which were well covered. For example, each add-in runs in a separate applications domain, so that if it crashes it does not bring down other add-ins or the underlying applications or servers.
The idea is to move more and more of the code generation required from developers away from actual code cutting and into declarative, wizard-based tools.
As an intermediate step prior to the launch of VSTO Version 3 next autumn, Cypress will still use much of VSTO 2005, such as the same applications deployment tools. In this case, it is a step behind the June Community Technology Preview (CTP) of VSTOv3 now available here. That, for example, has a first pass at using ClickOnce deployment tools. Cypress is clearly targeting the mainstream Office applications: Word, Excel, Powerpoint, Outlook, InfoPath and Visio, but the June CTP also has add-in tools for Publisher and Project.
What finally appears in VSTO V.3 is still the subject of debate around market need and technical completeness at the time of launch. The pair indicated, however, that the early thoughts on the subject included the use of the ClickOnce deployment tools now being championed by Microsoft. Also in the frame is a Visual Designer, which is a modified version of User Control in Visual Studio that could provide an Outlook Form Region Designer and a Task Pane Designer capabilities amongst other possibilities. Windows Presentation Foundation Controls are also possible. These are new, managed code tools for building user interfaces and are specifically designed to exploit the functionality in newer, fast graphics processors.®