I have to disagree. I find hbm more readable, even with the square bracket
noise.
That's just a matter of taste, like tabs vs spaces.
In any case, I tried FNH, but I didn't find any real advantages over hbm, so
I stayed there, until ConfORM appeared.
Diego
On Thu, Aug 12, 2010 at 19:04, Tuna Toksoz <[email protected]> wrote:
>
> I agree with John, and will like to add that I don't see the point of a
>> tool generating code for another tool that generates code.
>
> I do see value in that. FNH is much more readable and editable than
> ordinary XML.
>
>
>
>> Is like if the FNH team choose to generate LLLBlGen Pro dsl.
>> I hope this will be taken as a constructive comment.
>>
>> XML in his both representations as raw XML or as HBM* classes is the
>> lowest common denominator.
>> See? I read Fabio's blog.
>>
>>
>> 2010/8/12 John Davidson <[email protected]>
>>
>> Frans,
>>>
>>> Fleunt NHibernate is almost a non-starter as there is no documentation on
>>> how to use it with VB.Net, if it would even work. XML is a lowest common
>>> denominator type solution and should always be retained. Higher level
>>> solutions are great, but not always accessible
>>>
>>> John Davidson
>>>
>>>
>>> On Thu, Aug 12, 2010 at 12:51 PM, Frans Bouma <[email protected]> wrote:
>>>
>>>> > Same XML please.
>>>>
>>>> that's trivial if I define the model like you did in code.
>>>>
>>>> > btw Frans, you product is a code generator I can't skip 42 slides
>>>> because
>>>> in
>>>> > the early slides you are describing the domain relations and
>>>> relational
>>>> > mapping...
>>>>
>>>> no, not the mapping, just the entities and the relationships. I
>>>> don't define any mapping in that video by hand, nor the DDL SQL.
>>>> Mappings +
>>>> table stuff is created by 1 mouseclick using settings to configure what
>>>> will
>>>> I end up with.
>>>>
>>>> > would be the same than explain that you have a whole application
>>>> running
>>>> > starting from "press F5".
>>>>
>>>> you wrote classes to start with, I didn't. The classes contain
>>>> the
>>>> info used by confORM, I created a model, which produces classes +
>>>> mappings +
>>>> DDL SQL, using very few keystrokes btw.
>>>>
>>>> But, like I said, let's not end up in a pissing contest :) Being
>>>> in
>>>> a rush to get things done a.s.a.p. is never going to end well, so that's
>>>> not
>>>> what people should focus on. It's about maintainability etc., and
>>>> confORM
>>>> could be a good choice for that as well, I don't want to have that
>>>> debate,
>>>> as it's besides the point. The point is: with all the options, is yet
>>>> another option from the team around NH really helping, or just confusing
>>>> users?
>>>>
>>>> Also, is it or isn't it the future _preferred_ way of doing NH
>>>> mappings from the point of view of the NH team? (so others have to adapt
>>>> to
>>>> confORM, and if they want support xml as well, but that's really not the
>>>> way
>>>> to go)
>>>>
>>>> FB
>>>>
>>>>
>>>> >
>>>> >
>>>> > On Thu, Aug 12, 2010 at 1:11 PM, Frans Bouma <[email protected]> wrote:
>>>> >
>>>> >
>>>> >
>>>> > > Now that you saw something more about ConfORM I will happy if
>>>> you
>>>> > can
>>>> > answer
>>>> > > my annoying question.
>>>> > > Can you show me the equivalent-mapping/procedure using what
>>>> ever
>>>> > you want
>>>> > ?
>>>> >
>>>> >
>>>> > (it's an old video of the alpha build, I'll soon make a
>>>> new,
>>>> > more
>>>> > extensive one with quickmodel and NH. It's for our own
>>>> framework,
>>>> but
>>>> > choosing NH is 2 clicks)
>>>> >
>>>> >
>>>> >
>>>> http://www.xs4all.nl/~perseus/LLBLGenPro/Videos/LLBLGenProv3.0_QuickM
>>>> > odel.ht
>>>> > ml
>>>> >
>>>> <
>>>> http://www.xs4all.nl/~perseus/LLBLGenPro/Videos/LLBLGenProv3.0_QuickModel.h
>>>> > t ml>
>>>> >
>>>> > skip to slide 42, press play
>>>> >
>>>> > I know, you start with code, I with the model, same
>>>> thing.
>>>> >
>>>> > FB
>>>> >
>>>> >
>>>> > >
>>>> > > Thanks.
>>>> > >
>>>> > >
>>>> > > On Thu, Aug 12, 2010 at 12:34 PM, Fabio Maulo
>>>> > <[email protected]>
>>>> > wrote:
>>>> > >
>>>> > >
>>>> > > On Thu, Aug 12, 2010 at 11:43 AM, Tom Allard
>>>> > <[email protected]>
>>>> > > wrote:
>>>> > >
>>>> > >
>>>> > > "Make everything as simple as possible, but not
>>>> > simpler."
>>>> > > -- Albert Einstein
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> > > Sure.
>>>> > > For that reason this ConfORM mapping
>>>> > >
>>>> > >
>>>> > > var orm = new ObjectRelationalMapper();
>>>> > >
>>>> > > orm.TablePerClass<Animal>();
>>>> > >
>>>> > >
>>>> > > orm.TablePerClass<User>();
>>>> > > orm.TablePerClass<StateProvince>();
>>>> > > orm.TablePerClassHierarchy<Zoo>();
>>>> > >
>>>> > >
>>>> > >
>>>> > > orm.ManyToMany<Human, Human>();
>>>> > > orm.OneToOne<User, Human>();
>>>> > >
>>>> > >
>>>> > >
>>>> > > orm.PoidStrategies.Add(new NativePoidPattern());
>>>> > > is equivalent to this XML mapping
>>>> > >
>>>> > >
>>>> > > <hibernate-mapping
>>>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-
>>>> > > instance"
>>>> > >
>>>> > >
>>>> > >
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> > >
>>>> > >
>>>> > > namespace="ConfOrmExample.Domain"
>>>> > > assembly="ConfOrmExample"
>>>> > >
>>>> > >
>>>> > > xmlns="urn:nhibernate-mapping-2.2">
>>>> > > <class name="User">
>>>> > >
>>>> > >
>>>> > > <id name="Id" type="Int64">
>>>> > >
>>>> > >
>>>> > > <generator class="native" />
>>>> > >
>>>> > >
>>>> > > </id>
>>>> > > <property name="UserName" />
>>>> > >
>>>> > >
>>>> > > <one-to-one name="Human" />
>>>> > >
>>>> > >
>>>> > > <list name="Permissions">
>>>> > >
>>>> > >
>>>> > > <key column="user_key" />
>>>> > >
>>>> > >
>>>> > > <list-index />
>>>> > > <element type="String" />
>>>> > >
>>>> > >
>>>> > > </list>
>>>> > > </class>
>>>> > > <class name="Animal">
>>>> > >
>>>> > >
>>>> > > <id name="Id" type="Int64">
>>>> > >
>>>> > >
>>>> > > <generator class="native" />
>>>> > >
>>>> > >
>>>> > > </id>
>>>> > > <property name="BodyWeight" />
>>>> > >
>>>> > >
>>>> > > <set name="Offspring" inverse="true"
>>>> > cascade="all,delete-
>>>> > > orphan">
>>>> > >
>>>> > >
>>>> > > <key column="Mother" />
>>>> > >
>>>> > >
>>>> > > <one-to-many class="Animal" />
>>>> > >
>>>> > >
>>>> > > </set>
>>>> > > <many-to-one name="Mother" cascade="all" />
>>>> > >
>>>> > >
>>>> > > <many-to-one name="Father" cascade="all" />
>>>> > >
>>>> > >
>>>> > > <property name="Description" />
>>>> > >
>>>> > >
>>>> > > <many-to-one name="Zoo" />
>>>> > >
>>>> > >
>>>> > > <property name="SerialNumber" />
>>>> > >
>>>> > >
>>>> > > </class>
>>>> > > <class name="StateProvince">
>>>> > >
>>>> > >
>>>> > > <id name="Id" type="Int64">
>>>> > >
>>>> > >
>>>> > > <generator class="native" />
>>>> > >
>>>> > >
>>>> > > </id>
>>>> > > <property name="Name" />
>>>> > >
>>>> > >
>>>> > > <property name="IsoCode" />
>>>> > >
>>>> > >
>>>> > > </class>
>>>> > > <class name="Zoo">
>>>> > >
>>>> > >
>>>> > > <id name="Id" type="Int64">
>>>> > >
>>>> > >
>>>> > > <generator class="native" />
>>>> > >
>>>> > >
>>>> > > </id>
>>>> > > <discriminator />
>>>> > > <property name="Name" />
>>>> > >
>>>> > >
>>>> > > <property name="Classification" />
>>>> > >
>>>> > >
>>>> > > <map name="Animals" inverse="true">
>>>> > >
>>>> > >
>>>> > > <key column="Zoo" />
>>>> > >
>>>> > >
>>>> > > <map-key type="String" />
>>>> > >
>>>> > >
>>>> > > <one-to-many class="Animal" />
>>>> > >
>>>> > >
>>>> > > </map>
>>>> > > <map name="Mammals" inverse="true">
>>>> > >
>>>> > >
>>>> > > <key column="Zoo" />
>>>> > >
>>>> > >
>>>> > > <map-key type="String" />
>>>> > >
>>>> > >
>>>> > > <one-to-many class="Mammal" />
>>>> > >
>>>> > >
>>>> > > </map>
>>>> > > <component class="Address" name="Address">
>>>> > >
>>>> > >
>>>> > > <property name="Street" />
>>>> > >
>>>> > >
>>>> > > <property name="City" />
>>>> > >
>>>> > >
>>>> > > <property name="PostalCode" />
>>>> > >
>>>> > >
>>>> > > <property name="Country" />
>>>> > >
>>>> > >
>>>> > > <many-to-one name="StateProvince" />
>>>> > >
>>>> > >
>>>> > > </component>
>>>> > > </class>
>>>> > > <joined-subclass name="Mammal" extends="Animal">
>>>> > >
>>>> > >
>>>> > > <key column="animal_key" />
>>>> > >
>>>> > >
>>>> > > <property name="Pregnant" />
>>>> > >
>>>> > >
>>>> > > <property name="Birthdate" />
>>>> > >
>>>> > >
>>>> > > </joined-subclass>
>>>> > > <joined-subclass name="DomesticAnimal"
>>>> extends="Mammal">
>>>> > >
>>>> > >
>>>> > > <key column="mammal_key" />
>>>> > >
>>>> > >
>>>> > > <many-to-one name="Owner" cascade="all" />
>>>> > >
>>>> > >
>>>> > > </joined-subclass>
>>>> > > <joined-subclass name="Cat" extends="DomesticAnimal">
>>>> > >
>>>> > >
>>>> > > <key column="domesticanimal_key" />
>>>> > >
>>>> > >
>>>> > > </joined-subclass>
>>>> > > <joined-subclass name="Dog" extends="DomesticAnimal">
>>>> > >
>>>> > >
>>>> > > <key column="domesticanimal_key" />
>>>> > >
>>>> > >
>>>> > > </joined-subclass>
>>>> > > <joined-subclass name="Reptile" extends="Animal">
>>>> > >
>>>> > >
>>>> > > <key column="animal_key" />
>>>> > >
>>>> > >
>>>> > > <property name="BodyTemperature" />
>>>> > >
>>>> > >
>>>> > > </joined-subclass>
>>>> > > <joined-subclass name="Lizard" extends="Reptile">
>>>> > >
>>>> > >
>>>> > > <key column="reptile_key" />
>>>> > >
>>>> > >
>>>> > > </joined-subclass>
>>>> > > <subclass name="PettingZoo" extends="Zoo" />
>>>> > >
>>>> > >
>>>> > > <joined-subclass name="Human" extends="Mammal">
>>>> > >
>>>> > >
>>>> > > <key column="mammal_key" />
>>>> > >
>>>> > >
>>>> > > <component class="Name" name="Name">
>>>> > >
>>>> > >
>>>> > > <property name="First" />
>>>> > >
>>>> > >
>>>> > > <property name="Initial" />
>>>> > >
>>>> > >
>>>> > > <property name="Last" />
>>>> > >
>>>> > >
>>>> > > </component>
>>>> > > <property name="NickName" />
>>>> > >
>>>> > >
>>>> > > <bag name="Friends" cascade="all,delete-orphan">
>>>> > >
>>>> > >
>>>> > > <key column="human_key" />
>>>> > >
>>>> > >
>>>> > > <many-to-many class="Human" />
>>>> > >
>>>> > >
>>>> > > </bag>
>>>> > > <bag name="Pets" inverse="true"
>>>> cascade="all,delete-
>>>> > orphan">
>>>> > >
>>>> > >
>>>> > > <key column="Owner" />
>>>> > >
>>>> > >
>>>> > > <one-to-many class="DomesticAnimal" />
>>>> > >
>>>> > >
>>>> > > </bag>
>>>> > > <map name="Family" cascade="all,delete-orphan">
>>>> > >
>>>> > >
>>>> > > <key column="human_key" />
>>>> > >
>>>> > >
>>>> > > <map-key type="String" />
>>>> > >
>>>> > >
>>>> > > <many-to-many class="Human" />
>>>> > >
>>>> > >
>>>> > > </map>
>>>> > > <property name="Height" />
>>>> > >
>>>> > >
>>>> > > <property name="BigIntegerValue" />
>>>> > >
>>>> > >
>>>> > > <property name="BigDecimalValue" />
>>>> > >
>>>> > >
>>>> > > <property name="IntValue" />
>>>> > >
>>>> > >
>>>> > > <property name="FloatValue" />
>>>> > >
>>>> > >
>>>> > > <set name="NickNames">
>>>> > >
>>>> > > <key column="human_key" />
>>>> > >
>>>> > >
>>>> > > <element type="String" />
>>>> > >
>>>> > >
>>>> > > </set>
>>>> > > <map name="Addresses">
>>>> > >
>>>> > >
>>>> > > <key column="human_key" />
>>>> > >
>>>> > >
>>>> > > <map-key type="String" />
>>>> > >
>>>> > >
>>>> > > <composite-element class="Address">
>>>> > >
>>>> > >
>>>> > > <property name="Street" />
>>>> > >
>>>> > >
>>>> > > <property name="City" />
>>>> > >
>>>> > >
>>>> > > <property name="PostalCode" />
>>>> > >
>>>> > >
>>>> > > <property name="Country" />
>>>> > >
>>>> > >
>>>> > > <many-to-one name="StateProvince" />
>>>> > >
>>>> > >
>>>> > > </composite-element>
>>>> > > </map>
>>>> > >
>>>> > > </joined-subclass>
>>>> > >
>>>> > > </hibernate-mapping>
>>>> > >
>>>> > > Who wrote the XML mapping ?
>>>> > >
>>>> > > --
>>>> > > Fabio Maulo
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> > > --
>>>> > > Fabio Maulo
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> > > --
>>>> >
>>>> > > You received this message because you are subscribed to the
>>>> Google
>>>> > Groups
>>>> > > "nhusers" group.
>>>> > > To post to this group, send email to [email protected]
>>>> .
>>>> > > To unsubscribe from this group, send email to
>>>> > >
>>>> > [email protected]<nhusers%[email protected]>
>>>> > <mailto:nhusers%[email protected]<nhusers%[email protected]>>
>>>> .
>>>> > > For more options, visit this group at
>>>> > > http://groups.google.com/group/nhusers?hl=en.
>>>> >
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the
>>>> Google
>>>> > Groups "nhusers" group.
>>>> > To post to this group, send email to [email protected].
>>>> > To unsubscribe from this group, send email to
>>>> > [email protected]<nhusers%[email protected]>
>>>> > <mailto:nhusers%[email protected]<nhusers%[email protected]>>
>>>> .
>>>> > For more options, visit this group at
>>>> > http://groups.google.com/group/nhusers?hl=en.
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Fabio Maulo
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the Google
>>>> Groups
>>>> > "nhusers" group.
>>>> > To post to this group, send email to [email protected].
>>>> > To unsubscribe from this group, send email to
>>>> > [email protected]<nhusers%[email protected]>
>>>> .
>>>> > For more options, visit this group at
>>>> > http://groups.google.com/group/nhusers?hl=en.
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nhusers" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected]<nhusers%[email protected]>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>
>>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "nhusers" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<nhusers%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/nhusers?hl=en.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<nhusers%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.