Plug-in architectures and platforms represent a promising approach for building software systems which are extensible and customizable to the particular needs of the individual user. For example, the Eclipse platform, as the most prominent representative of plug-in systems, is based on a unique plug-in and extensibility concept and has succeeded in establishing itself as the leading platform for the development of tool environments. This paper introduces a new plug-in architecture for the .NET platform which shows much resemblance to Eclipse. However, whereas Eclipse is a Java-based system and uses XML to describe extensions, our architecture relies on .NET concepts such as custom attributes and metadata to specify relevant information directly in the source code of an application. We argue that this approach is more readable and easier to maintain. As a case study for our plug-in architecture we present a new plugin platform for implementation of rich client applications in .NET.
Plug-in components are a means for making feature-rich applications customizable. Combined with plug-and-play composition, end users can assemble customized applications without programming. If plug-and-play composition is also dynamic, applications can be reconfigured on the fly to load only components the user needs for his current work. We have created Plux.NET, a plug-in framework that supports dynamic plug-and-play composition. The basis for plug-and-play in Plux is the composer which replaces programmatic composition by automatic composition. Components just specify their requirements and provisions using metadata. The composer then assembles the components based on that metadata by matching requirements and provisions. When the composer needs to reuse general-purpose components in different parts of an application, the component model requires genericity. The composer depends on metadata that specify which components should be connected and for general-purpose components those metadata need to be different on each reuse. We present an approach for generic plug-ins with component templates and an implementation for Plux. The general-purpose components become templates and the templates get parameterized when they are composed.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.