Dependency Injection with Azure Functions

Dependency Injection with Azure Functions

I have been making good use of Azure Functions recently; their simple hosting style makes spinning up micro-services quick and easy whether they be HTTP, Blob, Table, or scheduled triggers. I have been making use of the schedule triggers recently to automate various processes for larger systems (they are substantially cheaper and easier to manage than Virtual Servers); to do so I have needed to make use of model/data layers within the rest of an application stack. Like most good code the other layers of these applications were designed to make use of IOC (Injection of Control) frameworks and…

Read More

Visual Studio: Launch in Chrome Incognito

Visual Studio: Launch in Chrome Incognito

By default Visual Studio creates an entry for each recognised web browser you have installed when you first launch the IDE. We all know that we should be testing our web applications in more than just our favorite browser (after all, our end users may be using any number of browsers). Visual Studio supports the addition of other browsers; and using this feature you can add other browser modes such as incognito. Why I hear you ask; incognito mode is not just for naughty browsing habits. It also containerised your cookies, and history; so if you are debugging an application…

Read More

Ring ring: Did I get hacked, or was it my password?

Ring ring: Did I get hacked, or was it my password?

There have been several news articles (and tweets!) recently on the subject of "ring camera hacks"; all of which Google has decided to bring to my attention as I recently did some research (before buying) the ring alarm system. This means that Google feels the need to tell me about every random "news" site that copies and pastes an article about Ring! Dear news platforms. When someone uses a simple #password for all their stuff, and one of those things gets breached. Then that exposed password gets used to log into their @ring_uk account. That does not mean ring…

Read More

FontAwesome Spacing - The small things

FontAwesome Spacing - The small things

It is often the small things which make a difference in an application; or at least in the end users opinion of the application. In this case, it is as small as a single space, just a bit of padding, room to breath! Although this article talks about FontAwesome the functionality used is nothing to do with it; it just becomes a bit more evident when using a web-based icon library such as FontAwesome. The icon in the above screenshot is a standard FontAwesome icon with no special treatment; it is a little to close to the text for my…

Read More

Tracing SQL Permission Denied errors

Tracing SQL Permission Denied errors

It is an error that every developer is more than used to seeing; the application failed because a SQL database permission was missing. It is also a simple error to fix; just grant the permission (after following your firms strict audit processes, obviously!). The problem is knowing that it happened; if the application is 'out there with the users' you might not have a useful error message displayed, or the true error may lay several layers deep in your application stack. There is a quick and dirty solution to your problem! Detecting SQL Permission Errors with SQL Server ProfilerSQL Server…

Read More

WPF XAML Visibility binding with property value comparison

WPF XAML Visibility binding with property value comparison

Following on from my previous articles about 'Passing multiple parameters to an ICommand in WPF' and 'Speeding up large WPF ComboBoxes' the application stack I am currently working on has provided another article on a WPF subject! The ability to show or hide UI elements based on criteria related to other elements is nothing new; only showing an 'Other Details' text box when a drop-down value of 'Other' is selected is the bread and butter of many end-user applications. There are a number of ways of doing this in the WPF/XAML/MVVM world, the default is often the use…

Read More

Speeding up large WPF ComboBoxes

Speeding up large WPF ComboBoxes

The WPF application I am working on at the moment contains a questionnaire definition system; the user interface for which contains a number of ComboBoxes (drop-down lists). The nature of the application means that some of these ComboBoxes contain a large number of dynamic entries (not hardcoded, they change based on user actions). I have found that WPF ComboBoxes with a large number of entries; particularly ones which have overridden ToString methods, can take a second or two to 'drop down' (display). This is because WPF renders the entire dropdown interface when it opens; this means if you have many…

Read More