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).
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.
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 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.
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.
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