Learn More





DNN Community Blog

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

Introducing ADAM - the Automatic Digital Assets Manager

Uploading and managing files can be very time consuming, frustrating and error prone. Yet in 2sxc 8 we are automating almost everything with an asset manager. We wanted to call him 2ass, but thought better of it and called him adam :).

A Quick Look

In my 100-seconds what's new in 2sxc 8 you can quickly see how I use ADAM in about 2 seconds - check it out, the ADAM part starts at second 45...

What ADAM does for you

Adam has three core features and will get another 3 within a few weeks. The two things it does today are:

  1. Provide a fast UI to add assets - either with drag-and-drop or with a quick "choose your file" dialog
  2. Automatically store it in a good location so you don't have to choose any destination folders for storing it
  3. Provide you with a thumbnail and preview in the edit-dialog

The second aspect is the most important, because choosing the storage location is the most time-consuming and frustrating part of the process; drag-and-drop is just fun and sexy.

ADAM speeds up the process by 10 to 60 times…

In general any user uploading images or documents spends quite a lot of time clicking and opening dialogs to do things such as

  1. Open the image manager
  2. Navigate to the right folder where the image should be placed
  3. Create new folders just to make sure the image has the "right" place
  4. Hit Upload
  5. Hit Browse again
  6. Click through the folder structure on her PC
  7. Choose the image and click ok
  8. Click Upload
  9. Choose the image again
  10. Click insert

That’s a long chain of events and typically takes about 1 minute if everything works correctly. Many times it doesn't - sometimes the Telerik-image picker can't show the full folder name or gets into a state where you have to close the dialog to start over. The new process often takes just one second making it much more user friendly.

The Automatic Folder / File Structure

In a moment I'll explain why this can be automated, but here's where the file is stored:

  1. in each portal (like /Portals/0/) it creates a folder called "adam" - so you'll have a root like /Portals/0/adam
  2. in this it creates a subfolder by App - so you'll probably have a folder "blog", "blueimp-gallery" and for the normal content it just creates a subfolder called "Content"
  3. Within that each content-item (each entity) receives it's own folder. This folder-name is built using the GUID of this content-item, which is important because it's the only reliable ID which would survive import/export into another system. Because the GUID is so long, we rewrite it to a more compact 22-character string which still contains the entire Guid, we call the Guid22. This is done using a base64 encoding of the binary format of the original GUID so we don't lose any information.
  4. Within this folder each field again receives an own folder - so that if you upload a logo.jpg in the field "CompanyLogo" and in the field "ProductLogo" they will both have their own folder.
  5. The one folder per field is also in preparation of the "many files per field" functionality which we're envisioning for the near future - which should revolutionize various processes…
  6. In addition to this, if you upload a file which already exists it will add a number to it. This helps when versioning content - so if you "replace" the logo.jpg but want to save the change as a draft, then the original logo.jpg is still available and works

How can you ever find this file again?

That's fairly easy - but in reality you shouldn’t want to find this file again. If you think about it, most of the work you invest in creating and managing folders is a waste of time, because most assets are never reused.

Basically we all learn very early that we must upload the assets to the correct folder. We think of it as "so we can find it again" but in reality we rarely re-use these assets. In reality we're actually organizing them so they don't clutter up our main folder and so we know what's in use etc. So for 95% of all cases - this includes normal image/text content combinations, image galleries, and more - the files are used just once. And if we do re-use them, it's wiser to just upload it again in the new entity, so that it's clear where the file belongs and when it's not needed any more.

I know that most developers will not really like this idea, because we've been trained since DOS to really, really know where our files are. But think of it more like a database, where the file now is part of this content-item, and really only part of this content-item. It's not meant for re-use, just like you wouldn't mind typing the word "Daniel" a second time when another employee has the same first name.

So what If you want to re-use the file?

Basically there are many ways to do this but we recommend to just upload it again in the other location where you need it - since this will improve the usage-tracking of the file and later clean-up. If you really, really want to re-use it you can also just go to the DNN file manager and move the file. Since 2sxc keeps track of the file-number the moved file will still work. But consider this bad practice in most scenarios.

Let ADAM do your Work

ADAM will save you lots of time and make content-editing work more fun. If you love it (we do), then it will take care of everything for you. For the control-freaks and the masochistically inclined we still provide the telerik uploader :).

Love from Japan (nope, not Switzerland this time),

Daniel Mettler grew up in the jungles of Indonesia and is founder and CEO of 2sic internet solutions in Switzerland and Liechtenstein, an 20-head web specialist with over 800 DNN projects since 1999. He is also chief architect of 2sxc (see forge), an open source module for creating attractive content and DNN Apps.

Read more posts by Daniel Mettler


There are currently no comments, be the first to post one.

Comment Form

Only registered users may post comments.


2sic Daniel Mettler (124)
Aderson Oliveira (15)
Alec Whittington (11)
Alex Shirley (10)
Andrew Nurse (30)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (22)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (203)
Chris Paterra (55)
Clinton Patterson (28)
Cuong Dang (21)
Daniel Bartholomew (2)
Dave Buckner (2)
David Poindexter (3)
David Rodriguez (2)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (74)
Geoff Barlow (6)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (270)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matthias Schlomann (15)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Mike Horton (19)
Mitchel Sellers (28)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Peter Donker (52)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (2)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (37)
Will Strohl (163)
William Severance (5)
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?