delivering client sites - kc2015
TRANSCRIPT
Delivering client sites
Ilesh Mistry
Agenda
MMT Digital
Ilesh Mistry
Common mistakes in site delivery
Delivering client sites
Questions
@ileshmistry | #KenticoConnection
Elevator pitch –
We architect, design and build
bespoke websites and applications
that deliver outstanding user
experiences.
“
”
v
Ilesh Mistry
- http://www.mmtdigital.co.uk/Ilesh-mistry/blog
- @ileshmistry
@ileshmistry | #KenticoConnection
Ilesh Mistry
Mini Mistrys…- Short videos on various
Kentico topics- How to guides- Smart Search is the
beginning…- Any suggestions let me know
@ileshmistry | #KenticoConnection
Common mistakes in site delivery
@ileshmistry | #KenticoConnection
Common mistakes in site delivery
@ileshmistry | #KenticoConnection
Common mistakes in site delivery Search doesn’t work
Analytics not working
Dropped in SEO ranking
Can’t access Online Marketing
Page is running slow
Can’t access admin area
Seeing error pages
Etc…
Make sure you site is ready ready and not just finished
@ileshmistry | #KenticoConnection
Delivering client sites - Agenda
Kentico Connection Site Delivery Checklist (#KenticoConnectionSDC)
UI Admin
EMS configuration
Front End Optimisation Techniques
URLs & SEO
Performance
Caching
Testing during site development
Security
Staying alive
Any other things?
@ileshmistry | #KenticoConnection
@ileshmistry | #KenticoConnection
Your Kentico Communityneeds…
You!#KenticoConnectionSDC
UI Admin Customise dashboard and
applications list
Roles and permissions
Page Types child items
Workflow
Resize image on upload
Build all Smart Search indexes that are needed across site?
Cleaned up the content tree and removed any unwanted items?
Page type icons
Forms & Form Layouts
Switched on various settings
Clean up templates and widgets they can select
Kentico Editor output styling e.g. Bullet point list
Use the new Version 9 Web Parts and Widget Usages to locate
@ileshmistry | #KenticoConnection
New in Version 9
EMS configuration
Set-up Widgets where you can?
Turned on/enabled Online Marketing options?
Enabled A/B Testing and MVT option
Enabled Content Personalization option
Thought about tracking conversions, if so use the conversion form control field
Mapped Form fields to allow for contacts within Kentico
@ileshmistry | #KenticoConnection
Front End Optimisation Techniques Image optimisation
Store in Filesystem
Upload size
Store files elsewhere Images
Videos
GZIP / output compression
@ileshmistry | #KenticoConnection
Front End Optimisation Techniques Minification
(JS, CSS, Images etc…)
Task runner e.g. Grunt
@ileshmistry | #KenticoConnection
Front End Optimisation Techniques Responsive Design
@ileshmistry | #KenticoConnection
Source: https://kinsta.com/learn/page-speed/
URLs and SEO URL Redirects
Same URLs
Allowed extensions
Canonical Links
Page Not Found
Robots, Google Sitemap and Google Analytics Thinking about multiple cultures would help with
this
HTML structures and syntax
Structured data e.g. Schema.org (https://developers.google.com/structured-data/testing-tool/)
@ileshmistry | #KenticoConnection
Performance
Kentico documentation for speeding up the website
Web part performance best practice
Only render what is required for that section not unrequired items (e.g. non mandatory fields markup showing up)
Bad backend coding
@ileshmistry | #KenticoConnection
Performance SQL Debugger
Real time SQL debugging
Looking at columns you needto use and not all
Different places to view it
Performance benefit
You know what to do when you have finished with it!
@ileshmistry | #KenticoConnection
Performance SQL Debugger
Under Debug SQL Queries
Example of a Hierarchical Viewer withmultiple Page Types
@ileshmistry | #KenticoConnection
Performance KInspector
@ileshmistry | #KenticoConnection
Performance - Recommendations
I would recommend to always check the SQL Debugger / Kinspector
Then if things look bad, use the web part with SQL Query in them so you define what the query / data source is and it is not something you just let Kentico handle
There are always and will be different scenarios to use some options over others, it all depends per project
@ileshmistry | #KenticoConnection
Caching What are you
going to cache?
Main types Output caching Partial Caching CacheHelper.Cache
Debugging cache
Output cachesubstitutions
To cache or not to cache that is the question
@ileshmistry | #KenticoConnection
private void BindGridCachedSection(){
DataSet ds = null;using (CachedSection<DataSet> cs = new CachedSection<DataSet>(ref
ds, new CacheSettings(60, "UsersDataset"))){
if (cs.LoadData) { ds = LoadUsersFromDB("UserEnabled=1"); }}grid.DataSource = ds;grid.DataBind();
}
private void BindGridTheBest(){
grid.DataSource = CacheHelper.Cache(() => LoadUsersFromDB("UserEnabled=1"), new CacheSettings(60,
"UsersDataset"));grid.DataBind();
}
Server/content cache Code from Petr Svihlik slides Kentico Developer Roadshow - London
Testing during site development Kentico validation
HTML
CSS
Link checker
Accessibility
Online validation
@ileshmistry | #KenticoConnection
Testing during site development JS Unit Testing
Jasmine & Karma
@ileshmistry | #KenticoConnection
Testing during site development JS Unit Testing
Jasmine & Karma
@ileshmistry | #KenticoConnection
Testing during site development .Net Unit Testing
NUnit
Mocking with MOQ outside Kentico
Custom Services
@ileshmistry | #KenticoConnection
Testing during site development .Net Unit Testing
NUnit
Mocking with MOQ outside Kentico
Custom Services
@ileshmistry | #KenticoConnection
Testing during site development Cross browser and
device testing
Selenium automated testing
@ileshmistry | #KenticoConnection
Security Run site through HTTPS
Stress Testing / Concurrent Testing e.g. Seige
Penetration Testing
Open Web Application Security Project (OWASP) Top 10 Security Vulnerabilities Injection Cross Site Scripting Anti CSRF (Cross-Site Request Forgery) Etc…
Now improved in version 9 protection against CSRF by employing anti-CSRF tokens Great article by Juraj Komlosi on this
@ileshmistry | #KenticoConnection
Staying alive
There are tools out there that check sites UpTrends
Uptime Robot
StatusCake
Pingdom
Get alerts before the client does so you can resolve them quickly
@ileshmistry | #KenticoConnection
Any other things?
Kentico Setup Installer
Follow my blog post on setting up a base site template
@ileshmistry | #KenticoConnection
@ileshmistry | #KenticoConnection
Your Kentico Communityneeds…
You!#KenticoConnectionSDC
Questions?
@ileshmistry | #KenticoConnection
Thank you!
http://www.mmtdigital.co.uk/Ilesh-Mistry
https://twitter.com/ileshmistry
https://www.facebook.com/ilesh.mistry
https://www.linkedin.com/in/ileshmistry
https://plus.google.com/+IleshMistry
@ileshmistry | #KenticoConnection