You can change it more easily than you could with XML. Tuna Toksöz Eternal sunshine of the open source mind.
http://devlicio.us/blogs/tuna_toksoz http://tunatoksoz.com http://twitter.com/tehlike On Fri, Aug 13, 2010 at 1:06 AM, José F. Romaniello <[email protected]>wrote: > 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]<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.
