We have developed a data access code generation tool called cgen that does object/relational mapping between .NET 2.0 and MySQL. This tool starts with an XML map of the database schema. From the XML, cgen generates a set of .NET 2.0 classes that handle the data access code. This tool is specifically geared to generate C# classes to talk to a MySQL database; we don't use SQL Server at all today.
Our tool has been released as open source (see [login to view URL]).
Note that the current (unreleased) version of cgen is in our publicly-readable Subversion repository, located at [login to view URL] For this project, you should start with this code, since it's different than what's been released on the web site.
Here are the features we'd like to add:
* [Generate List Methods for Legacy Compatibility][1]
* [Exception handling in XML parsing and code generation][2]
* [Support for nullable DateTime types][3]
* [Generate GetReader methods][4]
* [Make Factory Classes Static][5]
* [Support different connection strings for reads and writes][6]
* [Support for multiple-field Where clause][7]
* [Default values for properties][8]
The tasks are described in detail in our Trac system.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows Server 2003, .NET Framework 2.0, MySQL 5.0.