Best Practises for Web Development

 

The following are a few questions we have been asked about web development and our approach to building software.

 

1)            Website development to provide our secure access to their accounts online

 

-          I would envisage a modern cleanly designed website in semantic HTML that would either be:

        --responsive design (auto adapts to the resolution based on the screen size

        --sufficiently well-formed, semantically correct and generally valid html that it would work on all devices.

 

-          Images for the website should be optimised. http://www.smushit.com/ysmush.it/ is a good resource. Also where there are many smaller images consider using Sprites.  Images should be served at their original image size where possible. Otherwise you should use something such as Photoshop to resize your image, this will result in the saving of bytes

 

-          CSS styles should be in external files and in the head part of the document.

 

-          Ideally no inline JavaScript should be present in the HTML and any script should also be in an external file. This “.js” file should be referenced at the end of the HTML. By placing

JavaScript files at the bottom of your documents, you’ll ensure that JS files will be loaded only when the content has been properly displayed.

 

-          Consider security, encrypted passwords in the database and use of SSL (https).

 

-          Make sure there are no 404 bad links or bad requests for missing images or resources. Although these requests don’t cause any data to be downloaded, it is still a wasteful resource as the browser has to initiate the request in the first place.

 

-          Consider performance: One of the most important aspects of improving a web page’s performance is minimising the number of round trips that the browser needs to make to the server. Every file that your website includes (such as CSS, JavaScript or images) all need to be downloaded to the browser. By minimizing these requests you will speed up the page significantly. If you include separate CSS files for different parts of your site then you will find it beneficial to include all the CSS in one style sheet, likewise for JavaScript or other resources. Also Minifying HTML, CSS & JavaScript, CDN’s and caching can save bandwidth.

 

 

2) Website development to provide access to status updates of items

 

Sounds like a dashboard design perhaps something like Google do to describe the status of their services

http://www.google.com/appsstatus#hl=en&v=status&ts=1363969348428

 

 

3) We have 4 disparate systems for our different companies. In each of these there is a table that we wish to be centrally maintained for all systems?

 

Assuming it’s a database table here are a few options

- Sync Framework looks good and has good support in SQL Server 2008- http://msdn.microsoft.com/en-us/sync/default.aspx

- SQL Server Merge Replication - http://msdn.microsoft.com/en-us/library/ms151198.aspx

- Open the SQL server port 1433 so that any application can connect to it. (Perhaps authenticate by IP and use a restricted user when connecting that has access to only the one table)

- Build a web service in front of the table that is exposed to the internet and that all 4 systems can use.

 

4) A new diary system to alert to recurring and / or one off tasks

 

A diary system is something that a lot of people have already built and that a lot of people require. It maybe that a component exits that meets 80% of the requirements for development cost of 20% of the normal effort.

http://www.componentone.com for example have tool-kits for scheduling. Their slogan is “.NET Tools for the Smart Developer: “ There are also free Jquery plugins with full source code like http://arshaw.com/fullcalendar/ that can be used as a starting point and that I have used in the past.

 

If an "off the shelf" component doesn't fit and a bespoke piece of software has to be built then for ideas and inspiration on possible features we should look to existing Diary systems. A lot of the bigger companies and software packages ( Apple, Google, Microsoft windows 8 ) could be explored to build the requirements.

 

 

 

 

blog comments powered by Disqus