Wednesday, July 30, 2014

The Phoenix is Rising: Azure Storage Explorer 6

I'm very excited to announce that, after a long hiatus, work is progressing rapidly on the next version of Azure Storage Explorer and Preview 1 is now available on CodePlex. In this post I want to provide some background context on why the long wait and what you can look forward to in version 6 of Azure Storage Explorer, the "Phoenix" release. In my next post, we'll review Preview 1.



Where We've Been: Azure Storage Explorer versions 1 through 5
I've been involved with Windows Azure from the very beginning, and was honored to be selected as one of the inaugural MVPs by Microsoft. One of my first year contributions was Azure Storage Explorer, a tool for working with Storage Service accounts (blobs/queues/tables). Although there are multiple storage tools available today (both free and commercial), I believe Azure Storage Explorer was the first such tool for Microsoft's cloud platform.

Over the next few years, as the platform grew and extended, we periodically revised or rewrote Azure Storage Explorer, adding support for things like Shared Access Signatures and Logging Policy. By 2012, we were up to a beta of version 5. At that time, the Windows Azure portal had just undergone a major UI change and we styled ASE v5 to match. It looked like this:


Despite some pauses in regular upkeep, Azure Storage Explorer has become pretty popular. If you visit the Azure Storage Explorer CodePlex site, you'll see that there have been, as of this writing, a whopping 184,000+ downloads overall. That's pretty inspiring and humbling. I've been writing software for 35 years, of all varieties, but this has to be the one thing I've done with the broadest adoption.


The Pause
Over the last two years, however, there haven't been any updates to Azure Storage Explorer. If you work in software, then you know time is the enemy of software. The mere passing of time can turn a useful tool into a limited one as platforms change.

So why the pause? Well, I didn't stop working on the Microsoft cloud platform, and I didn't leave Neudesic, and I didn't stop being a software engineer, and I didn't stop valuing community work. But I did have some things going on that made it very difficult to work on Azure Storage Explorer or even to blog.

The pause in upkeep has been due to a combination of medical problems and a very busy project schedule on my part. I've had to work through some challenging orthopedic problems. In 2012 I suffered a tendon tear in my right arm that put me in a lot of pain and made it difficult and painful to do many everyday activities (such as getting dressed!). It took months to get diagnosed and then more months of treatment and therapy to restore use of my right arm. That was bad enough, but I'm now going through the same thing all over again with my left arm! Combine all of that with some ultra-busy projects at work (you know, the kind where you and your team are working around the clock to meet deadlines), and there just hasn't been any bandwidth for Azure Storage Explorer. Or blogging. Or speaking.

But wait a minute, you say. This is the era of open source and community software development. Surely there are others who would like to help work on Azure Storage Explorer. Indeed there are, and a number of talented folks have offered to assist. However, we weren't in a good position for that with version 5 because a lot had changed:

• The Microsoft Storage Client library had changed significantly, now up to version 4, with breaking changes.
• The MSI setup project we used for installation is no longer supported in Visual Studio.
• The way local developer storage is accessed has changed in the platform.
• New data centers in China require tools to use a different set of storage service endpoints.
• Even the name of the platform has changed, now known as Microsoft Azure.
• Our source tree had branched and fragmented a bit too much, and some reconciliation was needed.

All of the above amounted to this: we didn't have a very good starting point that would build with modern tools/frameworks or function well with the current cloud platform. I felt we needed a fresh start with an updated code base if we were going to be able to run this well as an open source project.

Azure Storage Explorer version 6
And so, that brings us to Azure Storage Explorer version 6. I've been able to carve out some time here and there, and we now have a good start on a new code base. Enough to release Preview 1, which is now on CodePlex.

These are some of our objectives for Azure Storage Explorer 6:

• A Visual Studio 2013 WPF solution.
• Uses the latest .NET Storage Client Library, v4.0.
• Uses InstallShield LE (included with Visual Studio)
• The WPF solution uses the Task Parallel Library (TPL) to handle asynchronous tasks
• Has an updated user interface.
• Source code online.
• Set up as an open source project to allow for collaborative contributions.
• Updated for the latest cloud platform.
• Supports configurable storage service endpoints, for example to support data centers in China.
• Has support for newer platform features, such as CORS.


A lot of the improvements in version 6 are subtle and have to do with small improvements that add up to a lot of usability. For example, we've previously had Copy Blob operations, but in version 6 you can copy to any container you want, even in another storage account in another data center. You were previously able to edit block blobs, but now you can also edit page blobs.

With this new code base, we're well-poised to take Azure Storage Explorer places. Once we match the basic feature set past versions have provided, we'd like to add some compelling new capabilities and also take advantage of new Microsoft Azure features (stay tuned for details). Most importantly, we can have multiple contributors involved which means my personal availability won't be a bottleneck in keeping the tool maintained.

The just-released Preview 1 supports blob operations only. Table and queue support will be coming in subsequent updates. Should you upgrade to version 6? If some of the pain points mentioned earlier have been affecting you and you don't mind being an early adopter, yes. If you need table or queue support, or prefer not to be on the bleeding edge with new software, then you might to wait for a later update.

In my next post, we'll take a tour of Preview 1.

No comments: