Choose Your Poison on the rPi: Entity Framework, Linq2DB, or ADO.NET


Read about my investigations into database querying performance differences on the Code Project.

The Year of IoT – Hooking up a 2 line LCD Display







There are quite a few blog posts and articles on hooking up the LCD1602 (shown above) to the rPi.  But understanding what is going on with all those “magic bits” being set was a mystery, until now!  So if you’re looking for an example of how to talk to the LCD1602 with an rPi and using .NET Core to communicate over the I2C bus, and really understand how it works, you should find the article (link below) to answer all your questions.

Read the full article!

.NET Core nginx, and Postgres with EF on an rPi


My first article of 2019!

This article accomplishes quite a few things:

  1. Determining the rPi version and capabilities.
  2. Imaging an OS onto a USB drive.
  3. Setting up SSH so we can use PuTTy and WinSCP to communicate to the rPi.
  4. Installing Postgres and creating a test database.
  5. Installing .NET Core 2.2 and testing out Postgres connectivity, both from a Windows box and directly on the rPi.
  6. Creating an “echo” HTTP server.
  7. Installing and configuring nginx for HTTP.
  8. Configuring nginx as a reverse proxy to our .NET Core “echo” server.
  9. Configuring nginx with a test certificate.

And the big accomplishment here is that we did all this without using ASP.NET Core.  Frankly, it’s damn hard to find any articles that are not related to ASP.NET Core with regards to nginx, setting up HTTPS, etc., so hopefully the reader will appreciate the bare-metal approach that I’ve taken here.  My next article will dive more into creating a real website (a port from an existing website), working with performance issues (that horrid 8 second connect delay to Postgres) and who knows what else.

Read the full article!

HOPE for the Web


The above diagram is a high level view of what I’ve implemented with .NET Core 2.0 and Docker.  The idea is to take the work I’ve done with semantic types and allow users to create public or private repos of semantic types and microservices that operate on those types whenever they are “published” in the user’s environment.

With .NET Core 2.0, all the core pieces that I need (reflection, NewtonsoftJson, HttpListener, to name a few) are all fully usable with C# 7.  And while I’ll eventually return to supporting Python, it is a pleasure work with this concept in a strongly-typed language, as that’s a really key component to semantic processing (yes, of course it can be done in a dynamically-typed language with Python as well, as I’ve demonstrated in previous posts and an article.)

And the beauty of doing this with .NET Core is that it can run in a Linux container, which is so much faster than using Docker for Windows!

I’ll be posting more about the implementation details and writing some articles on Code Project on the subject.