Skip to content
/ Linker Public
forked from ecampidoglio/Linker

🔗 A simple URL shortening website that serves as a nice demo application.

License

Notifications You must be signed in to change notification settings

McDoit/Linker

 
 

Repository files navigation

Linker

Azure Pipelines AppVeyor GitHub Actions TeamCity Travis CI Coveralls
Azure Pipelines AppVeyor GitHub Actions TeamCity Travis CI Coveralls

Linker is a really simple web-based URL shortening service.

Background

When I set out to create a Pluralsight course about my favorite built tool, Cake, I needed a .NET web application for my demos. The idea behind the course was to take an existing web app and show you how to use Cake to create a build and deployment pipeline for it from scratch. By the end, you'd have a Cake script that can take the application all the way from source code to running software. That idea eventually became Building and Deploying Applications with Cake, which you can read more about here.

Right off the bat, I had three requirements for my demo app:

  1. Be simple
  2. Be realistic
  3. Don't be boring

In other words, I wanted an app that felt realistic—alas, not the ASP.NET MVC sample application—but also simple enough so not to become a cognitive burden. The last thing you want in a course (or presentation) is to spend half of the time explaining the domain of your demo app to the audience.

Of course, I could have gone for one of the classics like the music collection database or the online pet store we all know too well. But I wanted something fun and, if possible, useful.

You would never guess what I ended up making: a URL shortening service. Meet Linker.

Overview

Linker consists of a RESTful API backed by a database and consumed by a web frontend. Here's an overview:

Linker's Architecture

This repository contains the complete source code, with tests and everything. Of course, there's also the complete build and deployment script written with Cake.

Platform

Since Cake is cross-platform, Linker should be as well. So I wrote two versions of it:

  • One that runs only on Windows on top of the .NET Framework
  • One that runs on Windows, macOS or Linux built on top of .NET Core

You'll find the Windows-only version in the pluralsight-net4.6 branch, while the cross-platform one is in a branch called pluralsight-netcore1.0. These are the exact versions featured in the Pluralsight course and will stay as they are for reference.

As time went on, however, I realized that if Linker was going to stay valuable, it had to be kept up-to-date with the current technology. So, I eventually upgraded the .NET Core version from 1.0 to 2.1 LTS.

.NET Core is clearly the future when it comes to .NET development; it's also cross-platform, leaving little value in maintaining a separate version that only runs on Windows. For these reasons, I decided to make the .NET Core 2.1 version the canonical version by merging it into master. That became the officially maintained version of Linker going forward.

What to Do with It

Although Linker came into existence to serve the needs of my Pluralsight course Building and Deploying Applications with Cake, it has proven to be equally useful for other educational purposes. In fact, I'll go as far as to say that if you ever need a demo app for a course, a talk or a workshop, you should feel free to use Linker for it. To put in one sentence:

Linker is a simple and complete ASP.NET Core web application, ready to go. 🚀

Of course, if you would like to improve it in any way, pull requests are always welcome.

Additional Resources

You can see Linker in action in the following online resources:

About

🔗 A simple URL shortening website that serves as a nice demo application.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 77.2%
  • PowerShell 9.8%
  • HTML 4.2%
  • CSS 3.8%
  • JavaScript 3.0%
  • Shell 2.0%