|
Q:
|
Can I hide Public classes and/or members contained in my application from VSTA customization without changing their scope? top
|
|
A:
|
Classes and/or members can be excluded by specifying the isExcluded=true attribute in the XML descriptor. Classes marked Private are excluded by default.
|
|
Q:
|
Where can I find more information about Microsoft VSTA? top |
|
A:
|
For more details on the product follow this link, or watch this presentation. |
|
Q:
|
Can you give me the list of VSTA product features? top |
|
A:
|
Managed customization support with fine granularity (app- and doc-level, form and assembly level, etc…)
Third process debugging
Managed Add-in Framework (MAF)
Native support for 32bit and 64bit customizations
Support for both managed and unmanaged host applications
Macro recording (via VSTA’s DTE)
Add-in manager, which provides control over lifetime, security and isolation of VSTA Add-in assemblies.
Partial Trust Support
Tools to automate the integration process
Includes the VSTA design-time environment, a version of the Visual Studio 2005 development environment that has been customized for Add-in project creation, debugging and deployment.
|
|
Q:
|
What does the VSTA SDK provide? top
|
|
A:
|
· An environment for your end users to develop add-ins for your application using managed code in Visual Basic or Visual C# in a rich development environment.
· Tools to expose your application's object model to add-ins, regardless of whether your application is built upon COM or the .NET Framework. For more information, see Creating Proxies.
· Tool for creating project templates that end users use to create add-ins for your application. For more information, see Creating Project Templates (Visual Studio Tools for Applications).
· Ability to extend the redistributable IDE while your add-in projects are open. For more information, see Creating In-Process Hosts.
· The ability to enforce different trust levels using code access security. For more information, see Security Considerations for Partially Trusted Add-Ins.
· Ability to create different versions of the host application and the add-in independently of each other.
· Create different levels of isolation between the add-ins and the host application, to make loading and unloading add-ins robust and secure. For more information, see Loading and Unloading Add-Ins.
|
|
Q:
|
How do I download the VSTA SDK? top |
|
A:
|
Here are links for downloading the June 2006 Visual Studio 2005 SDK (The VS SDK rolls up VSTA). You will need a Passport account for access to the second link:
http://msdn.microsoft.com/vstudio/extend/
http://affiliate.vsipmembers.com/affiliate/downloadfiles.aspx
Once you have downloaded and installed the VS2k5 SDK, you can find information about installing the VSTA SDK here:
How to: Install Visual Studio Tools for Applications
|
|
Q:
|
What are the prerequisites for VSTA development? top |
|
A:
|
Microsoft Windows XP with Service Pack 2
Microsoft Visual Studio 2005
Microsoft Visual Studio 2005 SDK
Microsoft Visual Studio Tools for Applications SDK
|
|
Q:
|
What does ‘Versioning’ mean? top |
|
A:
|
Strongly named .Net assemblies have a unique identity, and are not identified by filename alone. A strongly named assembly is identified by its filename along with its assembly version, culture, and digital signature. Visual Studio projects usually include an assemblyinfo.cs file indicating these values to the compiler through .NET attributes:
[assembly: AssemblyCulture("")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyKeyFile("companykey.snk")]
Before .NET, the only choices ISVs had for versioning components was to overwrite them, or (if COM) version them in the registry and install updates to a new directory. The latter of these choices was too difficult for many vendors to follow therefore it was rarely effectively executed if even attempted.
Now, with .NET we have strict version binding between assemblies and their dependencies. A simple overwrite won't do.
This introduces new issues for ISVs providing customizations to their clients (i.e.: How do we deploy updates to dependencies, without requiring a recompile of their consuming clients?)
You can achieve backward and forward compatibility between your host application and your clients’ VSTA customizations with VSTA’s Managed Add-in Framework (MAF). Check out this linkto an ISV VSTA webcast for a MAF demonstration. For more information on the MAF, check out this link.
|
|
Q:
|
When does VSTA ship v1.0? top |
|
A:
|
The VSTA 2005 product will be released at the same time as Office 2007 (v12). For a preview of Office 2007 click this link.
|
|
Q:
|
Are there any major applications integrating the WinFx Add-in model and VSTA product? top
|
|
A:
|
Yes. As an example, InfoPath 2007 integrated the VSTA Design Time (DT) and Run Time (RT). The InfoPath team built their VS project packages with the VSTA product.
|
|
Q:
|
As an ISV, I want to build VS projects for my Add-in developers. What is the recommend method? top
|
|
A:
|
Use VSTA! VSTA projects are compatible with:
The VSTA IDE (which is redistributable via the licensing models found here)
· The Visual Studio Pro SKU and above, which means you can use Visual Studio to create or open VSTA projects.
|
|
Q:
|
What is the VSTA blog URL? top |
|
A:
|
Follow this link. |
|
Q:
|
Is there a simple walk-through showing me how to integrate VSTA, preferably with code snippets? top
|
|
A:
|
Yes. The ShapeApp samples demonstrate how to integrate Visual Studio 2005 Tools for Applications with a managed or unmanaged host application.
Once you have downloaded and installed the VS2k5 SDK, you can find the sample walkthroughs at:
ShapeApp Samples (Visual Studio Tools for Applications)
|
|
Q:
|
Can I integrate VSTA into my COM / unmanaged application? top |
|
A:
|
Yes. The ShapeAppMFC samples demonstrate how to integrate Visual Studio 2005 Tools for Applications with an unmanaged host application.
Once you have downloaded and installed the VS2k5 SDK, you can find the ShapeAppMFC sample walkthrough at:
ShapeAppMFC Samples
|
|
Q:
|
Can I integrate VSTA into my VB6 application? top |
|
A:
|
Yes. MyAppVB6 is a Visual Basic sample that demonstrates a VB6 application integrating VSTA.
The MyAppVB6 sample is available for download from our ftp server:
ftp://ftp.summsoft.com/private/MyAppVB6_0.zip
If prompted, use 'anonymous' for your username, and your email address as the password.
|
|
Q:
|
Can I integrate VSTA into my VBA-enabled application? top |
|
A:
|
Yes. There are two samples available:
ShapeAppVBA is an MFC sample that demonstrates VBA and VSTA running side-by-side in one application. The sample includes VBA-specific documentation as a supplement to the ShapeAppMFC sample in the VSTA SDK.
The MyAppVB6 Phase9 sample demonstrates VSTA/VBA side-by-side interoperability with a VB6 host.
The ShapeAppVBA MFC sample is available for download from our ftp server:
ftp://ftp.summsoft.com/private/ShapeAppVBA.zip
If prompted, use 'anonymous' for your username, and your email address as the password.
|
|
Q:
|
How does a managed VSTA Add-in work with my unmanaged object model? top |
|
A:
|
The VSTA SDK provides a proxy generation utility for creating a managed assembly that represents the host applications’ object model. ProxyGen generates this proxy layer using your managed assemblies or unmanaged (COM) type libraries, and is then exposed to VSTA by referencing it from within your Add-in project templates.
|
|
Q:
|
How does my unmanaged host application make use of the managed VSTA assembly APIs? top
|
|
A:
|
Unmanaged applications create a managed intermediate library, which can then be used for calls between the host application and the VSTA APIs. This communication can be established through exported functions, or through an exposed public COM interface.
|
|
Q:
|
Are there benchmarks comparing VBA and VSTA customization performance? top
|
|
A:
|
No. Unless fully trusted, VSTA customizations will call across app domain for security and isolation. This trade-off will make calls back into the host slower with VSTA. The many levels of isolation and security available with VSTA add-in execution were not possible with VBA macros.
It is also worth noting that VBA was designed to run on much less powerful systems than are available today. As a result, VBA gains significant performance when run on processors that did not exist when it was conceived. As processors and operating systems become faster and more powerful, VSTA will benefit from the same performance gains.
|
|
Q:
|
What issues I will encounter when enabling my unmanaged application with VSTA? top
|
|
A:
|
You must use COM Interop with managed VSTA assembly APIs and generate a proxy from your application’s type library.
|
|
Q:
|
Are there benchmarks for VSTA execution speed available? top |
|
A:
|
No, however VSTA execution speed is almost entirely dependant upon C# and VB.NET managed code performance. |
|
Q:
|
Can VSTA be used to customize the host application in the same way as VBA can customize it? top
|
|
A:
|
Yes, VSTA supports the same Method/Property/Event calls into the host’s object model. Additionally, the application can closely control an add-in’s scope (which portion of the object model is exposed to the add-in) and lifetime (when to load/unload the add-in). With VBA, the application has little control over the scope and lifetime of individual VBA macros. Interrupting execution at any time either suspended all customization code, or returned the entire project to design mode. VSTA customizations can be executed independently of one another.
|
|
Q:
|
Does the VSTA IDE support custom designers, editors, or (VS) packages? top |
|
A:
|
V1.0 does not support these customizations. |
|
Q:
|
Can I customize the VSTA IDE? top |
|
A:
|
Yes, Using the VSTA DTE object model, the host application can programmatically customize the look and feel of the IDE. For specific information about customizing the DTE, follow this link:
Automation and Extensibility Reference
|
|
Q:
|
What control does the host application have in the Load / Edit / Build / Debug / Run / Save process of creating a customization? top
|
|
A:
|
The VSTA DTE provides a rich set of APIs that allow the host application to programmatically intervene in every part the add-in authoring process. With VSTA, it is possible to create, execute and deploy add-ins programmatically without user intervention. For more information, see Creating In-Process Hosts.
|
|
Q:
|
Where does a VSTA add-in reside? top |
|
A:
|
The add-in project can be loaded from a directory path, including a network shared path. In v1.0, add-in assemblies must execute on the local machine.
The discovery and deployment of an add-in at design time and run time is a design consideration left to the ISV. Click Once and Zero (or “No Touch”) Deployment is not supported in version 1.0 of VSTA.
|
|
Q:
|
What programming languages are supported in VSTA? top |
|
A:
|
VB.Net and C# |
|
Q:
|
Will VSTA open, edit, build, or execute other scripting languages or their assemblies? Can I create project templates for proprietary editors? What about J# or VBScript and other .Net scripting languages from Microsoft? top
|
|
A:
|
No. In version 1.0, VSTA will only support VB.Net and C# project templates. Visual Studio Professional supports proprietary (custom) project templates and other Microsoft .Net scripting languages like J# and VBScript.
|
|
Q:
|
Does VSTA allow authoring of file types other than C# or VB.NET? top |
|
A:
|
At this time, VSTA allows authoring of VSTA Add-in projects. These projects provide access to the C#, VB.NET, and XML editing environments.
|
|
Q:
|
When my VBA-enabled application adds new documents and controls, I see these object dynamically added and selected in the VBA IDE’s project explorer. Is this possible with VSTA projects? top
|
|
A:
|
No, there is no support for dynamic type information in VSTA v1.0. However, VSTA allows full control over the scope and lifetime of its add-ins. Your application can offer any number of project templates, each creating an add-in to customize a different piece of the object model. Based on the application’s context, the application may open the IDE with the appropriate project already open and the desired event selected in the editor.
|
|
Q:
|
In VBA, my application could expose new types of components into the VBA project at runtime, extending my object model. Is there something similar for VSTA projects? top
|
|
A:
|
VSTA v1.0 does not provide a way to change the object model exposed to the Add-in (aka: the ‘proxy’ layer). Presently, the ProxyGen command line utility generates the source code for the proxy assembly; no dynamic proxy generation is available.
The DTE object model can be used, however, to generate code in hidden classes or to create and reference assemblies in a VSTA project exposing new functionality in the host application.
|
|
Q:
|
Is it possible to store add-in code like script code: separately from the compiled assembly; or without the assembly? top |
|
A:
|
Yes, using the DTE, it is possible to “re-hydrate” an empty project with stored scripts. In fact, it is possible to create, author, and execute add-ins programmatically (without user intervention). The discovery and deployment of an add-in at design time and run time is a design consideration deferred to the ISV.
|
|
Q:
|
What are VSTA’s debugging capabilities? top |
|
A:
|
There are three ways to enable add-in debugging:
- Visual Studio-style Debugging: Use the VSTA debugger without modifying the host application. This approach requires little configuration and is the simplest option for providing add-in debugging support. To enable this kind of debugging, set the DebugInfoExeName element of the project template file to the name of the host application executable file. This can also be done when generating the project template using ProjectGen.
Note: VSTA creates a new instance of the host application and runs that instance in the same process as the add-in that is being debugged. This means that the application will terminate abruptly at the end of the debugging session (in an unknown state) Terminating the application without performing clean-up tasks could lead to corrupt files and other problems.
- Simple Non-Destructive Debugging: This approach gives the host application an opportunity to perform any clean up task necessary to exit properly. To enable non-destructive debugging, configure the host application to receive and handle notifications when the debug session starts and ends:
- Provide values in Project Templates
Or
· Parse command-line parameters passed into the host application (vstaHostDebugURI, vstaHostDebugReady parameters)
Then register the host application to receive Debug Notifications by passing the host debug URI value obtained from host app’s command-line parameters as a parameter to the Microsoft.VisualStudio.Tools.Applications.ExternalProcess.ExternalDebugging.RegisterExternalDebugHost(System.Uri.Microsoft.VisualStudio.Tools.Applications.ExternalProcess.IExternalDebugHost) method.
Note: With non-destructive debugging, the application and the add-in run in separate processes. This provides a more robust debugging environment, but cross-process communication can decrease performance.
3. Non-Destructive Debugging with Seamless User Experience: For a seamless debugging experience, the user need not set values in the project templates. Instead, at runtime use the Microsoft.VisualStudio.Tools.Applications.ExternalProcess.ExternalDebugging.RegisterExternalDebugHost(System.Uri.Microsoft.VisualStudio.Tools.Applications.ExternalProcess.IExternalDebugHost) overload that returns a unique identifier. Add this identifier to a command-line string and pass that string to the SetDebugInfo() method of the IVstaHostAdapter instance.
|
|
Q:
|
What are the minimum system requirements? top |
|
A:
|
· Processor - 600 MHz processor, Recommended: 1 gigahertz (GHz)
· RAM - 192 MB, Recommended: 256 MB
· Available Hard Disk Space –
· 1 GB of available space required on system drive
· 2 GB of available space required on installation drive
· Operating System (32-bit) -
· Windows XP Service Pack 2
· Windows Server 2003 Service Pack 1, or later versions
· Operating System (64-bit) -
· Windows Server 2003 Service Pack 1 x64 editions
· Windows XP Professional x64 Edition
· CD-ROM Drive or DVD-ROM, Required
· Video - 800 x 600 - 256 colors, Recommended: 1024 x 768 - High Color 16-bit
· Mouse - Microsoft Mouse or compatible pointing device
|
|
Q:
|
What about remote debugging? top |
|
A:
|
Presently, remote debugging is only supported in the Visual Studio Professional IDE.
|
|
Q:
|
Where can I learn about .Net Security? top |
|
A:
|
This is a broad topic. Here are some helpful articles:
Security in .NET: Enforce Code Access Rights with the Common Language Runtime
(http://msdn.microsoft.com/msdnmag/issues/01/02/CAS/default.aspx)
Using Code Access Security with ASP.NET (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secmod/html/secmod82.asp)
10 Steps to a Successful Versioning and Deployment Strategy for .Net
(http://www.15seconds.com/issue/041103.htm)
|