Rules to Better Websites - Tuning and Maintenance
What brings customers back to your website time and time again? ** It's fresh content.** Keep your website up to date by creating and updating pages, which will drive customer interest.
The quickest and easiest way to post fresh content to your existing site is to implement a CMS. These are a few that we can recommend using:
The premier content management to store all documents & records. SSW helps enterprises customize and develop SharePoint often powered by AngularJS.
DNN (AKA Evoq) can be used as a web content management system (CMS) for simple websites or as a powerful application development framework.
Orchard is a free, open source, community-focused project aimed at delivering applications and reusable components on the rock-solid ASP.NET MVC platform.
Sitefinity's mix of benefits for marketers, IT managers, Developers, and designers make it the ideal choice for medium sized businesses.
Sitecore's mix of powerful marketing and business features, rich development support and scalability make it the ideal solution for leading websites.
With over than 200.000 installations, Umbraco is one of the most deployed Web Content Management Systems on the Microsoft stack.
WordPress the most popular content management system (CMS) on the web, and is trusted by content publishers from both large and small businesses.
As the web development industry matures, best practices of website usability are continually improving. You should regularly update your website's user interface to reflect these changes. Good examples are breadcrumbs (seen at the top of this page) and cascading menus. Not only are these features an easy way to find what you want and know where you currently are in a website hierarchy, there are also standards that users are becoming familiar with.
SSW has talented designers who can improve the aesthetics and usability by tweaking images, design, and navigation of your website.
Making sure that your site content to include specific keywords is just one part of the story. You need to constantly monitor how they perform.
The two main tools for keywords (and most of SEO research) are:
It's better to use paid versions, but there are free versions with a limited set of features that are still useful.
For a smooth and responsive user experience, your site needs to be checked for performance bottlenecks. These usually become noticeable sometime after deployment, as your user base and quantity of content grows.
- Check for and improve the slowest pages
- Check for and improve the compression of unnecessarily large images
- Check for and improve the slowest database queries
- Check for and improve page responsiveness
There is a lot of information tucked away in your web server log files. Valuable, but often unused, information that can be retrieved from your web server log files include:
- Geographical origin of users
- Referring pages (which external pages did the users come from e.g. search engines)
- Number of users
- Time spent on the website
- Reasons for user's early departure
- Popularity of pages within your website
You should design a website to look good when being viewed in Google Chrome, Mozilla Firefox, the latest version of Edge and Safari unless the client specifically requests otherwise.
There are a lot of other browsers available, but it is important to consider that most other browsers are based on the most used browser nowadays.
Note that readable is not perfect. There may be some page elements that are less than perfect, but it's just not worth of time to fix small bugs in every single browser, except for Google Chrome.
You must test your website on the major browsers, though, because that there will be more differences and problems than you would think. The typical things that you will need to fix are:
- Dynamic HTML
- VB Script
You should be able to fix all formatting and layout bugs by editing the CSS file.
Note: If a browser represents less than 2% of your website views in Analytics, then you shouldn't bother.
E.g. Google archived this link - https://code.google.com/archive/p/html5-js/ - which was used as an HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries. Since IE represents a small percentage of views it can be removed instead of updated to a new working shim.
Websites can be complicated, and a very small mistake can take the whole site down. But there are two different kinds of errors, coding errors and deployment errors; coding errors should be picked up by compiling and debugging, while deployment errors should be picked up by the HealthCheck page.
Whenever there is a deployment problem, instead of fixing it straight away, we find out what the cause of the problem is and create a HealthCheck test to prevent it from happening again. So next time, when the site is down or re-deployed to a new server, we can simply run the HealthCheck page and fix all red crosses then the site should be back online.
Dotnet Core has the ability to add a health check to your application and can be configured for a variety of real-time monitoring scenarios:
- Health probes can be used by container orchestrators and load balancers to check an app's status. For example, a container orchestrator may respond to a failing health check by halting a rolling deployment or restarting a container. A load balancer might react to an unhealthy app by routing traffic away from the failing instance to a healthy instance.
- Use of memory, disk, and other physical server resources can be monitored for healthy status.
- Health checks can test an app's dependencies, such as databases and external service endpoints, to confirm availability and normal functioning.
If you need to add a UI to the health check system - we recommend checking out https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks.
It includes NuGet packages that make it easy to test the health of the lots of different endpoints, and you can push the health check results to different logging platforms e.g. Application Insights, DataDog, etc
It also includes UI (which is themable) and the UI supports automatic discovery of k8s services exposing pods that have health checks endpoints. This means you can benefit from it and avoid registering all the endpoints you want to check and let the UI discover them using the k8s API.
Best of all they have a Release Gate available on the DevOps market place for the release pipelines.
Other products using validation status
Nowadays, most application are dealing with Data. And it would be nice to have maintenance pages to manage data (select, insert, update and delete).
We recommend you create the maintenance pages by netTiers. netTiers is a set of open source code templates used in CodeSmith for object-relational mapping. It automatically generates a personalized Data Tiers application (on a base of a SQL Server Database) in just a few minutes. With the application it generated, you can manage data of a web application easily and efficiently.
Please follow these steps to create your maintenance pages.
- Download CodeSmith.
- Download .netTiers and extract to a folder (e.g., C:\Program Files\NetTiers)
- Install CodeSmith.
- Run C:\Program Files\NetTiers\NetTiers.cst.
- Set requires properties following instructions.
- Open the solution.
- Build it and run it in IE.
- Congratulations! It's up and running.
Code Smith enables to do this generate with a single command. If you want to generate it again, just run this command.
Figure: An example of command line of Code Smith for NorthWindWe recommend you put this command in a file called "_Regenerate.bat" and add it in the solution in case you will generate it again in future.
Websites should have an uptime report to provide real-time and historical performance and availability information.
Plus, with history information, you can get exact downtime of your website or services in the past.
Often times, web pages are dynamic. Most link scanners are not capable of submitting form information. The trick is to allow a "door" for link scanner go through to scan a dynamic section of a site. A common technique is to hard code hidden link with a query string at the bottom of the page that allows the link scanner to follow into the simulated user input. See the following code for example:
<a href="KB.aspx?KBID=Q1097707">Q1097707 - How do I turn Option Strict on by default in VB.NET?</a>
Figure: Example source code - finding broken links
It will return all the knowledge base articles in a paged format. The link scanner will click the Next Page link and eventually scan through the entire knowledge base.
We have a program called SSW Link Auditor to check for this rule.
To maintain the stability of your server and help protect against harmful attacks, your server should only be running necessary services, and all software should have the latest updates.
- Check that your operating system has the latest patches
- Check the system for software updates
- Check system event logs for software error reports
- Check the system is only running necessary services