Differences between revisions 34 and 35
Revision 34 as of 2012-05-10 21:48:19
Size: 2685
Editor: AlexPico
Comment:
Revision 35 as of 2012-05-10 22:31:34
Size: 3665
Editor: AlexPico
Comment: under construction...
Deletions are marked like this. Additions are marked like this.
Line 19: Line 19:
=== Porting a 2.x Plugin to a 3.0 App === === Plugins, Simple Apps and Bundle Apps ===
If you've developed Cytoscape plugins before, then you will notice quite a few changes in developing for Cytoscape 3.0. These changes cover both core and plugin architectures. To highlight the differences and added benefits of developing on the Cytoscape 3.0 platform, we're rebranding ''plugins'' as ''apps''. So, consider porting your 2.x plugins to 3.0 apps. And if you are new to Cytoscape development, you can pretty much ignore plugins and focus on the app developer documentation.
Line 23: Line 24:
=== Tutorials ===
 * [[http://opentutorials.cgl.ucsf.edu/index.php/Introduction_to_Cytoscape_3_App_Development|Introduction to Cytoscape 3 App Development]]
There are two kinds of apps. ''Simple Apps'' are single jar files without dependencies on third-party jars. If you are developing an app with basic functionality that doesn't rely on other libraries, then you can skip some of the new technologies as build a Simple App. ''Bundle Apps'' are OSGi bundles that take full advantage of the new 3.0 architecture and technologies. With Bundle Apps, you can reference third-party jars in a consistent way and avoid the library clashes which were common in 2.x. We will host third-party jars to support your apps, if they are not already hosted by maven central or our nexus repository. If your app will depend on other libraries, then we recommend that you look into writing a Bundle App.
Line 27: Line 27:
 * [[/Cytoscape_3_App_Cookbook|Cytoscape 3 App Cookbook]]
 * [[../CoreDevelopment/Architecture|Cytoscape 3 Architecture]]
Line 31: Line 30:
=== Getting Started ===
 * [[/Cytoscape_3_App_Cookbook|Cytoscape 3 App Cookbook]]

Cytoscape 3.0 App Development

Introduction

Cytoscape 3.0 has a greatly simplified API that is clearly defined. API jars are strictly separate from the implementation jars. We believe that we’ve learned our lessons with 2.x and have greatly improved the usability of the API to benefit our active developer community. The API is versioned using the Semantic Versioning standard. This means that an app designed to work with an early version of 3.x will be guaranteed to work through at least version 4.0 of Cytoscape. Our commitment to supporting app developers is stated in an explicit backwards compatibility contract found in each class in the public API so that both core developers and app writers will understand how a class might change.

Architecture and Technologies

Cytoscape 3.0 strives for a modular architecture where the application consists of a set of jar files where each jar contributes a well defined subset of functionality to the application. The design is oriented around the OSGi service model (i.e. micro service) with API and implementation separated into different jar files. We’ve introduced the use of OSGi as a way to create and enforce a modular, sustainable code base. We’ve introduced Maven as a build system to help manage the many jar files created.

API and Javadocs

Plugins, Simple Apps and Bundle Apps

If you've developed Cytoscape plugins before, then you will notice quite a few changes in developing for Cytoscape 3.0. These changes cover both core and plugin architectures. To highlight the differences and added benefits of developing on the Cytoscape 3.0 platform, we're rebranding plugins as apps. So, consider porting your 2.x plugins to 3.0 apps. And if you are new to Cytoscape development, you can pretty much ignore plugins and focus on the app developer documentation.

There are two kinds of apps. Simple Apps are single jar files without dependencies on third-party jars. If you are developing an app with basic functionality that doesn't rely on other libraries, then you can skip some of the new technologies as build a Simple App. Bundle Apps are OSGi bundles that take full advantage of the new 3.0 architecture and technologies. With Bundle Apps, you can reference third-party jars in a consistent way and avoid the library clashes which were common in 2.x. We will host third-party jars to support your apps, if they are not already hosted by maven central or our nexus repository. If your app will depend on other libraries, then we recommend that you look into writing a Bundle App.

TEMP

Cytoscape_3/AppDeveloper (last edited 2016-01-23 00:14:12 by 192)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux