Fetch Sitecore Cache Details - caching

I have a requirement that needs to fetch Caching Details which includes:
Analyze the current system caching which includes CDN setup, enabled HTML, data cache etc with invalidating of cache suggest.
I need to get Sitecore instance caching details in non Sitecore application like Windows Application.
What are the options to get Sitecore Instance Details in non Sitecore Application
What all inputs i should provide to non Sitecore application to get Sitecore instance details.
The non Sitecore application will be used as a tool which gets Sitecore application(Sitecore Instance) details like pipelines,workflows,caching etc.
Your help would be greatly appreciated.
Thanks in Advance.

Admin Tools
Sitecore provides a basic cache monitoring page.
/sitecore/admin/cache.asp
and many other tools see /sitecore/admin/
Performance counter
You can use Windows Performance counters: see
https://sitecorebasics.wordpress.com/2014/10/25/sitecore-8-0-performance-counters/
On Azure application insight see https://doc.sitecore.com/developers/91/sitecore-experience-management/en/configure-application-insights-post-deployment.html
Log file
A lot of information is in the log file, http://sitecore-community.github.io/docs/documentation/Sitecore%20Fundamentals/Logging/ or Azure application insight https://doc.sitecore.com/developers/91/sitecore-experience-management/en/analytics.html
Custom Admin page
You can easily create your own admin page with the details you want to monitor. for the caching you can use the Sitecore.Caching.CacheManager in your code.
Sitecore Event and Pipelines
Sitecore is easy to extend with custom code, you can also easily add extra logging to you windows application. by subscribe to an Event https://sitecore-community.github.io/docs/pipelines-and-events/events/ or add an extra process to a pipeline. http://sitecore-community.github.io/docs/pipelines-and-events/pipelines/

Related

Server side rendering or pre-rendering in Laravel and Vuejs

I have a web application in Laravel 7 and Vuejs2 which have some pages like home, about, cities and help. these page need to be crawled by search engines.
I have tried both ways, prerendering and server side rendering without success.
for pre-render there is only one package prerender-spa-plugin which is very old and not updated since 5 years.
server-side-rendering is also difficult because my web app is already designed and is going to production, it is hard to implement that now, and also not recommended to implement server-side-rendering because of 5 pages.
any suggestion are appreciated to make these 5 pages crawelable by search engine.
update:
my application contain other pages and components which do not need to be SE optimized, pages like user account and profiles.
Overall, I recommend the usage of Nuxt if you want something that could deliver a professional experience, on top of managing all the flexibility that you wish to have with an SSR/SSG tool.
Here is a more detailed answer regarding your currently available tools to achieve some SEO-crawlabale content: https://stackoverflow.com/a/69075962/8816585
You mentioned that you wished to keep some pages as SPA-only, this is also feasible thanks to the generate.exclude key of the configuration: https://stackoverflow.com/a/66472634/8816585

Kentico 12 Caching in different environments

MVC C# project with a Kentico 12 back-end (no drag-n-drop web parts just using it as back end CMS, with calls to Kentico APIs for data). Basically, we're having a caching issue that only occurs on one of our environments (PROD). I believe this is more of an IIS or environment issue than a Kentico thing. Let me give you some specifics: Kentico 12 MVC v12.0.34 (upgraded from K11) and as stated before we're not using any web parts/components. Kentico is just the back-end CMS, and we use Kentico APIs to pull data for each page and have rolled our own views and models.
We have 2 environments, STG and PROD, both running Win Server 2016 that have a slightly different OS build version
STG: v1607 OS build 14393.3115, IIS v10.0.14393.0
PROD: v1607 OS build 14393.2999, IIS v10.0.14393.0
Within Kentico when we update a category, an event is wired for the UPDATE and runs the following code:
CacheHelper.TouchKeys(new[] { "cms.category|all" });
This clears ALL category caching (CacheDependency within Kentico) and when the webpage is refreshed the GetAllCategories method that pulls, you guessed it, ALL categories is called again. If you try it another time, you'll get a cached version until there's a change within Categories (or the cache timing runs out, something like a month). Works exactly as you'd think on the STG box.
Just to see what's going on, I added some Kentico informational logging to check what is happening at different places around this Update event firing. From the EventArgs I can get the source of the event (which category triggered it), and I can see when it's using the cached info and when it retrieves it from the db. Awesome.
The issue that I'm running into is when I run on PROD using the exact same code base, along with the same logging, and trigger the same event, the cache does not get released. The event logging says it has, but when the webpage refreshes, the GetAllCategories is not brand new but the last cached value. The only way to get the new version is to recycle the app pool or shutdown/startup the application within IIS.
There is no Output Caching on the class/methods. Same code base across 2 different servers.
Is there some environment variable or IIS setting that could have been set differently on the PROD box?
Any thoughts what could be causing this? Other places to look on the web server? Thanks for your help!
I've had a caching issue similar to this and it turned out that it was down to the Web Farm configuration.
The problem is that when you have the CMS and MVC both hosted on the same server Kentico cannot tell them apart in Web Farms.
Make sure that your CMSApp and MVC projects each have web.config keys to set the CMSInstanceNameSuffix key. This will help differentiate them in Web Farms and allow web farm tasks to be correctly generated for your MVC app.

