Paging using ASPxGridView

Posts   
1  /  2  /  3  /  4
 
    
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 09-May-2008 03:24:11   

Hello,

I am not sure who to ask this to, whether it be LLBLGen or DevExpress... I am trying to use the LLBLGenProDataSource2 with the ASPxGridView, and I have both Paging on the Grid, and paging set on the DataSource...

Everything works okay, I am able to do sorting, grouping, filtering, etc. But it does not seem to page. If I have a dataset with 500,000 items, LLBLGenProDataSource2 seems to load them all up and cache them. Of course, a half a million records takes a bit of time, and not to mention, the poor server would soon be out of memory if it cached each set like that in session.

I think in order to do server-side paging, DevExpress says you need to implement IListServer ... and I thought the LLBLGenProDataSource2 does indeed implement IListServer...

Has anyone run into this? Is this not possible to use the LLBLGenProDataSource2 with DevExpress grids when relying on server-side paging?

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 09-May-2008 03:24:56   

I am sorry, I think I posted this in the wrong forum, could you please move it to the correct forum?

Walaa avatar
Walaa
Support Team
Posts: 14946
Joined: 21-Aug-2005
# Posted on: 09-May-2008 10:01:34   

Which LLBLGenPro runtime library version are you using excatly? (for more info please consult: http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=7720)

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 09-May-2008 16:50:55   

Using v2.6 Beta, April 30th, 2008.

Usng the LLBLGenProDataSource2 (Adapter)

Going against MS SQL Server 2005: Microsoft SQL Server Management Studio 9.00.3042.00 Microsoft Analysis Services Client Tools 2005.090.3042.00 Microsoft Data Access Components (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710) Microsoft MSXML 2.6 3.0 5.0 6.0 Microsoft Internet Explorer 7.0.5730.13 Microsoft .NET Framework 2.0.50727.1433 Operating System 5.2.3790

The DevExpress ASPxGridView is v8.1.2

Does this help? Thanks!

Walaa avatar
Walaa
Support Team
Posts: 14946
Joined: 21-Aug-2005
# Posted on: 09-May-2008 17:04:52   

Would you please try to set the following in the config file:

<add key="SqlServerDQECompatibilityLevel" value="2" />

LLBLGen wrote:

SqlServer DQE: now has a compatibility switch (global): DynamicQueryEngine.CompatibilityLevel, which can be set to SqlServer7, 2000 or 2005 (2000 is default), either through code or in the .config file. The compatibility switch controls which paging query style is used (temp-table on 7/2000, CTE based on 2005) and which sequence is used by default (@@IDENTITY on SqlServer7, SCOPE_IDENTITY() on 2000/2005)

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 09-May-2008 17:07:04   

Also, set paging to true on the datasourcecontrol AND the grid. If you just set it true on the grid and not hte datasourcecontrol, the datasourcecontrol won't page. It also is recommended to post here HTML/codebehind code (if relevant) in these situations. simple_smile

Frans Bouma | Lead developer LLBLGen Pro
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 09-May-2008 17:17:10   

Otis wrote:

Also, set paging to true on the datasourcecontrol AND the grid. If you just set it true on the grid and not hte datasourcecontrol, the datasourcecontrol won't page. It also is recommended to post here HTML/codebehind code (if relevant) in these situations. simple_smile

I had stated this initially: I am not sure who to ask this to, whether it be LLBLGen or DevExpress... I am trying to use the LLBLGenProDataSource2 with the ASPxGridView, and I have both Paging on the Grid, and paging set on the DataSource...

Point taken, here is my code in another sample testing:

<%@ Page Language="C#" MasterPageFile="~/Secure.master" AutoEventWireup="true" CodeBehind="ProductLinks.aspx.cs" Inherits="TestPaging.ProductLinks" Title="Untitled Page" %>

