Today, TechSmith is excited to release its first open source project called Hyde. We developed the library internally to solve problems we’ve had interacting with Windows Azure Storage. The code and documentation are on Github, and we are also releasing a NuGet package.
What is Hyde?
Hyde is an Object to Entity mapper for Windows Azure, it hydrates and dehydrates objects to and from storage. Essentially, it maps a row in table storage to a strongly typed C# object and allows CRUD (create, read, update and delete) operations on those rows. It’s the result of over a year of development internally with Azure. Additionally, it was designed from the ground up to allow easy unit testing of your code.
Why use Hyde?
Hyde does three things very well compared to the Microsoft libraries for accessing Azure Storage:
- Hyde makes unit testing easy. Simply swap out the azure implementation of the class that accesses table storage for the in-memory test double. The behavior of the test double is the same, but all the objects are stored in memory. This means logic that was impossible to unit test with the Microsoft libraries is covered when using Hyde.
- Allows use of POCO (plain old CLR objects) classes. No need to make your data model classes inherit from a specific class like other libraries require you to; this means your data model is completely abstracted from Azure table storage.
- Handles deficiencies in the local Azure emulator. For example, Upserts are unsupported on your local Azure emulator. Generally this means you have to code around the problem and do a manually Insert or Update depending on the situation. This can result in some ugly code. Hyde handles an Upsert for you. You don’t have to know or care if you’re running against a local emulator or a true storage account in the cloud.
Want to contribute to Hyde or report a bug?
Check out the project page on Github. If there’s a feature or bug you’d like to see fixed, please file an issue on Github to start a discussion. You can also find information on how to contribute back to Hyde on Github.
Evan Dontje has been a Software Engineer at TechSmith since 2010. While at TechSmith, Evan has split his time between Screencast.com and building backend services on Windows Azure to support TechSmith’s other applications. He has a passion for Open Source and has contributed to several Open Source projects like RestSharp and Kindling. Evan is an avid Crossfitter and loves Michigan State sports.