PDA

View Full Version : Coolite support for Content Delivery Networks



r_honey
Nov 16, 2009, 6:02 AM
I hope I am posing a new challenge for the Coolite team.

As anyone would expect, ASP.NET web applications get bigger & slower as you use more built in services. With each new HttpModule & HttpHandler added to web.config, with each new assembly added to bin, and with each new such things, ASP.NET apps put to much of a load on an average server.

Now, I typically use DotNetNuke (DNN) for solution development. People who have used it would agree that it is bulky (maybe too bulky). For keeping the web-server optimized for dynamic content delivery, I recently purchased a subscription for Amazon AWS service. As people here might know, AWS is a content delivery network for offloading static content from your servers.

Now, Coolite enabled pages deliver too much of static content to the page (images, stylesheets, javascripts and what not). I was wondering if Coolite team can work in the direction of integration with Content Delivery Networks which is not possible right now. This would provide a significant boost to Coolite/ExtJs based applications.

I also have a suggestion which might help in implementing this. I believe, that such integration should NOT require any changes to any other part of the Coolite framework, except the ScriptManager class.

You can introduce a new property in that class e.g. ContentbasePath
I might use that property like:



<ext:ScriptManager runat="server" ContentBasePath="http://static.mydomain.com" />


Then, all that the Coolite team needs to do are 2 things:
1) Change the urls generated by ScriptManager if this property is set, to be relative to this path.
2) Provide a folder containing static content that we should upload as it is to the root path of this property.

That should provide a significant boost to the application performance. Any thoughts from the Coolite team!!!

geoffrey.mcgill
Nov 16, 2009, 6:43 AM
Hi r_honey,

Thanks for the feedback!


As of v0.8.x we've included support for serving the extjs scripts from a Content Delivery Network (CacheFly).


Example



<ext:ScriptManager runat="server" RenderScripts="CacheFly" />


At the moment only the extjs source files (ext-base and ext-all) are available from the CacheFly CDN, but we're hoping to soon support the new Ext.NET core files as well.

geoffrey.mcgill
Nov 16, 2009, 6:49 AM
You can introduce a new property in that class e.g. ContentbasePath
I might use that property like:



<ext:ScriptManager runat="server" ContentBasePath="http://static.mydomain.com" />


Then, all that the Coolite team needs to do are 2 things:
1) Change the urls generated by ScriptManager if this property is set, to be relative to this path.
2) Provide a folder containing static content that we should upload as it is to the root path of this property.

Actually, this is also possible right now by setting the RenderScripts and ResourcePath properties.

Example


<ext:ResourceManager runat="server" RenderScripts="File" ResourcePath="http://www.example.com/" />

Of course, we do not host the toolkit core .js files on a CDN yet, but as mentioned earlier, we're hoping to fix that problem soon.

r_honey
Nov 16, 2009, 7:14 AM
I was not aware of that. Your 2 replies leave me with 2 questions:

1) As of v0.8.x we've included support for serving the extjs scripts from a Content Delivery Network (CacheFly)

What you mean is that the 2 files you mentioned have been uploaded to CacheFly. And we can just set that attribute to use the CDN?? Or we ourselves need to to have a CacheFly subscription??
In the first case, it is commendable you are paying for the content you are delivering for free.
In the latter case, how do I specify paths for my Cache-Fly subscription (I have not really used that CDN, so not sure about its specific internals)??

2) Actually, this is also possible right now by setting the RenderScripts and ResourcePath properties
Which are the files that I need to upload at this path?? What is the directory structure that I should maintain??

Are only js files supported?? Dont you support SDNs for image (FamFamFam icons) &amp; css files???

r_honey
Nov 20, 2009, 8:41 AM
Hi geoff, I would request you to take time out to answer my question. I like using the FamFamFam icons, because of their soft silky touch.

However, the number of icons I use across pages are many. I would really like to atleast move them together with the js to my Awazon AWS CDN.

geoffrey.mcgill
Nov 20, 2009, 6:48 PM
However, the number of icons I use across pages are many. I would really like to atleast move them together with the js to my Awazon AWS CDN.


Sure, this seems like a great idea.


The CacheFly .js and .css resources are managed by the extjs team and updated with each new release. The FamFamFam icons are not included in the CacheFly CDN.

r_honey
Nov 20, 2009, 11:52 PM
I must say you people are doing a great job. CDNs charge you per unit of data transfer. You are providing a CDN for your

code to your users free-of-charge.




geoffrey.mcgill (11/20/2009)The CacheFly .js and .css resources are managed by the extjs team and updated with each new release. The FamFamFam icons are not included in the CacheFly CDN.


I hope that these .js &amp; .css files have unique urls according to their Coolite version's release, and users still using older versions of Coolite would have their sites delivered their corresponding version's content.

Also, as I said, I would like to use my Awazon AWS service. I asked earlier also that which files need to be uploaded at this path?? What is the directory structure that I should maintain??