Donate Share

Gentle.NET Object Persistence Framework

File Release Notes and Changelog

Release Name: 1.2.9

Notes:

IMPORTANT NOTE(S)
  
  In order to compile Gentle from source, please refer to the instructions 
  in the COMPILING GENTLE section (under INSTALLATION) below.
  

INTRODUCTION

  Please visit the following URLs to learn more about Gentle aka Gentle.NET.

  o Collaborative community workspace, documentation and usage guides:
    
        http://www.mertner.com/confluence
    
      New users should start out here:    
        
        http://www.mertner.com/confluence/display/Gentle/Documentation+Home
 
  o Issue and feature request tracking using Atlassian JIRA:
    
        http://www.mertner.com/jira

  o Project home / Mailing lists / Forum / Subscribe / Download
    
        http://sf.net/projects/gopf
      
        Note: the mailing list is the preferred support mechanism.

  o Subversion Repository Browser (WebDAV) and Overview (FishEye)
    
        http://www.mertner.com/svn/gentle/gentle
        http://www.mertner.com/fisheye


SUPPORT

  If you intend to use Gentle please be sure to sign up on the SourceForge
  mailing list (gopf-devel). This is the forum where breaking changes will be
  announced and is your best option for staying abreast on current developments
  and planned changes to Gentle. If you use Gentle, please do sign up on this
  mailing list.

  Before asking a question please make sure you have checked the resources
  listed at the top of this page. In particular you should make sure that you
  have thoroughly read the available documentation pages in Confluence.

  You are also welcome to contact me directly at morten@mertner.com, although
  if your question is of a general nature you'll have greater chance of seeing
  a quick reply if you use the mailing list or forum.
  

UPGRADING

  Please review the CHANGELOG entries added since the version you are using and
  apply any changes as needed. If you find a "breaking" entry that is not listed
  in the CHANGELOG, please let me know so I can fix it.


