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 formatting options, the load that these controls add (JavaScript code in the 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
As I'm sure you've come to realize, software development is a constant tradeoff. Add more functionality, and performance takes a hit. In the new generation of web applications, end users have come to expect a rich experience, and that doesn't come for free. In many cases the performance hit is negligable, but there's always going to be a 'best case', where the feature-less will be faster than the feature-laden.
Here are a few things to think about.
Using AJAX techniques, you can break through performance barriers that were impossible to break through in the past. For example, you can use Virtual LoadOnDemand for the WebGrid to bind to millions of records, and have the performance of a grid with only 10 rows in it. Rich editing is made possibe using masked editors, and can be done without annoying postbacks to "enter edit mode". Paging can be done asynchronously, and the paging mechanism is built into the grid. There's an entire client-side API that you can use to program against any of the Infragistics controls without having to postback. Leveraging these aspects will enable you to create an application where the user can be more productive, and have a good experience.
Here are a couple of additional points to think about when dealing when any web application.
All script and css files are cached by both your webserver and the client browser. The client will only have to wait while the script is downloaded the first time they visit the site (unless they clear their cache).
Turning on GZIP compression on your WebServer can shrink the js files down quite a bit.
Also, you may have read in the beta forums that we're working on a new framework for our controls called "Aikido" One of the goals of this framework is to minimize the difference between "feature" and "performance". We want to deliver the features with the performance, and that's what we're focusing on.
I hope this helps,
-Tony
Hello,
We are using NetAdvantage for .NET+WPF 2007 Vol 3, the question that keeps coming up and I am looking for documentation on, is: Does NetAdvantage need to load, JavaScript or ActiveX controls to the client?
Can you point me in the right direction?
Ok a couple of things right out the gate.1: LoadOnDemand and/or Paging is your Friend.2: Setting your DataSource at Runtime (when applicable) using a asp:SqlDataSource will save a lot of performance.3: Set your columns up in the page aspx file not codeBehindIE: <igtbl:UltraGridColumn Hidden="false" Width="20" BaseColumnName="MyDataField" HeaderText="MyDataText" IsBound="True" Key="MyDataField" />4: Use the webGrid_InitializeLayout event to setup your fields (ie: hide, center, change caption etc.) that is if you need to do itdynamicly.5: Try and prepare your data ahead of time from your storedProcedure (ie: your edit field has <a href etc. in it) so try and just modifythe storedProcedure/Select Statement to just output it for you. If you cannot do that then just use the webGrid_InitializeRow event to fix the cell like so:e.Row.Cells(1).Text = "<a href..."
6: Turn off your ViewState The main reason your page is so slow is because it is 1.35 MB and both FF and IE are choking on this across the wire getting script timeouts etc. your viewstate alone is over 500k... if you need your viewstate for some reason (which 90% of the time you don't) then offload it to the server.
All of the above factors play into sorting as well. so until you resolve the "base" issues there is no way it is going to work the way you want it to, for that matter no grid is going to work like that.
BTW Friendly tip hide all the username/password/email information for your test unless "all" of those are test accounts.
Thanks Chris for your suggestions.
We did implement 1(LoadOnDemand), 3, 4, 5, 6, and the performance is still poor on IE, but working better in Firefox.
Loading the data initially is not a problem, but doing a sorting takes for ever in IE.....
Do you have loadondemand on the demo link above? because it isn't doing loadondemand much better file size now though
Yes loadondemand has been implemented.
But again, we have here a big performance issue on Firefox, but on IE : is just unacceptable.
I have ask my IT that without a 30 day money back warranty, to not buy any licence for this product....
See our code:
using System;using System.Collections;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;
using Tech2020.w2020net.Model;using Tech2020.w2020net.BusinessLogicLayer;using System.Drawing;
public partial class Admin_User_list : System.Web.UI.Page{ private static Tech2020.w2020net.BusinessLogicLayer.User bal = new Tech2020.w2020net.BusinessLogicLayer.User();
private void Page_Init(object sender, System.EventArgs e) { this.EnableViewState = false; }
protected void Page_Load(object sender, EventArgs e) { this.UltraWebGrid1.InitializeLayout += new Infragistics.WebUI.UltraWebGrid.InitializeLayoutEventHandler(this.UltraWebGrid1_InitializeLayout); this.UltraWebGrid1.InitializeRow += new Infragistics.WebUI.UltraWebGrid.InitializeRowEventHandler(UltraWebGrid1_InitializeRow);
UltraWebGrid1.DisplayLayout.LoadOnDemand = Infragistics.WebUI.UltraWebGrid.LoadOnDemand.Automatic; IList<Tech2020.w2020net.Model.User> users; users = bal.GetUsers(-1); // status 0 == active And 1 == deleted in the ektron system
UltraWebGrid1.DataSource = users; UltraWebGrid1.DataBind(); }
void UltraWebGrid1_InitializeRow(object sender, Infragistics.WebUI.UltraWebGrid.RowEventArgs e) { e.Row.Cells[0].Text = "<a href=\"Edit.aspx?userID=" + e.Row.Cells[1].Text + "&TB_iframe=true&height=500&width=650&modal=true\" class=\"thickbox\">Edit</a>"; }
private void UltraWebGrid1_InitializeLayout(object sender, Infragistics.WebUI.UltraWebGrid.LayoutEventArgs e) { /*UltraWebGrid1.DisplayLayout.Bands[0].Columns[0].Header.Caption = ""; UltraWebGrid1.DisplayLayout.Bands[0].Columns[1].Header.Caption = "ID"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[2].Header.Caption = "First name"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[3].Header.Caption = "Last name"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[4].Header.Caption = "Email"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[5].Header.Caption = "Member"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[6].Header.Caption = "Active"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[7].Header.Caption = "Last login"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[8].Header.Caption = "Edited on"; */ UltraWebGrid1.Columns[0].CellStyle.HorizontalAlign = HorizontalAlign.Center; UltraWebGrid1.Columns[0].CellStyle.VerticalAlign = VerticalAlign.Middle; UltraWebGrid1.Columns[8].CellStyle.HorizontalAlign = HorizontalAlign.Center; UltraWebGrid1.Columns[8].CellStyle.VerticalAlign = VerticalAlign.Middle; UltraWebGrid1.Columns[9].CellStyle.HorizontalAlign = HorizontalAlign.Center; UltraWebGrid1.Columns[9].CellStyle.VerticalAlign = VerticalAlign.Middle;
UltraWebGrid1.DisplayLayout.Bands[0].Columns[8].Header.Style.HorizontalAlign = HorizontalAlign.Center; UltraWebGrid1.DisplayLayout.Bands[0].Columns[9].Header.Style.HorizontalAlign = HorizontalAlign.Center;
UltraWebGrid1.Columns[0].Width = 75; }
protected void CreateColumn(DataTable dt, string type, string name) { DataColumn dc;
dc = new DataColumn(); dc.DataType = Type.GetType(type); dc.ColumnName = name; dt.Columns.Add(dc); }}
"I have ask my IT that without a 30 day money back warranty, to not buy any licence for this product...."This mentality is what is wrong with 90% of the companies today, everyone expects a 3rd party control to overcomeproblems with bad programming, logic and databases etc. I am seriously just to tired right now to argue on this subject and doubt I lack the required mental state at the moment to carry on a debate about it as well...
I just took 15mins away from something to drop the grid on a form and hook up a dummy database with 1000 records in it anddidn't do "any" optimizing at all and it works just fine, this demo is only slow because I have no indexes on the database I am notusing a storedProcedure and the web.config is still in debug... nor am I using any optimizing techniques like compression etc.http://www.visualstudiotutorials.com/help/gridtest/
Can stored procedures (pl/sql) be used for hierarchical data sources? Could you point me to any examples?
thanks in advance!
GS
I have been using Infragistics products for the past 10 years...Sheridan Data Widgets. None of their customers pushes these guys harded than I do! Very simply, nearly all of my development is tied to using the Infragistics toolset. I can literally say I have zero experience with the MS Grid that ships with VS2008.One of the things I learned a long time ago about database development for windows and web is that the presentation layer is just that: THE PRESENTATION LAYER. Any effort to use it to massage and manipulate the data has performance consequences.THE DB SERVER IS YOUR FRIENDGet the data you need from your server EXACTLY the way you want the data presented. Yes it takes more time to write the stored procs, but you should also see a performance gain.Web Hierachical Data SourceI have been waiting for this control for a while. It eliminates the need to manually create your heirachical grid. Instead you create multiple sqldatasources and the WHDS manages the relationships for the WebGrid. It has great potential! :) . I want to see it at the centerpiece of ALL the Infragistics hierachical controls Trees, Menus, Calendars etc. It works fabulously with the Trees, Menus. Me thinks it should eventually replace the "custom datasource" used for the calendar. That way the calendar "data" can be easier to customize.WebDialogWindowI use this on EVERY MASTERPAGE! Being able to provide a modal dialog with a few lines of code is something every developer needs. Now I need it to provide standard Alert dialogs that can replace the MS validation alert boxes."Every conquest brings a newer quest!" ~ Eleanor Roosevelt
@JohnBobby
JohnBobby said: "Aikido is a brand new asp.net framework, built on top of Microsoft's ASP.NET AJAX extensions. All new controls built by Infragistics are built on top of this framework." seems like it will take a very long time for all controls to be rewritten under this new framework if you are only releasing 3 or so each time!
"Aikido is a brand new asp.net framework, built on top of Microsoft's ASP.NET AJAX extensions. All new controls built by Infragistics are built on top of this framework."
seems like it will take a very long time for all controls to be rewritten under this new framework if you are only releasing 3 or so each time!
It's always hard to explain the benefits of a new version without making the old version sound bad, but the truth is that even without the rewrite, the Infragistics controls, including the WebGrid are the best on the market (I know I'm a bit biased - but I really do believe this is true). The rewrite is all about making the controls even better - and not all controls require such an extensive rewrite. The Grid is probably the largest project, due to some of the complex architectrual changes that are being made.
JohnBobby said: 1) I have no way to know if what you say here is true and 2) I don't know specifically which "other vendor" you are referring to (please be specific if you can back up the claim as it would be helpful to me and others)
1) I have no way to know if what you say here is true and 2) I don't know specifically which "other vendor" you are referring to (please be specific if you can back up the claim as it would be helpful to me and others)
You're right - you have no way to know if what I say is true (which is almost my point) - and I probably shouldn't have said anything. My intent isn't to bash another product, but to make you aware that what may sound like a big deal on paper, may not be such a big deal at all. Here's a more concrete example. Go look for the "fastest grid on the market" and I'm sure you'll find multiple vendors making the same claim. Do you believe them just because they say it? No, you test it yourself. That was what I was trying to get at. I spend my days doing competitive analysis, so it's one of my own pet peeves to see the 'claims' that are being made, which are virtually unfounded. At the end of the day, just be sure to do your homework, and you'll be fine.
I would like to suggest that if you (or anyone else) would like to follow up on this discussion we schedule a phone call, and chat about this in real-time. I'm starting to struggle just trying to find which questions were asked, which ones I answered, etc. Plus, I don't make as many typo's when I'm talking on the phone :)
And you're right, I meant 2008 Volume 3, not 2008 Volume 1. Like you said - 2008 volume 2 just shipped, so I would say there's a really good chance the feature list for 2008 volume 1 is already set in stone. :)
@tony
thanks for your balanced reply. my thoughts are below.
"Infragistics has been doing AJAX development since 2004"
and kudos to you but you have acknowledged that your controls need to be rewritten (hence, Aikido) and that is what I hear often here in the forums, that your controls do the job but are heavy weight.
"While other vendors may be pushing their "new" AJAX frameworks, be cautious of what ammounts to nothing more than a marketing campaign"
"in the 2008.2 release, we added Safari support"
no disrespect but with a 2% market share we have much greater concerns than Safari support!
"I can't guarantee that drag and drop support is coming in 2008 volume 1"
I don't understand this comment as 2008 volume 1 was released some time ago and in fact 2008 volume 2 was just released! maybe you meant 2008? assuming so, to me this indicates you've abandoned this component at least in terms of enhancing its functionality. I appreciate you talking to the PM; tell him/her that if they are serious about the scheduler component they should look at the competition and see that they are now behind the state of the art.
"I would hope that you can agree that there was quite a bit of value in each of the releases"
actually I do not agree. and I am williing to admit this could be my own problem. but I have been and remain disappointed with each release of late. I eagerly look forward to a new release and then when I read the news it seems maybe there are one or two new features, and then something minor like a new chart is listed as a major new feature and enhancements (bug fixes?) to existing components listed as new features. from a marketing perspective, some of your recent releases IMHO should not even have a front-page splash/announcement rather just a page of release notes. it feels like over-promising and under-delivering to me. but again, maybe I am totally off-base here and I'm just feeling this way because my specific needs have not been met.
"We generally don't talk about roadmaps"
I understand the issues you discuss here but it would still be useful to know whether a component is slated for improvement within the next few releases. seems like you could just decide internally "yes" or "no" on something like that looking down the road for a year. not to sound like a broken record but it seems to me that the scheduler component was created and released to great fanfare and then shelved.
I really do appreciate your comments and I hope I don't sound too negative. our subscription goes through the end of the year so I'll be curious to see what the last release of 2008 brings.
JohnBobby said: As far as price is concerned it really is not about the price. I have lost more $ in wasted time trying to get the scheduler to work the way I want it to than I paid for the components! These tools are supposed to save me money!
As far as price is concerned it really is not about the price. I have lost more $ in wasted time trying to get the scheduler to work the way I want it to than I paid for the components! These tools are supposed to save me money!
My experience with WebGrid, Input Formatters, and the Menu, is that the learning curve is steep, but after that it's worth it. It's taken me about two years to learn my way around my particular subset of the tool set.
They are trying to improve this by providing better documentation, but these forums are (IMO) several times as valuable as all of the KB, Docs, and Samples put together. (Thanks in large part to the participation of IG staff.)