Hello, Claudia!
I will try to respond every of your questions below with as many details as I can think about. Hope the reading proves helpful!
Originally Posted by
claudiacostaors
Do you know if there are some other cases where people noticed performance issues on IE?
It's been a while, some years maybe, since I last heard about experience on IE with Ext.NET, so while there were, yes, talks about IE compatibility with Ext.NET, the most troublesome ones were fixed by the time. And those specific fixes for IE11 might also have helped to decrease response times with the browser -- but they were required nevertheless.
Originally Posted by
claudiacostaors
The test response times that you reported include also network time?
Yes, they include network overhead as I did the tests against the
live examples explorer. I have an average round-trip to the server of 120-150ms from where I am, and the EE does not use CDN optimized paths to resources at all, but from 2nd request onwards, most become cached. It also includes SSL encryption in the overhead.
Originally Posted by
claudiacostaors
Is there a way to reduce the js sent to the client
Yes, and no. For instance, if you don't use charts, Ext.NET won't load the resources required for them unless explicitly specified (in cases the developer wants to build charts dynamically from client-side or post-load events/calls). Some other Ext.NET-specific components won't load unless used/specified either. But most of the core functionality of Ext JS, due to issues in the past, must be loaded at once.
If you are not going to run the webserver on the company's intranet, or if you are having the customers access the server all across the world, you can instruct Ext.NET to use CDN as the endpoint to load the resources from. This would allow faster network transfer times as the resources would likely be hosted "closer" to the customers.
If you are running the service from the company's intranet to clients constrained within the same company's intranet, CDN will probably not help much, unless you have issues on the server being too busy to answer requests even for the intranet.
This usually only improves the first load though, as browsers will cache the js, css and image resources throughout a single Ext.NET version life (and user browsers' cache). If Ext.NET is upgraded, it ensures to let clients know the version has changed so that they download the fresh version of scripts. The following loads, even of other pages, would have, for example, the
ext-all-js script already cached, so that shouldn't become a network bottleneck. I don't think this can give so much an advantage to IE browsers if the script to parse was smaller. Besides, the overhead to load the different scripts might kill the advantages of loading a single one.
Originally Posted by
claudiacostaors
Is there some Ext.NET configuration that could increase performances?
Well, there are.
-
SourceFormatting is used for debugging. Disabling it would allow code to be output minified, so less data thru the network channel. This only affects the dynamic script run by the pages (the panels you set up, grid to load, direct method/events responses, and so on). This is disabled by default.
-
ScriptMode is also used for debugging, but affects how the base scripts are offered to the browser. Being
Release by default, it offers minified files instead of the formatted ones (like extjs-charts-all, extjs-all, ext-all, and so forth). If
Debug, then the non-minified files are offered.
-
Theme usually the older themes are easier on the browser than the modern ones, but I can't say how the extent of a performance gain to the visual price would be.
-
InitScriptMode could save you a further request at load time by setting it to
Inline. The default
Linked means it will offer the dynamic page script as a separate resource, thus another request would be needed to fetch the script. I don't expect a noticeable increase in performance with this, though.
- Disabling the
Aria related checks might also improve performance overall.
Originally Posted by
claudiacostaors
Is there a way to find the mapping from Ext.NET and ExtJS class?
Yes. Every Ext.NET class has a
InstanceOf and
XType property that reflects to the corresponding full Ext JS class name and its alias xtype, respectively. You can draw a C# application to step thru Ext.NET classes fetching the value to identify the Ext JS entity.
Premium subscription grants access to Ext.NET source code. This would allow you to draw a parser or even adapt Ext.NET to your needs. For instance, you could even strip down a version of ext-all and make a selection of resources you'd want to load to given pages, like "ext-accounts", "ext-listings". But this would require solid C# skills to handle modifying the Ext.NET sources and keeping between upgrades to keep the code up-to-date. While we don't offer per-customer customization in code, we'll be willing to help here in the forums with questions you have about extending Ext.NET.
Ext.NET sources are offered under the
git DVCS, and distributed via a private GitHub repository.
Alright, I think this answers the questions you made here, let us know if I skipped any. Hope this helps!