future directions: building customizable applications using.net eric schnepp tln205 lead program...
TRANSCRIPT
Future Directions: Future Directions: Building Customizable Applications Building Customizable Applications using .NETusing .NET
Eric SchneppEric SchneppTLN205TLN205Lead Program ManagerLead Program ManagerMicrosoft CorporationMicrosoft Corporation
2
AgendaAgenda
Why Customize Applications?Why Customize Applications?
Visual Studio Tools for Applications Visual Studio Tools for Applications Technical OverviewTechnical Overview
DemosDemos
3
Why Enable Why Enable Customization?Customization?
What the manufacturer
builds…
4
VSTA Value PropositionVSTA Value Proposition
Application
Rapidly add Rapidly add new featuresnew features
Extend and Extend and integrateintegrate
Build an Build an ecosystemecosystem
Expand into Expand into new marketsnew markets
Create Software Create Software Building BlocksBuilding Blocks
5
Application Customization Application Customization TodayToday
Today, VBA is the primary tool for Today, VBA is the primary tool for customizing Windows applicationscustomizing Windows applications
Used extensively by Office and over 350 Used extensively by Office and over 350 licenseeslicenseesLarge developer community (~8M Large developer community (~8M developers)developers)
VBA technology targets COM-based VBA technology targets COM-based applicationsapplicationsWe need a toolset that…We need a toolset that…
Supports both COM and .NET Supports both COM and .NET applications, andapplications, andWill keep pace with ongoing technical Will keep pace with ongoing technical innovationsinnovations
6
Introducing “Visual Studio Introducing “Visual Studio 2005 Tools For Applications” 2005 Tools For Applications” (VSTA)(VSTA)
VSTA enables you to deliver highly- and easily-customizable VSTA enables you to deliver highly- and easily-customizable applications to your customersapplications to your customers
Built on .NET and Visual Studio 2005Built on .NET and Visual Studio 2005VB .NET and C#VB .NET and C#
Productivity features like IntelliSense, Code Tasks, and customizable Productivity features like IntelliSense, Code Tasks, and customizable helphelp
Key debugging features such as Edit-and-Continue, breakpoints, Key debugging features such as Edit-and-Continue, breakpoints, watch/auto/locals windows, etcwatch/auto/locals windows, etc
VSTA projects also work in Visual StudioVSTA projects also work in Visual Studio
Add-in managementAdd-in managementSimplifies loading and unloading of customizationsSimplifies loading and unloading of customizations
Gives host control over app domain creationGives host control over app domain creation
Running/debugging 64-bit customizationsRunning/debugging 64-bit customizations
Running partially trusted customizationsRunning partially trusted customizations
VSTA SDK launches with Office 12VSTA SDK launches with Office 12
7
IDE Extensibility OptionsIDE Extensibility Options
The Visual Studio DTE object model The Visual Studio DTE object model enables programmatic control over the enables programmatic control over the VSTA IDEVSTA IDEPossible features enabled by the DTE Possible features enabled by the DTE includeinclude
Macro recordingMacro recordingProvide app context when launching the IDEProvide app context when launching the IDEAnd much more…And much more…
Additional customizations points includeAdditional customizations points includeCreating a customized New Project WizardCreating a customized New Project WizardPersisting customizations to locations other Persisting customizations to locations other than the local diskthan the local disk
8
Application Customization Application Customization ScenariosScenarios
Deep Application IntegrationDeep Application IntegrationDevelop new business objectsDevelop new business objects
Connect disparate enterprise systemsConnect disparate enterprise systems
Third Party Add-insThird Party Add-insAdd-ins for Excel (Solver, etc.)Add-ins for Excel (Solver, etc.)
CAD/CAM application plug-insCAD/CAM application plug-ins
Other vertical-specific modulesOther vertical-specific modules
Application AutomationApplication AutomationUse Macro Recording to automate repetitive tasksUse Macro Recording to automate repetitive tasks
Edit macro code in VSTA IDEEdit macro code in VSTA IDE
ShapeApp and VSTAShapeApp and VSTA
10
VSTA Technology StackVSTA Technology StackDesign timeDesign time
In-Process Host (IPH) In-Process Host (IPH) (Optional)(Optional)
Visual Visual Studio DTEStudio DTE
VSTA Project VSTA Project
VBVB C#C#CustoCusto
m Helpm Help
ISV SuppliedISV Supplied
Core Visual StudioCore Visual StudioVSTAVSTA
VSTA IDEVSTA IDE
32-bit Only32-bit Only
11
VSTA Technology StackVSTA Technology StackRuntimeRuntime
Add-in ManagerAdd-in Manager
SecuritSecurity y
ManageManagerr
AD AD ManagManag
erer
ExternExternal al
ProcesProcess s
SupporSupportt
ISV SuppliedISV SuppliedVSTAVSTA
Managed AddIn Managed AddIn Framework (MAF)Framework (MAF)
RuntimeRuntime
32- and 64-32- and 64-bitbit
ShapeApp V2 and VSTAShapeApp V2 and VSTA
13
Managing Add-InsManaging Add-InsDefaultDefault
Resilient and Resilient and SecureSecure
Add-ins are Add-ins are isolatedisolated
Add-ins can be Add-ins can be loaded/unloaded loaded/unloaded individuallyindividually
Low Code Low Code ComplexityComplexity
Host ProcessHost Process
Host App DomainHost App Domain
Add-in Add-in App App DomainDomain
Add-inAdd-in
Add-in Add-in App App DomainDomain
Add-inAdd-in
Host Host OMOM
14
Managing Add-InsManaging Add-InsHigher performanceHigher performance
Higher Higher Performance (but Performance (but with less security)with less security)
Add-ins can Add-ins can interact (for good interact (for good and bad)and bad)
Add-ins unloaded Add-ins unloaded only with the app only with the app domaindomain
Low to Moderate Low to Moderate Code ComplexityCode Complexity
Host ProcessHost Process
Host App DomainHost App Domain
Add-in App DomainAdd-in App Domain
Add-inAdd-in Add-inAdd-in
Host Host OMOM
15
End-User DebuggingEnd-User Debugging
““In-Process” – launch a new instance In-Process” – launch a new instance of host app on F5of host app on F5
Default debugging behaviorDefault debugging behavior
Same experience as WinForms AppSame experience as WinForms App
““External Process” – allows External Process” – allows debugging of existing host on F5debugging of existing host on F5
Host state is not lost between Host state is not lost between debugging sessionsdebugging sessions
Crashing add-in won’t crash the hostCrashing add-in won’t crash the host
16
In-Process DebuggingIn-Process Debugging
VSTA.exe (IDE)VSTA.exe (IDE)
<F5><F5>
Launch Host Launch Host ProcessProcess
Terminate Terminate ProcessProcess
Host ProcessHost Process
Host App DomainHost App Domain
Add-in App DomainAdd-in App Domain
Add-inAdd-in
Host Host OMOM
17
External ProcessExternal ProcessVSTA.exe (IDE)VSTA.exe (IDE)
VSTA_ep.exeVSTA_ep.exe
Add-in Add-in App App DomainDomain
Add-Add-inin
Host ProcessHost Process
Host App DomainHost App Domain
Host Host OMOM
<F5><F5>
Launch Launch External External ProcessProcess
DebugDebug
Stop DebuggingStop Debugging
Terminate Terminate ProcessProcess
Launch IDELaunch IDE“Alt+F11”“Alt+F11”
InfoPath 12 and VSTAInfoPath 12 and VSTA
19
VSTA Roadmap SummaryVSTA Roadmap Summary
The VSTA SDK enables Office and Microsoft The VSTA SDK enables Office and Microsoft Partners to provide a managed code Partners to provide a managed code customization environment in their applicationscustomization environment in their applications
VSTA builds on the strong foundation of Visual VSTA builds on the strong foundation of Visual Studio and Visual Studio Tools for OfficeStudio and Visual Studio Tools for Office
Version 1 will provide a rich set of out of the box Version 1 will provide a rich set of out of the box features, as well as extensibility hooks that will features, as well as extensibility hooks that will enable development of ISV-specific featuresenable development of ISV-specific features
Future releases will include ongoing innovations in Future releases will include ongoing innovations in Visual Studio as well as high priority features Visual Studio as well as high priority features requested by our customersrequested by our customers
Microsoft targets availability of Version 1 in H2 Microsoft targets availability of Version 1 in H2 20062006
20
VSTA TimelineVSTA Timeline
H1 H1 20062006
H2 H2 20052005
H2 H2 20062006
VSTA SDK VSTA SDK Launches Launches with Office with Office
12!!!12!!!
VSTA VSTA Announced Announced
at PDC!at PDC!
VSTA VSTA BetasBetas
VSTA VSTA Release Release
CandidatesCandidates
21
Call To ActionCall To Action
Attend related sessionsAttend related sessions(FUN309, Today @ 1:45) CLR: Designing Managed Add-(FUN309, Today @ 1:45) CLR: Designing Managed Add-Ins for Reliability, Security, and VersioningIns for Reliability, Security, and Versioning
(OFF319, Thu @ 3:45) ''InfoPath 12'': Developing Forms (OFF319, Thu @ 3:45) ''InfoPath 12'': Developing Forms for the Smart Client and the Browserfor the Smart Client and the Browser
Meet the team today at 3:00pm in the track Meet the team today at 3:00pm in the track loungelounge
Check out VSTA at the Hands On Lab (TLNHOL11) Check out VSTA at the Hands On Lab (TLNHOL11) and the Tools and Languages Track Loungeand the Tools and Languages Track Lounge
Contact [email protected] or Contact [email protected] or [email protected] for [email protected] for additional informationadditional information
22
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.