Sitecore Data Importer Updated

March 02, 2013

I recently spent some good quality time working to update the Data Importer Module. It's an incredibly useful tool and I wanted to address some feedback about it so that users can better understand what it can do and how you use it.

The module was originally developed to import content from existing websites into Sitecore. I had to pull all types of information from raw SQL databases used by other CMS'. It can save a lot of time and effort doing these imports because you create the import definitions they are stored in the Sitecore content tree and you can rerun it as needed. It helps when you realize that you need to tweak the information you've just imported and delete and re-import the content. It's also useful for when you've got to import a dataset initially to start a project and then import more later to keep up to date with what's been added to the existing site.

So for changes, I went through the module and updated UI so that it uses Sitecore's native design which should make it feel more at home. I merged the Sitecore import and SQL import dropdowns and now all import types are run in the same way and only the implementation of the class differentiates them. I also revamped the code a lot. I added better messaging so that users know if they've forgot to fill out fields and I dealt with a lot of choke points to catch exceptions caused by missing information that would force you to restart the module and otherwise become frustrated with using it. I also put a lot more thought into making the system more modular so that it's much more simple to add custom data providers and custom field types. Altogether it should be much easier to customize. As a final addition I added a import mapping for MySQL databases after building it for an example in one of the videos. There are MySql.Data binary files that are installed with the package to support this.

To ease the learning curve I also created some walkthrough videos at the advice of good friend, Mark Ursino, to help get you familiar with the module and how to work with it. Here's the rundown:

If you're interested in working with the source code it's moved to GitHub since Trac was shut down.

Here's a screenshots of the module's new UI:

data importer