Software Development From The Trenches - Steve Woods' Blog

ASP.NET development, web design, best practices, annoyances and other good stuff. I've even been known to talk about freelancing, time management, client handling - sometimes it's even in video format. Dig in!

AssistMeId - Reassurance for Vulnerable People, Parents & Care Workers

AssistMe Card

I built to provide a safety net for those with special needs, or conditions that cause them to be vulnerable while not under correct supervision.

The service consists of two components - one online (for managing profile information) and an offline component that brings people directly to a vulnerable persons online profile - giving immediate access to information about their disabilities, allergies, behavioural issues and emergency contact information. This component takes the form or a keyring, plastic card or sticker carried by the person, with a unique code that is scannable with any smart phone or other device.

These physical items are also available for persons marked as a 'Carer' and their profile page features a list of all dependants under their supervision - if they become unavailable or otherwise incapacitated while out and about with vulnerable people, someone can immediately identify those under their care and make sure they receive the correct type of assistance they need until help arrives.

I built this service because I have a five year-old autistic, non-verbal son who is prone to wandering off and he would be unable to inform anyone of his home address, nor explain his conditions to them upon being found. He also suffers from behavioural issues and has specific allergies that can be quite dangerous to his health if not dealt with effectively. I imagine the situation myself and his mother find ourselves in will get a little worse as time goes on and he becomes more independent and harder to monitor, leaving him increasingly vulnerable to his conditions.

AssistMe gives me reassurance that if the worst should happen, his needs can be taken care of by any random person with a phone until such a point I or his mum can get to him - I hope you find the service useful and would welcome any feedback going forward.

Visit: to find out more.

Tuesday, May 16, 2017 at 12:33 PM
into project autism

Http 500 error when deploying .NET Framework 2.0 application on Windows Server 2012 and IIS 8.5

If you're getting a stock 500 error when attempting to run a legacy .NET application on a Windows Server 2012 instance on IIS 8.5, make sure your application pool ID is set up properly.

On IIS 8.5, the Application Pool Id is normally set to ApplicationPoolIdentity instead of NetworkService - here is how to change it:

  • Open IIS
  • Click on Application Pools
  • Right click the Application Pool in question
  • Click on Advanced Settings
  • Scroll down to where it says "ID"
  • Click on the small button next to "ApplicationPoolIdentity" to change the property
  • Select Network Service from the list
  • Click OK
  • Restart the Application Pool

Also, make sure that your Application Pool is referencing the .NET 2 framework and not the .NET 4 framework.

Wednesday, February 1, 2017 at 12:13 PM
into csharp code gotcha iis server

They're taking over...

Friday, January 27, 2017 at 1:39 AM
into captcha code robotics fun

Should freelance developers charge for estimates and proposals?

When you're a freelance web developer, it can sometimes be tempting to go full-on with a client and give them a detailed plan of their project with your costs - then not charge them anything for your efforts.

Here's why I think this is a bad idea and what I think you should do to protect your time investment in thinking through someones business idea - before you hand over your knowledge.

Tuesday, January 10, 2017 at 2:11 PM
into video freelance clients

Why is System.Threading.Tasks.Task`1 [System.Threading.Tasks.VoidTaskResult]; appearing in my ASP.NET Core Razor Views?

Pretty simple really - you're not calling the correct method to render your partial views.

Instead of:

@Html.RenderPartialAsync("MyPartial", Model);

You need to use:

@await Html.PartialAsync("MyPartial", Model);

Simples :)

Sunday, January 8, 2017 at 11:48 AM
into csharp code gotcha

Older Posts

SelectListItems not appearing in the Edit view when Scaffolding Controllers and Views with MVC Core in Visual Studio 2015

Easy fix to the bug when scaffolding views and controllers in Visual Studio 2015

The Internet of Things

Be careful what you wish for

How to require that a checkbox is selected when submitting a form in ASP.NET MVC

Learn how to correctly validate whether or not a checkbox has been selected when submitting a form in ASP.NET MVC

HSBC announce a new UI for their Internet Banking Service

A much needed overhaul of the HSBC banking system is on its way, here's hoping it solves some of the key issues the current one has.

Geolocation not working on non-HTTPS domains with Google Chrome

Why geolocation no longer works on websites with Google Chrome unless they're using a secure connection

Implementing a PayPal Payment Button with ASP.NET WebForms

How to add a hosted PayPal button to an ASP.NET WebForms page

OpenVPN won't connect on Windows 10 - Solved

Learn how to get OpenVPN working again on Windows 10 after updating to the latest version

What makes someone a bad programmer?

Why raw technical ability has no bearing on whether you're a good programmer or not

How to force lowercase URLs in ASP.NET 5

Learn how to force ASP.NET MVC to generate lower-case URLs on all generated links

Solved - jQuery Mobile Click Event Not Firing After AJAX Page Request Completes

How to make sure jQuery events stay bound to their controls when refreshing elements of a page via an AJAX call

Windows 10 Wireless Issues - No Connections Available [SOLVED]

Make sure you uninstall the Cisco VPN client from Windows 8.1 before you upgrade to Windows 10 or you will have wireless connectivity issues.

Prevent Superscripts and Subscripts from Affecting Line-Height

How to stop sup and sub tags from affecting the line heights of a paragraph in HTML

What A Website Developer Does All Day

A picture tells a thousand words - what your website developer does all day

Unable to add 'Global.asax' to the Web site. An unknown WinINet error has occurred (code 12113).

Find out what to do when Visual Studio reports a WinINet error code 12113 when deploying a website via Web Publish

TimeSpanExtensions .ToFriendlyString()

A C# .NET extension method showing how to convert a TimeSpan interval into a friendly string format

Including a Day Suffix when formatting a Date in C#

How to format a datetime in C# with a suffix on the day

Custom Authentication Attributes in ASP.NET MVC

How to set up a custom authentication attribute for controller methods in ASP.NET MVC

301 Rewrite Rules can break MVC forms

Why sometimes 301 rewrite rules can break ASP.NET MVC forms

PottyMouth - A Simple C# Swear Word Filter

PottyMouth - A C# extension method for filtering swear words

Speaking about flying Drones from a First Person View at FPVHub 2013

A brief overview of my speaking session at FPVHub Northern Meet 2013

How to rename a SQL Server table from within Visual Studio 2010

How to rename a SQL Server table from within Visual Studio 2010

Incorporating common ViewData into multiple Controllers in ASPNET MVC without duplication

Incorporating common ViewData into multiple Controllers in ASPNET MVC without duplication