FC.MetadataExtractor released for SharePoint 2010

A few days ago we released our first product for the new SharePoint 2010 platform: FC.MetadataExtractor 3.0
 
By far the biggest improvement in SharePoint 2010, in regards to this new release of our product, is the ability to better control the asynchronous ItemAdded event receiver. Given the positive feedback at the SharePoint 2010 conference when Microsoft announced the addition of such a synchronous ItemAdded event, quite a number of people must have encountered that problem.
 
Recap: in SharePoint 2007, the ItemAdded event fires asynchonously and so does the thread that brings up the EditForm.aspx with the properties of the newly created item. This of course creates a collision if both threads then try to modify that same item. The only way out of this issue was to provide a custom EditForm.aspx page that would wait for the ItemAdded event receiver to finish before the EditForm.aspx would load and access the item.
 
In SharePoint 2010 the ItemAdded event receiver can now be configured to either fire synchronously or asynchronously and also be given a sequence number. This eliminates the need for a custom EditForm and any manual synchronization and allowed a much "cleaner" solution with the new product release.
 
On the user interface front, the Ribbon does take a bit to get used to, both for programmers and users. I do think though that accessing the Ribbon is easier for many users than having to search through several popup menus for a certain command.
 
FC.MetadataExtractor for SharePoint 2010
 
The ability to have client-side ECMAscript code and the new Notification elements in the user interface is definitely a great step forward. We made use of it for the manual metadata extraction that now happens asynchronously at the server while the user can continue to work in the browser.

Published: Jun-24-10 | 0 Comments | Link to this post

FC.ImageSearch released!

I am very happy that we've shipped this product, because I believe that it will mean a big difference for everyone who searches for images in SharePoint. It's not just about the proper layout of thumbnails on the search result page, but also about having the right links with the search results which makes the search experience so much more powerful. And of course, having thumbnails for images stored in any kind of library, or even file shares, is great too.
 
FC.ImageSearch result page
 
My favorite part of the solution though, is the streamlined view of all the search-related administrative information, and the ability to configure the search in one place rather than manually modifying properties scattered across the Central Administration and the library properties. Not to speak about the properties in the advanced search page and the core search result page. It now, literally, takes only seconds to add a library column as a Managed Property, or to add it right away also as a search criteria for the Advanced page.
 
Well, releasing a product is also always the right time to share some credits, which I am happy to do here:
 
Matthew McDermott's 4 part series on configuring image search results somewhat inspired us to turn his suggestion into a real product.
 
 
And of course, the late Patrick Tisseghem deserves a lot of credit too for his book, the webcasts and articles he provided. Patrick, you're missed.

Published: May-08-10 | 2 Comments | Link to this post

Next Product up: FC.ImageSearchResults

Right on the heels of our FC.MetadataExtractor 2.0 release shortly before Christmas we're working hard on getting a fun product out the door: FC.ImageSearchResults. It'll probably be another couple of weeks before we hit beta 1, but I thought I should already mention it here.
 
All the metadata that can be unleashed by the FC.MetadataExtractor product will be available to search on if the FC.ImageSearchResults solution is installed. And what's best, the solution comes with a custom searchresult page that displays those images nicely with thumbnails and metadata that makes sense for images. I'll blog more about this as we get closer to the public beta release.
 
As always with our product efforts we're aiming to support both MOSS (the commercial product) as well as WSS 3. This time I am especially happy to tell that there will also be support for a free version of SharePoint: while search in WSS 3 simply sucks, the Search Server Express 2008 (SSX) product (that simply can be installed "over" an existing WSS 3 installation) has all the bells and whistles to serve as the basis for our search solution.
 
If you run WSS 3 and haven't looked at SSX yet ...I highly recommend you do so ASAP!
 
The object model of the libraries that get installed with the SSX "upgrade" for WSS 3 have everything we need for our solution. Even the Search user interface that is added to the Central Administration is quite nice. However, there was one thing that was missing: a link to the page to manage the so-called "Shared Scopes". Our solution installs a Share Scope called "All Images" that allows to search across the entire farm and while we do that programmatically we of course prefer it to be visible to the administrator, so what is installed is transparent.
 
