Just created a pull request with further improvements:
The comment field of the pull request just kept screwing up the formatting, so I decided to put this info into an issue instead.
As per your request, here are further improvements. Among other improvements, all code has now been updated to target version 2.0 of the storage client, as you asked for.
Here's a summary of what I've done:
- Cleaned up and fixed a couple of errors in Orchard.Web.csproj.
- Publishing now works for both Release and Debug configurations (previously worked only for Debug).
- Added missing module project Orchard.AzureBlobStogare to Orchard.Azure.sln and added a reference to it from Orchard.Azure.Web.csproj.
- Created separate solution folders Modules and Modules.Deprecated in Orchard.Azure.sln to be consistent with Orchard.sln.
- Cleaned up web.config transformation files.
- Upgraded Orchard.Azure, Orchard.Web and Orchard.Azure.Web to new storage client (version 2.0).
- Removed duplication between Orchard.Azure and Orchard.AzureBlobStorage (the latter is now just a thin wrapper over the former).
- Added proper transformations for log4net.config and HostComponents.config in both Orchard.Azure.Web and Orchard.Web (recreating what was previously done by custom MSBuild logic in the project files).
PS. For some reason, even though I've synced my fork with the main repo since my last pull request, this new one still contains ALL changes since the fork was created. Not sure how to avoid this, hope it's not a problem.
A couple of things to keep an eye out for when reviewing:
- I have removed the code duplication between Orchard.Azure and Orchard.AzureBlobStorage. The best way I could see to do this was to move the newer code from Orchard.AzureBlobStorage into Orchard.Azure and simply have Orchard.AzureBlobStorage only provide
a very thin subclass of AzureBlobStorageProvider for dependency injection purposes only. This means that Orchard.AzureBlobStorage now has a reference to Orchard.Azure, which in turn made it necessary to add Orchard.Azure to the main solution Orchard.sln. Personally
I don't see any problem with this.
- Also have a look at the new config transformations, now visible in Solution Explorer, for log4net.config and HostComponents.config in both Orchard.Web and Orchard.Azure.Web. These replicate what was previously hidden as custom MSBuild logic in the project
files. I have tested these transforms pretty thoroughly, but it's always good with an extra pair of eyes on them.