Announcing the WilsonORMapper

Take a look at http://www.ORMapper.net for the latest on the WilsonORMapper!

Announcing the WilsonORMapper -- Object-Relational Mapper for .NET.
Automatically retrieve and persist objects from MS Sql, Access, etc.

  • Largely compatible with the syntax of MS ObjectSpaces in .NET v2.0.
  • Supports MS Sql, Access, and Oracle -- should work with others too.
  • No need to inherit objects from a base class or embed any attributes.
  • Object-relational mappings are made in an extremely simple xml file.
  • Includes a Windows ORHelper to generate the mapping and class files.
  • Can optionally use stored procedures for any and all data operations.
  • Explicitly create objects with new and StartTracking, or use GetObject.
  • Retrieve individual objects by key (identity, guids, or user-entered).
  • Retrieve collections as a static ObjectSet or a cursor ObjectReader.
  • Query with any where and sort clauses, or setup a default sort order.
  • Supports paged collections -- queries can specify page index and size.
  • Now supports one-to-many, many-to-one, and many-to-many relationships, 
  • with optional lazy-loading to reduce unnecessary loads from database.
  • Collections support one-way read-only binding for both Web and Windows.
  • Persist individual objects, or a collection of objects in transaction.
  • Separate instances can be created for multiple databases or providers.
  • Easy to deploy with simple x-copy in shared web hosting environments.
  • Supports server systems with a configurable session and cleanup time.
  • Free to demo in VS.NET debugger, purchase of $50 includes C# source.

Online Demo: http://www.wilsondotnet.com/Tips (including paged grids)
Free Demo:  http://Download.WilsonDotNet.com/WilsonORMapperDemo.zip
Documentation:  http://www.WilsonDotNet.com/Controls/WilsonORMapper.htm

  • Also included in purchase is the entire source code of WilsonDotNet.
  • This includes the WilsonWebForm control for multiple server forms.
  • Also included are dynamic MasterPages, stylesheets, and localization.

Why?  I'm not trying to compete with Frans' LLBLGen Pro or EntityBroker.
I'm simply extending my best practices website with the next logical extension.
I can't do that with a third party O/R Mapper and still offer fully working source.

Note: The Demo's limitation is that it only works inside the VS.NET debugger.
Update: WilsonORMapper v1.2.0.0 (3/4/2004) includes the following:
(1) Build simple expressions with an OPath-like syntax using the QueryHelper.
(2) User can define fields for optimistic concurrency, or read-only fields.
(3) Updates can optionally be only the changes, with or without concurrency.
Update: WilsonORMapper v1.1.1.1 (2/26/2004) includes the following:
(1)  Bug Fix: Some null-value cases were not working -- known problems fixed.
(2)  Bug Fix: Entity objects with private constructors can now be used in mapper.
(3)  ORHelper: Fixed another bug that caused some naming schemes to fail.

Update: WilsonORMapper v1.1.1.0 (2/22/2004) includes the following:
(1)  Tim Byng has helped me add support for optional field default null-values.
(2)  Bug Fix: Transactional PersistChanges with Collections now works correctly.
(3)  ORHelper: Fixed two VB.NET bugs and one bug for some naming schemes.

Update: WilsonORMapper v1.1.0.0 (1/27/2004) includes the following:
(1)  Now supports One-To-Many, Many-To-One, and Many-To-Many relationships.
(2)  All relationships support lazy-loading, use ObjectHolder for Many-To-One.
(3)  Stored Procedures with parameters can now be used to load collections.
(4)  GetDataSet allows you to specify what subset of columns to actually load.
(5)  Execute set based updates and deletes, including expressions with updates.
(6)  Oracle support has been tested, and a provider model has been introduced.
(7)  ORHelper: Chad Humphries has made some improvements to the logic and GUI.
Performance: WilsonORMapper v1.0.0.3 (1/14/2004) includes the following:
(1)  Performance is now very much comparable, sometimes better, than DataSets.
(2)  Objects should implement IObjectHelper to achieve the best performance.
(3)  Objects can implement IObjectNotification to handle persistence events.
(4)  A new method GetDataSet was created for situations where it is desired.
(5)  The ordering of fields in the xml mapping file is now retained internally.
(6)  Bug Fix: Table names with special characters (space, underscore) work.
(7)  ORHelper: Optionally implements IObjectHelper and/or IObjectNotification.
(8)  Documentation: Now includes a new column to indicate if part of MS syntax.
Bug Fix: WilsonORMapper v1.0.0.2 (1/9/2004) includes the following bug fixes:
(1)  The 1-to-many child relationship failing in some cases should now be fixed.
(2)  The xml mapping file should now allow comments to be inserted inside of it.
(3)  An extra check and exception was added on loading the xml for better help.
More Help: See here for more details on the mappings and here for child setup.

