Reviews

Review: Portfolio

Portfolio 7
$3499.95/server, $199.95/client, $4499.95/SQL Connect, $1999.95/NetPublish
Extensis
Portland, Oregon
(503) 274-2020
www.extensis.com

One of the nice things about writing Developer Central is the chance to look at software that I might not otherwise see. Portfolio is a good example. It's a Digital Asset Management application, which is to say that it helps organizations keep track of stuff they have stored on computers. One typical market for this sort of thing is creative professionals who manage a collection of photographs, fonts, mockups, publications, and so on. But you could really store most anything here, from PowerPoint slides to source code files, if you really wanted.

Portfolio is a client-server application. The Portfolio server keeps track of one or more catalogs of digital assets, and controls who can work with each of them. The clients provide cross-platform (Mac and Windows) access to the server. There are also a couple of glue pieces: there's a SQL Connect module that allows you to store catalogs on a database server (SQL Server, MSDE, MySQL, or Oracle) instead of in a disk file, and a NetPublish piece that can quickly move a selection of assets to a Web page (for example, think about searching for everything related to a particular project and then putting it on an extranet for the client to review).

The installation was straightforward though, since I wanted to use a SQL Server database, there were a couple of manual steps. The paper documentation lays out the steps quite clearly, which is definitely nicer than trying to find the usual cryptic readme files. Once up and running, I turned Portfolio loose to catalog a few thousand digital photos. Soon enough, I had a catalog matching my storage structure on the hard drive (Portfolio is smart enough to synchronize with the way you already store files, and can even monitor a folder for changes), with each photo represented by a thumbnail and metadata. It automatically reads common metadata such as the EXIF information in my photos, so the catalog was searchable by things like the date the photo was taken and the F-number instantly.

Adding your own metadata is trivial as well; a few mouse clicks and you can fill in missing fields or add your own keywords. Searching by keywords is lightning-fast, at least with SQL Server on the backend. Portfolio also offers a batch of other features including support for the most common digital camera raw photo formats, the ability to move files to offline storage by burning them to CD or DVD (the catalog keeps track of what is where), and a miniature version of the client that lets you quickly find assets and then drag them into programs like Photoshop.

So where's the developer tie-in here? The answer lies in that SQL backend. The folks at Extensis were happy to share their SQL schema with me, and we chatted some about the extensibility possibilities inherent in using a database server. For instance, imagine sending e-mail any time that a new asset is moved into the Pending_Approval folder. That's not implemented in Portfolio itself, but it wouldn't be hard to add with a proper database trigger. You can also imagine ways to automate adding assets, or performing other workflow operations, by directly manipulating the database. I know if I ever get involved in a digital asset management project, I'll look back to this open solution as a good starting point.

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.