Suave Web Services

I’m on this quest to learn F#. It is a multi-year project because of a couple of reasons

  • I don’t spend enough time on it
  • I’m not very bright

Today’s adventure has been using the which is a web framework libarary and web server. If you’re looking to throw up a quick web service to act as a microservice it doesn’t get much lighter weight than Suave. At the same time you can make more complex processes if necessary.

Integration Testing with Entity Framework Core and SQL Server

Creating a New View Engine in ASP.NET Core

Here's a Handy List of Social Login Providers

If you would like to have your web site use a social identity provider rather than creating or maintaining your own identity store you’ve got options.

Loading View Components from a Class Library in ASP.NET Core MVC

ASP.NET Core Distributed Cache Tag Helper

GitHub Authentication with ASP.NET Core

Authentication has changed over the years, and my take on it has surely shifted. No longer is it the scary, intimidating beastie that must be overcome on our projects. Today, we can let external providers provide the authentication mechanisms, giving the user with a streamlined experience that can give them access to our application with previuosly defined credentials.

GitHub Authentication in ASP.NET Core

Let’s have a look at what it takes to allow users to authenticate in our application using GitHub as the login source, and you can check out the Monsters video take of this on Channel 9.

What is Middleware Anyway?

If you spend a bit of time around the net ASP.NET Core there is a word you’re going to hear thrown around a bunch and that is “middleware”. I find middleware to be a confusing term which doesn’t mean anything or perhaps means everything. Let’s figure out what middleware means and what sorts of middleware we can slot into ASP.NET Core.

Middleware sits between two pieces of software which talk with one another piece. It is responsible for connecting the softwares together and may intercede to alter the communication or even intercept it. I know what you’re thinking: that’s a super vague definition, by that definition almost everything is middleware. Yep. See why I consider the term to be so confusing? The software we use these days is hugely abstracted and there are a lot of layers. Any of these layers in between are middleware.

Middleware as a hamburger

Building Your ASP.NET Core Project on AppVeyor

AppVeyor is a great continuous build/delivery service which is hosted in the cloud. You can think of it as a hosted alternative to TeamCity or Visual Studio Online. One of the best things is that it is free for open source projects. This makes it a popular choice for something like GenFu, our test data generation tool.

There are a couple of ways to set up AppVeyor for building a project like GenFu. You can put in place an AppVeyor.yml file which gives instructions about which steps to run to generate a build. Alternately you can put in place a powershell script to do the building. I opted for the latter because it is more portable to other build tools should it be necessary.

The first thing to do is to set up an AppVeyor account and hook it up to your source control. I signed in with github credentials so it was easy to locate the GenFu project which is, of course, hosted on github.

In the build tab I put in just a call to a powershell script.


Fixing "Dnx Runtime package needs to be installed" error

I went to build an older project on which I hadn’t worked for a while and I found that running msbuild on the solution file like so

& "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" .\GenFu.sln

resulted in an error which looked like

Cannot find DNX runtime dnx-clr-win-x86.1.0.0-rc1-final in the folder: C:\Users\stimms\.dnx\runtimes
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DNX\Microsoft.DNX.targets(126,5): error : The Dnx Runtime package needs to be installed. See output window for more details. [C:\code\GenFu\src\GenFu\GenFu.xproj]