Please have a look at let me know what you think. I still need to do the documentation as ClientDependency has been removed and I guess I should explain you to configure Cobres.
I have finished studying all your code, it's very nice.
I have some feedback :
For the news, instead of using the .net cache, why don't you use the build in "Cache By Page" on the macro "NewsFeed" and "NewsList" with a Cache Period of 8 hours ?
Thank you very much for taking the time to review the package.
Regarding your questions:
Why am I using ImageResizer instead of ImageGen?
I wanted to make the package standalone and remove the dependencies with other packages. Both ImageResizer and ImageGen are fantastic products, and I believe to get the best of the product you need to go for the premium version http://imageresizing.net/plugins or http://www.percipientstudios.com/imagegen/features.aspx - and also to support Nathanael and Doug for their great work -. Anyway, ImageGen is fully supported, the only thing it needs to be done is to remove this module from the web.config:
Why am I not using the Cache By Page in the NewsFeed?
Because if a news item is publish and we are using CacheByPage, we won't be able to tell the macro to refresh the NewsFeed. So, if you have a look at this code https://github.com/jorgelusar/ubootstrap/blob/master/src/Logic/Events/UpdateFeed.cs, you'll see the cache is automatically cleared if a news item is publish so if someone is subscribed to your NewsFeed will always get the latest news.
Again, I wanted the package to be standalone and remove the dependencies with other packages. I think this is particulary important for umbraco newbies to make their life easy and as they know more about umbraco they can start trying other packages.
What about the 301 redirect package?
Yep, I agree with you. It is a fantastic package. I still need to work on the documentation, but I'll definetely explain how to use ImageGen and the 301 redirect package.
Now I have some questions for you:
How do you find the transition from ClientDependency to Combres? Did you find the /config/Combres.config file? Have you been able to edit it? Does it work as expected?
What do you think about supporting both css and less files? I've basically done this beacuse there are some developers that are not so keen in using .less, or simply more familiar with just plain css
I have seen how to switched from ImageGen to ImageResizer (I check your "Logic" code :)) thanks.
On big sites with lots of images we had performance issues with imageGen, so i'll definitely test ImageResizer on large sites, thanks.
About the cache per page, the umbraco macro cache is flushed each time a node (whatever node) is published (so even if the 8 hours are not reached), so I guess it should work without the .net cache.
"I could've done it with just standard razor markup but I prefer to use the standar .net SyndicationFeed class" => good point ! thanks
How do you find the transition from ClientDependency to Combres? Did you find the /config/Combres.config file? Have you been able to edit it? Does it work as expected?
About the transition from ClientDependency to Combres, I didn't use the first version of UBootstarp, so sorry I don't have an opinion about it.We are using Squish It
What do you think about supporting both css and less files? I've basically done this beacuse there are some developers that are not so keen in using .less, or simply more familiar with just plain css
I think it's great. Unfortunately, i didn't have a chance to play with "less" a lot before but it's really nice to have both of course. And I never tried to use a page like "EditLessFile.aspx.cs" in Umbraco before, that opens some cool options to me :)
Actually, i think it makes sence to use the .net cache for the news instead of the macro caching, otherwise the cache would be flush even if you publish a "text node"..
In a project, we are even using AppFabric to cache stuff so the cache is not flush if the app pool is refreshed..(but of course it doesnt make sence for Ubootstrap)
Getting the Etag right is difficult, so following the Yslow recommendation I'm simply removing the Etag from the host header.
The server shows it’s version as well as the version of the ASP.NET framework in the headers returned to client requests, and this could be seen as a potential vulnerability. Therefore, there are being removed and the end request. I also usually remove the Umbraco version in the host header for the same reason by setting <removeUmbracoVersionHeader>true</removeUmbracoVersionHeader> in the config/umbracoSettings.config
New features in uBootstrap package
Hi guys,
I have recently release the new version 1.1.0 with the following features:
Congradulation ! and big thank you !
It works like a charm : i just installed a new umbraco 4.8 with uBootstrap, it was very easy to do and it works straight forward.
Also, very nice use of best practices => I learned some cool stuff just by looking at your code and architecture
Could you please tell me why you are using http://imageresizing.net/ instead of ImageGen ?
Hello again,
I have finished studying all your code, it's very nice.
I have some feedback :
I have a question also :
why do you do ?
void ClearHeaders(object sender, EventArgs e)
{
HttpContext.Current.Response.Headers.Remove("Server");
HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
HttpContext.Current.Response.Headers.Remove("ETag");
HttpContext.Current.Response.Headers.Remove("X-Powered-By");
}
Hi Fabrice,
Thank you very much for taking the time to review the package.
Regarding your questions:
Why am I using ImageResizer instead of ImageGen?
I wanted to make the package standalone and remove the dependencies with other packages. Both ImageResizer and ImageGen are fantastic products, and I believe to get the best of the product you need to go for the premium version http://imageresizing.net/plugins or http://www.percipientstudios.com/imagegen/features.aspx - and also to support Nathanael and Doug for their great work -. Anyway, ImageGen is fully supported, the only thing it needs to be done is to remove this module from the web.config:
and add this one instead
Notice the only thing this HttpModule does is to redirect the incoming image request to ImageGen. You can see the source code in https://github.com/jorgelusar/ubootstrap/blob/master/src/Logic/Modules/ImageModule.cs
Why am I not using the Cache By Page in the NewsFeed?
Because if a news item is publish and we are using CacheByPage, we won't be able to tell the macro to refresh the NewsFeed. So, if you have a look at this code https://github.com/jorgelusar/ubootstrap/blob/master/src/Logic/Events/UpdateFeed.cs, you'll see the cache is automatically cleared if a news item is publish so if someone is subscribed to your NewsFeed will always get the latest news.
Why am I not using Cultiv's sitemap?
Just because I prefer to build the XmlSitemap with and XmlTextWriter https://github.com/jorgelusar/ubootstrap/blob/master/src/WebApp/macroScripts/XmlSitemap.cshtml. The same rule applies to the NewsFeed, I could've done it with just standard razor markup but I prefer to use the standar .net SyndicationFeed class as in https://github.com/jorgelusar/ubootstrap/blob/master/src/WebApp/macroScripts/NewsFeed.cshtml
Why am I not using Cultiv's dynamic robot?
Again, I wanted the package to be standalone and remove the dependencies with other packages. I think this is particulary important for umbraco newbies to make their life easy and as they know more about umbraco they can start trying other packages.
What about the 301 redirect package?
Yep, I agree with you. It is a fantastic package. I still need to work on the documentation, but I'll definetely explain how to use ImageGen and the 301 redirect package.
Now I have some questions for you:
Cheers,
J
duplicate post sorry, see my answer below
Hello again,
wow, thank you for the fast, big answer.
I have seen how to switched from ImageGen to ImageResizer (I check your "Logic" code :)) thanks.
On big sites with lots of images we had performance issues with imageGen, so i'll definitely test ImageResizer on large sites, thanks.
About the cache per page, the umbraco macro cache is flushed each time a node (whatever node) is published (so even if the 8 hours are not reached), so I guess it should work without the .net cache.
"I could've done it with just standard razor markup but I prefer to use the standar .net SyndicationFeed class" => good point ! thanks
About the transition from ClientDependency to Combres, I didn't use the first version of UBootstarp, so sorry I don't have an opinion about it.We are using Squish It
Did you have the problem discribed there : http://our.umbraco.org/projects/backoffice-extensions/ucomponents/questionssuggestions/33021-Upgrading-to-Umbraco-48-breaks-support-for-uComponents
I didn't noticed the Combres.config, thanks
I think it's great. Unfortunately, i didn't have a chance to play with "less" a lot before but it's really nice to have both of course. And I never tried to use a page like "EditLessFile.aspx.cs" in Umbraco before, that opens some cool options to me :)
Cheers
Fabrice
Actually, i think it makes sence to use the .net cache for the news instead of the macro caching, otherwise the cache would be flush even if you publish a "text node"..
In a project, we are even using AppFabric to cache stuff so the cache is not flush if the app pool is refreshed..(but of course it doesnt make sence for Ubootstrap)
Thanks for the feedback Fabrice :)
Regarding the HeadersModule https://github.com/jorgelusar/ubootstrap/blob/master/src/Logic/Modules/HeadersModule.cs, there are two different things I'm doing there.
Thanks,
J
is working on a reply...
This forum is in read-only mode while we transition to the new forum.
You can continue this topic on the new forum by tapping the "Continue discussion" link below.