| Milos Overview |
| Why did we create the Milos Developer Tools? |
You can't yet set a reference to a database in Visual Studio and start working with high level, strongly typed objects that represent the database and interact with the database through stored procedures. The Milos Data Components provide a lot of behind the scenes code that allows us to build this type of environment, but it's not in real-time or even automatic. Even with all of the advanced features available in Milos Data Components, a lot of code still needs to be written to map database tables and stored procedures to the type of objects developers want to work with. After all, these business objects will have properties derived underlying database structures and that can't come pre-packaged.
The Milos Developer Services Code Generation Tool helps to automate the creation of Milos Business Objects and Business Entities from an existing database definition. By pointing the Code Generation Tool at either a legacy database or a new database created by hand or with a CASE or modeling tool, the developer can generate all of the code necessary for CRUD (create, update & delete) functionality of a single table or sets of parent-to-child or many-to-many (cross-linked) tables. Developer Services will even write code to enforce required columns and to set default values for new objects based on the defaults established in the database. If you prefer, the Code Generation tool will even create the stored procedures for all of the CRUD functionality. Once generated, the Business Object and Business Entity source files can be inherited from, used as partial classes or directly modified to fine tune and add additional functionality (such as parent-to-child-to-grandchild relationships, custom business rule enforcement and additional queries for filling combo boxes, etc). Note that direct modification of the classes will prevent regeneration of the classes.
The Test Driven Development Tools consist of Test Fixtures that help automate unit testing. Unit testing is an easy concept for most people to grasp and there are many unit testing tools available, the most popular of which is NUnit. The examples given for unit testing are usually code driven, but what if your objects deal with data? How do you know that a stored procedure is returning the "right" data? How do you know that the information your object inserted into the database was saved correctly? How can you run that test again, since inserting the same record will create a duplicate? Milos Test Fixtures allow developers to create a known temporary data environment in the database and then revert the database to a previous, known state for the next test.