Photo:1 Photo:2 Photo:3 Photo:4 |
| Purpose and examples | |
| 2>
Applications support plug-ins for many reasons. Some of the main reasons include:
to enable third-party developers to create abilities which extend an application
to support easily adding new features
to reduce the size of an application
to separate source code from an application because of incompatible software licenses.
Specific examples of applications and why they use plug-ins:
Email clients use plug-ins to decrypt and encrypt email (Pretty Good Privacy)
Graphics software use plug-ins to support file formats and process images (Adobe Photoshop, GIMP)
Media players use plug-ins to support file formats and apply filters (foobar2000, GStreamer, Quintessential, VST, Winamp, XMMS)
Microsoft Office uses plug-ins (better known as add-ins) to extend the abilities of its application by adding custom commands and specialized features
Packet sniffers use plug-ins to decode packet formats (OmniPeek)
Remote sensing applications use plug-ins to process data from different sensor types (Opticks)
Smaart, an audio spectrum analysis application which accepts plug-ins for third-party digital signal processors
Software development environments use plug-ins to support programming languages (Eclipse, jEdit, MonoDevelop)
Venue, a digital mixing console architecture developed by Digidesign and owned by Avid Technology, allows third party plug-ins
Web browsers use plug-ins (often implementing the NPAPI specification) to play video and presentation formats (Flash, QuickTime, Microsoft Silverlight, 3DMLW)
[edit] Tags:Web Browsers,Quicktime,Microsoft Silverlight,Edit,Third-party Developers,Source Code,Software Licenses,Email Clients,Pretty Good Privacy,Graphics Software,Adobe Photoshop,Gimp,Media Players,Foobar2000,Gstreamer,Quintessential,Vst,Winamp,Xmms,Microsoft Office,Packet Sniffers,Omnipeek,Remote Sensing Applications,Opticks,Smaart,Digital Signal Processors,Software Development Environments,Programming Languages,Eclipse,Jedit,Monodevelop,Venue,Digital Mixing Console,Digidesign,Avid Technology,Npapi,Flash,3dmlw,Api,Programming Language,Software, | |
| Mechanism | |
| 2>
Example Plug-In Framework
As shown in the figure, the host application provides services which the plug-in can use, including a way for plug-ins to register themselves with the host application and a protocol for the exchange of data with plug-ins. Plug-ins depend on the services provided by the host application and do not usually work by themselves. Conversely, the host application operates independently of the plug-ins, making it possible for end-users to add and update plug-ins dynamically without needing to make changes to the host application.[1][2]
Open application programming interfaces (APIs) provide a standard interface, allowing third parties to create plug-ins that interact with the host application. A stable API allows third-party plug-ins to continue to function as the original version changes and to extend the life-cycle of obsolete applications. The Adobe Photoshop and After Effects plug-in APIs have become a standard[3] and competing applications such as Corel Paint Shop Pro have adopted them.
[edit] Tags:Protocol,Application Programming Interfaces,Third Parties,Life-cycle,After Effects,Corel Paint Shop Pro, | |
| Compared to extensions | |
| 2>
Extensions differ slightly from plug-ins. Plug-ins usually have a narrow set of abilities. For example, the original impetus behind the development of Mozilla Firefox was the pursuit of a small baseline application, leaving exotic or personalized functionality to be implemented by extensions to avoid feature creep. This is in contrast to the "kitchen sink" approach in its predecessors, the Mozilla Application Suite and Netscape 6 and 7. Therefore, after integration, extensions can be seen as part of the browser itself, tailored from a set of optional modules.
Firefox also supports plug-ins using NPAPI. When the browser encounters references to content a plug-in specializes in, the data is handed off to be processed by that plug-in. Since there is generally a clear separation between the browser and the plug-in, the results are discrete objects embedded within a webpage. The same distinction between plug-ins and extensions is in use by other web browsers, such as Microsoft Internet Explorer, where a typical extension might be a new toolbar, and a plug-in might embed a video player on the page. Since plug-ins and extensions both increase the utility of the original application, Mozilla uses the term "add-on" as an inclusive category of augmentation modules that consists of plug-ins, themes, and search engines.
[edit] Tags:Mozilla Firefox,Extensions,Feature Creep,Kitchen Sink,Mozilla Application Suite,Toolbar,Mozilla,Add-on, | |
| History | |
| 2>
Plug-ins appeared as early as the mid 1970s, when the EDT text editor running on the Unisys VS/9 operating system using the Univac 90/60 series mainframe computer provided the ability to run a program from the editor and to allow such a program to access the editor buffer, thus allowing an external program to access an edit session in memory.[4] The plug-in program could make calls to the editor to have it perform text-editing services upon the buffer that the editor shared with the plug-in. The Waterloo Fortran compiler used this feature to allow interactive compilation of Fortran programs edited by EDT.
Very early PC software applications to incorporate plug-in functionality included HyperCard and QuarkXPress on the Macintosh, both released in 1987. In 1988, Silicon Beach Software included plug-in functionality in Digital Darkroom and SuperPaint, and Ed Bomke coined the term plug-in.
Currently[update], programmers typically implement plug-in functionality using shared libraries compulsorily installed in a place prescribed by the host application. HyperCard supported a similar facility, but more commonly included the plug-in code in the HyperCard documents (called stacks) themselves. Thus the HyperCard stack became a self-contained application in its own right, distributable as a single entity that end-users could run without the need for additional installation-steps.
[edit] Tags:Software Application,Edt,Text Editor,Unisys,Vs/9,Operating System,Univac 90/60,Mainframe Computer,Waterloo,Compiler,Fortran,Pc,Hypercard,Quarkxpress,Macintosh,Silicon Beach Software,Digital Darkroom,Superpaint,Shared Libraries, | |
| Frameworks | |
| 2>
Software developers can use the following plug-in frameworks (organized here by programming language) to add plug-in ability to programs:
[edit] Tags: | |
| C | |
| 3>
C-Pluff, a plug-in framework for C programs. It has been strongly inspired by the Java plug-in framework in Eclipse
[edit] Tags: | |
| C++ | |
| 3>
Boost Extension, available from Boost sandbox
FxEngine Framework, open dataflow processing framework for audio, video, signal, etc.
Google Native Client, sandboxing technology to run safely a subset of Intel x86 native code using software-based fault isolation, from web browsers
Qt Plug-Ins, part of Nokia Qt framework
OmniPeek Plug-in Wizard, creates plug-ins for WildPackets' OmniPeek Network Analyzer
Pugg open source framework for plug-in management
Pluma, small, cross-platform
OFX, open standard for visual effects plug-ins
Cross-platform plug-in framework, accompanying a series of articles by Gigi Sayfan in Dr. Dobb's Journal
Firebreath An open source, cross-platform framework that builds NPAPI and ActiveX plugins from the same codebase.
[edit] Tags:Google Native Client, | |
| Java | |
| 3>
Java Plug-in Framework (JPF), uses mechanism adapted from Eclipse's plug-in mechanism from its pre-OSGi era
Java Simple Plugin Framework (JSPF), lightweight annotation based plug-in system, supports dependency injection, suited for small to medium sized projects
OSGi, standardized dynamic component system suited for plug-in programming, used in Eclipse, many commercial Java EE application servers, Spring Framework, and embedded applications
Rich Client Platform (RCP), platform for applications adapted from Eclipse, applications are written as plug-ins and may themselves have further plug-ins
Netbeans Platform, most commonly known for the Netbeans IDE, which is an application built on the Netbeans Platform, which is a framework that allows making modules, plugins for other NB applications (usually a group of interacting modules) and complete applications like the netbeans IDE
jin-plugin, minimal framework for Java, PHP
[edit] Tags:Annotation Based,Dependency Injection,Osgi,Java Ee,Spring Framework, | |
| Python | |
| 3>
dip
Envisage
Colony Framework, inspired by OSGi and Eclipse RCP simplifying the concepts of both and adapting them to Pythonic philosophy
PyUtilib, system based on Trac component architecture, a simplified Zope Component Architecture
Setuptools
Sprinkles
The Twisted Plug-in System
Yapsy
Zope Component Architecture
[edit] Tags: | |
| .NET | |
| 3>
.NET Add-In Team Blog
AL Platform
Code Project
Mono Add-ins, for .NET, Mono
Plux.NET, platform to build plug-in systems under .NET
Managed Extensibility Framework
Compact Plugs
[edit] Tags: | |
| See also | |
| 2>
Look up plug-in in Wiktionary, the free dictionary.
Look up add-on in Wiktionary, the free dictionary.
Applet
Shared library Symfony
Add-ons for Firefox
Add-on (Mozilla)
Browser extension
[edit] Tags: | |
| References | |
| 2>
^ a b Mozilla Firefox plugins - Description of the difference between Mozilla Firefox plugins and extensions under the general term add-on.
^ Wordpress Plug-in API - Description of the Wordpress Plug-in architecture.
^ Photoshop Plug-ins - Description of the significant impact of Photoshop Plug-in Architecture.
^ EDT Text Editor Reference Manual, Cinnaminson, New Jersey: Unisys Corporation, 1975
Retrieved from "http://en.wikipedia.org/w/index.php?title=Plug-in_(computing)&oldid=475753067"
Categories: Application programming interfacesTechnology neologismsSoftwareSoftware add-onsHidden categories: Articles containing potentially dated statements from 2008All articles containing potentially dated statements
Personal tools
Log in / create account
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
Actions
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact Wikipedia
Toolbox
What links here
Related changes
Upload file
Special pages
Permanent link
Cite this page
Print/export
Create a bookDownload as PDFPrintable version
Languages
العربية
Azərbaycanca
Български
Català
Česky
Dansk
Deutsch
Eesti
Ελληνικά
Español
Esperanto
Euskara
فارسی
Français
한국어
Bahasa Indonesia
Íslenska
Italiano
עברית
Latina
Latviešu
Nederlands
日本語
Norsk (bokmål)
Polski
Português
Română
Русский
Slovenčina
Suomi
Svenska
ไทย
Türkçe
Українська
Tiếng Việt
中文
This page was last modified on 8 February 2012 at 12:59.
Text is available under the Creative Commons Attribution-ShareAlike License;
additional terms may apply.
See Terms of use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.Contact us
Privacy policy
About Wikipedia
Disclaimers
Mobile view
if ( window.isMSIE55 ) fixalpha();
if ( window.mediaWiki ) {
mw.loader.load(["mediawiki.user", "mediawiki.util", "mediawiki.page.ready", "mediawiki.legacy.wikibits", "mediawiki.legacy.ajax", "mediawiki.legacy.mwsuggest", "ext.gadget.wmfFR2011Style", "ext.vector.collapsibleNav", "ext.vector.collapsibleTabs", "ext.vector.editWarning", "ext.vector.simpleSearch", "ext.UserBuckets", "ext.articleFeedback.startup", "ext.articleFeedbackv5.startup", "ext.markAsHelpful"]);
}
if ( window.mediaWiki ) {
mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":1,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"highlightbroken":1,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":false,"showjumplinks":1,"shownumberswatching":1,"showtoc":1,"showtoolbar":1,"skin":"vector","stubthreshold":0,"thumbsize":4,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":1,"watchdefault":0,"watchdeletion":0,"watchlistdays":3,"watchlisthideanons":0,
"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"flaggedrevssimpleui":1,"flaggedrevsstable":0,"flaggedrevseditdiffs":true,"flaggedrevsviewdiffs":false,"vector-simplesearch":1,"useeditwarning":1,"vector-collapsiblenav":1,"usebetatoolbar":1,"usebetatoolbar-cgd":1,"wikilove-enabled":1,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"searchNs100":false,"searchNs101":false,"searchNs108":false,"searchNs109":false,"gadget-wmfFR2011Style":1});;mw.user.tokens.set({"editToken":"+\\","watchToken":false});;mw.loader.state({"user.options":"ready","user.tokens":"ready"});
/* cache key: enwiki:resourceloader:filter:minify-js:4:b41a86ec4e0fe8329bc3ce917e792339 */
}
Tags:Computing, | |
zote monety |