Developing Applications Using Meta Data
After an information model is installed in a repository database, you can program against it using the repository API.
Before you begin programming, it is helpful to understand how the information model is constructed. The information model completely describes at least a portion (if not all) of the code that you must provide. If it contains customer and order objects, your code should instantiate customer and order object instances.
Model-driven development does not place boundaries on what your application can do. As always, application code can support whatever structures and behaviors are required of it, regardless of whether they are described by a model. To be especially useful, however, your information model must contain the most complete set of meta data types that is possible. The key point to understand is that the information model provides the minimum design that you must implement in your code.
If you are using the Microsoft® SQL Server™ 2000 Meta Data Services Software Development Kit (SDK), you can speed up your development effort by incorporating samples and using the tools it provides to generate program files from your information model.
For tool vendors, Meta Data Services provides a basis for integrating tools and managing tool meta data. Meta Data Services can act as an intermediate store, converting the output from one tool into the input for another tool. It also provides a way to create variants of a specific application, so that different workgroups can simultaneously pursue new application development or maintain an existing application. Meta Data Services includes functions that allow you to track this activity and then synchronize or merge the versions later.
Using meta data improves the way you develop applications. When you use meta data, you separate design from implementation. You can create a design once and then implement that design using a variety of tools. When you use meta data types, you can redirect a specific application design to different operating systems, database, networks, and transaction processors by using repository data to drive the implementation tools.