Learning how to develop GraphQL solutions with .NET

Screen Shot 2019-08-26 at 11.04.33 PM

If you are building a data-driven web or mobile application, then key concerns you need to address is how data will be surfaced to the client and how the client can update the state on the server. This is not a new problem, and one that we have been solving for decades.

GraphQL provides one way to address this problem and uses an approach that provides significant benefits over previous RPC-based approaches. GraphQL was originally created at Facebook several years ago. It has been widely adopted since by Github, Concur, Airbnb and more. We’re even now adopting it at DocuSign. If you are doing React development, GraphQL has become the de-facto way to query from React clients.

What is GraphQL?

At its heart, GraphQL is several things.

  • A schema that allows defining a structured view of data that will be surfaced to / queried / updated by a GraphQL client.
  • A query language for interacting with a GraphQL endpoint to retrieve, update, and subscribe to notifications.
  • Tooling and SDKs for building GraphQL clients and servers, or interacting with GraphQL endpoints such as the GraphiQL editor, clients like Apollo and Relay, servers like Apollo, GraphQL for .NET, and more.

A few things that have stood out for me that I have really liked about GraphQL.

  • It provides a standard way to query and update data including non-crud based actions. It supports “graphs” of data allowing queries to pull hierarchical data.
  • It puts power in UI teams hands to be able to hand craft queries with the data they need, without having to constantly send custom requests to the API team.
  • It has GraphiQL which is an awesome intellisense-driven tool for querying GraphQL endpoints that you can provide to developers for interacting with the endpoint.
  • It can work side by side with, and wrap existing “REST” APIs
  • It is not opinionated about where data resides, it is not bound to a database. Data  could live in MongoDB, SQL, in documents like S3/Azure Blob, or even in memory. It is really easy to make GraphQL work with any data store
  • It allows full control from the server-side as to what data is exposed.

There are also plenty of tradeoffs with GraphQL vs traditional APIs and it is not a silver bullet. Fortunately it is not mutually exclusive and can live side by side with “REST” APIs. Still you should go in with eyes open (as with any other technology or approach).

GraphQL with .NET

Yes you can develop GraphQL solutions with .NET! There are several open source projects that enable this, my favorite one being GraphQL for .NET. GraphQL for .NET lets you create GraphQL schemas and queries in C#, and then surface them via an ASP.NET core endpoint. It also provides a C# client which you can use to issue queries from an application such as as a Xamarin mobile client. All of the libraries are also available on NuGet. If you head to the GraphQL for .NET documentation you can find out more.

I’ve also created an ASP.NET Core example endpoint which can be ran on Windows, Mac or Linux which you can download from here. The readme contains lots of example queries you can run using the GraphiQL editor that is built in.

Check out my LinkedIn Learning Course

If you are interested in learning more about GraphQL for .NET, you can also check out my LinkedIn Learning Course: API Development in .NET with GraphQL. In the course I’ll take you through building the Orders GraphQL endpoint above from scratch in ASP.NET Core. I show you how to use GraphQL for .NET to define your schema, queries, and mutations, and subscriptions and expose them via ASP.NET Core. It’s heavily code based so you can follow along and build it with me. If you check out the course, let me know what you think.

GraphQL is growing

GraphQL is exploding in traction, with more and more companies adopting it as the standard. All signs are that will continue. It is exciting that this powerful ecosystem is available now to you as a .NET developer!

Posted in ASP.NET, ASP.NET Core, GraphQL | 4 Comments

No Longer a Microsoft MVP–Hello MVP Reconnect

Today marks the first time in nearly a decade that I am no longer an MVP. I will be joining the MVP alum in the MVP Reconnect program.

Getting the MVP award every year has become a great side benefit and validation, but the real achievements have been in working with the community and all the things that we’ve accomplished over the last decade!

When I first received the Microsoft MVP award in 2010, it was an achievement I had been working towards and it was something that really validated the work I was doing in the community. It was a goal I had set – to become a Microsoft MVP. When I got it, I was so excited and felt like Microsoft folks were really paying attention to what I was doing. Keep in mind back then that open source wasn’t even a contribution category, but I was doing a lot of talks in the community and working on the Chuck Norris Framework.

After achieving the award for the first time, my focus shifted to primarily doing great things in the community. A lot of that for the last few years has been hands on and I’ve been at the forefront of those efforts. And accordingly, Microsoft continued to validate that what I was doing was important and helpful for developers using Microsoft technologies.

Over the last few years, my role has shifted a bit to building a long term viable business to support the Chocolatey community. This means managing a business and building an amazing team that can help move my vision forward. This last year especially I’ve been focused in that effort of building a great team and that has meant that I’ve had less visible contributions. I’ve been focused enabling my team to do great things, and two of them are MVPs, which is fantastic!

