One more feature needed.
Defining groups like you have and then referencing those groups - that is fine, great, etc.
However, what is more realistic to me is this:
I will have a certain number of groups for sure. I will want to use the groups exactly as you have them.
I will then have particular web pages that use additional scripts. The scripts used may be another group or they may be individual scripts.
Ideally, all these would be combined into one final request. The same holds true for css files. May have specific css files in certain views, etc.
The way to handle this is to create additional helpers that do not directly output the script. So at the top of the page in the site.master (MVC here) you would have
<%= Html.Combres.Scripts.OutputGroup("one").whatever() %>
In individual views, you may add scripts or add groups.....
Then at the bottom of the master webpage, you would have:
<%= Html.Combres.Scripts.Render() %>
That final render would take all the requests given to it from all views and construct the link to output the script/css link. This would be the final piece necessary. Optionally,
The ability to reference combres.axd/js/somefile.js and have that minified/compressed with proper headers, etc. We of course lose versioning with this - which is a KEY component you are providing and KEY to the caching. This means these stand
along .js and .css files would need to have the versions in the filename.
I know I have posted a number of questions/suggestions/etc - but your product looks great and I hope you welcome these ideas/suggestions/questions.