22
Future Directions: Future Directions: Building Customizable Applications Building Customizable Applications using .NET using .NET Eric Schnepp Eric Schnepp TLN205 TLN205 Lead Program Manager Lead Program Manager Microsoft Corporation Microsoft Corporation

Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

Embed Size (px)

Citation preview

Page 1: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

Future Directions: Future Directions: Building Customizable Applications Building Customizable Applications using .NETusing .NET

Eric SchneppEric SchneppTLN205TLN205Lead Program ManagerLead Program ManagerMicrosoft CorporationMicrosoft Corporation

Page 2: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

2

AgendaAgenda

Why Customize Applications?Why Customize Applications?

Visual Studio Tools for Applications Visual Studio Tools for Applications Technical OverviewTechnical Overview

DemosDemos

Page 3: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

3

Why Enable Why Enable Customization?Customization?

What the manufacturer

builds…

Page 4: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 5: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 6: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 7: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 8: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 9: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

ShapeApp and VSTAShapeApp and VSTA

Page 10: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 11: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 12: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

ShapeApp V2 and VSTAShapeApp V2 and VSTA

Page 13: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 14: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 15: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 16: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 17: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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”

Page 18: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

InfoPath 12 and VSTAInfoPath 12 and VSTA

Page 19: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 20: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 21: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

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

Page 22: Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation

22

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.