Ticket Q363849
Visible to All Users

Performance comparison of XPO and Entity Frameworks, and ObjectDataSource

created 13 years ago

Hi.
I have an web application with serious performance problems.
I the AspxGridview a lot and I connect the gridview to my business objects trough objectdatasource.
I think objectdatasource always transfer all data. No paging support…
I have spend a lot of time testing other ORM tools. Entity Framework(EF) and XPO.
I created a testproject that displays the same data. A table with 4000 records and 14 columns.
One grid with XPO, one with EF and one with Objectdatasource.
! place one of the columns(lookup combobox) in the group panel.
Objectdatasource is very slow. about 15 sec.
XPO and EF is both around 1 sec.
If I on the comboboxcolumn change the sortmode = displaytext
XPO takes around 8 sec
EF takes around 2 sec
Why this big difference?
If the performance of EF is so much better than XPO, then my choice of ORM tool is easy?
thanks

Show previous comments (5)

    Hi.
    Yes it is necessary.
    If you look at the grouped column in the sample you can see that it is a combobox.
    It should be sorted alfabeticaly by displaytext so users easily can locate the LokalitetId group they are looking for.
    If the groups are sorted by value (GUID) the users have to look trough all groups to locate the group they are looking for.
    I have tried this approach earlier, but I got complaints .
    I assume this is a common problem. I wonder how other people solve this?
    Do you thin it is bad design to use lookup comboboxes in an web application, maybe the grid should work against an prepared
    DB view insted? But what about editing then?
    Do you have any thoughts on this?
    thanks

      Hello Magne,
      Thank you for your response. We need some additional time to review this scenario to provide you with a precise answer.
      We appreciate your patience while we are working on finding a solution to your inquiry.
      Regards,
      Mike

      DevExpress Support Team 13 years ago

        Hello Magne,

        Thank you for your patience. ASPxGridView can create columns and sort them when you define a complex field name. For example, let us assume that you have a composite object. One of its properties is an association with a different object:

        <code lang="cs>
        public class CompositeObject {
            public OtherObject Obj { get; set; }
        }

        public class OtherObject {
            public String Name { get; set; }
        }
        </code>

        When you bind the grid to a set of CompositeObject objects, you can refer to their nested properties using the following signature: Obj.Name. You see that I use the Obj property and then obtain its Name property value.
        For you, it looks like a displayed text, and you can sort such records easily.

        Please create an <helplink href="ms-help://DevExpress.NETv11.2/DevExpress.Xpo/clsDevExpressXpoAssociationAttributetopic.htm">association</helplink> in your XPO classes and then use the nested property as a column field name.

        Thanks,
        Vest

        Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

        Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.