Introducing versionsof.net

.NET Core versioning is a mess. There are lots and lots and lots of version numbers, from runtime to SDK, from Visual Studio to languages and of course .NET Standard. So what SDK corresponds to which runtime again? I know there some sort of a system, but it differs per release. Here’s my solution:

I called it versionsof.net.

Read More

Share Comments

Animating GridViewItems with Windows.UI.Composition (aka the Visual Layer)

If you’ve ever used the beta version of myTube! (and you should), you’re probably familiar with the effect I wanted to create:

I absolutely love this effect, and when I accidentally open the non-beta version of myTube, where it’s not yet implemented, I miss it, often to the point of closing the app and opening the beta. It really makes for a great experience, so I wanted to create something like it myself. Here’s the result of what we’ll build in this post:

Read More

Share Comments

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