<%@ Register Assembly="SD.LLBLGen.Pro.ORMSupportClasses.NET20" Namespace="SD.LLBLGen.Pro.ORMSupportClasses" TagPrefix="llblgenpro" %>
<asp:Content ID="Content1" ContentPlaceHolderID="SecureHeadContent" runat="server"></asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="SecureQuickClicks" runat="server"></asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="SecureHeadlineContent" runat="server"></asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="SecureMainContent" runat="server">
    <dxrp:ASPxRoundPanel ID="ASPxRoundPanel1" runat="server" BackColor="#E2E8C9" CssFilePath="~/App_Themes/Office2003 Olive/{0}/styles.css" CssPostfix="Office2003_Olive" EnableDefaultAppearance="False" ImageFolder="~/App_Themes/Office2003 Olive/{0}/" ShowHeader="False" Width="200px">
        <PanelCollection>
            <dxp:PanelContent runat="server">
                <dxwgv:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" CssFilePath="~/App_Themes/Office2003 Olive/{0}/styles.css" CssPostfix="Office2003_Olive" DataSourceID="LLBLGenProDataSource21" KeyFieldName="ProductLinkID">
                    <Columns>
                        <dxwgv:GridViewDataTextColumn FieldName="ProductLinkID" ReadOnly="True" VisibleIndex="0"></dxwgv:GridViewDataTextColumn>
                        <dxwgv:GridViewDataTextColumn FieldName="ProductID" VisibleIndex="1"></dxwgv:GridViewDataTextColumn>
                        <dxwgv:GridViewDataTextColumn FieldName="LinkTitle" VisibleIndex="2"></dxwgv:GridViewDataTextColumn>
                        <dxwgv:GridViewDataTextColumn FieldName="FileUrl" VisibleIndex="3"></dxwgv:GridViewDataTextColumn>
                    </Columns>
                    <Images ImageFolder="~/App_Themes/Office2003 Olive/{0}/"><CollapsedButton Height="12px" Url="~/App_Themes/Office2003 Olive/GridView/gvCollapsedButton.png" Width="11px" /><ExpandedButton Height="12px" Url="~/App_Themes/Office2003 Olive/GridView/gvExpandedButton.png" Width="11px" /><DetailCollapsedButton Height="12px" Url="~/App_Themes/Office2003 Olive/GridView/gvCollapsedButton.png" Width="11px" /><DetailExpandedButton Height="12px" Url="~/App_Themes/Office2003 Olive/GridView/gvExpandedButton.png" Width="11px" /></Images>
                    <Styles CssFilePath="~/App_Themes/Office2003 Olive/{0}/styles.css" CssPostfix="Office2003_Olive">
                        <Header ImageSpacing="5px" SortingImageSpacing="5px"></Header>
                        <LoadingPanel ImageSpacing="10px"></LoadingPanel>
                    </Styles>
                    <Settings ShowGroupPanel="true" />
                    <SettingsPager PageSize="2"></SettingsPager>
                </dxwgv:ASPxGridView>
                <llblgenpro:LLBLGenProDataSource2 ID="LLBLGenProDataSource21" runat="server" AdapterTypeName="MyData.Data.DatabaseSpecific.DataAccessAdapter, MyData.DataDBSpecific" DataContainerType="EntityCollection" EnablePaging="True" CacheLocation=Session EntityFactoryTypeName="MyData.Data.FactoryClasses.ProductLinkEntityFactory, MyData.Data"></llblgenpro:LLBLGenProDataSource2>
            </dxp:PanelContent>
        </PanelCollection>
        <TopRightCorner Height="15px" Url="~/Images/ASPxRoundPanel/374368178/TopRightCorner.png" Width="15px" /><BottomRightCorner Height="15px" Url="~/Images/ASPxRoundPanel/374368178/BottomRightCorner.png" Width="15px" /><NoHeaderTopRightCorner Height="15px" Url="~/Images/ASPxRoundPanel/374368178/NoHeaderTopRightCorner.png" Width="15px" /><BottomLeftCorner Height="15px" Url="~/Images/ASPxRoundPanel/374368178/BottomLeftCorner.png" Width="15px" />
        <NoHeaderTopEdge BackColor="#E2E8C9"></NoHeaderTopEdge>
        <HeaderLeftEdge><BackgroundImage HorizontalPosition="left" ImageUrl="~/Images/ASPxRoundPanel/374368178/HeaderLeftEdge.png" Repeat="NoRepeat" VerticalPosition="bottom" /></HeaderLeftEdge>
        <HeaderContent><BackgroundImage HorizontalPosition="left" ImageUrl="~/Images/ASPxRoundPanel/374368178/HeaderContent.png" Repeat="RepeatX" VerticalPosition="bottom" /></HeaderContent>
        <TopLeftCorner Height="15px" Url="~/Images/ASPxRoundPanel/374368178/TopLeftCorner.png" Width="15px" /><ContentPaddings Padding="2px" PaddingBottom="10px" PaddingTop="10px" /><NoHeaderTopLeftCorner Height="15px" Url="~/Images/ASPxRoundPanel/374368178/NoHeaderTopLeftCorner.png" Width="15px" />
        <HeaderRightEdge><BackgroundImage HorizontalPosition="right" ImageUrl="~/Images/ASPxRoundPanel/374368178/HeaderRightEdge.png" Repeat="NoRepeat" VerticalPosition="bottom" /></HeaderRightEdge>
        <Border BorderColor="#758D5E" BorderStyle="Solid" BorderWidth="1px" />
        <HeaderStyle BackColor="#B5C48F"><Paddings Padding="0px" PaddingBottom="7px" PaddingLeft="2px" PaddingRight="2px" /><BorderLeft BorderStyle="None" /><BorderRight BorderStyle="None" /><BorderBottom BorderStyle="None" /></HeaderStyle>
    </dxrp:ASPxRoundPanel>