Directus.io vs Laravel voyager

I am looking for a good system where I am able to
customize my table with custom fields without / less php development
get the data by rest api out of the box
membership area (is there a solution for directus.io, voyager, ... ) out-of-the box? (user can register and see some pages only for members) As I understand both systems are headless cms but are there a membership system already for download? Is there a better system to this?
are the system recommended for building an individual CRM System (as foundation for a php developer)? any other suggestions?
Regards
ms
If the plan is to have the platform work as you CRM platform, then Directus would be a great fit. You can install a blank instance, and then just add the collections/fields you want (their online demo actually has an example of some CRM features):
https://demo.directus.io/admin/#/login
The only thing that Directus doesn't have, that you mentioned, is a "Public Register" feature. But this could be a single custom page page that you build that adds users through the API. Also, Public User Registration is on their roadmap.

Kentico Output Caching issue - content couldn't get updated

I am working with a Kentico site and I have a problem with page output caching.
We have a custom webpart which loads the records from a Bizform's record data and displays those data in a page. The problem is that after giving it several tries, we couldn't figure out the problem why the webpart couldn't get the latest data from the bizfrom data and we suspect it was because of output caching.
We tried to:
Disable webpart output caching in webpart configuration
Disable page output caching in CMSDesk > General > Output Caching
Disable site output caching in Settings > System > Performance
Disable IIS cache for both User-mode and Kernel cache
Create cache dependencies for cms.form|byid| touched key (which I found is not supported in current kentico version)
And going to try create event handler to add touched key on bizform insert event
We encounter a similar problem with Shopping Cart Mini Preview Webpart with Ecommerce.CurrentContext.CurrentShoppingCart which returns different result for service handler (.ashx - gets updated) and for webpart (.ascx - does not get updated)
If you ever experienced these problems, please help.
The last place where it could be cached is the content cache. It can be set either in Settings->System->Performance or at the web part level under System settings section.
Only web parts that utilize the content caching have this section available. (E.g. some repeaters and data source web parts.) It might be a little bit confusing because then there are two sections (System settings and Performance) where you can influence caching. However the Performance section is used to set up the Partial output cache.
Anyway, you should definitely try to check Cache debug to see what is actually cached.
Additional resources:
Deep dive – Kentico CMS Caching
New in 5.5: Caching API changes
Deep dive: Cache dependencies
Kentico caching and cache dependencies explained
ASP.NET Caching Dependencies
I have faced issue similar to second one (with Shopping Cart Mini Preview Webpart) recently. Only web service (.asmx) was used instead of HTTP handler. In my case issue was solved by setting the EnableSession property of WebMethod attribute to true for all the CRUD webservice methods.
[System.Web.Services.WebMethod(EnableSession = true)]
So I think the matter is that handler should be able to access current Session.
In case of HTTP handler you could try to add IRequiresSessionState on the handler declaration to attach it with the session.
I am also using Kentico 8, I see that your Kentico version is older. That might also have impact but I am not sure about that.

Joomla external API and data access after 1.5

I am wondering by what the old XML RPC API will be replaced ? We developed a quite complete native(iOS+Android) and HTML5 implementation for the front-end and we'd like to offer that as SDK and REST API.
Right now we are trying to avoid any additional PHP plugin/extension for Joomla and we are currently very interested how we can automate else the data flow for customers. Currently we already support SQL direct access, complete Akeeba backups, or a local/remote Jave-App which feeds the apps from SQL directly, as cron job for instance. At the end and it should go all into our JSON format.
Is there any other project which provides a sort a formal or specified access to Joomla content and functions beyond the internal PHP Joomla API ? We just don't know what will be the replacement(it was too basic anyway). The Joomla website and the docs doesn't help at all to figure such things out.
I hope this question is legitim here. Any suggestion is welcome. thanks,
g.

Resources