Well, the respective admin page for managing the scopes is actually installed. Just the link is missing. So you can get to that page simply using this link:
 
http://<server name>:<central admin port>/ssp/admin/_layouts/viewscopesssp.aspx?mode=ssp
 
View Scopes

Published: Jan-16-10 | 0 Comments | Link to this post

SharePoint DAM: Versioning Metadata

As we've just released the 2.0 version of our FC.MetadataExtractor product I thought I should catch up with some blog postings on DAM functionality in SharePoint.
 
One of the great things that come with SharePoint 2007 and WSS 3 is that you can keep track not only of the different versions of an image but also of its metadata. This is extremely helpful as entering metadata in a corporate environment is usually done over multiple rounds and maybe even involves several contributors.
 
All you need to do to activate versioning of metadata is to enable Versioning in the Site Settings:
 
Versioning Metadata
 
Once that is enabled you can either create a new version by uploading a new version of the image which includes new metadata, or by editing the metadata directly in SharePoint.
 
The Version history is now available via the item's context menu and the metadata trail can be seen in the screenshot below:
 
Versioned Metadata
 
This is just one example of the great base-level functionality SharePoint 2007 / WSS 3 include that can be applied in many scenarios, but is especially useful for metadata-heavy applications like DAM.

Published: Dec-23-09 | 0 Comments | Link to this post

FC.MetadataExtractor 2.0 Launch

It's been quite a busy time lately, as we were zeroing in on the 2.0 release of our FC.MetadataExtractor solution, and I have to say that the good old 80/20 rule certainly still applies (the last 20% of the work takes 80% of the time).
 
Just to give a quick overview: The FC. MetadataExtractor reads metadata from images - either on upload, or triggered manually - and stores it in the Sharepoint columns.
 
As the SharePoint custom document parser interface turned out to not be available for the main image formats we had to use Event Receivers. However, those also turned out to be quite inadequate, e.g. as the ItemUpdated receiver is asynchronous and interferes with the EditForm that comes up when someone uploads a single image. Hristo Pavlov had a good suggestion on how to solve that one problem, but it still leaves a lot of questions on how to wrap all this customization into a single feature, which is to be installed.
 
And beyond that there were many more individual problems attached to the different ways to upload or move images to a SharePoint library. Some of them are related to IIS and SharePoint settings in general, like for uploading large image files. I'll do a separate post on this once we're through with the release.
 
At this point I also want to thank our beta testers. They are still the best source of inspiration and guidance!!

Published: Dec-11-09 | 0 Comments | Link to this post

ChangedProperties Property - Documentation Error

We're getting ready to ship the 2.0 version of our "Metadata Extractor" product that extracts metadata out of images and copies it into the list columns. One of the cool new features is that it also extracts the metadata when a new version of a file is uploaded (previously it only did that on the initial upload, which was hard enough, given the problems around the asynchronous ItemAdded eventhandler ...but that's another story ;-).
 
The best way to check what exactly has been changed on an item is to use the ItemUpdating and ItemUpdated events. However when we looked into storing information that was available in the ItemUpdating event that occurs first, so that we could access it in the ItemUpdated afterwards we were a bit confused about the documentation, especially the meaning and usage of the ChangedProperties property. MSDN states that it "gets properties that have changed". Well, not only is that as minimalistic as can be, but also simply wrong:
 
The ChangedProperties property can actually be used to store values from the ItemUpdating event to access them in the following ItemUpdated eventhandler.
 
Example:
If you add the following statement in your ItemUpdating eventhandler:
properties.AfterProperties.ChangedProperties.Add("FILEVERSION", item.File.Versions.Count.ToString());
...then you can access this value in the ItemUpdated eventhandler via:
string previousVersionNumber = properties.AfterProperties["FILEVERSION"].ToString();
Btw, if you step through your code you'll see that the key/value pair is actually being added to the ChangedProperties property. SharePoint then copies it over to the AfterProperties collection before the ItemUpdated eventhandler is invoked.
 

Published: Nov-15-09 | 0 Comments | Link to this post

Custom List Forms with Code-behind

