6.4 Strategic aspects

The last part of this evaluation investigates some strategic aspects. These aspects should help to forecast the availability of the framework in the future. Further, the risk should be estimated, if the maintenance of the framework is discontinued soon. Important to note is that the information for this part is gathered at July 3, 2007.

Requirement CAB/SCSF May 2007 Spring .NET Version 1.1 SharpDevelop Version 2.1
License (o) (+) (+)
Roadmap (o) (+) (-)
Support (+) (+) (o)
Number of involved Persons (o) 14 (+) 18 (-) 2

Table 4: Shows the strategic aspects of the evaluation (July 3, 2007).

License

All investigated solutions are under an open source license. This allows viewing and editing the source code. It can be helpful for maintaining the framework by own staff if it is necessary. However, this should only be a backup plan because the frameworks are quite extensive. It would take some time for a developer to understand the framework enough for executing maintenance tasks. The CAB framework has a limitation since Microsoft does not allow their Application Blocks to run on other operating systems than Windows. Right now this is not an issue for the Test Suite but it limits the strategic decisions for the future.

Roadmap

Roadmaps are useful information for learning what direction a framework will take. Still the information is mostly a matter of change and it is not possible to rely on it. Furthermore, roadmaps do seldom show a strategic long term plan of a framework.
Microsoft does not have any plans to develop the Smart Client Software Factory and CAB any further [Block07]. The reason is the announcement of the project Acropolis which should become the successor of CAB. Microsoft states that they are working on a migration path from CAB to Acropolis.
On the official website of Spring .NET it is possible to find plans for the successor version 1.2 and 1.3 already. With this information it is possible to state that Spring .NET is further developed and maintained in the near future.
The official website of SharpDevelop shows a roadmap for the successor version 3.x. However, the roadmap does not contain any information about changes at the core level.

Support

Support is not that important as the solutions ship with the source code. Even though, it can be more economic to use the commercial support instead of an employee for specific tasks. Typical tasks for using support are bug fixing in the framework and employee training.
Microsoft provides support for the Smart Client Software Factory and CAB. This information can be found on the official SCSF website.
The company Interface21 coordinates the Spring Framework .NET project. Information about available training can be found on the official Spring .NET website.
The building of applications on top of the SharpDevelop core is not supported by the company IC#Code. This company leads the SharpDevelop project.

Number of involved persons

The number of involved persons in the projects can help to determine the risk of discontinuing an open source project.
Microsoft has already announced that the Composite UI Application Block is discontinued. A migration path to the successor project is already in work. The number of involved persons in the SCSF project is read from the SCSF community website11.
In the Spring .NET project 18 persons are involved. The risk is minimal that Spring .NET does not survive for the next years. This number is read from the SourceForge website12.
In SharpDevelop are just two persons which are registered to be involved. Therefore, the risk for SharpDevelop to be discontinued is high. The number is read from the SourceForge website13.

6.5 Decision

The most applicable framework for the Test Suite application is the Composite UI Application Block with the extensions provided by the Smart Client Software Factory. CAB supports all defined requirements of chapter 2 at minimum partly. It is superior to the other solutions because it has the highest degree of fulfilling the requirements. Therefore, an implementation of the Test Suite on top of CAB causes the least effort.
Spring .NET has some advantages over CAB. However, it lacks the support for developing Windows-based applications. Due to the extensible nature of the framework it would be possible to add the missing features. It still requires a respectively high effort to implement them. Another major drawback is the amount of configuration that is necessary to build an application in the size of the Test Suite. Further, it requires in-depth knowledge of the modules to wire them together. The autowiring functionality does not help much in this case.
The SharpDevelop project is not applicable since it does not support louse coupling. This results in difficulties for separating the programming to different developer teams. Additionally, it makes the testing of the modules complicated. The high dependency to the framework and the lack of loosely coupled events does not meet the requirements. SharpDevelop is not intended to be an application framework. Thus, the interfaces are more unstable than in the other solutions investigated. Unstable interfaces in a framework result in a high maintenance effort for own applications.

Both solutions, Spring .NET and SharpDevelop, have a few advantages over CAB. In other projects, the decision on using one of these solutions may be better. If one or none solution is applicable for an application, a study of the design ideas of these frameworks is useful too. The prototype presented in the next chapter is built on top of the Composite UI Application Block. The prototype implementation even uses some good ideas from the SharpDevelop project.

11 The project website on CodePlex: http://www.codeplex.com/smartclient

12 The project website on SourceForge: http://sourceforge.net/projects/springnet

13 The project website on SourceForge: http://sourceforge.net/projects/sharpdevelop