While one part of Microsoft is taken over by the re-reboot of ASP.NET Core 1.0--formerly known as ASP.NET 5--there is a lot of activity in the rest of the development tools division of the company. One benefit of their push to open source many of its development technologies is that individual technologies are no longer bundled together in lockstep in mega releases every couple of years with Visual Studio. Recently ASP.NET WebHooks, an interesting new ASP.NET technology that’s based on not-so-new Web technology, reached a major milestone as a release candidate (that’s the link to the announcement on Microsoft’s .NET Web Development and Tools blog).
As an aside, one hopes that tagging this release as a release candidate means that it really is nearly ready for release, unlike what the company put out as release candidates of ASP.NET 5. Those releases turned out to not really even be alpha releases. But I digress, and so far it appears that WebHooks really is maturing and in almost its final form.
At its simplest, WebHooks provides a way to subscribing to event notifications across Web applications and services, such as “when someone sends money to your PayPal account, or when a message is posted to Slack, or a picture is posted to Instagram,” as the release candidate announcement states. The mechanism works much like a callback in .NET and other kinds of applications, but in this case you provide a URI when subscribing to the event, which identifies where you want to be notified. The best part is that no polling is involved and you don’t need to open a network connection while waiting for notifications.
The announcement blog post I linked to above has tons of links to information about WebHooks and many examples you can use to explore the technology.
There are currently 23 preview packages on NuGet for the microsoft.aspnet.webhooks namespace. Many of these are various pre-built receivers to accept WebHooks from various services, including Dropbox, Bitbucket, GitHub, MailChimp, Paypal, and more. There are also packages that support senders that add WebHooks to your own applications. You can get a feel for the dependencies involved when adding a WebHooks receiver to an empty ASP.NET projects. The figure below shows the dependencies for the Dropbox receiver. Because this is prerelease software, you’ll have to set the Prerelease flag when searching NuGet.
For now, ASP.NET WebHooks targets ASP.NET Web API 2 and ASP.NET MVC 5, which are the released and stable versions of those technologies. There isn’t much in the way of tooling for Visual Studio yet, but Microsoft’s Brady Gaster has a preview of an ASP.NET WebHooks Connected Service extension that simplifies creating a new WebHook-receiving Web site. The extension was last updated in October, so it’s a bit dated. But it does show the promise of tools to come. You can read more about the extension in the announcement blog post on the .NET Web Development and Tools Blog.
The WebHooks documentation is still a work in progress and is still a bit minimal for learning the technology. But there are plenty of links to posts, and the aspnet/WebHooks repository on GitHub has plenty of sample code you can use to work through how things work. But unfortunately, we’re still at that intermediate, not-quite-done stage of WebHooks development where it’s hard to sort out the old stuff that’s based on older releases from the current stuff. That will change over time, of course, but it makes things a bit frustrating now.
Nevertheless, ASP.NET WebHooks promises to be a solid niche technology that solves a class of problems when integrating various kinds of Web applications and services. With the wide and increasing support for WebHooks in many online services, developers will be able to build some nice applications that take advantage of many resources on the Web.