 This module is continuation of the previous module, you recall that I discussed and actually started discussing the design guidelines and discuss the design guidelines about authentication and authorization. Now we will in this module cover the remaining guidelines and I will kind of briefly go over them because the guidelines are quite a few and I will just list the critical points you can read the details in the course handouts. So let's begin caching, now caching is for performance okay avoid caching volatile data if the data is going to change very quickly there's no point in caching it because you will cache it and it will change and when you access it it has already changed so there's no point in caching that data, output caching for static pages understood obviously if these pages are static you cache them and when you go and check them they have not changed partial case you can have a combination also and pool the shared expensive resources so that you can get the most with least input, cached data in ready to use format this is important ready to use format, now if you have the data cached in a certain format which was stored obviously but you need the data in another format so you get the data from the cached but you spend time processing time converting their data in the required format so what is the fun of it you have lost the time which was saved by that conversion so be careful exception management now exceptions will happen can happen usually happen ensure that your system does not lands into a state where it is exposed to the users where it shows the faults to the users not for control logic flow okay catch exceptions if necessary you have to think you have to plan you have to look at how the system will behave and it means that you identify the exceptions before they happen maybe there is less likelihood of their happening but the point is that if you catch those exceptions and you handle them beforehand then your system will not crash it will be in a stable state that will point to a professional work design a global error handler you have those exceptions and if you are unable to catch them there is a global handler which will take care of those exceptions which you have not caught the point is to give an impression not only give an impression but have a stable system display user friendly messages message like this cannot be done this is over they don't convey anything there are many jokes about it but I don't have the time to go over these jokes logging and instrumentation whatever is happening that is written in a log now remember that log might be needed for legal reasons reasons in a court maybe so you should be logging and the log is relevant when the log is being made in time okay and those are also required for auditing also what activities were done when they were done it and they also identified suspicious suspicious activity also and of course the system should be running and looking at the logs and identifying those suspicious activities beforehand so that the timely actions can be taken then navigation use some standards MVP now the navigation should not be part of the user logic okay because if it's part of it then it will hurt the performance you try to understand the point I'm trying to make is that you go to a web page or a website or a portal and you feel that well it's good to navigate it is easy it is fast what whatever I am teaching you that goes behind it that is there that gives a total picture that gives a total performance that gives a total impression that gives a total immersion and consider using visual cues so that the user knows where they are going where they have been where they are present right now page layout consistency use the cascading style sheets these are covered in web engineering courses you must have taken those courses and use stable base layout for grid but remember one thing that you use a layout which will work on a mobile device also remember as I have mentioned in the previous modules that there has been tremendous increase in mobile based internet access to use a structure which not only works well in a desktop environment in a laptop environment but also on a mobile phone page rendering use binding options data paging use Ajax so there are many tools around there are many techniques around with which you can create your pages request processing okay centralizing the common processing use intercepting filter pattern and of course validation you have to have trust boundaries and check the length of the password check the length of the CNIC number check the data type and do that at the client and and server and do not let your system crash thank you very much