Envisage An Extensible Application Framework Martin Chilvers Enthought Inc

Slides:



Advertisements
Similar presentations
Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
Advertisements

Introduction to JDeveloper. Benefits of Using JDeveloper Standard, open, and extensible Improved productivity –Visual and declarative –Simpler development.
INTRODUCTION TO ASP.NET MVC AND EXAMPLE WALKTHROUGH RAJAT ARYA EFECS - OIM DAWG – 4/21/2009 ASP.NET MVC.
AHRT: The Automated Human Resources Tool BY Roi Ceren Muthukumaran Chandrasekaran.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Goals Give you a feeling of what Eclipse is.
Enthought Tool Suite Eric Jones DANSE kickoff August 16, 2006.
Eclipse Introduction Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
The SMS project WP 4.2: Service Repository & Runtime Environment ICCS.
UWWD In our quest to eliminate bad websites, we present…. HALLELUJAH!!
COMPREHENSIVE Excel Tutorial 8 Developing an Excel Application.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
Jan Hatje, DESY CSS ITER March 2009: Alarm System, Authorization, Remote Management XFEL The European X-Ray Laser Project X-Ray Free-Electron.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
THE GITB TESTING FRAMEWORK Jacques Durand, Fujitsu America | December 1, 2011 GITB |
Chapter 11: Introduction to the Visual Basic Environment Spreadsheet-Based Decision Support Systems Prof. Name Position (123) University.
HTML+JavaScript M2M Applications Viewbiquity Public hybrid cloud platform for automating and visualizing everything.
Company Overview for GDF Suez December 29, Enthought’s Business Enthought provides products and consulting services for scientific software solutions.
Ontology Engineering and Plugin Development with the NeOn Toolkit NeOn Toolkit Overview June 1st, 2008 Michael Erdmann, Peter Haase, Holger Lewen, Rudi.
Fundamentals of Database Chapter 7 Database Technologies.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Workbench Overview Dwight Deugo Nesa Matic
Drupal Commerce Better than Uber Andrew Root: druroot.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Building Applications with the KNS. The History of the KNS KFS spent a large amount of development time up front, using the best talent from each of the.
Selected Topics in Software Engineering - Distributed Software Development.
Introduction to Eclipse. What is Eclipse? An Integrated Development Environment Provides many features to ease C++ programming (and others, e.g. C/Java)
Eclipse 3.1 IDE Overview.
Jan Hatje, DESY CSS GSI Feb. 2009: Alarm System, Authorization, Remote Management XFEL The European X-Ray Laser Project X-Ray Free-Electron.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
Troubleshooting Security Issues Lesson 6. Skills Matrix Technology SkillObjective Domain SkillDomain # Monitoring and Troubleshooting with Event Viewer.
CSS – Control System Studio
What is WinRunner ► WinRunner is Mercury’s legacy automated testing tool ► It is similar to QTP in functionality ► WinRunner integrates with other Mercury.
 Programming - the process of creating computer programs.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.
