New

Switching to Tailwind CSS, a utility-first CSS framework

Posted: Thursday, 2 July 2020

What is Tailwind CSS? What is a utility-first CSS framework? Find out how switching from bespoke CSS, Bootstrap, or other frameworks can help improve your front-end development productivity and maintenance.

Read Switching to Tailwind CSS, a utility-first CSS framework

Locking & async/await

Posted: Tuesday, 10 December 2019

You may have noticed that the C# compiler gets very upset if you try to use an `await` inside a `lock` statement. There is a reason for this but what if you need synchronization when calling async methods?

Read Locking & async/await

The umBristol Umbraco V8 hackathon

Posted: Tuesday, 18 December 2018

As part of the umBristol Christmas Party day of events, our developer, Karl Tynan, recently attended the Umbraco V8 hackathon on a boat in Bristol.

Read The umBristol Umbraco V8 hackathon

Decoupling views and navigation Xamarin.Forms

Posted: Thursday, 4 October 2018

Navigation in Xamarin.Forms is tightly coupled to the UI. How can you go about breaking that coupling and making your ViewModels more testable?

Read Decoupling views and navigation Xamarin.Forms

Awaiting multiple tasks effectively

Posted: Wednesday, 23 May 2018

Working with the Task API and async and await makes consuming asynchronous operations very straightforward. However, what if I want to process several asynchronous operations concurrently?

Read Awaiting multiple tasks effectively

Mobile app development is key of 2018

Posted: Wednesday, 7 February 2018

Many of us have seen the rise in mobile use, it now seems strange that you would be without a smart phone and also not to use it to order products and help keep our lives in order.

Read Mobile app development is key of 2018

Xamarin.Forms tip: How to restrict entry view

Posted: Monday, 22 January 2018

As a Xamarin Forms developer sometimes all you need is a way to ensure that users of your application only enter specific characters into Entry views. For me, it was to restrict the entry to numeric characters and a single decimal.

Read Xamarin.Forms tip: How to restrict entry view

Creation of an Alexa skill using an internal HR API

Posted: Thursday, 23 November 2017

With the automation of HR management here at Rock Solid Knowledge we wanted to create a new way to remember who was meant to be in the office. So with a recent office purchase of an Amazon Echo, I decided to take on the development of an interactive program that could be invoked via Alexa...

Read Creation of an Alexa skill using an internal HR API

Something about nothing

Posted: Tuesday, 12 September 2017

I must admit when I first saw the list of new language features for C# 6 like many I wasn’t that impressed, especially off the back of async/await. This last month I have at last started my first new real C# 6 project and I must say while the features have not been earth shattering they are actually a joy to use…

Read Something about nothing

Unit testing decorator base classes

Posted: Tuesday, 12 September 2017

When using the decorator pattern it is a common practice to create a base class implementation of the abstraction that simply forwards all calls to the decorated class. This means that in the actual functional decorators, once you derive from this base class, you only need to implement the behaviour for the specific methods...

Read Unit testing decorator base classes

Let's stop the async suffix BS

Posted: Thursday, 7 September 2017

There is a common pattern that is used in .NET APIs where anything that returns a Task has the suffix Async…

Read Let's stop the async suffix BS

Working with CancellationToken and Dispose

Posted: Wednesday, 30 August 2017

CancellationToken were introduced in .NET 4.0 as a general purpose cancellation framework. It is often associated with Task as that was the first API to it. However, it is, in fact, independent of Task and should be used wherever you are supporting the concept of cancellation as async APIs you may call with be designed with it in mind…

Read Working with CancellationToken and Dispose