INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES WITH A COMMON SET OF...

21
David Staheli | Engineering Manager | Visual Studio Team Services | Microsoft INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES

Transcript of INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES WITH A COMMON SET OF...

Page 1: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

David Staheli | Engineering Manager | Visual Studio Team Services | Microsoft

INTEGRATING DIFFERENT IDE’SWITH A COMMON SETOF DEVELOPER SERVICES

Page 2: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

WHAT WAS YOUR FIRST IDE?

Page 3: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

THERE’S AN IDE FOR THAT

Page 4: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

VISUAL STUDIO TEAM SERVICES

Plan

Code

Build

Test

Deploy

Monitor

Page 5: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES
Page 6: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

IDE PLUGINS FORVISUAL STUDIO TEAM SERVICES

Page 7: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

DECISIONS AND CHALLENGES

• Matching an IDE’s look and feel

• Reusing code across plug-ins

• Interacting with browsers

Page 8: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

MATCHING AN IDE’S LOOK AND FEEL

Page 9: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

DUPLICATE UI AND LOGIC

UI

IDE 1

Logic

UI

IDE 2

Logic

Page 10: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

DUPLICATE UI, REUSE LOGIC IN-PROCESS

UI

IDE 1

UI

IDE 2

Logic

Page 11: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

DUPLICATE UI, REUSE LOGIC OUT-OF-PROCESS

UI

IDE 1

UI

IDE 2

Logic

• TCP• HTTP• stdin/stdout• Named pipe

Page 12: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

REUSE UI AND LOGIC – REMOTE WEB SERVER

Embedded

Browser

IDE 1 IDE 2

Embedded

Browser

Web Server

HTTP

Page 13: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

EMBEDDED BROWSER INTERACTION

IDE

Browser Host

In-process Browser

JavaScript Events

IDE Procedure Calls JavaScript Function Calls

IDE Events

Page 14: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

EMBEDDED BROWSER INTERACTION

Example: Eclipse Issue Tracking

Page 15: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

CROSS-PLATFORM BROWSER USAGE

Example: IntelliJ / Android Studio Authentication

Page 16: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

CROSS-PLATFORM BROWSER USAGE

In-process browser,

or handling browser events?

Using

Eclipse,

or

supporting

Java 1.6?

SWT Browserorg.eclipse.swt.browser

JavaFX WebViewJava 1.7+

Launch system

browser

No No

Yes Yes

Page 17: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

REUSE UI AND LOGIC – LOCAL WEB SERVER

Embedded

Browser

IDE 1 IDE 2

Embedded

Browser

HTTP

Local Web Server

Page 18: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

LAUNCHING AN IDE FROM A BROWSER

Page 19: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

LAUNCHING AN IDE FROM A BROWSER

Example: Open from Web in Android Studio

Page 20: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

FINAL NOTES

• Follow us @JavaALM

• java.visualstudio.com

• GitHub repos:• vso-intellij

• team-explorer-everywhere

• jenkinsci/tfs-plugin

• vso-agent-tasks

• oauth2-useragent

• git-credential-manager-for-mac-and-linux

Page 21: INTEGRATING DIFFERENT IDE’S WITH A COMMON SET OF DEVELOPER SERVICES  WITH A COMMON SET OF DEVELOPER SERVICES

Evaluate the Sessions

Sign in and vote at eclipsecon.org

- 1 + 10