I am always reluctant to use Netadvantage for ASP.NET
controls when there already exist the same controls in VS2005 (i.e.: gridview,
panel, tab). Although Infragistics controls are easier to use and has plenty of
resource file and styling images) push me away. I am not sure exactly how much
it would increase the loading time or it would be noticeable for the user. I hope I am wrong
Hello Infragistics team,
I'm sure you will read this post....Could you please let me know if the performance problems of the webgrid have been corrected in the latest hotfix?
I use the Infragistics ASP.NET controls with 3 of my clients and the performance has been good. There are so many other factors that go into how the webgrid will perform. Client bandwidth, method of their internet connection, server load (includes RAM, server processes, and users), sql usage, and the amount of data being pulled out at once. There are so many factors that can affect performance of any ASP.NET application. Each of the clients that I have active projects for that include web development projects have differences in how their network connections and server configurations are set up. When developing you have to take that into account and develop your solution accordingly.
Infragistics provides interfaces for helping with these variables. For example, I have one client that needed to pull a large amount of records like yours, and to handle that much data on their small business bandwidth I had to make use of load-on-demand to push more rows only when the user needs it. With the webgrid control it makes this type of feature super easy to implement and not having to spend weeks developing the same solution keeps the client happy and myself available to work on further parts of the project. Infragistics knows that their ASP.NET controls aren't all they could be, and even so they are still saving my clients lots of money because it's less for me to code out like I use to.
I use Infragistics NetAdvantage for .NET which covers both the ASP.NET and Win Forms sides every day, and I'd recommend them to any developer.
If you are having a problem with 1000 records then something is wrong with your code and/or database.
Huge datasets can cause problems with "ANY" control, this isn't because of IG but is because of a combination of things including Database (indexes, subQueries and a shlew of other problems), WebBrowser, Compression, and Internet Connections.
When dealing with large datasets (in any application) you HAVE to take into consideration the database pulling 100k records in MSSQL "even with indexes" takes a bit (and yes we are talking mili-seconds and seconds) here but in my world that is an eternity... So given that...
Might I suggest (any control you use) implement custom pulls and caching and while IG has made this extremly easy with LoadOnDemand and Custom Paging you cannot expect ANY control to handle all this stuff for you and you will have this problem with ALL controls even the asp.net datagrid it is just a fact of life...
In IG you can grab the server side event and load "sets" of data at a time which is how I am able to handle 1mill+ records using web and wingrids with no performance problems and the reason is I cache the data into a per userDB and the grids pull from that (easier if it isn't a per user level) and then when the grid tells me they are paging to > X i pull the next set and stuff it into the userDB etc.
"The curent situation in our testing (using the demo version) is not acceptable."
I think the demo is representative of the performance you will see with the full version. If it is a problem now it will be a problem after you purchase. In any case I'd recommend you not buy 10 licenses until you are pretty sure the tool will work for your needs.
I just got some feedback from my development team, and the performance problem is occuring only in IE when we use the grouping functionality, sorting, and filtering. The datagrid is working fine in Firefox.
Actually, sorting 1k rows takes less than 5 secs in Firefox, and more than 1 minute in IE.
Here is the code used:
IList<Tech2020.w2020net.Model.User> users; DataTable dt = new DataTable();
CreateColumn(dt, "System.String", "Edit");
CreateColumn(dt, "System.Int32", "ID");
CreateColumn(dt, "System.String", "FirstName");
CreateColumn(dt, "System.String", "LastName");
CreateColumn(dt, "System.String", "Email");
CreateColumn(dt, "System.Boolean", "Member");
CreateColumn(dt, "System.Boolean", "Active");
CreateColumn(dt, "System.String", "LastLogin");
CreateColumn(dt, "System.String", "EditedOn");
users = bal.GetUsers(-1); // status 0 == active And 1 == deleted in the ektron system
foreach (Tech2020.w2020net.Model.User user in users)
row = dt.NewRow();
row["Edit"] = "<a href=\"Edit.aspx?userID=" + user.ID.ToString() + "&KeepThis=true&TB_iframe=true&height=500&width=650&modal=true\" class=\"thickbox\">Edit</a>";
row["ID"] = user.ID;
row["FirstName"] = user.FirstName;
row["LastName"] = user.LastName;
row["Email"] = user.Email;
row["Member"] = user.MembershipUser;
row["Active"] = user.Active;
row["LastLogin"] = user.DateLastLogin;
row["EditedOn"] = user.DateModified;
UltraWebGrid1.DataSource = dt;