How to determine multimedia component is published to filesystem or database - tridion

How can we determine whether multimedia components are published to filesystem or database?
Under which situation does the green color globe appear on any published component?

The green globe will appear on any published component if the component's schema is associated with template that supports dynamic publishing.
You can not determine on from CMS server where your dynamic component presentation will be stored.

The globe will show on any Component that has been published using a Component Template which supports Dynamic publishing (i.e. The Component has been published as a Dynamic Component Presentation).
Regarding your second question, to the best of my knowledge, there is no way from the CM side to know if the item has been published to the Broker Database or File System using a out of the box SDL Tridion API. However, as suggested by #Alvin, it is possible to do extend the existing storage layers as documented in this great article by #Puf http://www.sdltridionworld.com/community/2011_extensions/binaryeventtracker.aspx

You can tell whether an item will be published to file system or database by analysing the content delivery configuration on the relevant publication target. If your logging is suitably configured, you will see evidence there of the deployment.
As for whether you can detect the distinction on the content manager: No, you can't, and you shouldn't need to. The only people for whom it would be relevant are those with knowledge of the inner workings of your web applications, and presumably these people are able to discover the details of the content delivery configuration. For content workers such as web editors, it is sufficient to know that the item was published successfully or otherwise. This is one of the main benefits of a web content management system: content workers can deal with an abstraction of the web site, and not with its actual inner workings.
A page or component will be displayed using the "published" icon if that page or component is currently published to any of the publication targets. One is sufficient, so in practice, relying on the icon is not always very informative. For a detailed view, pull up the where-used dialog for that item and select the Published To tab. This will tell you which targets the item is currently published to.

Related

Testing the accessibility of widgets injected into web pages: Is there a tool to do this?

Problem statement: I have a web page which has widgets on top of it (basically these are injected using JavaScript into the web application). I would like to know if we can find any accessibility violations (WCAG 2.0) in my widgets.
Most of the tools available in the market are capable of scanning through the browser content and give a report of the violations as per WCAG 2.0 (A, AA, AAA).
So I'm specifically looking for a tool which can tell me the violations happening in widgets which are actually not part of web page itself. They are injected into the web application through JavaScript injection.
I would recommend using the Wave tool:
https://chrome.google.com/webstore/detail/wave-evaluation-tool/jbbplnpkjmmeebjpijfedlgcdilocofh
The widget should still be able to capture errors if something is inject to the website since the wave tool only triggers the scan once you initiate it.
If it's an iframe, you can possibly visit the iframe link directly and run the wave tool on the iframe URL page.
However, please note that it is a tool so it can still fail or show some false positives. Manual auditing for accessibility is always recommended.
There is a plugin called Axe - Web Accessibility Testing for Google Chrome.
You can run the audit at any particular point, so as long as you run it after the widgets have initialised it will work.
If you experience issues testing with this tool then there is something actually preventing those widgets being accessed in the first place as I have used this for numerous projects with dynamically loaded content without issue.

Tridion Experience Manager (XPM) implementation

I am trying to understand different artifacts around implementing Tridion XPM. Unfortunately I did not find any article that has answers to my questions.
For example Content delivery server (on WebSphere) can have four different applications, one for Content delivery(which handles publishing), one for web service (oData implementation), one for XPM (with Session preview) and the actual preview application. I am assuming we can merge one or more of these applications into one for a simple implementation (with one or two consuming websites).
My questions are:
How can we simplify the number of applications (WARs) to be made? Though I always prefer to keep the preview application separate from Tridion's framework. What are the benefits around Content Delivery session preview Web service as a standalone Java/JSP Web application Versus adding it to existing application?
How can I associate/integrate webservice(oData) to XPM or other common basic functionality like component linking?
For example if I publish a page with out enabling oData it will split tridion:ComponentLink tag where as if I enable it will split tcdl:Link tag. So I need to come up with custom class to read these tags? which eventually require adding Tridion framework in the preview application. (Assuming I did not include any Tridion framework in my preview to have a clean application dependency)
I looked at Tridion's live site for more information, but I could not find much useful info for my questions.
There's a LOT of questions right there, let's see what I can do here.
You will need 3 applications:
A Deployer (standard deployment configuration)
A Staging Website (with Tridion stack + XPM Filters + Ambient Framework)
A WebService app (OData + Ambient Framework)
XPM itself runs in the Content Manager Explorer, so it's not per se a separate app, it's an extension of the Tridion Content Manager.
If you want to have your staging separate from Tridion, then you will not be able to use "Session Preview", which in turn means you do not need OData. This however will revert back to the SiteEdit days whereby every change you do to pages requires the page to be republished (with Session Preview this is immediate).
You do NOT need to use OData for your Website in any way (unless you really want to). The WebService is there to support Session Preview only. I wrote down the interactions between XPM/CME/Staging site here and they're documented here.
If you publish tcdl:link code to OData, then just use TCDL/REL, Tridion will render it for you, you don't need to custom parse anything.
Hope this helps...

mind mapping controls for Web Application (ASP.NET)

