Step-by-Step into the cloud

a blog of Dirk Eisenberg (>)
posts - 82 , comments - 20 , trackbacks - 17

Sunday, May 6, 2012


After over 7 years on the Geeks with Blogs platform I moved. The new home of this blog based on WordPress. Please visit The address will be moved in a couple seconds :-)

Posted On Sunday, May 6, 2012 7:36 PM | Comments (0) |

Saturday, October 29, 2011

SharpBox 1.2 - The DropBox API upgrade release

DropBox changed some details in the API and upgrade to version 1.0 a couple days ago. Together with the DropBox team it was possible to be the first open source project which is compatible with the new and more saver API version. The SharpBox 1.2 release brings the changes we made together into an official binary distribution. We decided to do a major release because of some breaking changes in the code. The most important change will be that the class ICloudStoragCredentials does not more exists. Starting with 1.2 only the ICloudStorageAccessToken class can be used for security token based authentication. The migration in your project should take not longer than five minutes. The following specialized tokens are available for the different storage providers:

  • GenericNetworkCredentials - Used for all WebDAV and FTP based providers where a user name and password is needed. Can also be used for file system providers to authentication against a network share.
  • GenericCurrentCredentials - This are the credentials of a logged on windows user and can be used on every WebDAV server which is supporting NTLM (e.g. IIS) or on all file system based providers.
  • DropBoxToken - An oAuth token what was issued by DropBox during the initial setup phase of your application. To get more information of issuing dropbox tokens please visit our tutorial pages and check out our DropBoxIssuer-application which helps to show the process of token generation.

The following list gives you a bried overview about all the other changes we did to improve the library:

  • Change: Removed credential based login, only token based login allowed but WebDAV supports username/password tokens!
  • Change: DropBoxConfiguration contains a version field to select if v0 or v1 of DropBox REST API should be used
  • Change: DropBoxConfiguration does not cotain static attributes any more (Issue:16786)
  • Change: The "rev" property was added to the raw properties collection when using DropBox (Issue: 16786)
  • Fix: Problem working in dropbox-sandbox mode (Issue 16728)
  • Fix: Error getting Folder under (Issues 16747)

The latest bits can be downloaded here!

We are happy about any kind of feedback via mail or ourproject site on codeplex! Special thanks goes to all contributors in the last weeks who tested and improved the major API upgrade of our DropBox provider.

Posted On Saturday, October 29, 2011 12:33 PM | Comments (0) |

Sunday, October 16, 2011

SharpBox the first open source project which is compatible with DropBox REST API Version 1

Together with the DropBox team we finished our work to be compatible with the DropBox REST API version 1 (before the stable API version was 0). As long as DropBox not finished the beta programm everybody has to enable the new version manually in the DropBoxConfiguration object as follows:

// set the api version to 1
((DropBoxConfiguration)Configuration).APIVersion = DropBoxAPIVersion.V1;

We plan to release an updated version of SharpBox at the day DropBox finishes the beta program. If you are interested in the beta program just visit

A Link to our SDK can be found here on the new DropBox developer webpages:

Thanks again for the DropBox team for their fast support and the great work in holding the API as stable as possible.

Posted On Sunday, October 16, 2011 6:37 PM | Comments (0) |

Saturday, October 8, 2011

SharpBox 1.1 SR2

The new Service Release 2 of SharpBox 1.1 comes with support for many new storage providers, e.g. Strato HiDrive, CloudMe or FTP. In addition to that we are also proud to offer our library with SR2 via NuGet which allows to integrate the binaries and all dependencies in a new project very fast. Please use this URL to visit our NuGet gallery page:

The following list will give you a brief overview about the changes in this service release:

  • Feature: Official Strato HiDrive Support
  • Feature: Official CloudMe Support
  • Feature: Official FTP Support
  • Feature: Allowed to serialize a DropBox Request Token
  • Feature: Allowed to serialize tokens directly into Base64 string (comfort function)
  • Feature: Added new version of the transfer interface which allows to get progress notification async
  • Feature: Added NuGet package
  • Change: Allowed to deserialize a tokens without a previously opened connection to the cloud storage
  • Change: Changed to format of the GUID which is used as oAuth nonce to a 32Bit digit without dashes and brackets
  • Fix: Allowed to deserialize a token without influencing the cloudstorage object state
  • Fix: Closed stream before receiving WebResponse to be WP7 compatible
  • Fix: WebDav client does not need the requested resource information as first element in the XML collection
  • Fix: NullReferenceException in authentication sequence - Issue 16506
  • Fix: The 500ms windows is calculted in wrong way

