|1999 - 2000
||Design & Build
||C & C++
||Framework & User Interface abstractions
Plug-in Architecture for Perforce
Perforce is a fast SCM tool based on a client / server architecture:
Programmers run the client on their workstations to check code in
and out of the server. When Perforce came to us they had a command
line client, a graphical client for Windows, and two clients that
integrated into different development environments.
With modern integrated development environments, if an external tool
is well integrated it can easily become a major time saver for the
programmer. If a tool is not well integrated, programmers won't
use it. Alas, there is little standardization here: few environments
share the same framework for extension.
Glyphic analyzed the extension mechanisms of different development environments,
and combined that with the functional requirements of a Perforce
client. We designed a layered system, with a new extension abstraction
that could allow an efficient implementation.
The result: An implementation of several plug-in components that
achieves maximal code sharing: The Perforce code is completely generic,
operating specific user interface code is share among all plug-ins
on a given platform, and the code specific to each environment is
minimal. This makes Perforce's code more maintainable.