What is Constructor/MDRAD?
Constructor/MDRAD is a toolkit integrated to
the Visual Studio 2002, 2003, 2005
or 2008 IDE. It lets you build a set of classes that closely
follow your database schema, and provides an extensive API giving you full
CRUD (Create, Read, Update, Delete) functionality at run time, without the
need to write or hard-code any SQL statements.
The Object Run Time assemblies handle data inheritance,
one-to-one, one-to-many and many-to-many relationships. Data is automatically
lazy-filled when relationship paths are navigated (e.g. by requesting
Customer.Orders) and object queries provide a way to retrieve data base on
specific criteria.
|
|
|
How does it do that?
Constructor/MDRAD is a developer
productivity tool, using a 'Model' to describe business entities (a network of
related objects). The Model is either created from scratch, or by
reverse-engineering a database schema or XML Schema. You can even build up a
library of Models and use parts of these to create new Models. The Model can be
extended so that it does not have to simply reflect a database mapping on a
one-one basis. The primary view uses a familiar tree view to visualize the
Model and there is one simple option to create Class Diagrams (a graphical view
of related objects) that you can use if desired. The Model is UML based but
don't worry, it's jargon-free and very easy to use.
Once you have defined a Model, you use the toolkit to transform
it into a .NET assembly - we call this a Run Time Model - which you can program
against and deploy along with the other assemblies for your application.
|
|
|
Why would I need it?
Creating basic forms with one or two data sources is easy to do.
But development of fully fledged applications with possibly hundreds of
underlying tables and their data relationships is a much different story.
There's all the SQL statements. Then all the code to manipulate the data. Add
rules and validation. And the not so small matter of tying it all up in a set
of forms. Then you need to document the design so the next guy can take over
and to ensure everyone who matters knows how the system fits together, so
the application can be maintained and enhanced (this includes you 6 months
later).
|
|
|
How does a Model help?
The Model effectively describes the objects and their
relationships, reducing the need for separate documentation. The Model also
allows you to define and generate code properties and methods that allow you to
extend the run time functionality of your objects. And the Model can apply
changes in the defined structure to your database to speed up deployment. Our
Model is based on a design ratified by the Object Management Group (see Model
Driven Architecture).
|
|
|
Name some benefits...
You can create a Model by
reverse-engineering a database schema, or create one from scratch (perhaps
using our Model Repository feature). You can generate C# or VB code from the
Model so you can extend run time functionality. You can code against
'non-persistent' attributes you define in the Model but that do not need to
exist in the database. You can create a database schema from the Model (or
synchronize one with changes made). You no longer need to write data access
code, object layers and complex SQL statements. The built in Object
Relational Mapper handles data access for you and has an extensive API to
handles rules, validation, data inheritance, many to many relationships,
import/export of objects, provision of data to report engines, object rollback
and much more.
|
|
|
I need more...
How about a database
schema compare tool, an event hook component to allow you to centralize
and rationalize UI code, components and controls to provide datasources based
on a Model, design-time UI helpers to hasten form creation, a unique 'Context
View' model and code layer to allow you to extend or restrict core classes, a
Model Browser to help you build new models from existing libraries, and a
Standalone Model Editor to use outside of Visual Studio so that non-programmers
can view and edit models.
|
|
|
I'm not moving over to the latest Visual Studio .NET yet - can
I use it with an earlier version?
Constructor/MDRAD integrates with Visual Studio
2002, 2003, 2005 and 2008. Better yet, you get 2005/2008-like data source
features within 2002/2003 to assist you in creating a data-driven User
Interface more quickly.
|
|
|
Can I use it with Third Party UI controls?
Yes - you can just databind to controls as normal. Or and you
can define simple XML templates to help you define styles and set properties at
design time, when you use the Constructor/MDRAD UI generation
utility. You can build up a library of templates and just drag and drop
next time to replicate all your preferred look and feel in another form.
|
|
|
I am not into UML and want to get on with programming rather
than learning theory.
You will be using a minimum of modeling terminology. The Constructor/MDRAD
Objecteer (model editor) is easy to learn and use and will help
you define your data classes. Not only that, but the data mappings are done for
you, and you can generate C# or VB.NET code modules to add your own
business logic.
|
|
|
It's a pain when the model goes out of sync with the database
schema, isn't it?
There is a database schema synchronization feature - and you can
reverse-engineer a database schema in order to create a new Constructor/MDRAD
model. You can create data-driven forms in a few minutes and prototype
your data.
|
|
|
Does it help me with SQL statements in terms of querying and
updating the database?
The Object Relational Mapping and Data Access layer built in to
Constructor/MDRAD creates the SQL statements dynamically based on
the class definitions in your model. You can use Stored Procedures to query and
update data if you prefer. Data is 'lazy-filled' in order to only retrieve the
data you want to view/amend. You can track the SQL generated statements.
Many-to-many relationships and data inheritance are catered for.
|
|
|
I don't really want to have to change my whole development
style. I like the 'agile' approach.
Constructor/MDRAD makes it much easier to
create a set of classes with which you wish to access your data. The Model
becomes a valuable document and lets you see how all your classes inter-relate.
Automatic mappings mean it is easier to make changes and sync the database
schema. And dynamic code generation means you can keep the overall lines of
code down to a minimum - you simply generate code where you want to add logic
of your own. Other than that you can develop as you wish.
|
|
|
These lifecycle toolkits are way too expensive.
With its very competitive pricing,
Constructor/MDRAD will fit into practically any budget. And it
includes a Database Comparison Utility, Model Browser, UI Event Redirector,
Model Editor, ORM/Data Access Layer and API. Add to that the ability to save up
to 50% of development time, and you can see the real developer/business value
for money proposition that Constructor/MDRAD puts forward.
|
|
|
What about support and run time costs?
The toolkit provides a royalty-free Object Relational Mapping
and Data Access component for your deployment. Support is priced competitively
and is optional. We endeavour to answer all queries promptly.
|
|
|