Roland Guijt

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

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...

Setting Up a React Development Environment

Preparation First make sure that you have the latest version of node.js installed. The easiest way to do that is to download the installer package from nodejs.org. npm is the node package manager. It is updated more frequently than node itself. To make sure your have the latest version, at the prompt type npm install npm@latest -g. Create-react-app Now change to the root folder where you want the app to live and type npx create-react-app [yourapp] to create the initial app. npx was installed when we installed npm. It executes an npm package directly. It downloads a starting point for an application using the latest version of React. Besides that it configures a complete environment to develop...

.NET Standard Explained: How the table works

It took me a while to get my head around the new .NET Standard which is going to affect the monikers that are going to be used in ASP.NET Core. I felt the need to simplify it as much as possible primarily to help me remember how it works :-) Portable Class Libraries The .NET Standard can be seen as the next version of portable class libraries (PCLs). The main disadvantage of a PCL is that it is tied up front to one or more .NET platforms. You see the .Net platforms listed in the first column of the table below. Imagine you create a PCL now and configure it to support Silverlight and .Net Framework 4.6. Then...