My Bookshelf

As a software developer, I spend an inordinate amount of time reading documentation, articles, and blog posts by others. I am thankful for the knowledge that people share online. Over the past several months, I have begun to read more books, both digitally and in traditional paper form. My queue of books to read has been steadily growing.

Continue reading

Visual Studio Project Templates

Since attending Build 2016, I have been interested in the potential of Microsoft’s Bot Framework. Conversation as the next wave of user interface makes sense. Natural language processing is reaching a level of accuracy that enables humans to more easily interact with computers using spoken or typed phrases. As intent recognition continues to improve, humans will increasingly be able to simply say what they mean and expect their meaning to be understood.

When I first started experimenting with the Bot Builder SDK, downloading the Bot Application templates and copying them to their respective folders for Visual Studio was easy enough. Updating the templates was a minor chore when I remembered to check for new versions. I preferred working with ASP.NET Core and was disappointed that the Bot Builder SDK was tied to the full .NET Framework. I searched for alternatives, but did not find any solutions that satisfied my needs.

Continue reading

A Hybrid Option for Building Bots

Over the past few years, improvements in natural language processing have led to conversation becoming viable as a user interface. Microsoft announced their Bot Framework over a year ago at Build 2016. A Bot Builder SDK was released to aid developers in starting their own bot implementations spanning multiple channels and leveraging cognitive services offered by Microsoft. A Bot Application project template (download link) is an ASP.NET Web API application that references the Bot Builder NuGet package. Due to dependencies on the binary formatter and other components tied to the full .NET Framework, the Bot Application project template is not yet available for use with .NET Core projects.

bot emulator chat

I am not alone in wanting to implement bots on ASP.NET Core. Porting the Bot Builder to .NET Core is currently an open feature request. Some specific components, such as the Bot Connector, already support ASP.NET Core and .NET Core. Other developers have published some great ideas on how to bridge the gap. For example, Carlos Mendible outlines how to create a bot using ASP.NET Core directly with the Bot Connector API. Although not official and not production ready, CXuesong started an ambitious port of the Bot Builder SDK to .NET Standard.

Continue reading


For my first post, I want to echo the sentiment that inspired me to start blogging. I have been aware of Scott Hanselman for well over a decade. I do not remember if his list of software tools or his contributions to the Das Blog project first caught my attention, but he continues to be a positive influence online and at technology conferences.

Several years ago, Scott posted about making better use of the limited number of keystrokes any of us have left. The concept of counting keystrokes originated from a post from Jon Udell. Counting keystrokes is simply another way to quantify time. The central theme of both posts is that sharing content with a wider audience multiplies the value of your scarcest resource: time. While an email may reach a small number of people, blogging is suggested as a way to reach hundreds, thousands, or more.

Continue reading