Features
AbstractALM has the following features:
- It is Open Source (published under the LGPL), therefore not requiring a NDA (like Microsoft’s SCC interface), but also not requiring publishing the source code of the using application. Therefore, it can be used in any environment, both open source and commercial environments.
- It is available to the public. All documentation, binaries, and source code are available on this Web site.
- It is open to other artifacts than file revisions. While not implemented yet, AbstractALM can easily extended to support such artifacts as change requests, requirements, test cases, and whatever else.
- It is open to other solutions. While the initial release of AbstractALM supports some vendors, other vendors are encouraged to support AbstractALM by adopting the framework.
While abstracting vendor specific SDKs, AbstractALM is not replacing them:
- AbstractALM is only a very limited subset of the SDK. Its goal is to abstract very common features, such as the check-in and check-out process of specific artifacts.
- AbstractALM is only supporting very limited administrative features, such as creating new users. Since the architecture of SCM solutions is very different, it is not possible to manage projects, views, processes, etc.
In fact, AbstractALM is still using the vendor SDK. The library uses the vendor-specific SDK to access the SCM solution and execute operations as required by AbstractALM. The library also provides access to the instance of the SDK (Connection.NativeObject), therefore providing both an abstract interface for common tasks and a native interface for vendor-specific tasks.
Layers of the AbstractALM Framework
The degree of which the application uses the vendor SDK depends on the functionality and the application’s level of abstraction.