Adding Umami Tracking Client Nuget Package
Now I have the Umami client; I need to package it up and make it available as a Nuget package. This is a pretty simple process but there are a few things to be aware of. Creating the Nuget...

Wednesday, 28 August 2024 02:00

//

4 minute read

Adding Umami Tracking Client Follow Up
In an earlier post I sketched out how a Tracking Client for Umami in C# could work. Well I've finally had a chance to test it extensively and improve it's operation (yes ANOTHER...

Tuesday, 27 August 2024 02:00

//

6 minute read

Adding a Comment System Part 1 - Setting up the Database
One of the key aspects of a blogging site like this is a comments system. So, I decided to build one. This is the first part of a series of posts on how to build a comments system. In this post, I...

Monday, 26 August 2024 11:53

//

6 minute read

(Simple) Unit Testing The Blog Part 1 - Services
In this post I'll be starting adding Unit Testing for this site. This won't be a full tutorial on Unit Testing, but rather a series of posts on how I'm adding Unit Testing to this site. In this post I...

Sunday, 25 August 2024 23:00

//

7 minute read

Background Translations Pt. 3
In previous articles, we have discussed the importance of translation in the context of web applications. We have also explored the use of the EasyNMT library to perform translations in an ASP.NET...

Sunday, 25 August 2024 03:20

//

10 minute read

Full Text Searching (Pt 3 - OpenSearch with ASP.NET Core)
In the previous parts of this series we introduced the concept of full text searching and how it can be used to search for text within a database. In this part we will introduce how to use OpenSearch...

Saturday, 24 August 2024 06:40

//

8 minute read

Full Text Searching (Pt 2 - Introduction to OpenSearch)
In the previous parts of this series we introduced the concept of full text searching and how it can be used to search for text within a database. In this part we will introduce OpenSearch, a powerful...

Saturday, 24 August 2024 03:00

//

5 minute read

Background Translations Pt. 2
In our previous post here we discussed how we can use EasyNMT to translate our .md files into different languages. We also discussed how we can surface this functionality to the user by adding a...

Friday, 23 August 2024 19:52

//

8 minute read

Background Translations Pt. 1
So for a while now I've used EasyNMT to translate my .md files into different languages here. I've wanted to 'surface' this so you can all have a play with it too. See the second part of this series...

Friday, 23 August 2024 05:38

//

4 minute read

Ensuring your IHostedService (or IHostedLifecycleService) is a single instance
This is a dumb little article because I was a bit confused about how to ensure that my IHostedService was a single instance. I thought it was a bit more complicated than it actually was. So I thought...

Thursday, 22 August 2024 16:08

//

5 minute read

Adding XSRF for JavaScript
When adding the search box in the prior article, we left out a critical security feature: XSRF protection. This article will cover how to add XSRF protection to the search box. What is XSRF? XSRF...

Thursday, 22 August 2024 05:30

//

2 minute read

Full Text Searching (Pt 1.1)
In the last article I showed you how to set up a full text search using the built in full text search capabilities of Postgres. While I exposed a search api I didn't have a way to actually use it...

Wednesday, 21 August 2024 20:30

//

5 minute read

Full Text Searching (Pt 1)
Searching for content is a critical part of any content heavy website. It enhances discoverability and user experience. In this post I'll cover how I added full text searching for this site Next parts...

Tuesday, 20 August 2024 12:40

//

10 minute read

Adding Entity Framework for Blog Posts (Pt 6)
Now that I have this blog running using Entity Framework I can add new posts and languages easily. I just add a new markdown file to the project and check it in. The GitHub action triggers and the...

Tuesday, 20 August 2024 05:45

//

3 minute read

Adding a C# Umami Tracking client
In a previous post we added a client for fetching Umami analytics data. In this post we will add a client for sending tracking data to Umami from a C# application. Umami is a lightweight analytics...

Sunday, 18 August 2024 20:13

//

6 minute read

A SimpleMDE Markdown Preview Editor with server side rendering.
One thing I thought it would be fun to add is a way to look at the markdown for the articles on the site with a live rendering of the markdown. This is a simple markdown editor that uses SimpleMDE and...

Sunday, 18 August 2024 17:45

//

6 minute read

Adding Entity Framework for Blog Posts (Part 5)
See parts 1 and 2 and 3 and 4 for the previous steps. Introduction In previous parts we covered how to set up the database, how our controllers and views are structured, how our services worked, and...

Sunday, 18 August 2024 01:20

//

5 minute read

Adding Entity Framework for Blog Posts (Pt. 4)
See parts 1 and 2 and 3 for the previous steps. Introduction In previous parts we covered how to set up the database, how our controllers and views are structured, and how our services worked. In this...

Saturday, 17 August 2024 20:00

//

6 minute read

Handling (unhandled) errors in ASP.NET Core
In any web application it's important to handle errors gracefully. This is especially true in a production environment where you want to provide a good user experience and not expose any sensitive...

Saturday, 17 August 2024 02:00

//

3 minute read

Adding Entity Framework for Blog Posts (Part 3)
You can find all the source code for the blog posts on GitHub Parts 1 & 2 of the series on adding Entity Framework to a .NET Core project. Part 1 can be found here. Part 2 can be found...

Friday, 16 August 2024 18:00

//

9 minute read

logo

©2024 Scott Galloway