INSTALLATION

  Documentation on how to use Gentle in your own projects can be found here:
  
  http://www.mertner.com/confluence/display/Gentle/Getting+Started

  VS.NET HELP INTEGRATION

  Execute the register.bat file found in the Documentation/Help subfolder. This 
  will install the included .HxS and .HxC help files, which will provide you with 
  context-sensitive help lookup from within Visual Studio.

  You will need the tools H2Reg and MS VS.NET Help Integration Kit. If you do not
  have these tools, please visit the following link to learn about their use and
  where to obtain them: http://www.codeproject.com/csharp/VSHelpIntegration.asp

  COMPILING GENTLE
  
  Gentle is distributed with a key pair used to create a strong named assembly. 
  This key file must be installed into the CSP before you can compile Gentle 
  from source. To do this, execute "sn -i Gentle.snk Gentle" from the Source 
  folder (where the Gentle.snk file is located).

  You will also need to download and install the Microsoft Oracle Client in
  order to compile the Gentle.Provider.Oracle project.
  
  RUNNING THE TESTS
  
  You can find either database creation scripts or prepared database files for
  most of the databases supported below the Source/Gentle.Framework/Tests folder.
  Use these if you wish to run any of the included test cases.

  CODE GENERATORS
  
  Gentle is supported by both MyGeneration (http://www.mygenerationsoftware.com)
  and CodeSmith, two excellent template-based code generation tools. Both of 
  these tools are able to generate a Gentle prepared business object from an 
  existing database schema. 
  
  MyGeneration comes bundled with a Gentle.NET template and is the recommended 
  tool to use (the template offers the most features, is actively maintained, 
  works with the most database engines, and is able to generate code for an 
  entire database schema in one go). Use it, and create a complete Gentle-enabled
  data-access layer in less than a minute! 
    

ADDITIONAL INFORMATION

  If you have any questions please review the documentation (see links above),
  including reviewing the FAQ and other relevant pages. The FAQ is available here:
  
  http://www.mertner.com/confluence/display/Gentle/Frequently+Asked+Questions
  
  If this does not solve your problem please post a message to either the mailing
  list or discussion forum, or send an email directly to morten@mertner.com. 
  
  Please only post confirmed bugs and feature requests to the JIRA issue tracker.
  

CONTRIBUTORS

  Gentle was originally created by Morten Mertner and released as open source
  in january 2004. The list of past contributors and current project members can
  be found here: http://www.mertner.com/confluence/display/Gentle/Project+Team
  (note that this list is currently incomplete).
  
  As a contributing party, if your name is not on the above list, please send
  me an email at morten@mertner.com. 


LICENSE

  This library has been released under the GNU LGPL 2.1. Please see the
  full license text located in the file Documentation/license.txt.


SPONSORS

  Gentle is kindly being sponsored by the following organisations:

  Atlassian (http://www.atlassian.com) has provided free open-source licenses to
  their issue tracker JIRA and the "wiki-on-steroids" collaboration tool Confluence.
  Apart from being outstanding tools I can also personally confirm that their email
  support rocks!

  Kayako (http://www.kayako.com) has provided a free license to their excellent
  HelpDesk software. Note that while the software itself was excellent, the support
  volume for Gentle in the end did not warrant the use of the software.
  
  Cenqua (http://www.cenqua.com) has granted a license for their source code 
  repository browser FishEye.

  *Thanks* for supporting Gentle, and the open source movement in general!

  
CREDITS

  This library uses code written by third parties - my personal thanks to
  them all for their efforts!

  Npgsql is Copyright © 2002 The Npgsql Development Team.
  http://gborg.postgresql.org/project/npgsql/projdisplay.php

  Firebird provider is copyright 2002 Carlos Guzmán Álvarez.
  http://freshmeat.net/projects/firebird.netdataprovider

  The MySQL library is Copyright © MySQL AB.
  http://www.mysql.com/

  Thanks also to Mono team for use of the SQLite and SybaseAsa data providers.
  A major undertaking with a bright future! 
  http://www.go-mono.com

  The excellent MbUnit test framework is Copyright © Jonathan de Halleux 
  http://www.mbunit.org (also see http://www.mertner.com/confluence/mbunit)

  The log4net/Apache people require a specific greeting, and it goes like this:
  "This product includes software developed by the Apache Software Foundation
  (http://www.apache.org/).". 


Changes: This file is a summary of the actual changes. Please consult the repository history features for a full historical record of the changes. For a complete list of changes between any two releases, execute the Subversion command svn log -r <start>:<end> http://www.mertner.com/svn/gentle/gentle where <start> and <end> are the revisions to include in the output. Recent releases have their revision spans marked below (listed after the version number). CHANGELOG [v1.2.9] [974:1042] 2006-03-04 This release features a complete rewrite of the cache subsystem with significant performance improvements as a result. There have also been several minor improvements and bugfixes throughout the code base. [v1.2.8] [930:973] 2006-03-04 This release fixes a number of bugs throughout the library, and contains updated provider libraries for MySQL, PostgreSQL, Firebird and Sybase. Upgrading users should note that the namespace for TypedArrayItemBase has changed to Gentle.Framework. A preliminary provider library for DB2 has been added (helpers wanted for completing the implementation). Also note that the source repository has moved to a new URL (see above). [v1.2.7] [870:929] 2005-12-05 This release features improved performance and better transaction support. Logging has been cleaned up and is now fully categorized. NullValue can now be used with Guids. There have been improvements to the Firebird, MySQL and Oracle providers, and the log4net library has been updated. There have also been a number of general bugfixes and improvements. [v1.2.6] [821:869] 2005-10-10 This release fixes a range of bugs and annoyances throughout the code. Improvements have been made to inheritance mapping, validation, and logging. Gentle now checks that missing provider libraries are referenced before complaining. [v1.2.5] [803:820] 2005-07-16 This release fixes a bug introduced in 1.2.4 affecting the configuration subsystem. Error reporting and the cache subsystem have been improved. [v1.2.4] [762:802] 2005-07-08 This release adds working SQLite support, and contains important improvements to the configuration and caching subsystems. A vast number of minor issues have been resolved. [v1.2.3] [730:761] 2005-05-08 This release features improved error reporting, and corrects a large number of minor issues. An exception is now thrown for missing provider libraries defined in the config file. [v1.2.2] [717:729] 2005-04-04 This release fixes a bug introduced in 1.2.1 affecting reserved word handling. A bug affecting concurrency handling when using unnamed parameters was fixed. [v1.2.1] [630:716] 2005-03-31 This release adds a validation subsystem, as well as numerous improvements throughout. There have been critical bugfixes to core components; existing users should upgrade. Gentle is now CLS compliant, and Mono (1.1.4+) is fully supported. [v1.2.0] 2005-02-12 This release adds a provider for SQL Server CE, and improvements to the configuration subsystem, error reporting, and various other components. A bug affecting the use of multiple brokers has been fixed. MySQL users should upgrade due to critical bugs in the MySQL library shipped with previous versions. [v1.1.3] 2004-12-31 This release adds an improved configuration subsystem, and contains a large number of fixes and improvements affecting reserved word handling, serialization, database analysis, transactions, and more. [v1.1.2] 2004-10-25 This release contains a number of minor bugfixes and improvements. To compile Gentle from source you must first register the key used to sign the assembly in the CSP (see the README for additional info on this). [v1.1.1] 2004-07-04 This release contains bugfixes and performance improvements. [v1.1.0] 2004-06-21 This release adds dynamic loading of provider libraries, automatic lowest cost constructor selection, vastly improved transaction handling, a completely reworked configuration file handler, support for decorating private members, and many other improvements. There have been many fixes for Jet/Access, Firebird, MySQL and Sybase users. Please refer to the readme file for detailed upgrade instructions. [v1.0.4] 2004-05-17 This release adds preliminary support for Sybase. Support for GUIDs in SQL Server and BLOBs in both MySQL and SQL Server was added. Firebird support has been vastly improved and there are a number of minor fixes throughout. [v1.0.3] 2004-04-28 Updated provider library and Firebird support files [Carlos]. There may still be minor issues with Firebird but most testcases now run fine. 2004-04-25 Fixed a number of bugs in the MS Access and Firebird code. Various improvements and fixes were applied to some of the core classes. As of version 1.0.2 changes have been aggregated and are listed here with less detail. [v1.0.2] 2004-04-22 Database script for SQLite added [ch]. 2004-04-21 Added full support for Oracle access using the OracleODP provider [as]. 2004-04-15 Fixed a bug that caused test cases to interact and fail when executed all at once. If you encounter a failing test case try to run it on its own before reporting a bug. 2004-04-14 Fixed a bug that prevented the same column from appearing multiple times in the constraint list. Fixed a bug with paging and added test cases for both issues. 2004-04-12 Added support for soft deleting objects with a concurrency column by setting the concurrency value to -1. Rows marked with a concurrency value of -1 will not be returned by any of the retrieve methods. 2004-04-11 Added support for dynamically specifying the table name (see the Key class and ITableName interface for details on usage). Added support for paging (Next/Previous) to SqlResult. 2004-04-09 Fixed a missing type conversion for Oracle users [Andreas Seibt, Petrel]. [v1.0.1] 2004-04-08 Added support for generating a DataView from an SqlResult. The analyzer for SQL Server now supports obtaining the identity columns. Fixed a bug in SqlResult where column names would only be available if rows were retrieved. 2004-04-05 Fixed a number of bugs that would prevent test cases from running if concurrency control was disabled. [v1.0.0] 2004-04-04 Added support for Enum properties (will be persisted as integers). Introduced a new sample parent class (GentleBase) providing defaults for the primary key field as well as concurrency control. Changed the Member class to test the new base class. 2004-04-03 Added support for automatic concurrency control (update statements only) using the ConcurrencyControlColumn attribute. Added a new configuration key "Options/ConcurrencyControl" to allow Gentle to ignore the concurrency attribute. Applied a number of minor fixes kindly reported back by users. [v0.9.9] 2004-03-21 Updated the UserRole test cases to not use reserved words and updated the database scripts for all databases. Applied a number of fixes for Oracle support [Andreas Siebt]. Various minor fixes throughout. 2004-03-16 Fixed GentleList implementation [bugfixes; list content is no longer touched for n:m relations (relation management only); objects in 1:n lists are still managed]. Fixed a number of bugs for Oracle [Andreas Siebt]. 2004-03-14 Implemented list classes GentleList and GentleRelation for automatic management of 1:n and n:m relations. Added testcases for the Gentle list classes. Fixed a number of bugs affecting objects with aggregated primary keys. 2004-03-13 Added support for Oracle [Andreas Siebt]. Minor bugfixes. Added reserved word checking for MS SQL Server and MS Access. 2004-03-09 Renamed Config handler to GentleSectionHandler and the configuration section name to "gentle". Fixed the Transaction class. Passing an empty SqlResult to ObjectFactory.GetInstance now throws an error. [v0.9.8] 2004-03-07 Added support for MS Access (Jet) [Vinicius (Vinny) A. DaSilva]. Added support for Firebird [Carlos Guzmán Álvarez]. Fixed a number of bugs affecting MySQL and PostgreSQL users. Added support for limit and offset clauses to the SqlBuilder. 2004-02-29 Implemented caching database metadata analyzer for SQL92 compliant engines (replaces SqlServerAnalyzer for MS SQL Server). Updated the NAnt build scripts [Clayton Harbour]. 2004-02-26 Made ObjectMap.Construct return proper GentleExceptions. Fixed a bug where DateTime.MinValue would always translate to null. Fixed a bug causing Broker.Retrieve only to work when the Key contained primary key field(s). Fixed compilation on Mono. [v0.9.7] 2004-02-24 Fixed a bug introduced in 0.9.6 that broke all error reporting. Added support for primary key detection to SqlServerAnalyzer. Added support for using SqlResults as In/NotIn constraint input to SqlBuilder. [v0.9.6] 2004-02-22 Merged changes to use log4net for logging [Clayton Harbour]. Renamed FrameworkException to GentleException and various minor code cleanups. 2004-02-16 Added support for row limit (TOP) and order by clauses to SqlBuilder. Fixed a bug with property/column mapping [Clayton Harbour]. Fixed a bug where SqlBuilder in some cases would generate illegal sql for Operator.Equals. Added support for Operator.NotEquals. [v0.9.5] 2004-02-15 Added support for Operator.In and Operator.NotIn constraints using an ArrayList of data elements and property name. Generalized the test cases for SQL factory verification to be provider independent. 2004-02-14 Added fix for DateTime null handling (now works without setting DefaultValue). Added missing Error declarations and corresponding external message definitions. [v0.9.4] 2004-02-09 Added partial metadata extraction for PostgreSQL. 2004-02-08 Implemented support for transactions. 2004-02-06 Added automatic metadata extraction support for MySQL. Added proper handling of null values, as well as string and datetime clipping for invalid values. Some code cleanup and fixes. [v0.9.3] 2004-02-04 Added support for extracting field type/size information from the system tables (MS SQL Server only, for now). Improved the SqlResult and SqlStatement classes with a bunch of convenience methods. Various minor improvements and fixes. 2004-02-03 Extended TableColumn to allow specification of DbType, Size and DefaultValue. Added support for the new TableColumn properties throughout the framework. [v0.9.2] 2004-02-02 Added support for converting between business objects and DataViews. Use the new CustomView attribute to declare views. 2004-02-01 Started work on object caching using Michael Bouck's cache class. Use the TableName attribute to set caching strategy per type. Also started work on ObjectGraph for automatic join resolution. 2004-01-31 Added a bunch of data accessor methods to the SqlResult class. 2004-01-30 Fixed the problem with the ByteFX MySQL provider. Added support for translating foreign key columns using the ForeignKey attribute. [v0.9.1] 2004-01-27 Added MySQL and SQLite support. The ByteFX provider for MySQL appears to be broken. SQLite is yet untested. 2004-01-25 Publishing of errors to the Windows event log no longer uses the ExceptionManagement libraries (dependency removed). Reworked some of the Config file handling. [v0.9.0] 2004-01-21 Initial source code release.