ODS Release Notes

Changes to ODS by release

ODS 2.2.0 Release Notes - Changes from ODS 2.1.0

Breaking Changes

We made the hard decision to modify the generated source code so that it is now compliant with Microsoft’s style and layout guidelines. Ordinarily we try very hard to ensure backward compatibility with previous ODS versions. However, in this case the changes have resulted in some relatively minor breaks with ODS 2.1 generated code. For example, we have removed underscores from the source code so that data structure classes that were prefixed "Data_" in ODS 2.1 are now prefixed "Data" in ODS 2.2.

Major New Features/Enhancements

  • Added a new SQLite 3 plug-in for ODS Design Studio.
  • Added the ability to import classes from an existing SQL Server 2000 database.
  • Removed the build limit and increased the number of classes allowed in Evaluation mode.
  • All plug-ins have been modified so that all database object names (tables/stored procedure names etc...) created by the DAL can be automatically prefixed with text that you provide. This should eliminate any likelihood of ODS database object names conflicting with other existing database object names. This has two major benefits:
    1. It is now possible to "partition" a database so that it contains multiple ODS data stores either created by the same DAL, different DALs or both.
    2. It is now much easier for ODS data stores to co-exist in databases used by other systems such as the ASP.NET Membership tables or DotNetNuke.
  • Modified all plug-ins so that the Exists methods carry out the following steps:
    1. Check if the database exists
    2. Check that the database contains an ODS data store by looking for the ODS settings table
    Exists now returns false if the target database exists but does not contain the ODS data store.
  • Added a new "SkipDatabaseCreation" value to the initialisation details of all plug-ins. This allows the data store tables/stored procedures to be created on any existing database. The CreateDatabase methods now work as follows:
    1. If "SkipDatabaseCreation" is set then ODS will attempt to create the required tables and stored procedures on the specified database.
    2. If "SkipDatabaseCreation" is NOT set then ODS attempts to create a new blank database and then creates the data stores tables and stored procedures.
  • All generated source code is now fully compliant with the Microsoft Source Analysis tool.
  • The version dialog now provides a break down of exactly what changed between builds.
  • Data Store providers now accept database connection strings.

Other New Features/Enhancements

  • ODS now includes copyright information in the header comments of all source code files.
  • If there are COM references in the generated source code and the .NET SDK folder is not specified then ODS will no longer generate and execute a batch file that compiles the generated source code.
  • Added two new global settings: default source code copyright holder and default source code copyright text.
  • Added two new solution properties: source code copyright holder and source code copyright text.
  • Renamed the "__ODS" table that holds data store settings in all plug-ins to "DataStoreSettings". You will need to manually rename this table in databases created with older versions of ODS.
  • Added a new data store setting "DataStoreProviderType" so that the data store provider that created/upgraded the database can be easily determined.
  • Modified the generated data store provider upgrade source code so that it now checks that the target database to upgrade was created/upgraded by the same data store provider and if not throws an exception.
  • Renamed the "CreateDataStore" and "DeleteDataStore" data store provider methods to "Create" and "Delete" to bring them in line with the other methods.
  • Removed the redundant parameter from the data store provider "Create" method.
  • Removed the redundant "ProviderNameDescription" data store provider property.
  • Renamed the data store provider property "VersionMajor", "VersionMinor", "Build", "TransactionSupported", "InTransaction" and "Name" to "ProviderVersionMajor", "ProviderVersionMinor", "ProviderBuild", "ProviderSupportsTransactions", "TransactionStarted" and "ProviderType".
  • Added two new data store provider properties "ProviderDatabaseType" and "ProviderDataStoreType".
  • Modified the data store provider source code so that all methods and accessors are either marked "public virtual" or "protected internal virtual".
  • Modified the solution properties dialog to dynamically show/hide the plug-in settings as the plug-in is ticked/un-ticked.
  • The SQL Server data store provider now supports many more connection string parameters.
  • Unlicensed ODS installations now check for and import the license from earlier licensed versions of ODS on start-up.
  • ODS now only displays a warning that it can't locate the .NET SDK (for tlbimp.exe) when a database plug-in is selected that generates source code with COM references (e.g. Jet 4.0).
  • Added a "View log" button to the error dialog when unexpected exceptions are encountered. Launches notepad to display the error log file.
  • Removed the pre-checks option from the SQL Server 2000 plug-in.
  • Removed the DriverManager code from the SQL Server provider as this is no longer used.
  • Renamed "Driver" to "Data Store Provider" throughout ODS to bring it in line with Microsoft terminology.
  • All data store provider names now include the solution name to make them unique.
  • Aesthetic modifications to ODS Design Studio.

General Issues

  • Resolved an issue which was causing "check for new versions" to silently fail.
  • Resolved an issue with the SQL Server 2000 plug-in where the Exists method leaves the connection switched to the master database.
  • Resolved an issue where ticking and un-ticking plug-ins on the solution properties dialog had no effect on the plug-ins listed under the user methods tab.
  • Resolved an issue where the selected plug-in under the user method tab resets to the first item in the drop down combo.
  • Resolved an issue when changing the source code folder, some user files were not being copied to the new folder.
  • Resolved an issue where copying pre-defined objects to the clipboard from a class with an object property caused an exception.

ODS 2.1.0 Release Notes - Changes from ODS 2.0.0

  • Added transaction support to ODS generated DALs.
  • Fixed a bug where the initially generated user modifiable class files were missing a constructor method.
  • Fixed a bug that could prevent some DeleteBy method parameters from being generated.
  • Fixed a bug in the MS Jet 4.0 plug-in where upgrading/creating a database and then immediately using it could cause an exception.
  • Fixed a bug in the Predefined Objects GUI where some combinations of properties could cause an exception when adding the first new object.
  • Corrected the T-SQL generated by the SQL Server plug-in for DeleteBy stored procedures that delete by date/time.

ODS 2.0.0 Release Notes - Changes from ODS 1.1.0

ODS 2.0.0 introduces major new features to ODS as well as a large number of general improvements and bug fixes.

Database Plug-ins

ODS 2.0.0 sees the introduction of database plug-ins for ODS Design Studio. This major new feature enables ODS to generate DAL source code that targets SQL Server, MySQL and MS Jet 4.0 with more plug-ins to come soon.

Automated Testing

A major behind the scenes change for the development of ODS 2.0.0 has been the creation of an automated test system. Testing automatic source code generation is inherently challenging. The huge number of possible code generation scenarios require a great deal of testing. Manually repeating these tests for every change, however minor, is time consuming and error prone. The ODS test system has enabled us to build up and automatically test against a huge library of code generation scenarios, ensuring the high quality of generated source code.

Change list

ODS 2.0.0 includes many new features and bug fixes. Most of the significant changes are listed below:

  • Added a new MS Jet 4.0 plug-in for ODS Design Studio.
  • Added a new MySQL plug-in for ODS Design Studio.
  • Resolved a number of scenarios where generated source code would not compile.
  • Resolved a number of scenarios where compiled source code would not work as intended.
  • Resolved an issue where source code for custom Exists methods was not being properly generated.
  • The location of the toolbars are now saved when the application is closed.
  • Added cut and paste for classes, properties, predefined objects, enums and enum values.
  • Added the ability to select multiple class, properties, pre-defined objects, enums and enum values.
  • Added a DeleteAll standard method.
  • Recently opened solutions list is now sorted, last opened first.
  • Added support for very long strings.
  • Fixed millisecond storage issues with the DateTime data type.
  • Fixed an issue where internal and external predefined object ids were being mixed up.
  • Renamed the ODS Solution Designer "Drivers" folder to "Plugins" to avoid confusion with generated source code.
  • Added a new application setting to hold the .NET Framework 2.0 folder name.
  • Added a new application setting to hold the .NET Framework 2.0 SDK folder name.
  • Removed the C#2 compiler setting from the solution.
  • Resolved various issues in the generated source code when dealing with nulls.
  • All Id and Object values are now represented as Guid data types in generated code. Nulls are represented as Guid.Empty.
  • Added a new constructor method to all generated classes that automatically generates a new GUID for the new objects id.
  • The ODS Solution file now stores folder properties as relative paths when the folder is a sub-folder of the main solution folder.
  • The generated VS2005 and batch files now use relative paths when the folder is a sub-folder of the main solution folder.
  • Changed the help system to be html file based rather than chm based.
  • Added shortcut keys to the main menus.
  • "Static Data" is now known as "Predefined Objects" throughout ODS.
  • "Fields" are now known as "Properties" throughout ODS.
  • Enhanced the warning process when changing the source code folder in solution properties.
  • Enhanced the warning process when changing VS2005 projects and batch file folders.
  • Changed the names of generated upgrade methods to ensure they are always unique.
  • Split the Methods tab out into a Standard Methods tab and a Custom Methods tab.
  • When deleting properties it now checks if they are used as parameters to custom methods.
  • Fixed the border not being drawn correctly on some tab pages.
  • Made some GUI redraw speed optimisations.
  • Fixed a visual bug where moving the toolbars around can create gray space.
  • Fixed a bug where text is changed to red to indicate an error but under some conditions was not being reset to black when it should have been.
  • Class, custom method, user method, enum and enum value lists should now remain alphabetically sorted when adding new items or changing item names.
  • Fixed a number of validation issues with user method parameters.
  • Enhanced the comments and organisation of the generated source code.
  • Changed user method plug-in GUI so that the initial SQL "select" part is provided automatically with the required column names.
  • Fixed a number of user method issues.
  • Maximum class and enum names are now 61 characters and method, parameter and enum names are 64 characters.
  • Added the ability to override the automatically generated name for custom methods.
  • ODSGen now logs exceptions in the main ODS error log file.
  • ODSGen now sets the errorlevel to 1 if an exception occurs.
  • ODS now generates IDataStore.cs and Base_IDataStore.cs class files. IDataStore.cs is editable.
  • When running in Evaluation mode ODS now only opens solutions that meet the evaluation mode criteria.
  • Added a 64bit version of ODS and the ODS installer.
  • Numerous other minor bug fixes and tweaks.