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…


When last we met, we saw how to create a basic API in GraphQL and advance it a bit to do some fun stuff. For those fun and informative lessons check out Part 1 and Part 2.

More Advanced Queries

GraphQL has some really cool querying features. Consider the following query:

customer(id:1)
{
name
id
}
customer(id:2)
{
name
id
}

What we’d hope to see is two customer information packets. Instead we only get the first one.

{
"data": {
"customer": {
"name": "Larry",
"id": 1
}
}
}

To fix this, we can name each instance using our new friend, Mr…


In this exciting episode we continue the journey we began in part 1. Ok, that’s bullshit right there, but go ahead and read it if you haven’t. Otherwise you might find yourself a little lost.

So in our first part, we set up a very basic GraphSQL API to let us fetch all customers of a stock brokerage, or a single one. Our customer object is pretty much all we return though. It doesn’t have nested objects, so we’d have to query for those items separately. If that’s the case we might as well use a REST API. …

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