Paul, Andy: I've been working on a rather large rewrite of conventions for
trunk, so I've got that one covered. I currently have all the changes in a
local git branch, but I'll try to get it pushed to a public svn one so you
guys can take a look (if you're interested).
Paul, obviously we don't have visitors in trunk so my approach is a little
different than we would probably have done if it was only for the semantic
model; however, I think most of it can be ported to the new code-base quite
easily. I don't really think visitors are suited to being the public
interface to conventions anyway, they're a little too verbose for simple
usage - however, that doesn't mean they can't be the backing to the public
API (by all means, they should be the backing!).

Basically my changes are a result of trying to work on the semantic model
stuff, but every 5 minutes there's a new "I can't do this with such-and-such
convention", so my redesign is one that's highly specialised, but can also
be highly generic - so it should tide people over while we focus on the SM.

The new conventions are represented by a set interfaces of gradually
increasing granularity (IClassConvention, IMappingPartConvention,
IRelationshipConvention, IHasManyConvention etc...). Classes that implement
these convention interfaces are discovered by FNH automagically and applied
after the normal mapping has occurred. This has two side-effects, firstly
there's now no mention of conventions in any of the mapping classes (none of
this conventions.AlterId malarky), and secondly if there isn't a convention
already made for a specific purpose (say ManyToManyJoinTableName) then the
user can simply use the interface with a reduced granularity (say
IClassConvention) to implement the desired behaviour in the same way we
would but in their own code-base.

Where the visitors fit into this is replacing the discovery code, which is
currently the only thing invoked manually in the code-base. It would be
quite well suited to loading this into a visitor instead.

Hopefully all this should drop in trunk over the next few days, then I can
focus on merging/converting it to work with the new design.

That was a bit longer than I expected :)

On Fri, Feb 20, 2009 at 9:10 AM, Andrew Stewart <andrewnstew...@gmail.com>wrote:

> Good Morning Paul.
> I'll perform a check out of the rewrite branch this morning, and start to
> investigate automapping somepoint today. I agree with you on
> the Convention class in the trunk, as soon as I saw it I could see it would
> need refactoring at somepoint.
>
> I'll be in touch when I get something working.
>
> Cheers
>
> Andy
>
>
>>
>> On Fri, Feb 20, 2009 at 6:22 AM, Paul Batum <paul.ba...@gmail.com> wrote:
>>
>>> Gday Andy,
>>>
>>> Progress on the semantic model has slowed these last few weeks as I've
>>> returned to the land of the employed, but basically, I can't see any reason
>>> why you couldn't start work on an automapper that works against the semantic
>>> model. The model is missing alot of features so there is no way that people
>>> could realistically switch over yet, but there is enough there to get some
>>> basic automapping working.
>>>
>>> If you decide to start, I would suggest that you create a AutoMapping
>>> folder in the FluentNHibernate.FluentInterface project and put your
>>> implementation there. If you take a look in the test project, you'll see
>>> there are some integration tests that map some really small domains (music
>>> and employees I think) - I think a good inital goal would be to get those
>>> domains automapped.
>>>
>>> There will probably be lots of friction as you discover that certain
>>> things are missing or done differently in the rewrite, but we'll just have
>>> to work through that. A good example would be that the Conventions class no
>>> longer exists, and will hopefully stay that way. Conventions should instead
>>> be implemented as visitors of the mapping model - see NamingConvention as an
>>> example. I have a blog post that sort of covers this in the works  - I'm
>>> really going to try to get that finished this weekend. In any case, feel
>>> free to ping me with whatever questions you have.
>>>
>>> Paul Batum
>>>
>>>
>>> On Fri, Feb 20, 2009 at 7:04 AM, Andrew Stewart <
>>> andrewnstew...@gmail.com> wrote:
>>>
>>>> Hi
>>>> I'm getting towards the end of one of my personal projects, so I'm going
>>>> to be in a position to start contributing again. Where am I best
>>>> concentrating my effort at the moment, on the PB rewrite branch of
>>>> supporting the main trunk?
>>>>
>>>> Cheers
>>>>
>>>> Andy
>>>>
>>>> --
>>>> =================
>>>> I-nnovate Software - Bespoke Software Development, uk wirral.
>>>> http://www.i-nnovate.net
>>>>
>>>> Easy Project Managment Online
>>>> http://www.task-mate.com
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>> --
>> =================
>> I-nnovate Software - Bespoke Software Development, uk wirral.
>> http://www.i-nnovate.net
>>
>> Easy Project Managment Online
>> http://www.task-mate.com
>>
>>
>>
>
>
> --
> =================
> I-nnovate Software - Bespoke Software Development, uk wirral.
> http://www.i-nnovate.net
>
> Easy Project Managment Online
> http://www.task-mate.com
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibernate@googlegroups.com
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to