The SR2 will be the last service release for the 1.1 series. We are planning to release 1.2 with many new features based on the upcoming version 1 of the DropBox-REST-API. If you start a new project with SharpBox please do not use credential based login within DropBox because we have to remove this way to be compliant with the terms of DropBox.

The latest bits are ready to download here or via NuGet!

Posted On Saturday, October 8, 2011 1:53 PM | Comments (0) |

Wednesday, October 5, 2011

Nuget for SharpBox

Nuget is an easy and fast way to get the latest updates of an open source project. All the time consuming integration work into your visual studio project is done nearly automatically. The upcoming service release 2 (SR2) of SharpBox 1.1 will support Nuget as a new distribution platform by default. Feel free to try it out with our pre-release of the SR2 and if you like it, vote for it to give us a little bit more visibility.

Our Nuget package can be found here:

Posted On Wednesday, October 5, 2011 12:05 AM | Comments (0) |

Thursday, September 29, 2011

Authorize your application at DropBox and get the approval for public use

We got a lots of questions how to implement the security access token generation process and how to build a valid way to get an approval from the DropBox team for applications which are implemented with the SharpBox library. Our latest tutorial describes all details how to get an approval for your DropBox application aligned to their terms of use.

You will find the document on our tutorial page here:

Just a couple of hints to increase the approval process:

  • Offer a demo instance of your web application or a demo installation of your fat client application to the DropBox team
  • Add a video of the implemented token creation process to your request for approval
  • Describe what your application is doing and how it uses DropBox very accurate

Have fun with integrating your app and the DropBox services!

Posted On Thursday, September 29, 2011 11:28 PM | Comments (4) |

Sunday, September 25, 2011

SharpBox project page refreshed

We refreshed the home of the SharpBox project to give all API consumers, vendors and new project members a more organized way to find project related information. In the next weeks we will add more detailed documentation pieces to close our gaps. Feel free to propose missing information so that we can work on that. The following picture gives an impression how the new website looks like:

Please visit our new page on and if you like SharpBox vote for it with stars on codeplex!

Posted On Sunday, September 25, 2011 6:25 PM | Comments (0) |

Saturday, August 27, 2011

SharpBox 1.1 SR1

Our brand new and first service release for SharpBox 1.1 is out. This is the first release which follows the idea to deliver every 4 to 6 weeks a small service release with the latest bugfixes from the field. This release contains an important change for all storage provider developers. The assembly AppLimit.CloudComputing.SharpBox.ExperimentalProvider.XXXX.dll contains all storage provider which are not part of the core API. This location should be a home for only a short period of time until the stabilization phase for this provider is finished. We will also offer a short new tutorial about writing storage providers as soon as possible! Everybod who won't wait please check our MockProvider in the trunk tree.

The following overview will give you a brief overview about the changes in this service release:

  • Feature: Support for CloudMe
  • Feature: Support for FTP (as experimental provider in the staging area)
  • Feature: Added sample mock storage provider
  • Feature: Progressbar callback contains bandwidth information
  • Feature: Allowed to disable proxy usage with WebRequestManager.Instance.SetEmptyProxySettings
  • Feature: Added HasChildrens method in ICloudDirectoryEntry interface
  • Change: Stabilized storage provider API
  • Change: The up/download progress callback gots a Cancel property to interrupt the transfer!
  • Change: Migrated transfer progress callback to the common .NET event signature
  • Fix: WebDAV with NTLM authentication doesn't support unbuffered uploading - Issue 16197
  • Fix: GenericCurrentCredentials on WebDAV doesn't work - Issue 16192
  • Fix: TCP Ports different from the standard ports are ignored - Issue 16341
  • Fix: CreateObjectsFromNetworkStream doesn't parse WebDav PROPFIND response correctly from Apache server - Issue 16346
  • Fix: A wrong app key or secret does not raise an Unauthorized exception (thanks to tonioplex)
  • Fix: The method GetFileSystemObjectUri returned a meta data url for DropBox files
  • Fix: SharpBox crashed when is_deleted property was not part of the DropBox JSON message

A word to all Windows Phone 7 developers: Currently SharpBox is doing well for metadata browsing but the up-/download capabilities are not working well. There are several hacks for this via our API GetFilesystemObjectUrl. Any feedback and help to solve the WP7 problems is welcome.

Feel free to give us feedback via our codeplex project website or through this blog. We are happy to here from you and your projects with SharpBox!

