Technical Posts

Check out our most recent technical posts on the details of software development.


Kendo UI components have LOTS of settings and options. For most web apps, you'll pick a set of options and stick with common UI patterns throughout the app. Will your app's grids use paging or infinite scrolling of grid data? If paging, how many records should you show on each page? Which...

A client recently asked for something I didn't know a Kendo UI grid could do. They wanted both batch edit and a detail/expand edit of the same record in the grid. They liked the Excel-like editing experience of working in batch mode, where you make a bunch of edits and send all the ch...

Optimizing bundle size with Telerik ASP.NET Core controls + Bootstrap + Webpack.

This post and the examples have been updated to the latest release of Jasmine, which is currently 3.5. Jasmine is a simple, BDD -style JavaScript testing framework, but to benefit from the full power out of the framework, you need to know how to mock calls the Jasmine way. Jasmine use...

Enums in C# can make you code easier to read: But enums don't cross in and out of C# easily. Have you ever tried to save an enum to SQL?  It becomes an int and you're right back to, "Wait, what does a Status of 2 mean again?". It's easy convert the enum to a string before sendi...

Welcome Coronavirus work-from-home folks trying to get their Cisco AnyConnect VPN working! I wrote this article about a year and a half ago but have recently refreshed it. If solution below still works for you, please leave a comment below. Thanks, and happy social distancing! :) TL;DR ...

I've written before about using file extensions to tell webpack and Babel which files are older-style ES5 syntax and which are newer-style JavaScript . What if you've got a project that has both, and you need to run ESLint on the older, *.js files as well as the new *.es6 files? Yo...

If you've done much JavaScript, you've run into the .done() and .then() callback functions, where your code is executed AFTER an asynchronous call completes. Here, myFunction(myParams) calls makeXhrCall(myParams) , an asynchronous XHR API call (the most common type of asynchronous ...

NDepend is a Visual Studio extension designed to help you improve your code quality and reduce your technical debt. It sells for €399 per developer, which is about $462 U.S. I gave it a try a very small project and a very large project. You open your project in Visual Studio, point NDepe...

Many users will never scroll all the way down to see the awesome images below the fold on your web site. If you load all your images when the page loads, you are wasting bandwidth and slowing down the page start-up experience. Instead, you can lazy-load images as they are about to come in...