Published Wednesday, January 07, 2004 3:55 PM by PaulWilson

Comments

# re: Announcing the WilsonORMapper

Fabrice: one more entry for SharpToolBox ;-)

Wednesday, January 07, 2004 5:36 PM by Christophe Lauer

# re: Announcing the WilsonORMapper

Best practices, $50? Anyway very impressive.

Thursday, January 08, 2004 4:59 AM by Paul Gielens

# re: Announcing the WilsonORMapper

Wow, that $50 is getting to be a better deal every day.

Thursday, January 08, 2004 12:42 PM by Jerry Dennany

# O/R Mappers: To Attribute or Xml ?

Thursday, January 08, 2004 2:12 PM by TrackBack

# re: Announcing the WilsonORMapper

Hi paul,

I predicted this yesterday. I was right! :-)
http://www.jnsk.se/weblog/posts/ormapperinterest.htm

Best Regards,
Jimmy
###

Thursday, January 08, 2004 6:16 PM by Jimmy Nilsson

# re: Announcing the WilsonORMapper

Do you support m:n relationships and the 3 types of inheritance mapping?

Best regards,
Deyan

Friday, January 09, 2004 4:16 AM by Deyan Petrov

# re: Announcing the WilsonORMapper

Hi Deyan:

I have only included the very basic 1-to-many child relationship (at least so far). I don't explicitly enable any type of inheritance mapping, but there's nothing preventing object inheritance and manual configuration of the mappings. Normalized inheritance can setup with views and stored procs, redundant inheritance could query the base type with a view that includes a union, and shared inheritance is a relatively straight-forward mapping. Sorry if I've simplified things to much -- they're all doable, but they will require some additional work.

Friday, January 09, 2004 5:43 AM by Paul Wilson

# O/R Mappers: Base Class or Not ?

Friday, January 09, 2004 9:34 AM by TrackBack

# O/R Mappers: Base Class or Not ?

Friday, January 09, 2004 9:35 AM by TrackBack

# RE: Use with MDB Files

Paul, does this scale well with Jet MDB files (Access). I'm thinking that OLEDB/Jet is faster and more robust than people give it credit for, as long as the data being read is cached well to minimize db hits and as long as the CONCURRENT number of writes are either kept to a minimum or synchonized (serialized). Does your O/R mapper deal with this issue?

Friday, January 09, 2004 2:32 PM by Rob McEwen

# re: Announcing the WilsonORMapper

I'm not doing any elaborate caching or anything else that will help Access -- I'm just working with both MS Sql and Access (and others untested). I definitely don't want to make any claims that my ORMapper is high performant -- its simplicity at its best, but that has many downsides when more is needed.

Friday, January 09, 2004 2:47 PM by Paul Wilson

# O/R Mappers: Simple Database Features ?

Friday, January 09, 2004 3:54 PM by TrackBack

# Some Links #10

Saturday, January 10, 2004 9:03 AM by TrackBack

# Some Links #10

Saturday, January 10, 2004 9:04 AM by TrackBack

# Finishing my own Basement

Sunday, January 11, 2004 4:05 PM by TrackBack

# re: Announcing the WilsonORMapper

Great! ObjectSpaces Lite!

Sunday, January 11, 2004 6:10 PM by Dave Foderick

# O/R Mappers: Avoiding Reflection

Sunday, January 11, 2004 8:58 PM by TrackBack

# O/R Mappers: Maximum Performance

Wednesday, January 14, 2004 3:53 PM by TrackBack

# So reflection isn't as bad as I made it out to be

Wednesday, January 14, 2004 5:08 PM by TrackBack

# re: ORM

Wednesday, January 21, 2004 10:28 AM by TrackBack

# WilsonORMapper now tested with Oracle

Tuesday, January 27, 2004 3:25 PM by TrackBack

# Signal-to-Noise #5

Thursday, January 29, 2004 6:59 AM by TrackBack

# WilsonORMapper works well with MySQL

Thursday, January 29, 2004 4:02 PM by TrackBack

# Signal-to-Noise #5

Sunday, February 01, 2004 4:27 AM by TrackBack

# Object Mapping

Wednesday, February 18, 2004 3:14 PM by TrackBack

# Object Mapping

Sunday, February 22, 2004 1:52 AM by TrackBack

# re: ObjectSpaces only supports SQL Server?

Tuesday, March 02, 2004 7:06 PM by TrackBack

Leave a Comment

(required) 
(required) 
(optional)
(required)