Put XtraGrid into overdrive by using XPO with large datasets

ctodx
04 August 2007

UPDATE (18-Jul-2014): Please note that the old links in this blog post have rotted with age :). I've now replaced them with links to current content, but this new content does not replicate the old. Be warned. -- Julian

We've just uploaded a new screencast about using XtraGrid with large datasets, especially remote ones.

xposc1

The screencast goes through the typical architectural approaches to downloading data to a grid, and shows how large remote datasets really kill performance due to the amount of data that's downloaded at critical times in the user's workflow. It then goes on to show how eXpress Persistent Objects, XPO, can dramatically help alleviate this issue by cooperating with the remote server to only download the records needed for display. We call this server-side XtraGrid.

For one reason and another, this video seemed to gell remarkably easily and quickly, and I'm extremely happy with the way it turned out. See what you think!

17 comment(s)
Anonymous
ctodx

Almost forgot about this -- my previous post about XtraGrid and XPO reminded me -- but we've just

4 August, 2007
Anonymous
Ben Hayat

Hi Julian;

Very nice screencast. I have a question for you.

Are you saying that XPO can "Now" connect to a remote db sever (let's say the db server is located in another city and the client is in another city) the same way that if the db server was on the same network as the client was?

Can you clarify this issue please?

I have a situation where the SQL server is in the headquarter but the clients (stores) are in different cities. Can XPO now act as a conduit to connect the clients and db server.

If yes, this is huge! ;-)

Thanks!

..Ben

4 August, 2007
Mehul Harry (DevExpress)
Mehul Harry (DevExpress)

Great Screencast Julian!

4 August, 2007
Anonymous
pavel samokha

Can you tell a little more than xtraGrid+XPO and server mode is cool? This combination looks good, but we don't use XPO, only ui-components with our own data access layer (via various transports), but i think of something like this (load only visible data, and later another), and i will be very much appreciated if you tell more how it works and can we use same technics without XPO.

5 August, 2007
Julian Bucknall (DevExpress)
Julian Bucknall (DevExpress)

Ben: I'm not sure what you're saying. XPO can connect to a SQL Server instance whether it's local or remote and always has been able to. Maybe I'm just not understanding what you mean.

5 August, 2007
Julian Bucknall (DevExpress)
Julian Bucknall (DevExpress)

Pavel: that would have to be the topic of another post. Essentially you would have to implement the interfaces that XPO exposes.

5 August, 2007
Ben Hayat
Ben Hayat

Hi Julian;

As I gave the example of remote DB server, I should have been more clear that clients do not have permanent connections to the server. Only through the web.

I meant using XPO in a 3-tier distributed mode. That's something that has prevented me and many others to use XPO. So, when you mentioned remote, I thought you mean as of 7.3, 3-tier has been added.

I also came across this post to further describe what I mean.

Thanks!

community.devexpress.com/.../56436.aspx

5 August, 2007
Anonymous
John Jackovin

Yeah, to Ben's point we have a smart client application that connects with the db via web services.  Does this work or do they need that direct db connection?

Thanks,

John

5 August, 2007
Anonymous
John Jackovin

We are developing a smart client application using your controls with web services to interact with the DB.  Can this be used in that capacity?  We are looking at every possibility to increase performance.

6 August, 2007
Anonymous
Roland Worms

we are also developing a smart client application with webservices using devexpress controls. Is there any news available on this subject?

13 August, 2007
Andrew (DevExpress)
Andrew (DevExpress)

To let the Xtra/ASPx Grid to work with a large dataset in a smart way your data source has to implement the IListServer interface. XPO DataProvider implements it.

If your web service returns an object that implements the IListServer interface, then you can assign it to the grid as a data source and you are done.

As I understand you may return the XPO DataProvider.

I have never try to do this myself, but I don’t see any reason why it can’t work.

14 August, 2007
Anonymous
Matthew

Julian,

Further to my initial post, I was wondering if you might be able to tell me if there is an event that gets raised as the user scrolls the GridView scrollbar.  I was hoping that maybe I could hook into this event, run the stored proc myself, generate the PersistentObjects and then update the GridView.  Is that a feasible option?

Regards,

Matthew

20 March, 2008
Matthew de Brouwer
Matthew de Brouwer

Is it possible to use this feature with SQL Stored Procedures?

20 March, 2008
Matthew de Brouwer
Matthew de Brouwer

After more searching, I came across this article...

community.devexpress.com/.../186931.aspx

... which has answered my question for now.

25 March, 2008
Erik Lane
Erik Lane

I have a medium size db (165k rows) and am using xpo. I have unique sql that I want to run however, and not use the persistentclasses.cs. Is there a way to get just specific columns or really, to run sql?

22 May, 2008
Morten Petteroe
Morten Petteroe

We have our system scattered around in an SOA. Everything is tied together in a composite application (CAB/SCSF). I would like to put my grids in to overdrive, but we don't use XPO for persistance. We use Linq to SQL (for the extremely simple cases) and Entity Framework (for the rest), as well as custom DTO's for the communication between the services.

How can I best put my grids in overdrive with the lowest development impact (preferrably keeping the current data access layers fairly intact). Can I, for example, use your LinqServerModeDataProvider (did I get the name right?) to work with our data access layers and still get the beneft of smart queries?

Thanks,

Morten

5 June, 2008
Joe Hendricks
Joe Hendricks

VERY helpful screencast, thanks!

- Joe hendricks, SoftwareRunners

29 May, 2009

Please login or register to post comments.