Orion is a web-based IDE that allows software development within a browser across linked web pages, enabling collaboration. It is designed according to principles like utilizing native browser capabilities and separating functionality across individual pages. Orion provides basic coding tasks and supports extensions to add additional features. It aims to build a community of users, adopters, and contributors through an open development model.
3. Software development in a browser
ď§ Workflows across a set of linked web pages
ď§ Collaboration via shared data and links
ď§ Not like a desktop IDE
âThe web is the platform
4. Orion Design Principles
ď§ Don't fight the browser
ď§ Use native browser capabilities
âReal hyperlinks, back button, bookmarking, link sharing, ...
ď§ Functionality on separate pages
âPage = Task + Resource
ď§ Performant and lightweight
âSpeed trumps function
5. Strengths of the Web
ď§ Highly distributed content
ď§ Scalable computing power
ď§ Simple connectivity -- links
ď§ Trivial update mechanism
ď§ Powerful rendering engine
ď§ Large, active community
6. Integration Possibilities
ď§ Hyperlinks as an integration mechanism
ď§ OSLC, OAuth: Consume and produce server APIs
ď§ Client-side extensions (plug-ins): adding commands to existing UI
ď§ Integrate with browser debuggers: Firebug, WebKit Inspector
7. Core coding activities + extensions
ď§ Platform provides basic tasks for web client development
⢠HTML, CSS, JS editing in a performant, robust editor
⢠Version control (git) support
⢠Global search, site hosting, unit testing
ď§ Linking in additional features
⢠Outward bound links via navigation bar, related pages, navigator
⢠Inward bound links via URI Templates for invoking Orion functions
ď§ Extend capabilities of existing pages
⢠Editor capabilities, content manipulation, alternate editors
ď§ Extend core capabilities
⢠Content hosting (S3, WebDAV, HTML5 local files)
⢠Authentication strategies
8. Orion 0.5 demo
ď§ Project setup, navigation, editing HTML, CSS, JS
ď§ Site hosting
ď§ Using plug-ins
ď§ Version control (git) support
9. Scenario: Orion on Our Server
OrionHub
Git Repo
Orion code Push code
test
Limited testing; backend Deploy
resources not available. Deploy
Staging Production
test code data code data
10. Scenario: Orion on Your Server
Staging Git Repo
Orion code Push code
test
data
Deploy
Production
Deploy Orion directly on your server; immediate
access to data required for test.
code data
11. Some History
ď§ Early demos of âEclipse on the Webâ in spring 2008
ď§ Bespin project from Mozilla in spring 2009
âExtensible web-based code editing framework
âEclipse experimental server
ď§ Revisit the problem in fall 2010
âWeb development (HTML, CSS, JS)
âContribute to Eclipse Foundation in early 2011
ď§ orionhub launched in spring 2011
12. Plug-ins: Extending the system
ď§ Users install plug-ins from other domains
â˘Pages request necessary micro-services from plug-in/service registry
â˘Plug-ins loaded as needed (hidden iframes)
â˘Don't call us, we'll call you (today)
â˘Authentication, licensing (1.0)
ď§ UI extension points
â˘Narrowly defined contributions
â˘Semantic in nature (for flexibility in changing our UI)
ď§ Core extension points
â˘Alternate file systems
â˘Authentication strategies
13. Plug-ins: Micro Services Example (1/2)
ď§ Declarative behavior - âRelatedâ links menu
window.onload = function() {
var provider = new eclipse.PluginProvider();
provider.registerServiceProvider("orion.page.link.related", null, {
nameKey: "Git Status",
id: "eclipse.git.status2",
tooltipKey: "Go to Git Status",
nls: "git/nls/gitmessages",
validationProperties: [{
source: "StatusLocation|Clone:StatusLocation",
variableName: "GitStatusLocation"
}],
uriTemplate: "{OrionHome}/git/git-status2.html#{GitStatusLocation}"
});
}
15. Consuming Orion: The Editor
ď§ Mozilla Dev Tools (Scratchpad)
âhttp://blog.mozilla.org/devtools/2011/08/15/introducing-scratchpad/
ď§ Rigel (VMWare)
â˘Lightweight editing of local files
â˘Node app serving up local files
â˘Content assist and navigation based on commonjs or Amd module
systems
17. Building a Community
ď§ Orion Hub: a demo for users to experiment
âSuccess = a community of users, adopters and contributors
ď§ Focus is on a federation of tooling
âAll development does not need to be done at Eclipse Foundation
ď§ Initial code contribution
âGenerate discussion, ideas and community
ď§ Please use and look at the code; we want feedback
18. Contributing to Orion
ď§ Get involved
âUse Orion
âAdopt Orion
âContribute to Orion
âJoin the project!
ď§ Project website http://www.eclipse.org/orion
ď§ Project forum http://www.eclipse.org/forums/eclipse.orion
19. Coming in Orion 1.0
ď§ Robustness
â˘Performance, consumability of components, code quality, API
â˘Finish up accessibility, i18n
â˘Reevaluate js framework usage
ď§ Key missing features (not committed yet)
â˘Theme Builder (LESS)
â˘Offline support (investigating)
â˘Consumable (and relocatable) Navigator
ď§ M1 8/10/2012, M2 9/21/2012, Release October 2012
20. Learning more
ď§ orionhub.org - Kick the tires
ď§ @orionhub on Twitter
ď§ http://wiki.eclipse.org/Orion
â˘Downloading builds, git repos, contributions
â˘Architecture and programmer doc
â˘User doc
ď§ planetorion.org â news and articles