I was wondering if anyone may know of any third party controls that can be purchased to perform mind mapping capabilities? My goal is to have the ability to wire up "canned up" controls. The controls should give a user an ability to drag and drop boxes and circles and make connections accordingly and automatically. However, the connections and the data in boxes and circles would be persisted on a SQL database via a .NET web application.
I have looked at the links below and added some notes. Most them seem to be available to purchase as individual licenses versus for a web server environment.
Please keep in mind that I have already taken the route to start developing my own mind mapping controls via JQUERY for an ASP.NET application but I'm weighing out my options due to time constraints.
Bubbl – can’t seem to purchase the controls for a web application.
https://bubbl.us/
Graph Visualization – seems like a desktop application with the ability to purchase individual licenses.
http://www.graphviz.org/
Mindjet - seem like a desktop application with the ability to purchase individual licenses.
http://info.mindjet.com/conceptmapping.html?cmpg=Americas_-_Google_US_CN_Mapping&gclid=CMKI_IqOs6kCFQQbKgodmCCZLg
SmartDraw seem like a desktop application with the ability to purchase individual licenses.
http://www.smartdraw.com/product/features/
Gallery – Can’t seem to find a way to purchase the any of the products and don’t know if the controls are for a web application.
http://www.graphviz.org/Gallery.php
Thanks,
Michael
Some time ago I tried the Bookbar open source mind mapping tool and it seemed pretty decent:
http://bookvar.codeplex.com/. You may want to play with it, too.

Sharing Data Between Two Web Applications in ASP.NET

I have a web application (MainApplication) where many of the pages contain a custom Web Control that looks for some content in a cache. If it can't find any data within the cache, then it goes out to a database for the content. After retrieving the content, the Control displays the content on the page.
There is a web application (CMS) in a subdirectory within the aforementioned web application. Users use this CMS to update the content pulled in by the MainApplication.
When a user updates some content using the CMS, I need the CMS to clear the relevant portion of the cache used by the MainApplication. The problem is that, as two different web applications, they can't simply interact with the same static cache object.
The ideal solution would be to somehow share an instance of a cache object between both web applications.
Failing that, what would be the best (performance-wise) way of communicating between the two web applications? Obviously, writing/reading to a database would defeat the purpose. I was thinking about a flat file?
Update
Thank you all for your help. Your wonderful answers actually gave me the right search terms to discover that this was a duplicate question (sorry!): Cache invalidation between two web applications
We had the exact same setup in a previous project i worked on, where we had one ASP.NET Web Application (with MCMS Backing), and another ASP.NET Web Application to display data.
Completely different servers (same domain though).
However, when a "editor" updated content in the CMS application, the UI was automatically refreshed.
How? Glad you asked.
We stored the content in SQL Server, and used Replication. :)
The "frontend" Web Application would read the data from the database (which was replicated by the CMS system).
Now - we don't cache this data, because in the database, we actually stored the markup (the HTML) for the control. Therefore we dynamically re-rendered the HTML.
Why is that "defeating the purpose"?
You can't get one application to "invalidate" the cache on another application.
If you're going down this path, you need to consider a distributed caching engine (e.g Velocity).
One option that comes to my mind in such scenario is using Velocity distributed cache mechanism. Do read about it and give it a try if possible http://msdn.microsoft.com/en-us/magazine/dd861287.aspx
In ASP.NET there is the notion of Cache Dependency. You can have a look here: http://www.codeproject.com/KB/web-cache/CachingDependencies.aspx or http://www.devx.com/dotnet/Article/27865/0/page/5.
There is also the Enterprise Library Caching Block available here that adds some feature to the standard stuff: http://msdn.microsoft.com/en-us/library/ff649093.aspx
Now, if you're running on .NET 4, there is a new System.Runtime.Caching namespace that you should definitely use: http://msdn.microsoft.com/en-us/library/system.runtime.caching.aspx
This article here "Caching in ASP.NET with the SqlCacheDependency Class" is quite interesting: http://msdn.microsoft.com/en-us/library/ms178604.aspx

What is meaning of ACTIVE in ASP.NET(ACTIVE Server Pages)?

What is meaning of ACTIVE in ASP.NET(ACTIVE Server Pages)?
Can you please provide an explanation on why it is named 'ACTIVE'?
Active was one of Microsoft's favorite words when the original ASP first came out. Other items like ActiveDirectory, ActiveSync, and ActiveX Data Objects also came out of this mid-late 90's "Active" era.
It had more to do with marketing than anything IMO.
EDIT: And ActiveX and Active Accessibility...
This is referring to the fact that the pages are running ActiveX scripts and server controls, from here:
Microsoft® Active Server Pages (ASP)
is the server-side execution
environment in Microsoft Internet
Information Server (IIS) 3.0 that
enables you to run ActiveX™ scripts
and ActiveX server components on the
server. By combining scripts and
components, developers can create
dynamic content and powerful Web-based
applications easily.
It is due to you are Actively Running Scripts.
Developing functionality in ASP websites is enabled by the active scripting engine's support of the Component Object Model (COM), with each object providing a related group of frequently-used functions and data attributes.
See here.
This is purely my opinion (and not necessarily the fact) but I would assume because unlike an HTML page it's not static. It's just another word for Dynamic.
Edit: David's post offers a better actual description of it.
i think it might have to do with ActiveX ... see here -> http://en.wikipedia.org/wiki/Active_Scripting
An active web document consists of a computer program(JS,applet etc.) that the server sends to the browser and that the browser must run locally. • When it runs, the active document program can interact with the user and change the display continuously.
It means that the pages have behavior... that they act to generate the result the user sees, rather than simply being a copy of the document the user ends up seeing.

Resources