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.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use