LT: For the uninitiated, what抯 the relationship or difference between the .NET framework and pattern mechanisms? For someone used to working on a more granular level, where should they start to master this approach?
MD: Pattern mechanism is a tool (an add-in) that supports model-to-model transformations specified in the form of a pattern with additional transformation semantics. In other words, you define a pattern in such a way, that it can be applied to a model and that will perform model transforms.
A .NET framework is preconfigured solution (where a solution is an integrated set of .NET language projects). The preconfiguration includes (this might be an incomplete list):
Some initial content in the language projects.
Customization of and constraints on the VS development environment (for example, you can disable some operations on a project, change menus, and so on).
Customization and extension to the dynamic help system.
In our RDA Online Retail Kit (Rational Development Accelerator Kit), we are using both. We have created an EFT for our framework and we have created a set of patterns for customizing and extending the framework.
LT: I've been seeing texts about patterns for years. How does .NET make pattern-based architectures more doable?
MD: The key is if this is all separate from runtime environment and the implementation tools, it will be hard to do. Architectures can't be abstract patterns only analysts do. They must be real live artifacts that developers can connect directly to implementation artifacts such as Visual Studio .NET. It's also easier to generate testing from such models, because the models and the code can be much more tightly coupled, as ours are.
So it allows us to make the models more valuable. You can generate test cases, allow for model-driven development, and even debug at the model level later on. It makes the models more live—more tightly coupled with the implementation artifacts—and lets the developer view the model as a different way to interact with the application.