Tales from the Development of Wasp Podcatcher - Episode 5: I'm still here

Time flies when you’re having fun. It has already been over a month since the last post, which is quite long since I intended this to be a weekly series. But don’t worry, I’m still here. I had some trouble with satellite television which took up quite some time for a week or two, and study is never standing still, but Wasp Podcatcher is progressing.

When I had free time last month I have been trying to get FSharp.Data.GraphQL to talk to the database, without having to specify all the types in the database again. Luckily F# has a really cool thing called Type Providers, which allow you to do compile-time checking of types inferred from other places, in my case a SQL database. This way I don’t have to specify the SQL tables again in the F# type system, but I do get the compile-time type check I can’t live without.

Read More

Share Comments

Tales from the Development of Wasp Podcatcher - Episode 4: Go GraphQL

Last week I introduced Anchor Modeling and the model for the server I created with that. This week I wrote some stored procedures to insert new data into the database with all the proper timestamps and ties. Then I started thinking about querying the data and what the API should look like. Then I came across GraphQL.

I first heard of GraphQL in July 2017 on a .NET Rocks episode with Steve Faulkner. I didn’t really have a use for it at the time, maybe only when integrating with an API that was built on it. And there aren’t many of those, with GitHub as a notable exception. Today, however, I’m going to build an API that’s involved with multiple objects and relationships between them, and that’s exactly where GraphQL shines.

Read More

Share Comments

Tales from the Development of Wasp Podcatcher - Episode 3: Figuring out Anchor Modeling

Last week I waved goodbye to Entity Framework and talked about the data scheme I was thinking about. This week I threw most of that scheme away as I started playing with a new tool to model the data.

Anchor Modeling

That tool is called Anchor Modeling, and it’s not really that new as the first presentation on it was given in 2007. It was new for me though, and I discovered it in Steph Locke’s talk at NDC London. The reason I became interested in the tool is its first class support for modeling changes of data over time, exactly what I need to send only changes in the data when synchronizing multiple devices. Storing the history of an attribute is as simple as toggling the historized property in the graphical tool.

Read More

Share Comments

Tales from the Development of Wasp Podcatcher - Episode 2: Stop fighting Entity Framework

Last week I worked on the models as they will be stored in the database and that will be sent from the client to the server and back. So in this post, we’ll take a look at what the data model looks like.

The basic data model

I’m building a podcast application, so to start we need a podcast class, containing details like title, logo and most importantly the feed. Of course, a podcast has episodes, with a title, a description, a release date, a link to the media file and possibly a logo specific to this episode.

Read More

Share Comments

Tales from the Development of Wasp Podcatcher - Episode 1: Kicking it off

Late last year I made a big decision. I bought an Android phone, as a replacement for my Lumia 950. As we all know, Windows 10 Mobile wasn’t too alive anymore and when I left, the last Insider build had already shipped. And then I got a very good deal on a Nokia 8, so it was hard to say no. But my Lumia is still with me most of the time, for two big reasons: first of all is the camera on the 950 way better than that dual camera joke on the back of the Nokia 8. Secondly, and most importantly for this post, it is still my podcast player.

Read More

Share Comments

"Good explanation, but now what?" - Thoughts on getting people started with .NET

I was listening to a .NET Rocks! episode with Ian Cooper about starting a .NET Renaissance, analogous to the Java Renaissance started in 2011 after the decline in usage of the language. Ian lists plenty of evidence for a similar decline in C# usage, and what might have replaced it, in his blog post, so I won’t get into that, but there is another aspect which I want to talk about. One of the problems briefly mentioned in the podcast is the ‘leaky bucket’ problem: it is inevitable to ‘lose’ some developers to other platforms, so unless we fill up the bucket with new ones, usage of C# is going to decline to zero at some point.

Read More

Share Comments