Patent ID: 7685563
Filing Date: 2010-03-23
Classification: G06F

Abstract:
1. A method for building an extensible project system for software development by allowing a project flavor with ability to customize parts of a base project system to be applied to the base project system comprising: providing a base project component object model (COM) object comprising data for creating an extensible project system, wherein the base project COM object implements a base project configuration COM object that includes configuration properties for the base project COM object, the configuration properties comprising an indication of a build of the extensible project system, the base project COM object implementing an API (application programming interface) called by the base project COM object to invoke configuration properties of the base project COM object; providing a flavor COM object comprising data for modifying said base project system for a specific purpose, wherein the flavor COM object includes flavor-specific project configuration properties comprising a project flavor set, the flavor set comprising a caption of a project node, an icon of a project node, a property allowing a project browse object to be completely overridden, a control allowing a project to be renamed, a sort priority control, a property allowing a command to be added, a property allowing a command to be removed, a property allowing a command to be disabled, a filter, a property allowing a default generator given a file extension to be determined, and a property allowing a human-readable generator name to be mapped to a COM object, the flavor COM object implementing an API called by the base project COM object to invoke flavor-specific project configuration properties of the flavor COM object; signaling, by the base project COM object, to the flavor COM object that the base project configuration COM object needs to be extended; creating a flavored project system adapted for said specific purpose by COM-type aggregation with cooperation between COM objects using said base project COM object as a participating COM object and said flavor COM object as a controlling COM object, wherein the controlling COM object can replace or enhance interfaces of the participating COM object; and creating, by the flavor COM object, a flavored project configuration COM object by COM-type aggregation that determines which implementation of said APIs to be used and allows said flavor COM object to override said base project COM object, wherein at least one configuration property for the base project COM object is overridden by a corresponding flavor-specific project configuration property.