Family Tree Maker 2008 was released this week as completely redesigned software built with Microsoft technologies. The redesign starts at the user interface but doesn’t stop there. This version of Family Tree Maker is built on Microsoft’s .NET Framework and uses the Composite UI Application Block(CAB) and the Smart Client Software Factory(SCSF) . I am familiar with these technologies as I use them daily as part of my responsibilites as a Senior Software Architect building a client framework for application teams within my company.
A few weeks ago when I installed Family Tree Maker 2008 RC1, imagine my surprise when I discovered that it was built with the same frameworks that I use at work. I can run the software and understand how it is composed at the same time. I find myself thinking, this is the Shell, and these are Workspaces and the SmartParts.
The following CAB terms are useful for this discussion:
- Shell – the main window of the application that contains menus, toolbars, and Workspaces
- Workspace – a user interface container that holds SmartParts
- SmartPart – a section of the user interface devoted to a specific task
- Module – a deployable unit of code that can contain SmartParts or business logic; the Shell loads one or more Modules
Some of the benefits of building an application with CAB/SCSF are:
- Separation of Concerns – one team can build the Shell and many teams or developers can simultaneously build the business logic and SmartParts and later put them together. Also developers can focus on their strengths which results in more productive software development.
- Modularity – user interface components and business logic can be packaged is a deployable unit called a Module. To extend the software, just add another Module.
- Extensibility – there are many extensibility points built into CAB/SCSF besides the Module which allow better evolution of software over time.
Because the Shell is loosely coupled (connected) to its contents (SmartParts) and SmartParts are loosely coupled to each other, then the software is built to evolve with less development cost and less chance of breaking existing code.
What this means for those who use Family Tree Maker is that the software has been refreshed and will continue its long life. In fact, I am hopeful that the development team can deliver many enhancements in the future because of their decision to build on these frameworks provided by Microsoft.
I am also excited with the prospect of having genealogy software that I can customize. Besides the extensibility features built into CAB\SCSF, Family Tree Maker also has a Plugins menu which indicates that they plan to offer extensibility through additional companies or maybe a plugin community.
In Family Tree Maker 2008 RC1, there are no Plugins listed.
I am awaiting news from The Generations Network about guidelines for Plugin development. I will share them as I am able.
Links for Developers and Architects: