CloudNimble
Technical startup stories from the team at CloudNimble

Making Auth0’s new SPA SDK and Kendo UI’s DataSource play nice together

Image for post
Image for post
Some JavaScript code from Unsplash that has nothing to do with this post. 😉

This past Labor Day weekend, I’d been working on integrating some Kendo UI Grids into BurnRate. As I tweeted at the time, I had forgotten how quickly Kendo lets you get productive with complex interfaces. I was up and running in very short order.

The majority of our front-end architecture uses the async Fetch API to make calls back to our API… so when we migrated to Auth0’s new SPA SDK recently, it was a fantastic fit.

Unfortunately for me though, Kendo UI is still making it’s network calls via $.ajax, and even though the $.ajax() call itself is Promise-aware…


Image for post
Image for post

I was wrapping up the last-minute details for the launch of Azure DevOps Buddy a few days ago, and I came across a situation where I wanted to take a string that had formatted HTML in it and write the formatted result to the view.

I’m sure you’ve been in this type of situation before:

@(vm.AppState.TrialEnds != DateTimeOffset.MinValue ? $"<strong>Your trial ends on {vm.AppState.TrialEnds.DateTime.ToShortDateString()}.</strong> " : "")

Notice in this ternary statement, the first condition has a <strong> tag. In MVC, you’d change the beginning to @Html.Raw() and be on your merry way.

But the solution in Blazor is not…


Managing your Azure DevOps projects just got a whole lot easier.

This week, CloudNimble has been rolling out a bunch of tools that we’ve been building out for our app infrastructure.

  • After almost a year, Restier 1.0 RC1 FINALLY made it to NuGet.org (the projects’ first major release in 3 years, and the first release since it was donated to the .NET Foundation).
  • We shipped SimpleMessageBus 1.0, which is our out-of-band event processing system that runs either on-prem or in the cloud.
  • We shipped PortableRest 4.0, which is REST client library for building REST client libraries.

So today, I’m very excited about launching our Azure DevOps Buddy 1.0 Beta on ProductHunt


If you’re like me and you always want to be on the latest and greatest, you’d be surprised that the latest and greatest version of SQL Server installed with VS2019 is two major versions behind the currently-shipping version.

It’s not very difficult to upgrade manually, but there are a couple steps. Follow them carefully, and you’ll be up and running in no time. Oh, and these steps work for SQL Server 2017 LocalDB too 😉.

Step 1: Upgrade the LocalDB bits

You can grab the latest SQL 2019 installer here. …


We’re getting ready to ship the first version of our reference application for Electron-based Blazor apps, and in the process of upgrading to the .NET Core 3.0 final bits, I ran into a problem that detoured me for the better part of an hour. Since there is no other content on the web about this issue, and it seems like it will end up being fairly common, I thought I’d whip up a quick blog post. So let’s dive right in.

After upgrading, my app stopped loading. So I opened up the Electron Developer Tools, and above the unusually-undecipherable exception…


One key scenario is still not covered by the new APIs.

When I heard about the new System.Text.Json APIs, I was intrigued. I’m a huge fan of Newtonsoft.Json, but the improvements in Pipes in .NET Core 2.2 meant there could be opportunity for some nice performance gains.

I was really glad that Microsoft decided to do a usability study on their new APIs to make sure they weren’t too difficult to use. It turns out, they were. So in Preview 8, the team did a bunch of work cleaning up the APIs, and making them more predictable (AKA matching what people were used to with Newtonsoft.Json).

The changes are great, and…


Harness the power of ASP.NET MVC to build Desktop apps that run on any OS.

Image for post
Image for post

One of the things that excites me most about the possibilities of Blazor is the potential for building apps with the speed and power of .NET and the ease of HTML, but running on any OS. Electron.NET has the potential to take that one step further by making your Blazor apps deployable as Desktop apps. Changes to Blazor Preview 6 have broken Electron.NET’s Blazor support for most apps. So I wrote a simple NuGet package called ElectronNET.Blazor that brings together everything you need to make extending your Blazor apps smooth and painless.

I should start off by saying that I…


Image for post
Image for post

While working on my latest Blazor creation, I needed a way to be able to mimic a Response.Redirect and navigate the user away from the page. Web searches were of very little help, so I did what any resourceful developer would do: I dug into the source code. What I found was a thing of beauty.

tl;dr: Use the IUriHelper

The short answer is as follows:

  1. Add @using Microsoft.AspNetCore.Blazor.Services to the top of your Page.
  2. Add @inject IUriHelper uriHelper underneath your @page route declaration near the top.
  3. Use the uriHelper in a method. For example:
@functions 
{
void ButtonClick()
{
uriHelper.NavigateTo("\");
}
}

Under the Covers

The…


It’s no secret that Webpack has a rather extreme learning curve. Having spent nearly 20 years in the world of ASP and ASP.NET, getting my head around a compiler powered by the anything-can-be-anything world of JavaScript has been quite a challenge.

In building out BurnRate, yesterday’s challenge was to complete our move to a simpler domain (we used to be startupburnrate.com, now we’re burnrate.io) and update our config files. In my original setup, I was trying to let ASP.NET Core handle the distinction on which environment we were in. That was because my initial prototype started out back in the…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store