The latest bits are ready for download here

Posted On Saturday, August 27, 2011 11:14 AM | Comments (0) |

Thursday, August 11, 2011

NetSparkle 1.0.83 - fixes from the field and many new languages

The new NetSparkle release is available and includes many fixes from real life projects and a bunch of new languages. The following list gives a brief overview about the changes we did in 1.0.83:

  • Feature: Support for forced unattended updates
  • Feature: NetSparkle can install .exe files for wider installer support - Issue 15528
  • Feature: Support for Chinese (zh-CN) - thanks to jiangww_0924
  • Feature: Support for Spanish (es-MX) - thanks to manuelpeh
  • Feature: Support for Italien (it) - thanks to ezioi
  • Feature: Included StartLoop overloads to set the update check interval (thanks to wernervd again)
  • Fix: Issue with DSA signature checking routine - Issue 15757 (thanks to Ken again)
  • Fix: Bette DSA resource extraction - Issue 15837 (thanks to wernervd)
  • Fix: Changed the BorderStyle to prevent resize cursor
  • Change: Allowed to hide the release notes section (this mode will be used when sparkle:releaseNotesLink is empty)

The new release will be available here.

Posted On Thursday, August 11, 2011 12:08 AM | Comments (0) |

Sunday, July 24, 2011

SharpBox 1.1 ready for production (updated)

Over 6 months ago we released SharpBox 1.0.3 our last bugfix and service release. In the last few months we were focused on reworking our library core to achieve a couple of simplicity and feature goals. The importants goals from my personal perspective were:

  • Clear and stable service provider API which allows 3rd part vendors to implement new cloud storage protocols
  • Adding a well working WebDAV client in our API core to support all the webdav base storage providers by default
  • Bringing our different libraries together into one to make it usable as easy as possible
  • Unittest Suite which acts as a reference test suite for new protocol provider

In addition to this goals we worked together with a couple of cloud storage providers to support more services.Thanks to the the vendors who helped us to implement a wider protocol support. As a result SharpBox 1.1 supports the following provider officially:

As I wrote we added a WebDav core to our library, this means SharpBox supports every WebDav provider as well. We are working hard to support all WebDav specifications to 100%, so if you find a bug or missing feature let us know.

From the platform perspective this release offers experimental support for Windows Phone 7 and Android smartphones. Currently we are not far away from getting this things stable with your help. Offical Windows Phone 7 support is planned for the SharpBox 1.1.1 service release based on the feedback of the app developers who are using SharpBox in products currently (SimpleDropBoxViewer, LindyReader).

To be more DropBox license compliant we added special features to implement in your application the DropBox oAuth way of generating an access token. This is very important to get your application commited from the DropBox team. Check out the code arround the static class DropBoxStorageProviderTools and the discussion on our codeplex website.

Last but not least SharpBox 1.1 contains a long list of bugfixes and small enhancements. The following list gives a brief overview about the changes we did:

  • Feature - Support for a generic WebDav Storage provider
  • Feature - Support for CIFS and local filesystem abstraction (Experimental)
  • Feature - Support for Box.NET via WebDav - Issue 14277
  • Feature - Support for 1&1 SmartDrive via WebDav
  • Feature - Support for Windows Phone 7 - Issue 14682
  • Feature - Allow DownloadFile and UploadFile to return Stream and accept Stream - Issue 15033
  • Feature - Add support for WebExceptions and certificate policies - Issue 15095
  • Feature - Provider Configuration supports upload and download limits
  • Feature - Support for a web based authorization process (DropBox only)
  • Feature - Method to convert a public resource path into public dropbox uri (DropBox only for all files under the /Public folder)
  • Change - Better documentation and adaption to our .NET4 coding styleguide
  • Change - SharpBox consist of just one assmbly to make it easier to use the library
  • Change - Data will be written directly into the network stream, better memory support and real progressbar support - Issue 15462
  • Change - Exposed DropBox specific information and workflows, e.g. AccountInfo
  • Change - The WebRequest timeout is fixed to Timeout.Infinite, this allows very long up & downloads
  • Change - When the cloudstorage exceed the size limit a special SharpBoxException will be generated
  • Change - Allowed to build customn DropBoxConfiguration objects
  • Fix - Unable to perform multiple download simultaneously - Issue 15632
  • Fix - Wrong json timestamp to DateTime-class conversion - Issue 15748
  • Fix - File was not upload with the new name when the comfort API was used (thanks vsailo)
  • Fix - Missing JsonReader when compiled with MonoTouch 4.03 - Issue 15966
  • Fix - Reference to parent was set to null when renamed file was created
  • Fix - The new size of an uploaded file was not written into the length field after upload
  • Fix - Wrong encoding during upload of files with german umlauts - Issue 15718
  • Fix - When a user tries to access an removed file directly DropBox returns a datastructure with information about this file. This are interpreted as valid file

