Back at it

When we last saw our intrepid (actually more like frustrated) heroes (See part 1 here) they were dealing with the pain of branching, and introduced the concept of feature flags as a way to reduce the pain.

Well, lucky you! Microsoft decided to give you a sweet little API to help you along. Plus they build a nice little Azure tool to manage the various flags! Plus…..well, to be honest, Microsoft gives developers a lot of great shit, often for free! (Microsoft haters, you can stop reading now!).

So where do we begin? Well, first, we want to set ourselves…


What the hell is the problem?

Let’s face it. If left to their own devices, developers will step on each other’s toes. You spend hours writing some really elegant code, check it in, and then some schmuck merges your branch with his branch, and ends up wiping out all your crap.

Or what about when we’ve finished a shit ton of user stories, and want to move them to test environment. However, we can’t because some other code in the system isn’t ready to go, and moving them together will break something. So someone has to back out their shit or we have to wait. Lots…


Where we left off

In our last installment, we got a lot of the preliminary bullshit out of the way. We built a basic, essentially useless component. In this part, we will build a slightly less useless version of a component to capture a person’s personal information (name, address, etc).

Let’s jump right in. As we did last chapter, lets create a new Razor component. We will call it PersonInfo.razor. Put it under the Shared folder this time because we want to use it in more than one place.

Remove the code block, as we are going to create a code behind class. Let’s…


When dating or in a relationship I think of “nice” as a four letter word. I strive to be kind. Compassionate. Accepting. Loving. Altruistic. But never nice.

Why? Because to me nice guys are not nice out of sincerity. Being “nice” is about quid pro quo. “If I am nice to her she will be give me sex” or “she will cook for me” or whatever.

Granted, this is a personal definition. But it ties into the same space as “nice guys finish last.” They do! Because to me, being nice is a manipulative state based on fear and a…


To put it bluntly, JavaScript is Bullshit! Yes, its unavoidable so I use it. But I hate it like a bad rash. Its clunky, lacks elegance and all around just sucks. So I was very excited to hear about Blazor. Client Side Blazor (more on this later) uses the wonderful new WebAssembly technology which is available in all modern browsers (IE 11 can kiss my ass).

Our friends at Microsoft have released two versions of Blazor. The first is ServerSide Blazor which uses SignalR to send data between the client and server. …


This is the first in a multi-part series on getting started with GraphQL in .net core.

Just the tiniest bit of preliminary bullshit

If you’ve written any code for the web any time in the recent past, you’ve had to deal with Rest APIs. While they are useful, and a nice change from the world of SOAP, they have their drawbacks.

The biggest one is a million different URLs. Seriously, you need a fricking URL for everything. Then to keep all that shit straight you start using things like Swagger, etc. It gets messy.

Additionally, when you have a REST api, there isn’t much you can do…


Tell me if you’ve had this happen to you. You have a team of great developers ready to do great work. You are all agile enthusiasts and want to produce increments of reusable software in quick succession of high quality. Your releases are planned. The product owner has weighed in. Your initial sprints are set up. You are an Agile god!! The sun is shining, and its going to be a great day…

Then that asshole from sales sells a feature you don’t even have on your road map. Of course, he says its available now. The CTO says “This…


When digging in to AI topics like reinforcement learning, the topic of dynamic programming keeps popping up. Examining formal definitions of dynamic programming yields a whole bunch of overly complex bullshit. The reality is, the concept is really simple.

Dynamic programming is all about avoiding repetitively solving the same problem every single time you run the program. This doesn’t matter much with trivial computations, but when you are dealing with algorithms that have exponential time complexities or worse, you can save a lot of time going this route.

Dynamic programming is a natural fit for recursive algorithms. It doesn’t usually…


Where we have been

So far, we’ve covered the basics of GraphQL, a simple implementation, some more advanced queries using the GraphiQL tool and we built some clients. Now we are going to see how to push updates across our service, with as little bullshit as possible.

Mutations

It’s all well and good to query data. With GraphQL that is pretty straightforward. However, if we want our system to be particularly useful, we need to be able to update it as well.

The REST approach requires different endpoints for each type of update. While this does work, it is kind of bullshit!! …


Where we have been

So far, we’ve covered the basics of GraphQL, a simple implementation and some more advanced queries using the GraphiQL tool. Now we are finally going to start implementing a client!! Once again we will go for as little bullshit as we can!

The Bullshit Way

The most “blunt force” approach to implementing a client to work with GraphQL in .net is to use HttpClient. While this is pretty far from the preferred method, that’s where we will start, just to show you how easy it is — at least to start.

  1. First, open up the solution from the last article . Run this…

Larry Schoeneman

Software developer, technical leader, agile evangelist and all around technical pain in the ass.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store