Auto-generating documentation and SDKs in ASP.NET Web API

Whilst I am a big fan of ServiceStack for building REST APIs, it switched last year from a free open-source tool to a licensed business model. For small open source projects without a commercial backer, it means that we have to take a second look at ASP.NET Web API, Microsoft’s own offering.

If you are developing commercial REST APIs then please check out ServiceStack and the hard work Demis Bellot is putting in to the project. He makes awesome products and takes care of his customers.

The benefit of Web API is of course that there are more tools, and extensions being developed by third party developers. There are several challenges in developing APIs that third parties will consume. The two key elements outside the usual development tasks, is the documentation of those APIs, including an API “Explorer” which allows developers to test out the APIs from a sandbox application.

The second major task you have to complete is the provision of SDKs in different languages. For most developers this is a tall task. They struggle to provide SDKs in any other language than the one they are used to working in. Thus, APIs built in Java are unlikely to have a Ruby SDK available.

API Explorer’s using Swagger

Swagger is an awesome and increasingly standard tool for offering developers the ability to try out your API without actually building anything. Using an API explorer they can authenticate using their issued credentials, and then execute REST calls using a web based tool.

Configuring Swagge for ASP.NET Web API just got way easier. Using Swashbuckle you can simply add a Nuget package, apply some configuration and start offering an API explorer in a few minutes. For more information please visit Swashbuckle.

SDKs using AutoRest

Building SDKs in different languages used to be hard, really hard. AutoRest makes it easy. AutoRest uses Swagger extensions to “read” your API definitions and then builds SDKs automatically from those definintions. The following languages/platforms are currently supported:

  1. .NET
  2. Mono
  3. Node.js
  4. Java
  5. Ruby

The AutoRest source code and documentation can be found on GitHub.



How to fix/install the Cisco VPN Client on Windows 10 (64 bit)

I have just upgraded from Windows 7 to Windows 10. The first thing I needed to check (since my work depends on it), is that I can use the Cisco VPN Client. Just to clarify, this is not the AnyConnect client, but the old client (v5.0.07).

I had heard that there are problems with this, since it isn’t a supported Windows 10 application, and isn’t going to be either (since Cisco want people to use the AnyConnect client).

Anyway, problems did arise, and this is how I solved them.

First I uninstalled the existing Cisco VPN Client. I took a copy of the Profiles folder before doing so, although the uninstall program appears to leave them in place. In Windows 10, choose Settings from the main start menu and then search for Programs. From there you can search for Cisco, and you can then choose to uninstall the program:


Once uninstalled you need to install the SonicWall VPN 64-bit CLient from Dell. This will add the Deterministic Network Enhancer (DNE) LightWeight filter, and allow your VPN to correctly download the certificates from the VPN Server.

The Sonic Wall client can be downloaded for free from the following location:

Now you need to install the Cisco VPN Client. If you double click on the self extracting executable then the files will be extracted and by default the executable inside the zip file will be executed. This is not what you want. Uncheck the setting to automatically run the exe:


Once extracted, open the folder where the files are located. Run the MSI. This is important otherwise you’ll see the following error:

Once installed you can uninstall the Sonic Wall client. The application is now needed and the Deterministic Network Enhancer filter remains.

Now fix the display name of the client. You can do this by opening Regedit and then navigating to:

Alter the DisplayName key value, by removing the junk data in front of the description. I left mine as:

Cisco Systems VPN Adapter for 64-bit Windows

It was previously

@oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter for 64-bit Windows


The Cisco VPN client should work as expected.I9xV7Rc

Photo by Kris Krug recipe fails with WordPress recipe

I use Pocket as a personal bookmarking service. Using I can use a recipe that monitors my Pocket feed and then sends new posts to my WordPress blog.

Recently though, this stopped working. The WordPress channel needed reconnecting, and the error I received every time I tried to connect was:

Unable to verify WordPress credentials. Please try again.

Thinking it was one of the security plugins I had used in WordPress, I switched them all off. The error remained. I had been doing some HTTPS redirection to make sure my site in always in HTTPS, so I switched that off too. Still no joy.

Finally I remembered that my site is protected by Cloudflare. When I ‘paused’ Cloudflare, the recipe worked.

My assumption was that Cloudflare was blocking IFTTT requests, assuming that they were attacks on my WordPress installation, but I couldn’t see any logs in the firewall logs in my Cloudflare account.

After wondering around in the Cloudflare settings, I turned items on and off to see if they would make a difference.

It turns out that there is one setting that can cause and therefore fix this problem!

I had a ‘Page Rule’ to force HTTPS always. IFTTT appears to assume HTTP and doesn’t support HTTPS! Bad IFTTT sending my blog logins over HTTP.


How to download the Cisco VPN Client software

If you are trying to download the Cisco VPN client 4.x or 5.x then prepare for the bad news. You can’t. Not unless you are a registered customer that is.

Where can I download the Cisco VPN Client software?

A. You must log in and possess a valid service contract in order to access the Cisco VPN Client software. Cisco VPN Client software can be downloaded from the Cisco Download Software ( registered customers only) page. If you do not have a valid service contract associated with your profile, you cannot log in and download the VPN client software.

In order to obtain a valid service contract, you can:

  • Contact your Cisco Account team if you have a Direct Purchase Agreement.
  • Contact a Cisco Partner or Reseller in order to purchase a service agreement.
  • Use the Profile Manager ( registered customers only) in order to update your profile and request association to a service agreement.

See the Cisco VPN Client FAQs for further information.

Photo by blickpixel (Pixabay)