To support more quality and offer a broader platform support we need your help. We are looking around for people who like to share with us experiences in the mobile devices area. We hope to get more feedback what is missing to support a realy good usable library on the important smartphone operating systems.

Feel free to send us feedback via our codeplex site or this blog. You can download SharpBox 1.1 from here!

Posted On Sunday, July 24, 2011 4:01 PM | Comments (1) |

Tutorial 1 - SharpBox Quick Start Guide available

To make it much easier for developers to become familiar with the SharpBox library we started a tutorial initiative. As a result you will find our first tutorial in the SharpBox documentation section here. Let us know if you miss something or if we need to correct some mistakes.

If you are an experienced SharpBox user feel free to send us topics for tutorials or full tutorials also. We will add this documents to our SharpBox project page. The next tutorial title is currently planned: "How to write an external cloud storage service provider" and will be released in the next 2 month too!

Posted On Sunday, July 24, 2011 3:52 PM | Comments (1) |

Friday, June 17, 2011

Access with SharpBox 1.1

With the help of the StoreGate folks we were able to adjust our WebDav client to be compatible with this service as well. SharpBox 1.1 will support StoreGate as a supported cloud storage provider as well. I personally like the performance of the StoreGate system, it's very fast when you up- or download many files, outstanding.

Thanks to the StoreGate product management team who supports me during the adaption period.

Posted On Friday, June 17, 2011 1:25 AM | Comments (0) |

Wednesday, June 8, 2011

Sharpbox 1.1 with support

After a couple of fixes in our generic WebDAV code the SharpBox library contains experimental support for via the WebDAV interface. I'm using this interface because the RESTful API is currently not ready for desktop application without website interaction, e.g. NT Services or other WCF Service. The stable support will be part of the official 1.1 release.

I'm happy about feedback to improve performance and stability!

Posted On Wednesday, June 8, 2011 12:18 AM | Comments (0) |

Friday, April 22, 2011

NetSparkle-1.0.60 - language release

In case of the great community response I released NetSparkle 1.0.60. This release is mainly focused on additional languages, e.g. nl-NL, fr-FR, bg-BG and ru-RU. The following list shows a brief overview about the changes:

  • Feature: Optionally sends user demographic information to the server when checking for updates - experimental
  • Feature: Support for Dutch (nl-NL)
  • Feature: Support for French (fr-FR)
  • Feature: Support for Bulgaria (bg-BG)
  • Feature: Support for Russian (ru-RU)
  • Fix: HRESULT E_FAIL exception during UI init

Thanks to allow contributors who helped to translate netsparkl into other languages! Visit the project website for download (

Posted On Friday, April 22, 2011 12:08 PM | Comments (0) |

Tuesday, April 12, 2011

SharpBox 1.1 - call for action

No we are not dead - the SharpBox project is alive. We prepared so many things for you driven by the community in SharpBox 1.1 that we need your help. Just a brief overview about what's currently in the trunk:

  • Support for generic WebDav storage provider
  • Changed WebRequest subsystem to ensure that we up and download directly into the network streams
  • Combined everything into one assembly to make your life easier
  • Brand new storage provider API to make it easier for storage provider developer
  • Reference Integration Tests for new storage providers based on NUnit
  • Better SSL handling also with non trusted certificates if needed
  • Android and Windows Phone 7 Support

and behind the scene we changed our hole infrastructure, we moved to Teamcity as our master build controller. With this step we achieved the following goals:

  • Every check-in will raise a new build of the library
  • Every check-in will start the execution of our reference integration tests based on NUnit

So we know after 5 minutes does the SharpBox library works as aspected or not!

Today I want to start the first phase of stabilization. This phase is focused on developers who are working very intensive with the lib. Please take the trunk code and test them against your existing projects. Would also be nice to get many feedback about the new WebDav Storage Provider as well. Check out the code also on The Mono Project, monoTouch, monoDroid and Windows Phone 7 to help us to get the mobile and non Windows platforms as stable as possible.

Thanks a lot for your help and let us hear about your result in form of issues or e-mails!

Posted On Tuesday, April 12, 2011 11:23 PM | Comments (0) |

Powered by: