Roland Guijt

Hello. I am Roland Guijt. I'm a Microsoft MVP, international speaker, consultant and trainer specializing in cloud and web technology.

Pluralsight Course "Understanding ASP.NET Core 2.x" Updated

My Pluralsight course about ASP.NET Core 2 is one of the most popular courses I have. Many people have already watched it and I'm thrilled about the very positive feedback I'm getting about it. There is 2.x in the title so the intention of the course is that I'm updating it as ASP.NET Core minor versions come out. Since the course was created when 2.0 was released I have now updated it to reflect version 2.1. Maybe you're thinking: that's a bit late. Well I finished the updates about 4 weeks ago (I'm writing this on 20 July). During these 4 weeks I've been busy getting Pluralsight to publish the updates. I'm told the team...

Writing APIs in ASP.NET Core 2.1 with the ApiController Attribute

APIs Writing Apis in ASP.NET Core until version 2.0 for me has been a great experience. I love the fact that we can now just use the same framework for both web applications and APIs. It's great to use the same Controller base class but fact remains that a Controller for an API has different needs in terms of functionality than a Controller for an MVC application that works with views. The ApiController attribute adds some great functionality to ASP.NET Core 2.1 controllers that makes life easier for API developers. Attribute routing The ApiController attribute offers a couple of very nice advantages but first a heads-up. When using an api controller you have to use attribute...

Scaling Out Your ASP.NET Core SignalR Application

Load balancers When you deploy your app to production at some point you'll want to scale out. Scaling out means running the app on multiple servers. When the app runs in the cloud scaling out is a matter of setting the number of servers you want to run. A mechanism called a load balancer will then pick a server on each incoming request. The load balancer can pick a different server in sequence or have some other logic going on to pick one. WebSockets When using web sockets there is no problem. Once the web socket is established it is like a tunnel between one server and the browser. But when using polling or long polling there might be a...

Retrieving a Secret from Azure KeyVault: Easiest Example Ever

The internet is full of code examples that try to show all possible features of Azure KeyVault. I felt the need for a very basic example just retrieving a secret. Here it is. It's an ASP.NET Core console application with a couple of added NuGet packages: Microsoft.IdentityModel.Client.ActiveDirectory (for access token retrieval from Azure Active Directory (AAD) Microsoft.Azure.KeyVault Microsoft.Extensions.Configuration (to access the appsettings.json file with needed settings) Setup steps in Azure: Authentication in Key Vault works via Azure Active Directory (AAD). We first have to set that up. AAD steps Login to the Azure portal Go to Azure Active Directory Go to App registrations Click "New application registration" Select a...

Using React's new context API

Why context? A component tree can quickly grow. The root component has many children, the children have many children and so on. What if you want to pass information that is considered global to a tree or subtree of components? For example what language these components should use. Or what the username is. You could use props of course, but it seems unnessary to pass on the same information over and over again to each component. This is where the context comes in. Pre context In this example from the React website no context is used. The theme with value dark is passed with a prop to the child toolbar component which passes it on to it's child ThemedButton also...