</asp:Content>
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 09-May-2008 17:21:43   

Walaa wrote:

Would you please try to set the following in the config file:

<add key="SqlServerDQECompatibilityLevel" value="2" />

LLBLGen wrote:

SqlServer DQE: now has a compatibility switch (global): DynamicQueryEngine.CompatibilityLevel, which can be set to SqlServer7, 2000 or 2005 (2000 is default), either through code or in the .config file. The compatibility switch controls which paging query style is used (temp-table on 7/2000, CTE based on 2005) and which sequence is used by default (@@IDENTITY on SqlServer7, SCOPE_IDENTITY() on 2000/2005)

I added the key you mentioned, and here is what I see in SQL Profiler:

SELECT DISTINCT [MyData].[dbo].[ProductLink].[ProductLinkID], [MyData].[dbo].[ProductLink].[ProductID], [MyData].[dbo].[ProductLink].[LinkTitle], [MyData].[dbo].[ProductLink].[FileUrl] FROM [MyData].[dbo].[ProductLink]
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 09-May-2008 18:56:03   

Hmm...

Could you for this occasion, switch off LivePersistence and implement PerformSelect and performdbcount, and check whether you get page parameters passed to PerformSelect at all in the event arguments?

Frans Bouma | Lead developer LLBLGen Pro
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 09-May-2008 19:46:56   

Otis wrote:

Hmm...

Could you for this occasion, switch off LivePersistence and implement PerformSelect and performdbcount, and check whether you get page parameters passed to PerformSelect at all in the event arguments?

I actually already tried that already, and the answer was no... all page parameters were 0.

That is why I am not sure if anyone else here, I see Misha and couple others use DevExpress stuff, ever noticed this...

This may be a DevExpress issue, not sure. It seems there IListServer implementation is pretty specific.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 11-May-2008 10:58:56   

If you don't get any paging parameters passed in, thus they're both 0, then the datasourcecontrol doesn't get any paging information passed in either (so the grid doesn't request a particular page but all the rows)

What I don't see in the HTML (but that might be the grid) is that paging is enabled on the grid, it is apparently not enabled (I don't see any paging settings in the grid's html.

Frans Bouma | Lead developer LLBLGen Pro
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 11-May-2008 18:48:15   

Otis wrote:

If you don't get any paging parameters passed in, thus they're both 0, then the datasourcecontrol doesn't get any paging information passed in either (so the grid doesn't request a particular page but all the rows)

What I don't see in the HTML (but that might be the grid) is that paging is enabled on the grid, it is apparently not enabled (I don't see any paging settings in the grid's html.

Paging in the grid seems to be a default behavior, however you should notice this line:

<SettingsPager PageSize="2"></SettingsPager>

I had set it to two to give myself a ton of pages. On a LinqDataSource, or their LinqServerModeDataSource, you do see in the SQL Profiler the paging.

It seems according to their website, that if your datasource Implements IListServer it will go into server mode and send all the paging information.

Correct me if I am wrong, but the LLBLGenProDataSource2 does implement IListServer correct?

