Posts

2023

REST vs RPC

Verbs are just not that evil

The Majesty of Trees

Grow your APIs the natural way

2021

Anatomy of HTTP API design

Divide and conquer by breaking down the elements of API design.

The value of blogging

Am I back?

2019

Optimizing for the Speed of Light

2018

When Opportunity meets Momentum

2017

OpenAPI is not what I thought

HTTP Pattern Index2

HTTP Pattern Index

HTTP Pattern: Factory

HTTP Pattern: Window

HTTP Pattern: Bouncer

HTTP Pattern: Whack-a-mole

HTTP Pattern: Miniput

HTTP Pattern: Alias

HTTP Pattern: Discovery

HTTP Pattern: Progress

HTTP Pattern: Builder

HTTP Pattern: Bucket

2016

RPC vs REST is not in the URL

Back to my core

Azure API Management Resources

API description languages are a dead end

2015

A Fresh Coat Of REST Paint On A SOAP Stack

In The Mood For HTTP - Episode 3

In The Mood For HTTP - Open Q&A

Caching is hard, draw me a picture–Updated

302 - Found

Navigating DRY IETF Specs

There Is Almost Nothing to See Here

Service Discovery : Redux

Service Discovery, The Easy Way

Everything is Going to be… 308 Permanent Redirect

The Simplest Possible ASP.NET Web API Template

Dot Net Fringe

Solving Dropbox's URL Problems

API Design Notes: Smart Paging

Are You Or Your Customers Leaking Your API Keys?

Share Your Code, Not Your API Keys

Don't Design A Query String You Will One Day Regret

Hypermedia, past, present and future

2014

Where, oh where, does the API key go?

Constructing URLs the easy way

Runscope: Notifications from the Traffic Inspector

The Web API business layer anti-pattern

REST–The Chocolate Chip Cookie Analogy

Continuous Integration, Deployment and Testing of your Web APIs with AppVeyor and Runscope

Microsoft: Open source and cross-platform all the things

Add Runscope logging to your ASP.NET Web API in minutes

Xamarin Evolve

RESTFest 2014

Vermont Code Camp

Implementing Conditional Request Handling for your API

Code Camp NYC

Using Etags and Last-modified headers to improve performance with HTTP conditional requests

HTTP in depth

Caching resources with query strings

A drive by review of the Uber API

Centralized exception handling using a ASP.NET Web API MessageHandler

These 8 lines of code can make debugging your ASP.Net Web API a little bit easier.

Everything you need to know about HTTP Header syntax but were afraid to ask

Hypermedia as the engine of application state, the client-server dance

The Insanity of the Vary Header

REST Agent - Lessons learned in building generic hypermedia clients

Composing API responses for maximum reuse with ASP.NET Web API

An HTTP Resource is a lot simpler than you might think

Single purpose media types and reusability

Single purpose media types and caching

Please, no more generic hypermedia types

XSLT is easy, even for transforming JSON!

Self-descriptive, isn't. Don't assume anything.

Distributed Web API discovery

There is Unicode in your URL!

Returning raw JSON content from ASP.NET Web API

Sharing Fiddler requests using Runscope

Streamlining self-hosting with Chocolatey, Nuget, Owin and Topshelf – part 2

Streamlining self-hosting with Chocolatey, Nuget, Owin and Topshelf – part 1

Making your ASP.NET Web API funcky with an OWIN appFunc

The simplest Owin AppFunc that works

The much maligned User Agent header

We all need an identity

Posting raw JSON to Web API

Web Standards Search Engine

It’s time for a change, and more of the same.

2013

Tavis.Link and dependencies

What? No Comments

Convert attributes to elements in XSLT

A Mercurial changelog

Experiments with Katana

2012

How not to write spec documents

Deep Fried Hypermedia

Troubleshooting serialization problems in Web API

What does coupling mean to you?

Using Nuget to give Web API that Add Service Reference experience

WebPack

Subtleties of MVC Routing

Naming things is hard

Don’t sacrifice suppleness to the DRY gods

Hypermedia Client Maturity Model

A Tekpub API

HttpClient, it lives, and it is glorious.

2011

How to GET aHEAD with MessageHandlers!

HTTP Trace was never so easy

The world’s simplest WCF Web API

Web APIs: Don’t be a victim of your success.

REST in Montreal

2010

WCF HTTP – work in progress

Microsoft WCF gets serious about HTTP

RESTfest was a blast

Agent Fielding is on a mission

Rest Agent uses hypermedia

Rest Agent – An introduction

The StackOverflow question that couldn’t stay open

World’s simplest OData service

Using the HttpClient and the OData service to download Mix videos

Convert XML to JSON using XSLT

But can you test it?

FOR XML PATH and CQRS

2009

Woe is me, the WOA unmanifesto

HttpContent instead of streams

Why the Microsoft.Http library is awesome.

HttpClient – The basics

Oh Data

It is not that we don’t like the convenience of Windows Installer

WCF REST Starter Kit Preview 2

The mystery of the trailing slash and the relative url

Gems from rest-discuss

A lesson in how not to handle an unhappy customer

Net Sourcing

VB.Net and C#… again

2008

My first MGrammar

How to write a document describing a REST Api

Witty for Identi.ca. Only the brave need apply.

Witty can talk to Identi.ca

Security and Http

Programming Twitter without WCF 3.5

The ultimate WCF Service contract

The hypermedia constraint?

REST consulting

It’s a sad day

2007

Opportunistic locking and remote desktop

Why WPF for LOB applications?

What is needed to build distributed applications.

TimmyOnTime » Time Management meets Instant Messaging

Indexing PDF files in Sharepoint 2007

Demo Camp Montreal 3

System.UriTemplate

Love is fickle

ORM Smackdown on .Net rocks

Smart Client Software Factory May 2007 is live

The SourceGear Fortress deal

PUT versus POST

UAC is our fault

Using ServiceModel.Web to return XML documents instead of Data Contracts

Slow Outlook 2007?

Podcast aggregators

Prediction Time

2006

Wix and Team Build – Passing Variables

Vista on Virtual PC

Custom Powershell Cmdlets and the mystery of System.Management.Automation.dll

Powershell and Sandcastle

Powershell and Innovasys DocumentX4

CAB + WPF

Pnp Summit – Conclusions

Pnp Summit – Don Smith and his loose interfaces

nHibernate performance concerns

VMware Server

Windows Live Writer

NetFX 3 ?

Open Source vs In house development

Extending CAB Commands

Why do people use always?

TFS and collation

Hint to students applying for jobs

Open Source Java

Stored Procedures with no results

CAB is wonderful

Xml but not XHtml

Encompix get bought

MSN search still sucks!

2005

Software as a service

Open source dreams

Move to WordPress

Google versus Microsoft. Phooey!

Prediction time…

MBS is headed the wrong way…

Software-on-demand and small businesses

So long Classic VB

I was replaced by a biztalk server

There is never enough time

Why I like hyperthreading…

Some people are missing the point

Goodbye and Good Riddence

XML: The good and the bad

A New PC

Quote of the day

2004

TPC Benchmarks, a new Outlook

Linux OS sales boost Novell

Small Business Server

Application Security

Adding to the Active Directory Schema

Welcome!