I’m certainly very appreciative of my time as an MVP and have met a lot of amazing folks in the MVP community! I would have loved to have that 10 year blue disk, but Microsoft has rightly saw that my contributions over the last year have not been up to the standard of other folks out there and has made a proper decision on that front.

One thing I will miss is filling out the renewal paperwork every year as it forced me to take some time to reflect on all the great work we were doing in the community, and it put numbers to that work. I think I will look for my own time to do that reflection at some interval, hopefully a bit more often than annually. I always think of this Ferris Bueller quote when I take a moment to reflect. It’s certainly a great quote to apply to your life:

“Life moves pretty fast. If you don’t stop and look around once in awhile, you could miss it.” – Ferris Bueller’s Day Off

Thank you Microsoft for the opportunity and validation over the years – I’m going to continue doing great things in the community and maybe that will bring me back to the MVP award, but maybe it won’t. And that is totally fine.

Posted in chocolatey, news | Tagged , , | 1 Comment

The Next Chapter

Six years ago I started working furiously on this little side project about package management for Windows. It started to grow and over time it became clear that it was going to be something important. A community flourished and there was a tremendous uptake for this little tool.

Fast forward to present, starting soon I will be focused solely on Chocolatey as the Founder of Chocolatey Software, Inc*! It’s an exciting opportunity to really see where we can take this Windows software management thing!

I also could not have had the opportunity to move forward without the support of a tremendous community, who has contributed to Chocolatey’s success in many ways. Your support does not go unnoticed – we will continue to make open source improvements, along with ensuring that organizations can take Chocolatey to the next level with Chocolatey for Business.

Chocolatey.IO - Software Management Automation

It’s a bit bittersweet as I’ve had the opportunity work with a lot of fantastic folks at Puppet and do some really awesome things for furthering automation on Windows. In many ways Puppet has been an amazing place to work (I highly recommend it, they have the remote employee situation handled). However, an opportunity to follow my first love, Chocolatey, is a dream I won’t pass up.

Not everyone gets the opportunity to follow their dreams, so when you get a chance it can be both a thrilling and scary experience! Here’s to the future of Chocolatey and Windows automation!

* – For those keeping track – Chocolatey Software was formed in November 2016 as a spin off of RealDimensions Software, LLC

Posted in chocolatey, news | Tagged , , , | 23 Comments

A new serverless adventure at Auth0

Last week was my last of a great ride at Splunk. I have now joined Auth0 working on a new developer-focused offering around Serverless compute, with Webtask. I’ve also started a new blog to discuss more broader topics on tech, startups etc.

Read more on what I am doing now here!


Posted in serverless | 21 Comments

.NET Fringe is back!

And we’re back!

Yes it’s true, .NET Fringe is back! We’re gathering back in Portland from July 10th through 12th for 3 days of unadulterated .NET OSS awesomeness. Last year we had a magical event, and we heard you tell us that you couldn’t wait for next year. So this year we’re back and we’re taking it up a notch! You can hear more about why we’re doing .NET Fringe and our plans for this year in our recent Channel 9 Interview.






The Topics

We’ve got a rich and diverse set of topics this year that is very timely and relevant to what is happening in the industry. Just look at the list!

  • .NET Core
  • DevOps
  • Docker
  • Hadoop
  • IOT
  • Kubernetes
  • Linked Data
  • Microservices
  • Machine Learning
  • Mobile
  • Spark
  • Xamarin
  • IOT
  • OSS Project Management

The Speakers

And an excellent lineup of speakers starting with our keynotes. We are thrilled that the list includes Don Syme, the creator of F#!

Screen Shot 2016-06-16 at 8.24.28 PM







Lightning Talks

This year back by popular demand we’ll be having about 15 Lightning talks split across the two days. Got an idea you’d like to speak on, we’re open for submissions.


Once again we’ll have workshops free for attendees on July 10th. Aaron Stannard is back with more AKKA.NET goodness, and we have several other workshops. Stay tuned to dotnetfringe.org.

Everything else

There’s a ton of other cool stuff, like another awesome venue, the Geek Train from Seattle, a bike ride around Portland, live music, some great food oh and Portland!

Discounts for bloggers

Are you wanting to attend .NET Fringe but are short on cash?

Go write a blog post (and no, not just a one liner) either about your .NET Fringe experience last year, or why you want to attend this year. Then follow @dotnetfringe, tweet with your blog post and include @dotnetfringe or #dotnetfringe. We’ll follow you back and then DM you a 70% DISCOUNT CODE.

Don’t wait

.NET Fringe is around the corner. It’s going to be amazing. Go register and come join us!


Posted in .net | 9 Comments