I know they show how to create a wrapper for an ObjectDataSource, so it seems they are looking for specific methods, regarding TotalRowCount, etc. for them to "assume" you implement IListServer.

Not sure if this is a DevExpress issue or not as stated above, however I would really really rather use LLBLGenProDataSource2 rather than having to drop back to LinqToSql to use their LinqServerModeDataSource... So please do not take it that I pointing fingers, if anyone can make it work, I am guessing your are more likely the person to actually make it work, as I already posted a thread about the LLBLGenProDataSource in their Support Center, and they basically blew it off.

It seems like DevExpress makes things difficult in order to push people to use their XPO product, and that is cumbersome, and it is no where near feature rich as LLBLGenPro and I just cannot go that route.

How was Miha, or you using the XtraGrid to fix some of the problems he was having earlier? Was that related to this? I saw your post in regards to grouping on constants, etc. that you were able to make work...

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 11-May-2008 21:45:26   

Grouping on constants was for their linqsource control which allows their grid to connect to any IQueryable source. This is readonly data though, so editing entities is a bit difficult that way.

Our datasourcecontrol doesn't implement IListServer, as it isn't a .NET interface (I can't find it in the MSDN).

So I don't know what they're doing, but IMHO their webgrid should just work with any DataSourceControl derived class out there, as any .NET webgrid does. Could you open a ticket at devexpress and ask them how to enable paging with their grid on a normal datasourcecontrol like ours ? (so no linq involved) If they're saying our datasourcecontrol has a bug in this case, they're mistaken, this code works with any grid out there, and I fail to see why they would limit their customer's choices regarding using the grid...

Frans Bouma | Lead developer LLBLGen Pro
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 12-May-2008 02:05:28   

I already did open a support ticket... here is the link:

http://www.devexpress.com/Support/Center/p/Q102963.aspx (I just checked, and this link is marked private, sorry ... it is rather long, if you want me to send you all the text from it, I can PM it to you, just rather long and most likely not necessary here)

The reference this in my ticket which explains why they "do what they do" ...

http://www.devexpress.com/Support/Center/p/Q100566.aspx

And they also say in the 2nd link, that this is the is answer to making any datasource work...

http://demos.devexpress.com/Tutorials/Grid/Binding/ObjectData/ObjectDataSourceBinding.aspx

I think you will see in my original ticket, I am not happy with the response from them.

I think you will also see that my comments about implementing a custom paging event goes ignored. I think I am going to reopen the ticket and ask for that event. The funny thing, as you will see, if I use a LLBLGenProDataSource, they grouping, filting, sorting and all work... it is just that they do not pass the paging information... I have seen in other threads, that when they do summary information, they need to get that in a special way which most data sources would not allow.

Not sure if that is true, or simply a way for them to limit their product so you end up using their XPO product, which as stated above, is rather lacking in some more sophisticated ways... let alone the lack of a true designer.

Do you know of other grids that in the same league as DevExpress that work with the LLBLGenProDataSource, paging and all?

Walaa avatar
Walaa
Support Team
Posts: 14946
Joined: 21-Aug-2005
# Posted on: 12-May-2008 09:53:58   

Do you know of other grids that in the same league as DevExpress that work with the LLBLGenProDataSource, paging and all?

The Good: Telerik Compnent Art

The Bad: Infragistics Component One

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 12-May-2008 10:56:23   

Although Component Art's older grid (I'm not sure if they've updated their grid recently) didn't work with any other datasource control than the .net ones. I'd go for telerik's webgrid. DevExpress' webgrid has never been that great anyway (compared to their winforms stuff)

DevExpress should just make their grid work with normal datasourcecontrols like everyone else. If not, their product is actually sub-par and I think we then have to conclude that our customers should buy a competing grid and we should advice our customers in public to do so.

DevExpress should understand one thing really good: we definitely won't add extra code to make their grid work properly just because they're too lazy to add code which works with normal datasourcecontrols the way they're intended. I.o.w.: We won't add code to 'wrap' their code so it works with our datasourcecontrol, it already works properly. All they've to do is pass a paging parameter to the ExecuteSelect() call. I really fail to see why on earth they don't do that.

If I'm not mistaken, I do recall that older versions of their grid did do this properly...

You may point devexpress to this thread and if they want to contact us, they can mail to support AT llblgen DOT com. Do we have to contact them as well? I mean it, I am very close to putting a message on our website that we advice our customers not to buy the webgrid of devexpress, because it doesn't function very well with our software. Enough is enough... control vendors should simply obey the interfaces of the classes they work with, in this case the datasourcecontrol derived classes. A developer shouldn't be forced to write silly wrappers to make paging work, something that works out of the box in the vanilla .NET grid...

(edit) The summary stuff is something they try to cram into the query to avoid another roundtrip. However that doesn't mean it's impossible to pass the paging info to ExecuteSelect method (which gets, when the grid requests a page instead of the full set, the start row number and the # of rows to fetch). What I think is that because they need to calculate a summary, they need the whole set of rows to calculate that summary, otherwise that is impossible to do (as the grid just sees pages of data). What I fail to see is why they haven't build in an event or other mechanism to calculate the summary for the grid. After all: the grid doesn't need 100K entities to calculate a summary for a single column: the developer can easy write a proper scalar query to produce that value in a couple of lines of code.

I'm not sure if they do this to drive everyone to XPO, because I don't think the choice of a grid drives the choice of the data-access technology, it's the other way around, simply because the choice of the grid doesn't affect 40-50% of the work you've to do, but the data-access technology does.

Frans Bouma | Lead developer LLBLGen Pro
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 12-May-2008 18:01:55   

Yeah, I agree... I was not real happy and told them I did not feel the wrapper situation was appropriate as a real solution...

I will open a new thread and make sure it is public and really try to push for a better implementation of datasource controls.

There are others out there who have mentioned the same, and their response was to use the Linq provider that their ORM uses.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 12-May-2008 18:04:38   

tzarger wrote:

Yeah, I agree... I was not real happy and told them I did not feel the wrapper situation was appropriate as a real solution...

indeed, it's silly.

I will open a new thread and make sure it is public and really try to push for a better implementation of datasource controls.

I hope you'll succeed, but I don't think you should keep your breath on this...

There are others out there who have mentioned the same, and their response was to use the Linq provider that their ORM uses.

hehe, their 'linq' provider... that one which doesn't even understand 'distinct' ? wink

You can use linq to llblgen pro too I guess with their grid, using the linq source (don't know how that control is called) which they also use in winforms, where you can bind any IQueryable implementing object (e.g. a linq to llblgen pro query) to their grid.

Frans Bouma | Lead developer LLBLGen Pro
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 12-May-2008 18:05:30   

As far as grid, the DevExpress grid is by far the most themeable it seems, and component art's grid looks so "non attractive" on their site. Perhaps you could skin it to look like DevExpress, but I am not sure.

Telerik seems like they understand grids... so I may end up switching, but for now, I am too far down the DevExpress path... which kind of sucks. When I was using the LLBLGenProDataSource for normal girds, all worked perfectly... just now, I am faced with some tables with large volumes of data, and this is the wall I hit.

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 12-May-2008 18:07:03   

You can use linq to llblgen pro too I guess with their grid, using the linq source (don't know how that control is called) which they also use in winforms, where you can bind any IQueryable implementing object (e.g. a linq to llblgen pro query) to their grid.

When I used the LinqMetaData with the LinqServerModeDataSource, it threw some exceptions, would you like to work through that in a different thread under the LinqToLLBLGen forum?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 12-May-2008 18:08:58   

tzarger wrote:

You can use linq to llblgen pro too I guess with their grid, using the linq source (don't know how that control is called) which they also use in winforms, where you can bind any IQueryable implementing object (e.g. a linq to llblgen pro query) to their grid.

When I used the LinqMetaData with the LinqServerModeDataSource, it threw some exceptions, would you like to work through that in a different thread under the LinqToLLBLGen forum?

Yes please. Please enable linq tracing at level 3 (see .doc) so you see the expression executed by the provider in the trace output.

We just uploaded a new build, it might be your exceptions (e.g. the grouping stuff) we caused by a bug we now fixed

tzarger wrote:

As far as grid, the DevExpress grid is by far the most themeable it seems, and component art's grid looks so "non attractive" on their site. Perhaps you could skin it to look like DevExpress, but I am not sure.

Telerik seems like they understand grids... so I may end up switching, but for now, I am too far down the DevExpress path... which kind of sucks. When I was using the LLBLGenProDataSource for normal girds, all worked perfectly... just now, I am faced with some tables with large volumes of data, and this is the wall I hit.

Is the data read-only? i.e. does the user edit the data in-place or not? If it's readonly, you might be able to work around this by creating a paging strip manually and bind the readonly set of data to the grid direclty (i.e. not with a datasource)

Frans Bouma | Lead developer LLBLGen Pro
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 12-May-2008 18:29:22   

Otis wrote:

Is the data read-only? i.e. does the user edit the data in-place or not? If it's readonly, you might be able to work around this by creating a paging strip manually and bind the readonly set of data to the grid direclty (i.e. not with a datasource)

Using their LinServerModeDataSource, it is read only ... so you simply have to handle the RowInserting, RowUpdating and RowDeleting events yourself, and then it can work.

Granted, that is why I wanted to use the LLBLGenProDataSource, because it just works!

I will get the latest build, and test against that and see if my exception goes away. Thanks Frans!

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 12-May-2008 18:31:31   

tzarger wrote:

Otis wrote:

Is the data read-only? i.e. does the user edit the data in-place or not? If it's readonly, you might be able to work around this by creating a paging strip manually and bind the readonly set of data to the grid direclty (i.e. not with a datasource)

Using their LinServerModeDataSource, it is read only ... so you simply have to handle the RowInserting, RowUpdating and RowDeleting events yourself, and then it can work.

Granted, that is why I wanted to use the LLBLGenProDataSource, because it just works!

simple_smile

I've opened a forum thread: http://community.devexpress.com/forums/p/64760/219794.aspx#219794

Let's see what they've to say. I found an older thread on their forum where a DevExpress employee flat out told the user to use XPO as the solution. Well, that's of course unacceptable.

Frans Bouma | Lead developer LLBLGen Pro
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 12-May-2008 18:43:05   

Otis wrote:

I've opened a forum thread: http://community.devexpress.com/forums/p/64760/219794.aspx#219794

Let's see what they've to say. I found an older thread on their forum where a DevExpress employee flat out told the user to use XPO as the solution. Well, that's of course unacceptable.

Yes, I am interested to see their response. Unfortunately, I think most of the Support from DevExpress do not read the forums... Just the DX-Squad guys. I have seen some DevExpress employees though there... we will see. (Whenever I have posted an issue there, it is hard-pressed to get a response from DevExpress, so I just use their support center)

If there is no response, I will open a Support Ticket and point to that thread. Thanks Frans! It really is obvious there is a conflict of interest in their grid control, and I am sure other controls of theirs, as they are trying to force people into XPO.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 12-May-2008 18:50:14   

tzarger wrote:

Otis wrote:

I've opened a forum thread: http://community.devexpress.com/forums/p/64760/219794.aspx#219794

Let's see what they've to say. I found an older thread on their forum where a DevExpress employee flat out told the user to use XPO as the solution. Well, that's of course unacceptable.

Yes, I am interested to see their response. Unfortunately, I think most of the Support from DevExpress do not read the forums... Just the DX-Squad guys. I have seen some DevExpress employees though there... we will see. (Whenever I have posted an issue there, it is hard-pressed to get a response from DevExpress, so I just use their support center)

yes, could have used their ticket system as well, but I wanted their customers to see the thread as well. simple_smile

If there is no response, I will open a Support Ticket and point to that thread. Thanks Frans! It really is obvious there is a conflict of interest in their grid control, and I am sure other controls of theirs, as they are trying to force people into XPO.

Well, conflict of interest is of course there, but that's not automatically intentional. It might be they overlooked the possibility to add a fallback plan. I mean: if you don't use summaries, if you don't need the grid to pull the data ALL in, why not allow paging the usual way? Also, it doesn't scale well. If the grid is faced to work with a lot of data, thousands of rows for example, no developer should/would allow any grid to pull the data into itself just to calculate some summaries/other scalars. They implemented a feature which has no fallback plan for the situation where it is faced with a lot of data. And I don't think their XPO is the defacto standard on the O/R mapper front, on the contrary... so most people are probably using the grid with a different datasourcecontrol than the xpo one.

Frans Bouma | Lead developer LLBLGen Pro
1  /  2  /  3  /  4