define "editable" 2010/8/12 Tuna Toksoz <[email protected]>
> > 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.