Visual Basic Integrated Development Environment (IDE) 56:150 Information System Design.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
SharePoint Fest 2013 Chicago What’s New and Exciting (and not so great) in SharePoint Designer 2013 Workflows Ira Fuchs – SharePoint Technical Specialist,
COMPREHENSIVE Excel Tutorial 12 Expanding Excel with Visual Basic for Applications.
Customizing PDS OE as per your needs Date: 28 June 2016 Presenter: DivyaTheja Pachipula.
NetBeans Rich Client Platform Alex Kotchnev Software Developer Commerce Technologies Inc. Alex Kotchnev Software Developer Commerce Technologies Inc.
REDCap External Modules
Excel Tutorial 8 Developing an Excel Application
Capstone Project W-CMS `.
Topic: Python’s building blocks -> Variables, Values, and Types
© 2016, Mike Murach & Associates, Inc.
Building Regression Tests With PeopleSoft Test Framework
Goals Give you a feeling of what Eclipse is.
Module Overview Installing and Configuring a Network Policy Server
Topic: Python’s building blocks -> Variables, Values, and Types
The GEMBus Architecture and Core Components
Using Cascading Style Sheets Module B: CSS Structure
Department of Computer Science Homepage
Template library tool and Kestrel training
Microsoft Excel 2003 Illustrated Complete
© 2016, Mike Murach & Associates, Inc.
CIS16 Application Development Programming with Visual Basic
SEEM4570 Tutorial 1 Android SDK + XCode SDK +
Session 2: Metadata and Catalogues
1. Azure Data Explorer Azure Data Explorer enables rich data exploration over raw, structured, and semi-structured data delivering fast time to insight.
Database Management System
Standardizing and industrializing a business process – the dissemination use case Alessio Cardacino - ESTP Course “Information standards.
SDMX IT Tools SDMX Registry
Presentation transcript:

Envisage An Extensible Application Framework Martin Chilvers Enthought Inc

What is Envisage? A framework for Extensible Applications 2. Extensible GUI Applications 3. Extensible Scientific Applications

1. A Framework for Extensible Applications Plugin model – load, create, start and stop Plugins contribute to the application – Extension Points Well-defined places to add functionality/data – Application Objects Well-known/shared objects

Extension Points Declarative! Definitions are Python classes class Message(ExtensionPoint): author = Str text = Str Contributions are Python instances message = Message( author = “Martin Chilvers”, text = “The first rule of live demos: never do live demos” ) Stored in the Extension Registry

Application Objects Publish application.publish_application_object( uol, object, properties ) Lookup application.lookup_application_object(uol) Universal Object Locators (UOLs) – URL-like object references – Extensible set of supported protocols

Universal Object Locators Python import – Publish Create Python module – Lookup import://package.subpackage.module.symbol Service Registry ('Yellow Pages') – Publish application.publish_application_object( 'service://Plumber', Plumber(), {'price' : 50} ) – Lookup application.lookup_application_object( 'service://Plumber?price<100' )

An Envisage Application Extension Registry Service Registry Plugi n Application Objects

The Core Plugin Extension Points – Type Manager Adapters Categories Factories Hooks – Runnable Application Objects – Services Type manager(s) Naming

The Naming Service 'White Pages' style lookup – Publish application.publish_application_object( 'enthought/plumbers/fred', Plumber() ) – Lookup fred = application.lookup_application_object( 'name://enthought/plumbers/fred' )

Resource Types How domain types are 'lifted' into Envisage – Metadata – Additional behavior Visualization Serialization etc... Built using type manager – Adapters, Categories, Hooks

The Resource Plugin Extension Points – ResourceManager ResourceType Application Objects – Services Resource Managers

An Envisage Application Extension Registry Service Registry Plugi n Resource Plugin Core Plugi n Application Objects Naming Type Manager Resourc e Manage r

Key Concepts Extension Points (and extensions) – Declarative! Application Objects – UOLs, Service Registry, Naming... Type Management – Adapters, Categories, Hooks Resource Types

DEMO: 'Message of the Day' (MOTD) Application

What is Envisage? A framework for Extensible Applications 2. Extensible GUI applications 3. Extensible Scientific Applications

2. A Framework for Extensible GUI Applications The Workbench – A GUI for a common style of application – IDE-like Windows Perspectives Views Editors Actions – Menubars, Toolbars etc

Workbench Window View s Editor s Action s

Perspectives A set of related views etc – User configurable Support a specific user task (or tasks) – e.g. In an IDE tasks might be Editing Test Generation Debug Source code control Project management etc...

Demo: Perspectives

What is Envisage? A framework for Extensible Applications 2. Extensible GUI applications 3. Extensible Scientific Applications

3. A framework for Extensible Scientific Applications What we have – Text editor – Python shell – Mayavi – SciPy – Profiling – Debugging – Code browser Work-in-progress – Data import/export – Experiments – Materials Database – Distributed and Parallel computation – Scripting/Macro recording

Future Work Expand set of provided plugins Use Python Eggs for plugin loading – versioning/updating etc Documentation...

Further Information – Downloads – Mailing List – Source code repository (svn)