There are a lot of articles on the web about manually modifying the list forms and the ListFormWebPart in particular, but there isn't that much information about modifying these forms programmatically, and the problems that come with that.
 
To start with, there's a great article on SharePoint List Forms by Hristo Pavlov that I highly recommend.
 
Customizing the ListFormWebPart is a chapter by itself, but what we needed was to customize the EditForm.aspx. Actually, we needed to inject a control that would prevent the form to come up while the asynchronous "ItemAdded" event, triggered by a file upload to the library, was still busy retrieving metadata (also an adventure in itself, as I consider that clearly a conceptual bug in SharePoint), which would result in an exception and a failure of the upload and/or the metadata extraction.
 
Now, there are actually two levels of forms one could utilize: each list/library has a set of these forms (New, Display, Edit) and the content types that are associated with the list/library also have these forms.
 
We chose to replace the EditForm.aspx of the document-type content types with a custom aspx form with code-behind. Why code-behind? Well, there are actually a couple of things one needs to adjust on the fly to make this work. One example would be that a custom application page should reside in the "_layouts/" space and the default.master masterpage that is used by the list forms is not directly accessible from there. But the most important reason was that the ListFormWebPart requires the "ListName" (it's actually the Guid ID of the list) and the "ListItemId" (which is what it sounds like :-) to be set properly when the OnInit event fires.
 
ListName&ListItemId
 
So, where's the problem? The ListFormWebPart is an incredibly flexible piece of programming art that can render itself on the fly automatically, depending on what list, content type and columns are to be displayed, BUT it does not retrieve the ListName and ListItemId from the Page.REQUEST automatically. Alright, we can do that with the code-behind, but that's NOT the problem ;-) The problem is that the control isn't available during the OnPreInit event to set these properties, and before the OnInit event handler gets fired SharePoint already throws an exception stating that no item could be found for the list and itemId specified ...Duhh!
 
Well, the solution is actually (as most things in life) trivial: the OnInit event fires on the controls before it fires for the page. Therefore it is important to add a code-behind event handler not only at the page level but also for the Web Part itself:
 
WebPart OnInit event handler registration
 
And the rather simple code-behind for this looks like this:
 
        protected void Lfwp_OnInit(object sender, EventArgs e)
        {
            string listId = Page.Request.QueryString["List"];
            string itemId = Page.Request.QueryString["ID"];

            ListFormWebPart lfwp = (ListFormWebPart)sender;
            lfwp.ListName = listId;
            lfwp.ListItemId = Convert.ToInt32(itemId);
        }

 
The beauty of this solution is that the same custom EditForm.aspx can then be used not only for all Picture Libraries, but also for Document Libraries.

Published: Oct-12-09 | 8 Comments | Link to this post

Joe Bachana on the latest DAM Trends

Joe Bachana shares his viewpoint on the latest trends of the DAM market. It's a great presentation with concise details. Absolutely worth reading.
 
Joe has been in the DAM industry pretty much since its inception and he has a wealth of hands-on experience with many DAM products.
 
Here's the link to his blog also, which is focused on Publishing in general.

Published: Jun-03-09 | 0 Comments | Link to this post

Guidelines for Handling Image Metadata

Determining the right taxonomy and picking the right standards to store metadata has long been a challenge for DAM users.
 
But there's hope! The Metadata Working Group - consisting of heavyweights like Adobe, Apple, Microsoft, Canon and Sony - recently wrapped up a first major draft of their Guidelines for Handling Image Metadata.
 
So, if you're still bedazzled about what to do about tagging and categorizing your images, there's a document for you to read!
 
If you're in the L.A. area on November 10-11, you might also want to attend the annual Henry Stewart DAM event. Andrew Salop, a world expert on XMP metadata, will be discussing these guidelines.

Published: Nov-05-08 | 0 Comments | Link to this post

The DAM Vendor List

Not sure what DAM vendors are out there, and what they really offer?
 
Capterra.com offers a comprehensive list of DAM vendors. Many of the entries provide bullet points on what they offer (click on "more").

Published: Nov-05-08 | 0 Comments | Link to this post
 Next >>